审批接入(流程表单)
流程表单是 RuoYi Office 内置的在线表单设计器,无需编写代码即可拖拽搭建审批表单,适合简单的审批场景。
1. 操作步骤
1.0 第零步:了解流程表单
流程表单基于 form-create 组件实现,支持在线拖拽设计表单字段、校验规则等。表单数据存储在 Flowable 的流程变量(ACT_RU_VARIABLE)中。
适用场景:
- 简单审批(如请假、报销等标准化流程)
- 无需与业务数据关联的独立表单
- 快速原型验证
1.1 第一步:定义流程
① 新建流程模型
进入「流程中心 → 流程模型」,点击「新建模型」按钮:

填写基本信息:
- 流程标识:唯一标识,如
leave、expense - 流程名称:显示名称
- 流程分类:选择流程所属分类
- 流程图标:选择图标
- 流程描述:可选描述
② 设计表单
在「表单设计」步骤,选择「流程表单」类型。 然后访问流程表单菜单,进入流程表单设计


支持的字段类型:
- 文本输入、数字输入、多行文本
- 下拉选择、单选、复选
- 日期、时间、日期范围
- 上传文件、上传图片
- 富文本编辑器
- 级联选择、树形选择
最后在「表单设计」步骤中选择流程表单 
③ 设计流程
选择流程设计器(BPMN 或 钉钉/飞书 设计器),设计审批流程节点。
每个审批节点可配置:
- 审批人规则:指定角色、部门、岗位等
- 表单字段权限:每个字段可设为只读、可编辑、隐藏
- 多人审批方式:会签、或签、依次审批
- 操作按钮:通过、拒绝、驳回、转办、委派等
④ 发布流程
流程设计完成后,点击「发布」按钮,流程即可在「发起流程」页面使用。 
1.2 第二步:发起流程
进入「流程中心 → 发起流程」,找到已发布的流程,填写表单后提交。

1.3 第三步:审批流程
审批人在「待办任务」中查看并处理审批请求。

支持的审批操作:
- 通过:同意当前审批
- 不通过:拒绝流程
- 驳回:退回到指定节点
- 转办:转交给其他人审批
- 委派:委派给其他人审批后再返回
- 加签:临时增加审批人
2. 流程表单管理
2.1 表结构
流程表单存储在 bpm_form 表中:
| 字段 | 类型 | 说明 |
|---|---|---|
| id | bigint | 表单编号 |
| name | varchar(64) | 表单名称 |
| status | tinyint | 状态(开启/关闭) |
| conf | text | 表单设计器配置(JSON) |
| fields | text | 表单字段列表(JSON) |
2.2 前端组件
前端技术栈:Vue3 + Vben Admin + Ant Design Vue。相关页面位于 ruoyi-office-vben/apps/web-antd/src/views/bpm。
| 组件 | 路径 | 说明 |
|---|---|---|
| 表单设计器 | ruoyi-office-vben/apps/web-antd/src/views/bpm/form/designer/ | 在线拖拽设计表单 |
| 表单列表 | ruoyi-office-vben/apps/web-antd/src/views/bpm/form/index.vue | 表单管理列表页 |
| 表单详情 | ruoyi-office-vben/apps/web-antd/src/views/bpm/form/modules/detail.vue | 表单预览与填写 |

3. 常见问题
流程表单 vs 业务表单如何选择?
| 维度 | 流程表单 | 业务表单 |
|---|---|---|
| 开发成本 | 低(无需写代码) | 高(需要开发前后端) |
| 数据存储 | Flowable 变量表 | 独立业务表 |
| 数据查询 | 需要特殊 SQL | 标准 SQL 查询 |
| 灵活性 | 一般 | 高(可自定义 UI) |
| 适用场景 | 简单审批 | 复杂业务场景 |
如果你的审批场景需要复杂的业务逻辑或数据关联,建议使用 业务表单。