Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

开发流程

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

Tip

业务表:指存储具体业务数据的数据库表,如文章:cms_content

后台新增审核方案

img_1.png

设置审核节点

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

img_2.png

按需设置审核的节点数

img_3.png

设置办理审核节点的角色

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

img_4.png

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

img.png

数据库改造

业务表增加PROGRESS_STATUS字段

ALTER TABLE 业务表名 ADD COLUMN PROGRESS_STATUS  varchar(50)  DEFAULT NULL COMMENT '审核状态' ;

后端代码改造

业务实体继承BaseApprovalEntity

img_5.png

在对应业务dao.xml新增PROGRESS_STATUS映射

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

img_6.png

作用:在新增、更新业务数据时,自动设置业务数据的审核状态值

Tip

注意,上例图中是新增和更新是一个方法,所以只加一处注解;@Approval注解新增、更新方法都要加

注解参数是否必填说明默认值
schemeName审核方案名称

后台页面开发

业务数据列表页提交审核、撤销组件ms-approval-action

img_7.png

  • 组件参数说明
组件参数是否必填说明默认值
dataId业务数据id
schemeName审核方案名称
actionType当前业务操作类型,支持类型 submit revokesubmit
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,
},

业务数据菜单增加权限

img_8.png

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