iter(g325): avatar 破图自动回退文字头像,不再露浏览器碎图标

This commit is contained in:
HIsheR
2026-10-27 01:18:12 +08:00
parent 4359f508e5
commit 513304f137
4 changed files with 22 additions and 9 deletions
+9
View File
@@ -3311,6 +3311,15 @@
"motivation": "setRows 已支持整体换源并按 rowKey 剔除失效选择,但列定义仍是构造时写死:动态列表(按角色 / 视图切换列集)只能重建整个实例,排序与筛选状态全丢;setColumns 与 setRows 对称——换列后指向不存在列的 sorting / filters 失去语义,应剔除而不是静默残留。",
"acceptance": "① core 新增 setColumns(next):引用未变不动;换列后剔除 sorting / filters 里 key 不在新列集的条目,其余状态(分页 / 选择)保持;② getColumns 返回最新列集,getCellValue 按新列 accessor 取值;③ smoke 冒烟补断言(失效剔除 + 未变短路 + accessor 跟随);④ npm run check 通过。",
"notes": ""
},
{
"id": "g325",
"domain": "visual",
"status": "open",
"title": "avatar 破图回退文字头像:src 加载失败不再露碎图标",
"motivation": "avatar 有 src 时直接渲染 img,加载失败(404 / 网络断开 / 权限过期)会露出浏览器默认碎图标,圆形容器里一块灰裂图比没有头像更难看;image 组件已有 error 兜底,avatar 没跟,同类组件口径不一致。",
"acceptance": "① avatar img 注册 error 监听:加载失败就地替换为与无 src 时同款的文字头像(名称首字 + role=img + aria-label),尺寸与语义底色不变;② 正常加载路径零变化(不加多余请求);③ manifest 文档 avatar props/步骤同步补一条兜底说明,verify 双向校验过;④ npm run check 通过。",
"notes": ""
}
]
}