# Bucket A — L2 双语深度验证 + 字段属性 + i18n 一致性

**优先级**：P1
**估时**：2 天
**前置依赖**：PR #208 合入

## 背景

PR #208 实现了 5 项 P0/P1 功能（撤回语义/M11/重提/5 审批动作/IN_APP），但本会话只跑了"关键路径冒烟"级别的 L2，没在真实数据上深测每个新功能的边界条件、表单提交闭环、双语完整一致性。

## 范围

### 1. M11 字段类型填表 → 提交 → 落库（v4 仅验证渲染，未验证提交闭环）
- [ ] **#17 Checkbox** 选 2 个 enum 选项 → 提交 → DB 落 `array<string>` 含 2 个值
- [ ] **#19 Multi Select** 多选 → 提交 → 落库正确
- [ ] **#23 Date Range** 选起止日期 → 提交 → DB 落 `[start, end]` 数组
- [ ] **#24 Image Upload** 上传 1 张 + 1 个删除 → 提交 → DB 落 data-url
- [ ] **#25 File Upload** 多文件 → 提交 → DB 落数组
- [ ] **#27 Layout Container / #28 Group**（object 嵌套）→ 子字段值正确落入嵌套 object

### 2. 字段属性深度验证（矩阵 #43-#46）
- [ ] **#43 必填校验**：required 字段空值提交应报错（前端 + 后端 422）
- [ ] **#44 字段默认值**：新建实例时字段自动填充默认值
- [ ] **#45 min/max/precision**：number 类型边界校验
- [ ] **#46 字段状态**（Normal/Disabled/Read-only/Hidden）：四种状态在表单中的可交互性

### 3. 实例生命周期路径（#79 / #82 / #131 闭环）
- [ ] **#79 草稿保存 → 退出 → 继续编辑**：完整闭环（保存数据持久 + 重新打开数据回显）
- [ ] **#82 我的实例列表**：分页 / 状态筛选 / 时间筛选实操
- [ ] **#131 重提循环 e2e**：REJECTED 实例 → 点 Resubmit → 编辑 → 改字段 → 提交 → DB 状态 PENDING_APPROVAL（PR #208 仅验证 CTA 跳转，未验证完整闭环）

### 4. 审批操作深度（接 PR #208 的 5 动作）
- [ ] **#105 退回 return**：选上游节点退回 → 验证流程指针回退
- [ ] **#108 加签 add-sign**：BEFORE/AFTER/PARALLEL 三种模式各跑一次 → 验证任务图变化
- [ ] **#110 审批人撤回 approver-withdraw**：审批人撤回自己已通过/驳回的操作
- [ ] **#111/#112 claim/unclaim**：候选人池任务认领/释放
- [ ] **#120 写审批意见 / #121 上传审批附件 / #122 抄送任务**：附件 + 评论闭环

### 5. i18n 全模块 zh ↔ en 一致性扫描
- [ ] 切 zh → 扫所有 approval-center / forms 页面，控制台无 missing key warning
- [ ] 切 en → 同上
- [ ] 关键页面双语截图对比（4-6 个核心页面）
- [ ] 日期/数字格式按 locale 渲染

## 交付物

- L2 测试报告（追加到 `docs/modules/approval-form-coverage-matrix.md` v5）
- 发现的小 bug 修复（如有）
- 每个深测过的项更新矩阵单元格 ⚠️ → ✅

## 完成条件

- 上述清单全部跑过且记录证据
- 矩阵 P1 测试覆盖率从 ~78% → ≥ 85%
- 删除本文件
