dtree 后台管理例子_VHR - 前后端分离的人力资源管理系统

人力资源管理系统,是十分常见的企业内部后台系统,主要包括组织架构、员工信息、人事制度、薪资管理、人员招聘等综合功能,主要面向人力资源部门和管理人员使用。一个成熟的人资管理系统的开发并不简单,其包含了复杂的角色管理、权限管理和事务流程管理,以及前端需要适应不同场景的界面和空间的设计等。VHR(微人事),是一个采用了 SpringBoot + Vue 开发的前后端分离的人力资源管理系统,可以作为人事系统,乃至于后台系统开发的优秀例子。

f5dd4d3ee3381a3aca854630e59c5a44.png

Sprint Boot + Vue

简介

VHR,是 lenve 在 Github 上开源的人力资源管理系统,项目位于 https://github.com/lenve/vhr,且在 Gitee 有镜像项目,位于 https://gitee.com/lenve/vhr。

VHR 所涉及的技术十分丰富,在后端,采取 Spring Boot 为主框架,Spring Security 实现用户验证和权限管理,MyBatis 操作数据库,MySQL 作为关系数据库,Redis作为缓存后端,RabbitMQ 作为消息队列,Spring Cache 管理缓存,WebSocket 实现全双工通信。而在前端,则使用 Vue 的 ElementUI 框架,使用包括 axios、vue-router、Vuex 等实现前端逻辑。

e1aadffe5e26ce656125f21594b9a373.png

vhr微人事系统

安装

VHR 部署简单。首先,把项目 clone 到本地:

git clone git@github.com:lenve/vhr.git

准备一个空的 MySQL 数据库,修改项目的数据库配置(application.properties),并使用 Flyway 管理数据库脚本,另外准备 Redis、RabbitMQ 等。在 IntelliJ IDEA 中打开 vhr 项目,并启动 mailserver 模块,然后,运行 vhrserver 中的 vhr-web 模块,就可以启动服务端。

对于前端,运行

npm installnpm run serve

进行启动,此时,访问 http://localhost:8080,就可以看到后台界面。

实例

VHR 作为一个人力资源管理系统,划分了不同的功能模块,包括:员工资料、人事管理、薪资管理、统计管理和系统管理。系统进行了全面的权限划分,不同的用户登录之后,根据角色不同,可以看到不同的侧边栏菜单,拥有不同的页面访问权限。完整菜单如下:

965697832bd292983326a64d84aeb494.png

侧边栏菜单

权限较低的用户所能访问的页面也较为局限:

7ccdfbe38e615f5dc89ec75fe206f826.png

权限限制

管理员可以为每个用户分配不同的角色,依据角色实现 RBAC 权限模型:

c631766629d9d4c0cfad4012aa2b1449.png

角色分配

系统管理员也可以配置不同角色所可以操作的资源:

51143d82dafa76ebd44976af45123927.png

资源分配

权限数据库主要包含了五张表:资源表、角色表、用户表、资源角色表、用户角色表:

1f6418a20dc85b49d52682690fd067cc.png

权限数据模型

系统包括职位管理和职称管理:

b5c9984af67a9f969cdfb798df8aefcf.png

职位管理

6c4826f680a7efac434ece262a3ddd7f.png

职称管理

对于员工管理,包括基本的增删改查、以及分页、批量删除、基本搜索等功能:

2c39480349cf7309e2c12da8cb6ff1bc.png

添加员工

669181ceb8430ce7ea84499630a945ba.png

编辑员工

3abbb8a023f39f5e68d4dbfe0d0589d3.png

删除员工

总结

VHR 作为一个开源的人力资源管理系统,其作为一个教程项目,拥有丰富的技术笔记和视频教程,对于进行 SpringBoot、Vue、前后端分离,乃至于后台系统的设计等,都具有很大的意义和价值。同时,其作为一个开源的系统应用,可以在实践中直接使用,也可以进行二次开发,得到符合自身需求的系统应用。