Skip to content

第 3 章 · 表单:发起时填什么,审批时看什么 ​

流程要能跑,必须先有表单:发起人填的那张 和 每个审批节点看的那张。 本章讲怎么建、怎么绑、怎么控制字段能不能改。

1. 两种表单,先用第一种 ​

类型怎么来适用
元数据表单在线开发 → 数据模型 + 模型字段,无需写代码绝大多数业务表单,推荐
自定义 Vue 组件表单前端工程里放一个 wf-form / tf-form 组件,由开发提供复杂交互、需要前端逻辑

净装镜像里可选的表单有限:流程级能看到 请假表单、元数据表单;节点级另有 元数据表单、测试任务节点自定义表单。选自定义 Vue 组件时,设计器会提示"当前表单为自定义 Vue 组件,如需修改请直接编辑对应的 Vue 文件"。

2. 元数据表单:数据模型 + 模型字段 ​

在线开发 → 数据模型。

数据模型列表:biz_leave、biz_reimburse、biz_seal 等 11 条

一个数据模型 = 一张表 = 一张表单。行操作里 模型字段 是配表单字段的地方:

模型字段管理:leave_type 请假类型 ApiDict、days 请假天数 InputNumber、reason 请假事由 Textarea

每个字段关心四列:

列说明
字段名称落库列名,同时是流程变量名(加 f_ 前缀,如 days → f_days),条件表达式引用的就是它
字段注释表单上显示的标签
组件名称控件类型:Input、InputNumber、Textarea、ApiDict(字典下拉)、ApiSelect(用户下拉)、ApiTreeSelect(部门树)、DatePicker、TableLink 等
允许为空关掉后发起时该字段必填,前端和引擎都会拦

发起页看到的就是这张表:请假类型(ApiDict)、请假天数(InputNumber)、请假事由(Textarea),三个都标了必填星号。

3. 把表单绑到流程上 ​

3.1 流程级:实例启动表单 ​

设计器里在画布空白处点右键 → 流程属性 → 实例启动表单 选 元数据表单。

流程属性:实例启动表单已选元数据表单,下方出现设计表单按钮

选完出现 设计表单 按钮。点它会先让你选怎么开始:

设计表单:直接编辑(空白表单)/ 从数据模型导入 / 跳转到表单设计页

入口行为
直接编辑(空白表单)从零拖一张内嵌表单,表单结构随流程定义一起存
从数据模型导入把某个数据模型的字段拉进来当表单,最省事
跳转到表单设计页去 在线开发 的独立表单设计页

没选实例启动表单时,抽屉底部会给出提示"未选择表单:请选择实例启动表单。选择【元数据表单】后可直接编辑内嵌表单。"

3.2 节点级:任务表单 ​

选中节点 → 表单配置 → 任务表单,从下拉里选。不选则该节点办理时只有审批意见区,没有业务表单。

表单配置页签:任务表单下拉 + 操作按钮勾选组

下拉里的候选来自前端注册的节点表单组件,唯一编码 就是组件名。任务表单的表名约定是 _,按这个规则给不同节点配不同表单最清晰。

4. 字段权限:谁能改哪几栏 ​

先在 流程属性 里把 启用字段权限 打开,然后每个节点都能对该表单的字段单独设权限:

取值界面效果
1只读看得到、改不了(审批页表单整片变灰就是这个)
2可编辑正常填写
3不可见该节点上不出现这个字段

典型配法:发起节点把业务字段设为可编辑,审批节点全设只读,只有"财务复核"节点把 amount 单独放开可编辑。

演示数据里 请假申请 就是这么配的:发起节点三个字段可编辑,部门经理与分管领导节点三个字段只读。

5. 表单与条件分支的关系 ​

条件分支的表达式引用的是流程变量,即 f_ + 字段名称。请假申请的两条分支:

f_days <= 3     → 直接结束
f_days > 3      → 进分管领导审批

所以字段名称改过一次,分支表达式也要跟着改,否则条件恒不成立、流程会走默认分支。

6. 已知缺陷 ​

在线开发 → 数据模型 → 表单设计 这个独立页面,在当前前端镜像里会白屏,控制台报 NotFoundError: Failed to execute 'insertBefore' on 'Node'(Vue 补丁竞态,与发起页提交后偶发崩溃同源)。

绕开方式:字段用 模型字段 维护(§2),表单结构用 设计表单 → 从数据模型导入 生成(§3.1),不要走那个独立页。

7. 卡住了看这里 ​

现象原因处理
发起抽屉里是空的实例启动表单没选,或选了元数据表单但没有对应数据模型按 §3.1 选表单;确认关联业务表在数据模型里存在
办理弹窗只有审批意见节点没绑任务表单§3.2 选上再部署
审批页字段能改,本该只读未启用字段权限,或该节点该字段设成了可编辑§4
表单加了字段但流程里看不到只改了数据模型,没重新导入并部署设计表单 → 从数据模型导入 → 保存 → 部署
条件分支不按预期走表达式里的变量名与字段名不一致§5,字段名区分大小写
独立表单设计页白屏已知前端缺陷§6

jeeflow · 轻量级多语言工作流引擎