--- id: approve.form.concept title: 审批表单字段 type: concept feature: approve scope: admin locale: zh aliases: - 审批表单 - 表单字段 - 表单设计 - 自定义字段 - 申请单字段 - 表单组件有哪些 - 申请类型字段 related_tools: [] related_pages: [application] prerequisites: - 当前用户是系统管理员 - 在流程模板编辑器中 negative: - 当前版本不支持公式字段(如「时长 = 结束时间 - 开始时间」自动算) - 不支持联动字段(A 字段值变化时显示/隐藏 B 字段) - 不支持把表单字段值用作下一节点审批人路由依据(无条件分支) - 表单字段一旦发布后改动,已提交的旧实例展示按当时快照不回填 last_verified: v1.7.90 --- # 审批表单字段 ## 定义 审批表单是发起人填写的申请单结构,由若干**字段组件**拼成。管理员在流程模板编辑器(iframe 内)拖拽这些组件即可设计表单。表单值随流程实例一起存到插件库的 `var` 字段(JSON),并随状态变化贯穿始终。 ## 内置字段组件 - **单行文本**:限长字符串,如「申请人姓名」「合同编号」 - **多行文本**:长描述,如「请假事由」「报销说明」 - **数字**:整数 / 小数,如「报销金额」 - **日期 / 日期时间**:年-月-日 或精确到分钟,常用于开始/结束时间 - **单选 / 多选 / 下拉**:固定选项集,如「假期类型」可枚举「年假/事假/病假/调休/产假/陪产假/婚假/丧假/哺乳假/产检假/其他」 - **附件 / 图片**:上传文件,前端控件复用主程序 `ImgUpload`;图片限制宽高与张数(默认上限 3 张、2048×2048) - **明细 / 子表**:一对多结构,如报销单的多行费用明细 - **金额 / 时长**:业务语义字段(基于数字字段封装) ## 必填、提示、默认值 - 每个字段可配置 `required`(必填)、占位提示、默认值 - 必填项校验在发起页前端拦截;提交到主程序 `process__start` 再做二次校验 ## 与流程节点的关系 - 表单字段是"装数据的",节点是"管流转的",两者解耦 - 节点拿不到 form 字段做路由决策(不支持条件分支) ## 数据存储 - 表单值在主程序前端组成 `var` JSON 后随 `proc_name + department_id` 一起调 `approve/process/start` - 插件把 `var` 整体存进 proc inst 行;后续审批人查看时反序列化展示 ## 不支持 - 不支持字段联动 / 公式 / 条件分支 - 不支持表单级权限(不能按角色显示不同字段) - 不支持跨流程模板字段复用