开发流程
- 后台新增审核方案:先新增审核方案,再设置审核节点,最后设置审核节点负责角色
- 数据库改造:在业务表增加PROGRESS_STATUS字段
- 后端代码改造:业务实体继承BaseApprovalEntity,在业务控制层新增、更新方法添加
@Approval注解 - 后台页面开发:业务数据列表页引入提交审核、撤销组件
ms-approval-action
Tip
业务表:指存储具体业务数据的数据库表,如文章:cms_content
后台新增审核方案

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

按需设置审核的节点数

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

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

数据库改造
业务表增加PROGRESS_STATUS字段
ALTER TABLE 业务表名 ADD COLUMN PROGRESS_STATUS varchar(50) DEFAULT NULL COMMENT '审核状态' ;
后端代码改造
业务实体继承BaseApprovalEntity

在对应业务dao.xml新增PROGRESS_STATUS映射
业务控制层新增、更新方法添加@Approval注解

作用:在新增、更新业务数据时,自动设置业务数据的审核状态值
Tip
注意,上例图中是新增和更新是一个方法,所以只加一处注解;@Approval注解新增、更新方法都要加
| 注解参数 | 是否必填 | 说明 | 默认值 |
|---|---|---|---|
| schemeName | 是 | 审核方案名称 | 无 |
后台页面开发
业务数据列表页提交审核、撤销组件ms-approval-action

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

权限结构:“progress:approval:” + 业务审核方案编号 + “:submit|:revoke”