## 任务目标
请根据已知业务流程和字段契约,开发或审查本次 Vue 业务表单。
以核查和评审为主,给出有证据的判断及可复核的修改建议;本次用户另有明确实现要求时,按其授权范围执行。
## 输入信息(选填)
两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。
表单任务:
表单或字段资料:
## 信息不完整时
先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。
### 优先确认
- 提取字段类型、必填条件、长度范围、默认值、清空语义、只读条件与提交名称。
- 检查 Form 数据、FormItem 名称、validate 返回值、远程唯一性及过期响应处理。
- 追踪新增编辑详情、初始快照、隐藏字段、重置和失败恢复,核对实际请求中的日期金额枚举。
### 可采用的默认处理
- 优先复用现有字段规则和接口,不凭必填星号推断业务约束,明确区分 0、false、空字符串与未提供。
- 初次进入不集中报错,按现有交互使用输入、失焦及提交校验;明确通过后才保存。
- 提交失败保留合理输入,前端防重不代替后端校验和授权;未要求开发时默认不改业务表单。
### 必须有依据的事项
- 隐藏或清空字段是否参与提交、金额日期转换或新增默认值缺少真实业务定义,不能随意补值或删除。
- 字段修改权限及远程唯一性失败的业务处理无法确定时,不能自行放行保存。
只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。
### 资料仍不足时的交付
- 规则不全时先完成已知字段表、布局、状态处理和测试设计,将影响保存的未决项集中列出。
- 没有工程但接口明确时提供可检查的核心组件和请求示例,真实版本与联调结果注明待验证。
## 执行要求
按当前版本的 TDesign Form 能力实现表单,字段权限、数据提交和重复操作处理须与本项目业务规则一致,不能只依赖组件默认行为。
1. 先把每个字段的业务含义、类型、必填条件、默认值、长度或范围、只读条件及提交名称整理成表。区分空字符串、零、false 和未提供,尤其说明编辑时哪些字段允许清空,不能凭视觉上的必填星号推断规则。
2. 对照实际版本配置 Form 数据、FormItem 字段名称和校验规则。需要跨字段判断时明确关联关系;条件隐藏字段要明确是否保留旧值、是否参与校验和提交,不能让看不见的字段持续阻止保存。
3. 设计校验触发时机,区分输入变化、失焦和提交。正确处理 validate 或提交事件的校验结果,只在明确通过时调用保存接口;远程唯一性校验需要识别过期响应,不能把网络超时当成字段已经可用。
4. 区分新增、编辑、详情状态,确定“重置”是清空还是恢复初始数据,并使用对应能力。异步加载编辑数据后核对初始值快照,再次打开表单时不得出现上一条记录的值或错误提示。
5. 完成保存中的按钮状态、重复触发处理、成功反馈和接口失败反馈。字段错误落在对应输入项,整体失败保留已填写内容并给出恢复方法;前端状态限制需要与服务端业务校验一致,不能代替服务端授权。
6. 逐项验收正常提交、缺失必填、边界值、非法格式、动态条件切换、远程校验失败、重复点击、回车提交及重置。验证日期、金额和枚举转换后的实际请求数据,禁止只看页面显示就断言数据正确。
## 交付与验收
输出:字段规则表、状态与交互表、核心组件代码、请求示例、验收记录。代码缺失时说明推断范围;规则不明确时列出影响保存的待确认项,先完成不依赖这些项的结构,不自行编造业务枚举和接口字段。
### 本条完成检查
- 交付字段规则、隐藏重置策略、表单状态、核心代码或审查缺陷及请求映射。
- 验证缺失、边界、非法格式、条件切换、远程校验失败、重复点击、回车和记录重开。
- 以实际请求核对日期、金额、枚举及空值,不能只看显示或组件校验通过判断业务正确。
按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。
## 参考资料与适用边界
官方来源(2026-09-08 核验):
- [腾讯 TDesign《TDesign Vue Next Form 类型与接口说明》](https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/form/type.ts)