# 表单状态控制
# 概述
本功能用于实现表单编辑时的字段级权限控制,可以控制用户在编辑表单时只能修改部分字段,而不能修改其他字段。例如员工档案中,不同部门只能编辑自己负责的栏目。
# 一、示例演示:员工档案表单状态控制
# 演示路径
- 访问地址:应用中心
- 模块名称:表单状态控制
# 业务处理效果
模块名称:员工档案
数据列表(共3条数据):
- 史蒂夫的档案
- 张三的档案
- 李四的档案
编辑效果(编辑史蒂夫的档案):
- 基本信息栏目:联系电话、家庭住址、出生日期可编辑(亮色)
- HR信息栏目:所有字段不可编辑(灰色)
- 财务信息栏目:所有字段不可编辑(灰色)
# 二、实现方法
# 第一步:创建表单状态
操作路径:集团流程库 → 表单设计 → 员工档案
配置步骤:
- 打开表单设计界面
- 点击“高级” → 选择“表单状态”页签
- 点击“新建表单状态”,创建状态(如SelfEdit)
- 编辑表单状态,进入“数据控制”页签
- 为每个字段设置读、写权限:
- 写权限:勾选允许修改的字段(联系电话、家庭住址、出生日期)
- 读权限:保持默认勾选
配置说明:
- 表单状态名称:SelfEdit
- 可编辑字段:联系电话、家庭住址、出生日期
- 只读字段:HR信息、财务信息等栏目下的所有字段
# 第二步:为编辑按钮指定表单状态
文件路径:wwwroot\Apps\samples\FormStatus.js
// 第40-42行:为编辑按钮指定表单状态
me.btnEdit = me.createEditBtn({
formState: 'SelfEdit' // 指定编辑时使用的表单状态
});
代码说明:
formState: 'SelfEdit':为编辑按钮指定表单状态- 表单状态名称必须与第一步创建的状态名称一致
# 三、核心原理
# 表单状态配置
| 配置项 | 说明 |
|---|---|
| 位置 | 表单设计 → 高级 → 表单状态 |
| 作用 | 定义不同场景下字段的读写权限 |
| 控制粒度 | 可精确到每个字段的读、写权限 |
# 表单状态生效
// 编辑按钮指定表单状态
me.btnEdit = me.createEditBtn({
formState: 'SelfEdit' // 表单状态名称
});
# 四、配置步骤
# 操作步骤
- 创建表单状态:在表单设计中新建表单状态,配置字段读写权限
- 指定表单状态:在应用代码中为编辑按钮添加
formState参数
# 关键要点
- 两步完成:创建表单状态 + 指定表单状态
- 字段级控制:可精确控制每个字段的读写权限
- 灵活扩展:可创建多个表单状态用于不同场景
# 五、扩展应用
# 多个表单状态示例
场景一:本人修改基本信息
状态名称: SelfEdit
可编辑字段: 联系电话、家庭住址、出生日期
只读字段: HR信息、财务信息
场景二:HR修改HR信息
状态名称: HREdit
可编辑字段: 入职日期、职位、部门、薪资
只读字段: 基本信息、财务信息
场景三:财务修改财务信息
状态名称: FinanceEdit
可编辑字段: 银行卡号、个税信息
只读字段: 基本信息、HR信息
# 应用代码
// 根据不同角色使用不同表单状态
me.btnEdit = me.createEditBtn({
formState: currentUserRole == 'HR' ? 'HREdit' : 'SelfEdit'
});
# 常见应用场景
| 场景 | 表单状态 | 可编辑字段 |
|---|---|---|
| 本人修改 | SelfEdit | 联系方式、地址等基本信息 |
| HR修改 | HREdit | 职位、部门、薪资等HR信息 |
| 财务修改 | FinanceEdit | 银行卡、个税等财务信息 |
| 审批修改 | ApproveEdit | 审批意见、状态等字段 |
| 管理员修改 | AdminEdit | 所有字段可编辑 |
# 六、对比说明
| 控制类型 | 控制粒度 | 适用场景 | 实现方式 |
|---|---|---|---|
| 应用权限 | 整个模块 | 控制谁能访问模块、谁能增删改 | 资源授权 |
| 记录级权限 | 每条记录 | 控制谁能编辑、删除特定记录 | 重载GetRecordPermisionsAsync |
| 表单状态 | 每个字段 | 控制编辑时哪些字段可修改 | 创建表单状态 + 指定状态 |
# 七、注意事项
- 状态名称一致:前台指定的
formState名称必须与表单设计中创建的状态名称完全一致 - 字段权限配置:在表单状态的“数据控制”页签中,注意区分“读”和“写”权限
- 多个状态:一个表单可以创建多个表单状态,用于不同场景
- 默认状态:如果不指定
formState,则使用表单的默认编辑状态(所有字段可编辑)
# 八、总结
表单状态控制的实现非常便捷:
- ✅ 两步完成:创建表单状态 + 指定表单状态
- ✅ 字段级控制:可精确控制每个字段的读写权限
- ✅ 可视化配置:表单状态在表单设计中图形化配置
- ✅ 灵活扩展:可创建多个表单状态用于不同场景
通过这种方式,可以轻松实现“不同部门只能编辑自己负责的栏目”、“本人只能修改基本信息”等常见需求,实现了字段级的权限控制。