流程表单和业务表单差异
RuoYi Office 的审批表单分为两类:流程表单和业务表单。两者都能接入流程模型、审批节点、字段权限和待办任务,但面向的开发方式和业务复杂度不同。
简单说:流程表单适合快速配置,业务表单适合正式业务闭环。
一句话选择
| 场景 | 推荐方式 | 原因 |
|---|---|---|
| 临时审批、轻量申请、字段少 | 流程表单 | 在线设计,配置快,不需要写代码 |
| OA、HRM、CRM、合同、项目等正式单据 | 业务表单 | 独立业务表,适合列表、统计、附件、明细和移动端 |
| 先验证流程,再决定是否产品化 | 先流程表单,后业务表单 | 低成本试运行,确认需求后再沉淀源码 |
| 需要主子表、复杂校验、跨模块联动 | 业务表单 | 源码可控,能完整复用后端和前端能力 |
核心差异
| 维度 | 流程表单 | 业务表单 |
|---|---|---|
| 表单来源 | 表单设计器拖拽配置 | 前后端源码开发 |
| 数据存储 | Flowable 流程变量 | 独立业务表和明细表 |
| 上线速度 | 快,配置后发布 | 需要开发、联调、测试 |
| 灵活度 | 受设计器组件和脚本能力影响 | 高,可自定义 UI、校验、交互和接口 |
| 数据查询 | 适合查看流程变量,复杂统计成本高 | 标准 SQL,适合台账和报表 |
| 字段权限 | 流程设计器原生配置 | RuoYi Office 扩展支持节点字段权限 |
| 附件和明细 | 适合简单附件 | 可接入统一附件、明细表、业务生命周期 |
| 移动端 | 由通用流程页承载 | 可开发独立移动端业务页面并嵌入审批详情 |
| AI 开发 | 适合让 AI 辅助设计字段和流程 | 适合让 AI 参考既有单据快速生成源码 |
业务表单虽然需要源码开发,但灵活度最高。RuoYi Office 已经沉淀了列表页、详情页、审批状态、字段权限、附件、明细表、移动端嵌入等固定模式,配合 AI 工具时,可以让 AI 参考现有 OA、HRM、CRM 单据快速生成新功能。
流程表单:配置优先
流程表单通常从「基础能力 → 表单开发 → 流程表单」维护。管理员通过设计器拖拽字段,再在流程模型中选择该表单。

适合日常开发中的这些场景:
- 部门内部临时申请,例如临时外出、简单报销、资料借阅。
- 需求还在试运行阶段,需要先验证审批节点和字段。
- 字段以文本、日期、金额、附件为主,不需要复杂业务台账。
- 数据主要用于流程查看,不需要长期做复杂统计。
流程模型中选择“流程表单”后,只需要绑定已设计的表单即可。

业务表单:源码优先
业务表单通常从业务模块自己的列表页发起,例如 OA 用印、HRM 入职、合同审批、项目立项等。业务数据先落到独立业务表,再启动流程实例。

适合日常开发中的这些场景:
- 有独立业务台账,需要分页、筛选、导出、统计。
- 有主子表、明细行、金额汇总、附件归档或复杂校验。
- 审批过程要回填业务字段,例如财务填写付款信息、人事填写入职编号。
- PC 管理端和移动端都需要独立体验。
- 业务状态必须和审批状态同步,例如草稿、审批中、已通过、已拒绝、已取消。
业务表单的典型源码结构如下:
text
views/{module}/{feature}/
├── list/
│ ├── index.vue
│ └── data.ts
└── info/
├── index.vue
└── data.ts开发建议
先做流程表单的情况
如果需求还不稳定,建议先用流程表单跑通:
- 在表单设计器中配置字段。
- 在流程模型中选择“流程表单”。
- 配置审批节点、审批人和字段权限。
- 发布流程,让用户试运行。
- 等需求稳定后,再评估是否升级为业务表单。
直接做业务表单的情况
如果一开始就明确是正式业务模块,建议直接做业务表单:
- 设计业务主表、明细表和状态字段。
- 生成后端 DO、Mapper、Service、Controller、VO。
- 生成 PC 端列表页和表单页。
- 按流程模型配置业务表单提交路由和查看路由。
- 接入流程状态回写、字段权限、附件和移动端审批。
AI 生成业务表单时,建议明确要求它参考一个同类单据,例如用印申请、用车申请、人事调动或合同审批,并引用 ruoyi-office-prompt/流程表单-代码生成规范.md。这样生成的代码更容易符合 RuoYi Office 的目录、命名、字段权限和审批状态约定。
