当前位置:   article > 正文

若依框架实战(前后端分离版)_若依项目实战

若依项目实战

目录

前言:

项目介绍:

环境准备:

数据库设计:

 项目流程介绍:

 PC前端原型设计:

首页

 用户管理

 请假人数限制

 请假审核管理

 销假审核管理

 数据库sql:

leave_user(用户信息表)

leave_limit(请假限制表)

leave_info(请假信息表)

创建一个若依前后端分离工程

正片开始!!!

准备环境:

创建新模块:

 根据原型设计图,利用若依进行设置

一:为自己新增一个账号

 二:字典的设置

 三:新增三个菜单

 详情信息如下:

 四:利用代码生成器快速开发

leave_user 学生信息表

 leave_info  销假信息表

leave_limit  请假限制

用户信息的xml文件

源码链接

 五:页面细节修改

六:细节修改

若依更改为请销假

 首页部分

 尾:


前言:

个人菜鸟,接触不久,接受批评,有些许地方还不够规范,仅仅解决了简单的业务问题,目前没有去增加高并发处理,我做的是《校园请销假小程序管理系统》它有小程序端、小程序后端服务、PC前端、PC后端服务。具体请假操作是在小程序端,后端的话是当时需求是可全部管理(也就是全校都可管理),也做了分类查询处理。

这里我先讲解PC端的,小程序会在不久更新。(留意评论区)

也希望大佬能给出PC端的优化建议。

项目介绍

校园请销假管理系统是一种使用信息化技术来管理学生请假和销假的系统。该系统可以提供学生请假的申请、审批以及销假的记录和统计功能,以提高请销假的效率和准确性,同时减轻相关工作人员的工作负担。

环境准备:

IDEA2020.1

maven3.6.3

redis

chrome

mysql8.0.31

数据库设计

leave_user(用户表)

leave_limit(请假限制表)

leave_info(请假信息表)

 项目流程介绍:

 PC前端原型设计:

首页

 用户管理

 请假人数限制

 请假审核管理

 销假审核管理

 数据库sql:

注:因为由个人隐私问题我这里就只公开数据库结构,用户信息需自行创建一些实例!(后面有讲解)

leave_user(用户信息表)

  1. /*
  2. Navicat Premium Data Transfer
  3. Source Server : localhost_3306
  4. Source Server Type : MySQL
  5. Source Server Version : 80031
  6. Source Host : localhost:3306
  7. Source Schema : leavepro
  8. Target Server Type : MySQL
  9. Target Server Version : 80031
  10. File Encoding : 65001
  11. Date: 14/07/2023 10:11:53
  12. */
  13. SET NAMES utf8mb4;
  14. SET FOREIGN_KEY_CHECKS = 0;
  15. -- ----------------------------
  16. -- Table structure for leave_user
  17. -- ----------------------------
  18. DROP TABLE IF EXISTS `leave_user`;
  19. CREATE TABLE `leave_user` (
  20. `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  21. `user_snum` bigint(0) NULL DEFAULT NULL COMMENT '学号/工号',
  22. `user_password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码',
  23. `user_name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
  24. `user_phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
  25. `user_sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '性别',
  26. `user_college` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '学院',
  27. `user_major` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '专业',
  28. `user_class` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '班级',
  29. `user_email` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户邮箱',
  30. `user_status` int(0) NULL DEFAULT 0 COMMENT '用户状态(0正常 1申请中 2待销假)',
  31. `user_role` int(0) NULL DEFAULT 0 COMMENT '角色(0学生 1教师)',
  32. `user_del` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '是否被删除(0存在 1已删除)',
  33. `create_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
  34. `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  35. `update_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
  36. `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
  37. `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '无' COMMENT '备注',
  38. PRIMARY KEY (`id`) USING BTREE
  39. ) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '学生信息表' ROW_FORMAT = Dynamic;
  40. SET FOREIGN_KEY_CHECKS = 1;

leave_limit(请假限制表)

  1. /*
  2. Navicat Premium Data Transfer
  3. Source Server : localhost_3306
  4. Source Server Type : MySQL
  5. Source Server Version : 80031
  6. Source Host : localhost:3306
  7. Source Schema : leavepro
  8. Target Server Type : MySQL
  9. Target Server Version : 80031
  10. File Encoding : 65001
  11. Date: 14/07/2023 10:12:59
  12. */
  13. SET NAMES utf8mb4;
  14. SET FOREIGN_KEY_CHECKS = 0;
  15. -- ----------------------------
  16. -- Table structure for leave_limit
  17. -- ----------------------------
  18. DROP TABLE IF EXISTS `leave_limit`;
  19. CREATE TABLE `leave_limit` (
  20. `id` varchar(22) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '请假限制条件',
  21. `leave_limiting` int(0) NULL DEFAULT NULL COMMENT '请假限制人数',
  22. PRIMARY KEY (`id`) USING BTREE
  23. ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
  24. SET FOREIGN_KEY_CHECKS = 1;

leave_info(请假信息表)

  1. /*
  2. Navicat Premium Data Transfer
  3. Source Server : localhost_3306
  4. Source Server Type : MySQL
  5. Source Server Version : 80031
  6. Source Host : localhost:3306
  7. Source Schema : leavepro
  8. Target Server Type : MySQL
  9. Target Server Version : 80031
  10. File Encoding : 65001
  11. Date: 14/07/2023 10:13:54
  12. */
  13. SET NAMES utf8mb4;
  14. SET FOREIGN_KEY_CHECKS = 0;
  15. -- ----------------------------
  16. -- Table structure for leave_info
  17. -- ----------------------------
  18. DROP TABLE IF EXISTS `leave_info`;
  19. CREATE TABLE `leave_info` (
  20. `id` int(0) NOT NULL AUTO_INCREMENT,
  21. `leave_reviewid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假审批号',
  22. `leave_removeid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '销假审批号',
  23. `leave_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假类型(0病假 1事假 2其他)',
  24. `leave_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '请假表状态(0申请中 1请假通过 2请假驳回 3已完成)',
  25. `leave_snum` bigint(0) NULL DEFAULT NULL COMMENT '请假学生学号',
  26. `leave_notes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '无' COMMENT '请假事由',
  27. `leave_address` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假去往地址',
  28. `leave_starttime` datetime(0) NULL DEFAULT NULL COMMENT '请假开始时间',
  29. `leave_endtime` datetime(0) NULL DEFAULT NULL COMMENT '请假结束时间',
  30. `leave_uegent` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '紧急联系电话',
  31. `leave_respeople` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假负责人',
  32. `leave_criticize` datetime(0) NULL DEFAULT NULL COMMENT '请假审批时间',
  33. `leave_idea` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假审批意见',
  34. `leave_del` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
  35. `create_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
  36. `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  37. `update_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
  38. `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
  39. `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
  40. `remove_overdue` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '逾期状态(0未逾期 1逾期)',
  41. `remove_time` datetime(0) NULL DEFAULT NULL COMMENT '销假时间',
  42. `remove_lng` double NULL DEFAULT NULL COMMENT '销假经度',
  43. `reomve_lat` double NULL DEFAULT NULL COMMENT '销假纬度',
  44. `remove_criticize` datetime(0) NULL DEFAULT NULL COMMENT '销假审批时间',
  45. `reomve_advice` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '销假审批意见',
  46. `remove_user` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '销假审批人',
  47. `remove_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '销假人',
  48. `remove_show` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '是否显示(0不显示 1显示)',
  49. `remove_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '销假审核状态(0驳回,1通过)',
  50. PRIMARY KEY (`id`) USING BTREE,
  51. INDEX `info_snum`(`leave_snum`) USING BTREE
  52. ) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '请假信息表' ROW_FORMAT = Dynamic;
  53. SET FOREIGN_KEY_CHECKS = 1;

创建一个若依前后端分离工程

这里我就不多说了,前面有文章介绍,链接放到这里,自行去看不用做二次开发,这里只需要一个初始化好的前后端分离了项目。

若依框架二次开发(一)(项目搭建)(Windows)_Version update的博客-CSDN博客

看完上面的这个教程并跟着做完,然后看一下下面的教程,了解一下新增模块怎么做(下面步骤我会省略这部分的讲解)

若依框架二次开发(二)(进入主题)(Windows)_若依开发文档_Version update的博客-CSDN博客

若依框架二次开发(三)_Version update的博客-CSDN博客

正片开始!!!

准备环境:

  1. 首先你要将上面的数据库导入成功
  2. 启动若依初始化项目登陆进去(别忘记开redis)

创建新模块:

按照我之前的教程文档创建两个模块(ruoyi-leaveuser    ruoyi-leaveview)

 根据原型设计图,利用若依进行设置

一:为自己新增一个账号

 

 二:字典的设置

根据原型图可以得到以下字典里类型:

 我啰嗦一句 0.0 字典的作用。如图所示,便于分类区分

 以下是上述字典的详细设置

 

 

 

 

 

 

 

 

 

 三:新增三个菜单

 详情信息如下:

信息管理

 请假人数限制

 审核管理

 四:利用代码生成器快速开发

这里我也不多啰嗦,生成好的代码文件怎么放置,之前的教程链接都有讲到,自行去查看,链接依旧放到下面自行去看。

若依框架二次开发(二)(进入主题)(Windows)_若依开发文档_Version update的博客-CSDN博客

若依框架二次开发(三)_Version update的博客-CSDN博客

下面我列上详细编辑的截图,对照的进行更改,更改好了后,生成代码,然后根据之前教程的步骤进行CV

 这三个地方都会有更改

leave_user 学生信息表

基本信息

 字段信息

这里的行可以进行拖拽排序!

这里我没有做保留字段,所以我就用别的没有列出来的字段进行了查询/编辑,我会附上我的xml文件的代码

注意!仔细对比,不要拉下任何细节哦

 

 生成信息

 leave_info  销假信息表

这里销假信息表、和请假信息表我的是一张数据库表进行实现的,所以,需要改两边,意思就是:同一张表,用代码生成器更改编辑两次,生成两个代码压缩包,然后进行CV,我在这里就只展示销假信息表的编辑详情,请假信息的我会放到最后。

基本信息

字段信息

 

 

生成信息

leave_limit  请假限制

 基本信息

字段信息

生成信息

用户信息的xml文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ruoyi.leaveuser.mapper.LeaveUserMapper">
  6. <resultMap type="LeaveUser" id="LeaveUserResult">
  7. <result property="id" column="id" />
  8. <result property="userSnum" column="user_snum" />
  9. <result property="userPassword" column="user_password" />
  10. <result property="userName" column="user_name" />
  11. <result property="userSex" column="user_sex" />
  12. <result property="userPhone" column="user_phone" />
  13. <result property="userCollege" column="user_college" />
  14. <result property="userMajor" column="user_major" />
  15. <result property="userClass" column="user_class" />
  16. <result property="userEmail" column="user_email" />
  17. <result property="userStatus" column="user_status" />
  18. <result property="userRole" column="user_role" />
  19. <result property="userDel" column="user_del" />
  20. <result property="createUser" column="create_user" />
  21. <result property="createTime" column="create_time" />
  22. <result property="updateUser" column="update_user" />
  23. <result property="updateTime" column="update_time" />
  24. <result property="remark" column="remark" />
  25. </resultMap>
  26. <sql id="selectLeaveUserVo">
  27. select id, user_snum, user_password, user_name, user_sex, user_phone, user_college, user_major, user_class, user_email, user_status, user_role, user_del, create_user, create_time, update_user, update_time, remark from leave_user
  28. </sql>
  29. <select id="selectLeaveUserList" parameterType="LeaveUser" resultMap="LeaveUserResult">
  30. <include refid="selectLeaveUserVo"/>
  31. <where>
  32. <if test="userSnum != null "> and user_snum = #{userSnum}</if>
  33. <if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
  34. <if test="userCollege != null and userCollege != ''"> and user_college = #{userCollege}</if>
  35. <if test="userMajor != null and userMajor != ''"> and user_major = #{userMajor}</if>
  36. <if test="userClass != null and userClass != ''"> and user_class = #{userClass}</if>
  37. <if test="userStatus != null "> and user_status = #{userStatus}</if>
  38. </where>
  39. </select>
  40. <select id="selectLeaveUserById" parameterType="Long" resultMap="LeaveUserResult">
  41. <include refid="selectLeaveUserVo"/>
  42. where id = #{id}
  43. </select>
  44. <select id="selectLeaveUserBySnum" parameterType="Long" resultMap="LeaveUserResult">
  45. <include refid="selectLeaveUserVo"/>
  46. where user_snum = #{userSnum}
  47. </select>
  48. <insert id="insertLeaveUser" parameterType="LeaveUser" useGeneratedKeys="true" keyProperty="id">
  49. insert into leave_user
  50. <trim prefix="(" suffix=")" suffixOverrides=",">
  51. <if test="userSnum != null">user_snum,</if>
  52. <if test="userPassword != null and userPassword != ''">user_password,</if>
  53. <if test="userName != null and userName != ''">user_name,</if>
  54. <if test="userSex != null">user_sex,</if>
  55. <if test="userPhone != null">user_phone,</if>
  56. <if test="userCollege != null and userCollege != ''">user_college,</if>
  57. <if test="userMajor != null and userMajor != ''">user_major,</if>
  58. <if test="userClass != null and userClass != ''">user_class,</if>
  59. <if test="userEmail != null">user_email,</if>
  60. <if test="userStatus != null">user_status,</if>
  61. <if test="userRole != null">user_role,</if>
  62. <if test="userDel != null">user_del,</if>
  63. <if test="createUser != null">create_user,</if>
  64. <if test="createTime != null">create_time,</if>
  65. <if test="updateUser != null">update_user,</if>
  66. <if test="updateTime != null">update_time,</if>
  67. <if test="remark != null">remark,</if>
  68. </trim>
  69. <trim prefix="values (" suffix=")" suffixOverrides=",">
  70. <if test="userSnum != null">#{userSnum},</if>
  71. <if test="userPassword != null and userPassword != ''">#{userPassword},</if>
  72. <if test="userName != null and userName != ''">#{userName},</if>
  73. <if test="userSex != null">#{userSex},</if>
  74. <if test="userPhone != null">#{userPhone},</if>
  75. <if test="userCollege != null and userCollege != ''">#{userCollege},</if>
  76. <if test="userMajor != null and userMajor != ''">#{userMajor},</if>
  77. <if test="userClass != null and userClass != ''">#{userClass},</if>
  78. <if test="userEmail != null">#{userEmail},</if>
  79. <if test="userStatus != null">#{userStatus},</if>
  80. <if test="userRole != null">#{userRole},</if>
  81. <if test="userDel != null">#{userDel},</if>
  82. <if test="createUser != null">#{createUser},</if>
  83. <if test="createTime != null">#{createTime},</if>
  84. <if test="updateUser != null">#{updateUser},</if>
  85. <if test="updateTime != null">#{updateTime},</if>
  86. <if test="remark != null">#{remark},</if>
  87. </trim>
  88. </insert>
  89. <update id="updateLeaveUser" parameterType="LeaveUser">
  90. update leave_user
  91. <trim prefix="SET" suffixOverrides=",">
  92. <if test="userSnum != null">user_snum = #{userSnum},</if>
  93. <if test="userPassword != null and userPassword != ''">user_password = #{userPassword},</if>
  94. <if test="userName != null and userName != ''">user_name = #{userName},</if>
  95. <if test="userSex != null">user_sex = #{userSex},</if>
  96. <if test="userPhone != null">user_phone = #{userPhone},</if>
  97. <if test="userCollege != null and userCollege != ''">user_college = #{userCollege},</if>
  98. <if test="userMajor != null and userMajor != ''">user_major = #{userMajor},</if>
  99. <if test="userClass != null and userClass != ''">user_class = #{userClass},</if>
  100. <if test="userEmail != null">user_email = #{userEmail},</if>
  101. <if test="userStatus != null">user_status = #{userStatus},</if>
  102. <if test="userRole != null">user_role = #{userRole},</if>
  103. <if test="userDel != null">user_del = #{userDel},</if>
  104. <if test="createUser != null">create_user = #{createUser},</if>
  105. <if test="createTime != null">create_time = #{createTime},</if>
  106. <if test="updateUser != null">update_user = #{updateUser},</if>
  107. <if test="updateTime != null">update_time = #{updateTime},</if>
  108. <if test="remark != null">remark = #{remark},</if>
  109. </trim>
  110. where id = #{id}
  111. </update>
  112. <delete id="deleteLeaveUserById" parameterType="Long">
  113. delete from leave_user where id = #{id}
  114. </delete>
  115. <delete id="deleteLeaveUserByIds" parameterType="String">
  116. delete from leave_user where id in
  117. <foreach item="id" collection="array" open="(" separator="," close=")">
  118. #{id}
  119. </foreach>
  120. </delete>
  121. </mapper>

源码链接

链接:https://pan.baidu.com/s/19Sd326ptLLrrRCfUfp4jXw 
提取码:6666

 

 五:页面细节修改

根据elementui的相关组件可以进行更改

下面是具体步骤:

 在这里进行设置,去调节宽度

六:细节修改

若依更改为请销假

在IDE中按住 Ctrl+Shift+R        (前后端都要)

然后全部替换

 首页部分

大家可以直接参考我的源码

 在这里放入图片地址

如果想设计的更好的话,大家可以去翻阅elementui去使用更加丰富的组件

 尾:

别的地方就大同小异了,几乎都是这个步骤,我就不做重复的工作了,我没有讲到的地方,就可以直接去CV源码喽。

小程序端的话如果大家会运行大家也可以去用,不太懂的话等我出教程吧。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号