diff --git a/.ua/backlog.json b/.ua/backlog.json index 152b3a3..589a38c 100644 --- a/.ua/backlog.json +++ b/.ua/backlog.json @@ -2879,6 +2879,15 @@ "status": "done", "domain": "new", "notes": "svg 元素必须 createElementNS,h() 只能造 HTML——写了个 svgEl 小工具统一 setAttribute,避免每处重复三行。全等值除零保护写成 max - min || span 兜底 1:所有点落中线才是正确观感,直接除会得到 Infinity 把折线扔出画布。踩坑:statistic.value 是 Signal 而非数字,demo 里直接传 1284 会类型报错——演示代码也算源码,得按真实 API 写。踩坑:写 backlog 备注时把表达式放进反引号、整串又用 bash 双引号包着,反引号被当作命令替换执行掉了(备注里凭空少一句),改用脚本落盘。" + }, + { + "id": "g277", + "title": "新增日历热力图组件 heatmap", + "motivation": "活跃度看板(提交、工单、登录)最直观的表达是「一年一张格子图」:一眼看出哪几天密集、哪几周空窗。此前库里没有任何日历型图形——calendar 是可选日期的交互组件,timeline 是一维事件流,都表达不了「二维时间密度」。于是这类页面只能引第三方图表库,为一张格子图背上整套坐标轴体系。", + "acceptance": "新增 heatmap(props):values 只给有数据的日期(缺失按 0 渲染),同日多条自动求和;末列对齐到本周(周一起算的完整七行),按最大值归一成四档浓度 + 零档;格子尺寸与网格行高同源(cellSize),悬停 title 给日期与数量、formatValue 可自定义;图例「少 → 多」五格与色阶同源;样式只消费 --ua-* 令牌(色阶走 color-mix + --ua-alpha-*),禁止新增硬编码阴影 / 时长 / 字号;十处落点全同步,npm run check 全绿", + "status": "done", + "domain": "new", + "notes": "格子的浓度是「相对」而不是绝对:按当批数据的最大值归一,所以它回答「哪天更密」,不回答「数值多高」——这点必须写进文档,否则会有人拿它当绝对值比较两张图。末列对齐用「今天 + 到本周日的天数」再回退 12 周,保证最后一列永远完整,不会因为今天是周三就少三格。踩坑复现:写 backlog 备注时把表达式放进反引号、整串又被 bash 双引号包住,反引号被当成命令替换执行、备注少一句(g276 已踩一次),这轮改成先把条目写成 JSON 文件再读,彻底绕开 shell 解释。" } ] } \ No newline at end of file diff --git a/.ua/iterations.log b/.ua/iterations.log index fb8ef83..591ad63 100644 --- a/.ua/iterations.log +++ b/.ua/iterations.log @@ -321,3 +321,4 @@ {"ts":"2026-10-26T22:59:58+08:00","id":"g274","result":"done","commit":"b93e8b0","summary":"补三条组合配方:后台页骨架 / 表格刷新遮罩 / 变更审阅面板"} {"ts":"2026-10-26T23:00:45+08:00","id":"g275","result":"done","commit":"b454d5f","summary":"新增相对时间组件 relativeTime(82→83):自动刷新 + 超阈值转绝对日期 + 脏数据兜底"} {"ts":"2026-10-26T23:02:16+08:00","id":"g276","result":"done","commit":"eac7d4b","summary":"新增迷你趋势线组件 sparkline(83→84):归一折线 + 面积 + 末点,颜色走 currentColor"} +{"ts":"2026-10-26T23:03:29+08:00","id":"g277","result":"done","commit":"b5576c7","summary":"新增日历热力图组件 heatmap(84→85):一周一列 + 四档浓度 + 末列对齐本周"}