You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
2.5 KiB

11 hours ago
# 14 — a7-parity demo 字典页 v3 对齐 + 冒烟改造
**Type:** task (HITL)
**Status:** resolved (20260909)
**Blocked by:** 12
## What to do
`.scratch/a7-parity` 的 12-tab demo 移植的字典四页当前停在 v2 口径(其票 13 v3 节,49 步冒烟),需按票 11/12 的 v3 契约对齐(与主仓 `dict-alignment/demo/index.html` 同款移植):
1. 字典项页:去「键值」列与弹窗键值输入、去「设为分组默认项」勾选、子项行编码列确认在位、弹窗状态下拉确认在位。
2. 分组页:加「默认值」列(`/group/page` 出参 `defaultItemName`,两级组「父名 / 子名」)+ 行上「设置默认值」弹窗(只列最低级项,服务端 63012 最低级守卫)。
3. 冒烟脚本:value/isDefault 相关断言改造;补 v3 断言(分组设默认流、载荷零 value/isDefault、63007 名称唯一)。活服重跑 49 步 ALL_PASS。
4. 收尾对照:a7-parity 图(`.scratch/a7-parity/map.md`)票 13 记录追加 v3 节。
参照实现:主仓票 12 Answer(本目录 issues/12-prototype-v3-implement.md)。
## Answer
20260909 完成(与票 13 同日):
1. **demo/index.html 字典页 v3 移植**(与主仓票 12 同款补丁集):分组页「默认值」列 + 行上「设置默认值」弹窗(只列最低级项,两级组仅二级项);字典项页去键值列/键值输入/默认勾选;子项行编码列(新行留空自动生成、带 id 只读);弹窗状态下拉确认在位;同款修复**子项编辑弹窗所属分组 option 无 value 属性**的潜伏缺陷。残留键值字样仅剩 v3 说明文案。
2. **demo_smoke.py 改造**:pre_clean 补字典残留清理(e2d- 前缀项/分组,被引用 force-delete 兜底——对齐主仓口径);新增 v3 回归 9 步(弹窗结构/无键值新建/名称唯一 63007/复合加子项/分组设默认最低级+父名子名回显/63013 禁停/演示数据清理/载荷零 value-isDefault);网络层断言扩展。
3. **活服重跑 ALL_PASS:58/58**、console/page error 双零、3 次 saveOrUpdate 载荷零 value/isDefault、144 请求零旧契约形态。
4. 排障记录(两处都是脚本侧,非后端缺陷):① 展开行渲染竞态 → 子项行交互前 ensure 展开态;② **后端 PageResult.total 序列化为字符串**(`"0"`),`total == 0` 恒 False → 改按 `str(total) == "0"` 比较(该形态对全仓 API 成立,属既有约定)。
5. a7-parity 自身图(其 map.md 票 13 记录)已追记 v3 节。