表单字段权限控制
表单字段权限用于按流程节点控制字段的显示、只读、可编辑和必填。它既适用于在线流程表单,也适用于自定义业务表单,只是两类表单的字段来源不同。
适用范围
| 表单类型 | 字段来源 | 是否需要绑定数据模型 | 典型用途 |
|---|---|---|---|
| 流程表单 | 表单设计器中的字段配置 | 不需要 | 轻量审批、临时申请、在线表单 |
| 业务表单 | 代码生成器导入的业务表字段 | 需要 | OA、HRM、合同、资产等正式业务单据 |
流程表单已经知道自己的字段定义,因此在流程设计器中可直接配置字段权限。业务表单的字段来自业务数据库表,需要先把业务主表和明细表导入代码生成器,并在流程模型中关联数据模型。
菜单与配置入口
字段权限是“表单开发”的一级专题,但配置动作发生在流程模型的节点上:
流程中心
-> 流程模型
-> 编辑模型
-> 表单设计:选择流程表单或业务表单
-> 流程设计:点击节点
-> 表单字段权限区别在于字段来源:
- 流程表单:字段来自 表单设计器 中保存的在线表单配置。
- 业务表单:字段来自代码生成器导入的数据模型,需要在“表单设计”步骤关联主表和明细表。
权限类型
| 权限 | 效果 | 适用场景 |
|---|---|---|
| 只读 | 字段可见但不可修改 | 审批人查看申请内容 |
| 可编辑 | 字段可见且可修改 | 审批人补填金额、日期、处理意见等 |
| 必填 | 字段可编辑且必须填写 | 审批节点必须回填的数据 |
| 隐藏 | 字段不显示且不占位 | 敏感字段或当前节点无关字段 |
流程表单配置
流程表单不需要绑定业务模型。配置步骤如下:
- 进入 流程中心 → 流程模型,新建或编辑模型。
- 在“表单设计”步骤选择“流程表单”,并选择表单设计器中维护好的表单。
- 进入“流程设计”步骤,点击发起人节点、审批人节点或抄送节点。
- 在节点配置中打开“表单字段权限”,为字段设置只读、可编辑、必填或隐藏。
- 保存并发布流程。
流程表单适合在节点内直接控制字段。若需要更复杂的显隐、禁用或脚本联动,也可以配合 流程表单上下文变量。
业务表单配置
业务表单需要先准备数据模型,再进入流程节点配置字段权限。
1. 导入数据模型
进入 基础设施 → 代码生成,确认业务表单对应的主表已经导入。如果有明细表,也建议一并导入。

数据模型用于让流程设计器识别字段列表。字段名称和中文标签通常来自数据库表字段和注释。
2. 关联数据模型
进入 流程中心 → 流程模型,编辑目标模型。在“表单设计”步骤选择“业务表单”,填写提交路由和查看组件,并关联业务主表;如有明细表,再选择明细表。

说明:
- 一个流程模型通常关联一个业务主表。
- 明细表可多选,用于控制 VxeTable 等明细字段。
- 关联后,流程节点的字段权限配置才能展示业务字段。
3. 配置节点字段权限
进入“流程设计”步骤,点击需要控制的节点,切换到“表单字段权限”。

配置建议:
| 节点 | 建议 |
|---|---|
| 发起人节点 | 申请人填写字段设为可编辑,审批回填字段设为隐藏 |
| 普通审批节点 | 大部分字段只读,需要审批人补填的字段设为可编辑或必填 |
| 财务/主管节点 | 金额、预算、合同等关键字段按实际职责开放 |
| 抄送节点 | 通常只读,敏感字段可隐藏 |
4. 发布流程
字段权限修改后必须发布流程才会影响新发起的流程实例。

| 场景 | 生效规则 |
|---|---|
| 新创建流程实例 | 使用最新发布版本的权限配置 |
| 已运行流程实例 | 通常继续使用创建时的流程版本 |
| 仅保存未发布 | 不影响运行时 |
运行时效果
制单人
制单人进入新建或编辑草稿页面时,会按发起人节点的字段权限展示。隐藏字段不会出现,可编辑字段可以填写。

查看人
从列表详情、已办、抄送等只读入口进入时,可见字段通常只读,隐藏字段仍不显示。

审批人
审批人处理待办时,会按当前审批节点的权限展示字段。可编辑和必填字段会在审批前校验并保存;只读字段仅展示;隐藏字段不展示。
常见场景
审批节点回填字段
例如保管员审批时需要填写“实际用章时间”:
- 在保管员审批节点打开“表单字段权限”。
- 将“实际用章时间”设为可编辑或必填。
- 其他业务字段设为只读。
- 发布流程。
隐藏敏感字段
例如合同金额只允许部门负责人及以上节点查看:
- 在发起人、部门负责人节点设为只读或可编辑。
- 在普通处理节点设为隐藏。
- 发布流程并重新发起验证。
精简发起表单
例如审批回填字段不需要申请人看到:
- 在发起人节点设为隐藏。
- 在对应审批节点设为可编辑或必填。
- 审批人处理时再填写。
二开接入要点
流程表单由表单设计器运行时承载,通常不需要额外写页面代码。业务表单需要前端组件主动接入字段权限。
业务表单接入时重点检查:
| 要点 | 说明 |
|---|---|
fieldPermission | 接收流程节点返回的字段权限配置 |
isApproval | 判断当前是否审批态 |
viewType | 区分 todo、done、my、copy 等入口 |
processStatus | 判断草稿、审批中、通过、拒绝等状态 |
beforeApproval | 审批前保存可编辑字段,拒绝操作避免被非必要校验阻塞 |
已接入的业务表单通常使用 BasicForm,运行时权限由 useBusinessFieldPermission 统一处理。新增业务表单可参考 业务表单接入。
常见问题
配置了权限但不生效?
优先检查:
- 流程是否重新发布。
- 当前流程实例是否是发布后新发起的实例。
- 业务表单是否已关联数据模型。
- 业务表单前端是否已经接入
fieldPermission。
流程表单是否需要关联数据模型?
不需要。流程表单的字段来自表单设计器自身配置,可以直接在节点上配置字段权限。
业务表单是否必须导入明细表?
如果只控制主表字段,只导入主表即可。如果要控制明细表列的显示和编辑,需要把明细表也导入代码生成器并在流程模型中关联。
未配置权限的字段会怎样?
未配置时通常跟随页面全局状态:制单时可编辑,审批、已办、抄送时只读。建议关键字段明确配置,减少不同节点理解差异。
可编辑字段修改后如何保存?
审批人在待办中点击“通过”前,业务表单应校验并保存可编辑字段。流程表单由表单运行时处理;业务表单需要在 beforeApproval 或等价逻辑中保存。
