开发流程
- 配置审核方案
- 新增审核方案
- 设置审核节点
- 配置审核节点负责角色
- 新增审核状态字段 在对应的业务表中添加一个PROGRESS_STATUS字段,用于存储审核状态
- 调整业务代码
- 实体继承BaseApprovalEntity
- dao层新增PROGRESS_STATUS 字段的映射关系
- 控制层新增、更新方法添加 @Approval 注解
- 列表页显示审核状态和引入审核按钮 在对应业务的列表页显示审核状态,引入提交审核、撤销组件(ms-approval)
- 新增菜单权限 在对应业务菜单中添加提交、撤销权限
配置审核方案
新增审核方案

设置审核节点
点击方案名称,进行审核方案节点设置

按需设置审核的节点数

设置办理审核节点的角色
通过操作列 设置审核按钮,设置审核节点负责角色

按需设置每个节点负责审核的角色

新增审核状态字段
ALTER TABLE 业务表名 ADD COLUMN PROGRESS_STATUS varchar(50) DEFAULT NULL COMMENT '审核状态' ;
调整业务代码
实体继承BaseApprovalEntity

dao层的xml新增PROGRESS_STATUS映射

控制层新增、更新方法添加@Approval注解

- @Approval注解
作用:在新增、更新业务数据时,自动设置业务数据的审核状态值
| 注解参数 | 是否必填 | 说明 | 默认值 |
|---|---|---|---|
| schemeName | 是 | 审核方案名称 | 无 |
Tip
注意:上例图中是新增和更新是一个方法,所以只加一处注解;@Approval注解新增、更新方法都要加
列表页显示审核状态和引入审核按钮

- 显示审核状态
代码片段:
<!-- 列表页添加审核状态列 -->
<el-table-column label="审核状态" align="left" prop="progressStatus" width="100" show-overflow-tooltip>
</el-table-column>
- 引入提交审核、撤销组件
<!-- 头部添加组件引入 -->
<#include "progress/components/ms-approval.ftl">
<!-- 提交审核 -->
<ms-approval :data-id="scope.row.id"
scheme-name="角色"
@callback="list" //回调方法,一般会回调列表页数据刷新,方便显示审核状态
type="submit"
:data-ext="{'dataTitle':scope.row.roleName}"
v-if="scope.row.progressStatus == '待提交' ||
scope.row.progressStatus == '撤销' ||
scope.row.progressStatus.indexOf('不通过') != -1">
</ms-approval>
<!-- 撤销 -->
<ms-approval :data-id="scope.row.id"
scheme-name="角色"
@callback="list" //回调方法,一般会回调列表页数据刷新,方便显示审核状态
type="revoke"
v-if="scope.row.progressStatus != '待提交' &&
scope.row.progressStatus != '终审通过' &&
scope.row.progressStatus != '撤销' &&
scope.row.progressStatus.indexOf('不通过') == -1">
<!--vue js-->
components: {
// 注册组件
MsApproval,
},
- ms-approval 组件参数说明
| 组件参数 | 是否必填 | 说明 | 默认值 |
|---|---|---|---|
| dataId | 是 | 业务数据id | 无 |
| schemeName | 是 | 审核方案名称 | 无 |
| type | 是 | 当前业务操作类型,支持类型 submit(提交审批),revoke(撤回) | submit |
| dataExt | 是 | 业务扩展数据,用于待办页面展示,提交操作生效 | 无 |
| title | 是 | 操作按钮名称 | submit情况默认为提交审批,revoke情况默认为撤回 |
| callback | 否 | 提交后回调方法 | 无 |
新增菜单权限

审核操作:progress:approval:审核方案编号:operate