介绍
基于vue和springboot的前后端分离项目,即是后台管理系统,也可做为OA系统使用,演示环境地址:https://www.zhoulang.site
系统架构
- springboot、Mysql、MybatisPlus作为基础框架。
- 使用JWT和Redis实现登录会话功能。
- 前端使用若依ui,并进行了修改,适应后台系统。 JDK1.8、Mysql5.7
功能简介
- 用户管理:对系统访问用户进行新增、修改、锁定、重置密码等管理。
- 组织架构管理:维护系统的部门、角色和用户的关系。
- 参数管理:对系统的关键参数进行配置,可以修改、开启或关闭系统功能。
- 菜单管理:配置前端动态路由菜单。
- 缓存信息:提供刷新系统缓存的接口。
- 系统安全策略:控制用户登录和密码安全,以及系统访问环境安全策略。
- 附件管理:管理系统中生成的附件,如用户头像,消息附件等。
- 黑名单:管理禁止访问系统的客户端ip地址。
- 权限管理 :对系统权限进行维护。
- 系统监控:记录系统操作日志。
- 定时任务管理:动态管理系统的任务调度。
- activiti工作流
- 消息管理系统:用户可以发送邮件和系统内消息,支持附件上传
更多功能请访问演示环境体验!
组织架构简介
系统中的组织架构分为部门、角色、用户 ,它们都属于组织架构对象,存放在一张系统组织架构表中,通过一个组织架构类型进行区分。它们之间通过一张组织架构关系表维护上下级树关系,用户放在部门或者角色的下级,部门下面可以新建子部门。不同角色之间是平级关系,没有上下级关系。
为了提示组织架构对象查询的性能,系统启动时对组织架构对象的树结构进行了缓存,查询时直接去缓存树中进行递归,查找出所有子节点,或所有父节点。在进行组织结构关系修改时,系统会自动刷新缓存。
考虑到组织架构选择功能很多地方会使用到,我封装了前端的组织架构选择控件,可选择部门、角色、和用户
菜单功能简介
系统将菜单分为四个种类:
菜单类型 | 菜单说明 |
---|---|
目录 | 菜单所存放的目录 |
菜单 | 实际能访问的菜单页面 |
接口 | 后端提供的访问接口 |
按钮 | 前端页面可见的按钮 |
这种四级菜单结构的设计,为菜单的权限提供了更细粒度的控制。
权限系统简介
系统设计了一个通用的权限系统,不仅仅局限于菜单权限,系统只用一张权限表,就可以支持任意权限,不用再设计其他权限表。 用户自动继承上级部门或者角色的权限,也可拥有自身权限。 提供通一的权限查询接口,根据权限定义、权限类型、用户id,查询出对应权限。 以下以菜单权限为例:
可以对部门进行菜单授权,则该部门下的用户自动拥有该部门的权限,蓝色文字代表直接对这个授权对象赋予的权限,黑色文字表示这个授权对象的权限是继承自上级对象。
界面提供一个清空自身权限按钮,点击会删除授权对象的所有自身权限,不影响继承权限。
假如部门下有100个用户,其中一个用户我们想单独取消某些用户权限,这时可以同时对用户进行单独授权,拒绝该菜单的权限,当菜单的checkbox为红色时,表示拒绝权限,当checkbox未选中时,表示没有该菜单的权限,当checkbox为选中状态时,表示拥有菜单权限。
引入Activiti工作流
- bpmn-js流程在线设计器,可以在线新建并绘制流程保存到服务器
- 流程发布与版本控制,重复发布后可以查看流程的历史版本
- 流程发起、挂起、激活、终止,指派、增员、减员
- 流程任务办理,系统提供了内置的处理页面,根据流程图配置动态展示审批按钮