1 Star 0 Fork 36

KiraYan / 基于ABP通用权限工作流管理系统

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 5.34 KB
一键复制 编辑 原始数据 按行查看 历史
林中白狼 提交于 2020-05-05 23:26 . 添加 ETag缓存中间件

基于ABP和Vue-Element-Admin的通用后台权限和工作流框架

实现目标通用的架构:

  1. 前后端分离方案:基于 abp .net core 版后端 和 vue 前端
  2. 使和数据库的交互标准化、简易方式:DDD领域驱动设计CodeFirst,实现基于vs插件的代码生成器 (生成代码包括vue前端、abp后端)
  3. 权限设计:组织结构、RBAC的功能权限设计基于ABP、基于规则的数据权限(未实现)
  4. 实现消息提醒:使用SignalR的Hub模式
  5. 统一的登录中心OIDC: 改造Identity4Sever为时候abp的登录
  6. 工作流:
  • 工作流包括流程引擎、流程设计器、表单设计器等,实现基于gooflow流程设计器、流程引擎、考虑使用者多为开发人员所以未实现表单设计器。实现过程参考OpenAuth.net
  • 流程模型采用邻接表和逆邻接表表示顶点和顶点直接的关系、使用规则定义条件流转和节点权限
  • 工作流详细介绍
  1. 前端代码已开源

架构

后端 基于abp

  • DDD区别与三层模式的核心有2点:
  1. 层不同 DDD: core领域层、Application应用层、Dto层、Infrastrctrue基础设施层、UI层;
  2. 依赖关系:所有层依赖于core领域层,数据的接口写在Core领域层,这样Application就不需要依赖Infrastrue层。进而通过IOC就可以达到真正的和数据库分离,也就是业务和具体技术的分离!
  • 通用crud模板 封装

  • 添加ETag缓存,默认缓存 /AbpUserConfiguration/GetAll、/api/services/app/Session/GetCurrentLoginInformations、/api/services/app/profile/GetProfilePicture,浏览器第二次访问时返回304,直接从浏览器本地取缓存数据。当修改用户的基本信息时情况服务端的ETag,返回最新数据给浏览器

  • AutoMaper配置通过Profile统一处理

  • Excel导出封装

  • 集成第三方登录(Identity4Server、微信)

  • 添加原生sql支持

  • 数据库切换为 mysql (todo)

  • docker 发布

前端 vue

使用 vue-element-admin 进行改造成适合abp的前端以及通用组件的封装、改动量比较大地方在于:

  1. 登录后、语言切换、多租户页面刷新问题:vue实例化的时候主要时动态路由的生成, 用户登录后abp需要通过/app/Session/GetCurrentLog获取用户的配置信息、本地化、路由权限信息等。故需要刷新页面重新实例化vue
  2. 权限设计的修改:原权限时基于角色的、abp基于permission更符合实际的应用场景
  • 基于 vue-element-admin进一步封装适用abp的前端

  • 修改路由基于permision的权限动态路由添加

  • 集成abp的配置、abp通用一些消息提醒方法

  • request.js 调整为abp的token,及后拦截

  • 多语言、多租户切换

  • 上传头像、修改密码、修改个人信息

  • 导出 excel

  • 通用组件封装

  • curd模板

  • 分页模板

  • 通用保存对话框

  • 可选择搜索对话框封装

  • 集成第三方登录(Oidc)

Identity4Sever 统一认证中心(OpenId Connect)

功能点

  • 登录、权限验证

  • 上传头像、修改密码、修改个人信息

  • 多语言

  • 角色授权

  • 用户角色分配

  • 组织机构添加、用户分配

  • 导出excel

  • 基于SignalR实时消息提醒

  • 审计功能(Application日志存储 和 EntityChange日志)

  • 工作流流程设计、发布

    工作流模型:使用gooflow模型、node顶点、line边,即有向图模型。采用邻接表和逆邻接表表示顶点和顶点直接的关系、使用规则定义条件流转和节点权限

  • 工作流流转

vs2017插件开发 - DDD代码生成器:

界面截图

  • 组织机构 组织机构

  • 审计日志 审计日志

  • signalR消息提醒 signalR

  • role角色权限管理 role角色权限管理

  • 用户管理 用户管理

  • 租户管理 租户管理

  • Oidc登录 oidc

  • 流程设计 流程设计

  • 请假单申请 请假单申请

  • 请假单审批 请假单审批 请假单审批1

  • 流程不同意/驳回 流程不同意/驳回

  • 代码生成器 生成效果 代码生成器生成的效果 后端生成 后端生成 前端生成 前端生成

  • 地图展示 地图展示

C#
1
https://gitee.com/kirayans/base-abp-auth-workflow-opensouce.git
git@gitee.com:kirayans/base-abp-auth-workflow-opensouce.git
kirayans
base-abp-auth-workflow-opensouce
基于ABP通用权限工作流管理系统
master

搜索帮助