Skip to content

审批接入:业务表单

业务表单是 RuoYi Office 推荐用于正式业务审批的接入方式。它把单据数据保存到独立业务表中,同时接入 Flowable 流程实例,实现“业务数据 + 审批流转 + 状态同步”的闭环。

适用场景

  • OA 用印、用车、会议、收发文等协同办公单据。
  • HRM 入职、转正、调动、离职、请假、薪资、绩效等人力流程。
  • CRM、合同、项目、资产、采购、付款等需要业务台账的审批。
  • 需要列表筛选、统计分析、附件管理、明细表、移动端审批。

核心模型

一个业务审批单据通常包含:

字段用途
id业务单据主键
bill_code单据编号
process_instance_idFlowable 流程实例编号
process_status草稿、审批中、通过、拒绝、取消等状态
tenant_id多租户隔离
creator / create_time创建信息
业务字段申请事项、金额、时间、人员、明细等

不同模块可以保留自己的命名规则,但必须能稳定关联流程实例和业务单据。

后端接入步骤

  1. 设计业务主表和必要的明细表。
  2. 创建 DO、Mapper、Service、Controller、SaveReqVO、RespVO、PageReqVO。
  3. 创建单据时保存草稿或提交审批。
  4. 提交审批时调用 BPM 流程实例能力,传入流程标识、业务主键和流程变量。
  5. 保存 processInstanceId,并把 processStatus 更新为审批中。
  6. 流程结束、拒绝、取消时,同步回业务单据状态。

业务 Service 应明确支持流程状态回写,避免审批结束后列表仍停留在旧状态。

前端接入步骤

PC 管理端建议使用列表页和表单页分离结构:

text
views/{module}/{feature}/
├── list/
│   ├── index.vue
│   └── data.ts
└── info/
    ├── index.vue
    └── data.ts

表单页应支持三类场景:

场景行为
新建填写业务字段,可保存草稿或提交审批
查看只读展示业务字段、流程状态和附件
审批展示业务字段和审批操作,按节点权限开放部分字段

如果审批节点允许回填字段,表单组件需要在审批前保存可编辑字段,通常通过 beforeApproval 完成。

流程模型配置

新建流程模型时选择“业务表单”,并配置:

配置示例说明
表单提交路由/oa/seal/sealapply/info发起或编辑单据时进入的页面
表单查看路由/oa/seal/sealapply/info审批和查看详情时进入的页面
流程标识oa_seal_apply_bill必须与业务代码中的流程定义 key 对齐

流程标识不要凭目录名猜测,应以数据库流程定义、已有配置和业务模块常量为准。

字段权限

RuoYi Office 对业务表单扩展了节点字段权限。设计流程时,可以按审批节点设置字段:

  • 只读:审批人可查看但不能修改。
  • 可编辑:审批人可回填或修正。
  • 隐藏:审批人不可见。

实现时注意:

  • 表单 schema 的字段 key 要与后端字段或前端权限配置稳定对应。
  • 审批节点可编辑字段才触发保存。
  • 拒绝操作不应被可编辑字段校验阻塞。

移动端接入

移动端业务表单不要放入 pages-bpm,应放在对应业务分包,例如 pages-oapages-hrmpages-crm。业务表单被流程详情内嵌时,需要支持:

  • embedded
  • editable
  • getFormValues
  • validate
  • submit

有节点特殊字段时,可增加 beforeApproval(operationType?),并保证拒绝操作能跳过业务字段校验。

验收清单

  • 业务单据能保存草稿。
  • 提交后生成流程实例并保存 processInstanceId
  • 待办任务能打开业务详情页。
  • 审批通过、拒绝、取消后业务状态同步。
  • PC 和移动端查看同一单据时数据一致。
  • 多租户、权限、数据权限和附件权限符合预期。

相关文档

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版