From cdef6050d0cca32882c48b7891324adcc396c066 Mon Sep 17 00:00:00 2001 From: HIsheR Date: Mon, 26 Oct 2026 12:08:27 +0800 Subject: [PATCH] =?UTF-8?q?chore(backlog):=20=E8=AE=B0=E5=BD=95=20g46=20?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .ua/backlog.json | 38 ++++++++++++++++++++++++++++++++------ .ua/iterations.log | 1 + 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/.ua/backlog.json b/.ua/backlog.json index 3e46404..2d72fd9 100644 --- a/.ua/backlog.json +++ b/.ua/backlog.json @@ -700,12 +700,38 @@ "acceptance": "pagination({ pageSizes, onPageSizeChange }) 渲染条数切换器、切换后回第 1 页并按新条数重算总页数;跳页区只创建一次;npm run check 全绿", "status": "done", "notes": "自补:组件补充;新增 sec-pagination 演示区块" + }, + { + "id": "g43", + "title": "select/menu/popover/image 的 Esc 接入统一弹层栈", + "motivation": "四个弹层组件各自监听 document 的 Esc:多层叠加(如 popover 内再开 image 预览)时一次 Esc 全部关闭,与 modal/drawer 的 pushOverlay 栈行为不一致", + "acceptance": "四个组件展开期入 Esc 栈、收起即释放;多层叠加时 Esc 后进先出逐层关闭;焦点归还触发器;npm run check 全绿", + "status": "done", + "notes": "自补:一致性修复;复用 overlay.ts 的 pushOverlay 栈" + }, + { + "id": "g44", + "title": "accordion 标题行方向键导航", + "motivation": "标题是原生 button 只有 Enter/Space,行间移动要靠 Tab 逐个跳,与 tabs/tree 的 ↑↓/Home/End 键盘约定不一致", + "acceptance": "↑↓ 在标题行间环形移动、Home/End 首尾直达,均跳过禁用行;焦点不在标题行不拦截;npm run check 全绿", + "status": "done", + "notes": "自补:可达性对齐;复用环形回绕取模模式" + }, + { + "id": "g45", + "title": "modal/drawer/image 打开时锁定背景滚动", + "motivation": "模态弹层开着时背景页面仍可滚动,长页面里滚动会带着遮罩底下内容跑;非模态弹层(select/menu/popover/tooltip)不受影响", + "acceptance": "overlay.ts 新增 lockScroll 引用计数:嵌套叠加只由最后一层还原 body;modal/drawer/image 预览接入,关闭即解锁;npm run check 全绿", + "status": "done", + "notes": "自补:缺陷修复;引用计数避免多层同开时提前解锁" + }, + { + "id": "g46", + "title": "新增 transfer 穿梭框组件", + "motivation": "组件库缺常规的双栏搬运组件:批量选择/授权/字段启用这类场景,调用方目前只能用两个 list + 手写搬运逻辑,勾选态与全选三态都要重复实现", + "acceptance": "新增 transfer(两栏由 dataSource 按 targetKeys 派生、逐栏搜索、全选含半选、禁用条目不参与、信号双向绑定);manifest/docs/demo/README/计数同步;npm run check 全绿", + "status": "done", + "notes": "自补:组件补充;归属只存 key,搬运只改 targetKeys,不删条目" } - , - { "id": "g43", "title": "select/menu/popover/image 的 Esc 接入统一弹层栈", "motivation": "四个弹层组件各自监听 document 的 Esc:多层叠加(如 popover 内再开 image 预览)时一次 Esc 全部关闭,与 modal/drawer 的 pushOverlay 栈行为不一致", "acceptance": "四个组件展开期入 Esc 栈、收起即释放;多层叠加时 Esc 后进先出逐层关闭;焦点归还触发器;npm run check 全绿", "status": "done", "notes": "自补:一致性修复;复用 overlay.ts 的 pushOverlay 栈" } - , - { "id": "g44", "title": "accordion 标题行方向键导航", "motivation": "标题是原生 button 只有 Enter/Space,行间移动要靠 Tab 逐个跳,与 tabs/tree 的 ↑↓/Home/End 键盘约定不一致", "acceptance": "↑↓ 在标题行间环形移动、Home/End 首尾直达,均跳过禁用行;焦点不在标题行不拦截;npm run check 全绿", "status": "done", "notes": "自补:可达性对齐;复用环形回绕取模模式" } - , - { "id": "g45", "title": "modal/drawer/image 打开时锁定背景滚动", "motivation": "模态弹层开着时背景页面仍可滚动,长页面里滚动会带着遮罩底下内容跑;非模态弹层(select/menu/popover/tooltip)不受影响", "acceptance": "overlay.ts 新增 lockScroll 引用计数:嵌套叠加只由最后一层还原 body;modal/drawer/image 预览接入,关闭即解锁;npm run check 全绿", "status": "done", "notes": "自补:缺陷修复;引用计数避免多层同开时提前解锁" } ] } diff --git a/.ua/iterations.log b/.ua/iterations.log index 18a23b9..75db1ec 100644 --- a/.ua/iterations.log +++ b/.ua/iterations.log @@ -90,3 +90,4 @@ {"ts":"2026-10-26T11:57:39+08:00","id":"g43","result":"done","commit":"fc8a541","summary":"select/menu/popover/image Esc 接入统一弹层栈,多层叠加逐层关闭"} {"ts":"2026-10-26T12:00:19+08:00","id":"g44","result":"done","commit":"b50315b","summary":"accordion 标题 ↑↓/Home/End 环形导航,跳过禁用行"} {"ts":"2026-10-26T12:02:16+08:00","id":"g45","result":"done","commit":"0a0dc7a","summary":"overlay 新增 lockScroll 引用计数,模态层全关才还原 body 滚动"} +{"ts":"2026-10-26T12:08:17+08:00","id":"g46","result":"done","commit":"1fe76e2","summary":"新增 transfer 穿梭框:两栏按 targetKeys 派生、逐栏搜索、全选含半选、禁用条目不参与,组件数 44→45"}