chore(backlog): 记录 g280 完成

This commit is contained in:
HIsheR
2026-10-26 23:06:22 +08:00
parent 865477c37f
commit 65c8faaa66
2 changed files with 10 additions and 0 deletions
+9
View File
@@ -2906,6 +2906,15 @@
"status": "done",
"domain": "tune",
"notes": "关键是把「显示文本」与「比对键」拆成两个字段(Row.text / Row.key),而不是在比较时临时归一:临时归一会出现「前缀比较用原文、中间段用归一」的两套口径,同一份数据两种结论。归一只影响比对,不影响展示——用户看到的仍是真实缩进,这决定了它是「过滤器」而不是「美化器」。提示文案必须出现在统计条里:静默忽略差异比不忽略更危险。"
},
{
"id": "g280",
"title": "formItem 支持条件显示(visible 信号)",
"motivation": "「选了『其他』才出现输入框」「选了企业才要税号」这类联动字段在任何真实表单里都有,此前调用方只能自己重建 items 数组:一旦重建,字段的校验结果、错误文案、焦点全部丢失,用户刚看到的红框会在切换选项时凭空消失。而如果只是把节点藏起来(不管校验),被藏起来的必填项又会永远拦住提交。两条路都错,缺的是「隐藏即退出校验」这一个语义。",
"acceptance": "FormItemProps 增加 visible(Signal<boolean>):为假时 el.hidden 隐藏并立即清掉错误态;validate 与 validateAsync 首行统一「隐藏即返回 null」,同步 / 异步两条路同一口径;manifest 的 form 参数表补(formItem)visible 与一条步骤(verify 双向校验 FormItemProps 字段);npm run check 全绿",
"status": "done",
"domain": "tune",
"notes": "隐藏时主动 paint(null) 而不是等下一次校验:否则用户切换选项的瞬间会留下一个「看不见的红框」,而它仍存在于 DOM 的错误区里。校验的早退放在函数首行而不是规则循环里,是为了让「隐藏 = 不参与」成为唯一判定点——两处各写一份条件迟早会漂。form 的参数表用(formItem)前缀登记子接口字段,是这套清单既有的约定,新增字段必须跟着加。"
}
]
}