iter(g105): 标签页支持可关闭页签

This commit is contained in:
HIsheR
2026-10-26 13:56:56 +08:00
parent 1132220a23
commit f398f09ab2
9 changed files with 141 additions and 26 deletions
+17 -5
View File
@@ -1,6 +1,6 @@
{
"$schema": "ui-arch-registry-index/0.1",
"generatedAt": "2026-10-26T05:49:43.206Z",
"generatedAt": "2026-10-26T05:56:43.149Z",
"repoRoot": ".",
"packages": [
{
@@ -167,7 +167,7 @@
"pagination(props):独立分页器,page 信号双向绑定,页码过多折叠省略号,首末页禁用翻页,jumpable 时末尾可输入页码直接跳转,键盘可达;pageSizes 可切每页条数",
"spinner(props):加载指示器,size 控制直径",
"progress(props):进度条,value 信号驱动 0-100(满格切 success 色);不传 value 退化为不确定态无限往复",
"tabs(props):标签页,active 信号双向绑定,滑动指示条 + 方向键环形导航,支持禁用页签",
"tabs(props):标签页,active 信号双向绑定,滑动指示条 + 方向键环形导航,支持禁用页签;页签项 closable 时带关闭按钮(聚焦后 Delete 同样可关),关闭只回调 onClose 由调用方摘数据",
"stepper(props):步骤条,done/current/upcoming 三态,active 信号双向绑定,clickable 时已完成步骤可回跳",
"rate(props):评分星标,value 信号双向绑定,hover 预览移出还原,键盘方向键调节,max 可配",
"empty(props):空状态占位,title/description 可选,action 放操作区",
@@ -1304,9 +1304,9 @@
"props": [
{
"n": "tabs",
"t": "OptionItem[]",
"t": "TabItem[]",
"r": 1,
"d": "页签列表,每项 { value, label }"
"d": "页签列表,每项 { value, label, disabled?, closable? }"
},
{
"n": "active",
@@ -1318,13 +1318,25 @@
"t": "(value: string) => void",
"k": 1,
"d": "切换回调"
},
{
"n": "onClose",
"t": "(value: string) => void",
"k": 1,
"d": "关闭页签回调:组件不自行移除,凭 value 从数据源里摘掉后重绘"
},
{
"n": "closable",
"t": "boolean",
"d": "页签项上的开关:true 时渲染关闭按钮(×),关闭按钮不进 Tab 序但可用鼠标点;缺省不可关"
}
],
"example": "const tab = signal('a'); tabs({ tabs: [{ value: 'a', label: '概览' }, { value: 'b', label: '明细', disabled: true }], active: tab })",
"example": "const tab = signal('a'); tabs({ tabs: [{ value: 'a', label: '概览', closable: true }, { value: 'b', label: '明细', disabled: true }], active: tab, onClose: (v) => toast.info(`关闭 ${v}`) })",
"steps": [
"创建信号 tab = signal('a'),初值为默认页签",
"tabs 只渲染页签头;页签内容用响应式函数按信号切换,如 () => tab() === 'a' ? panelA : panelB",
"点击或方向键(←→ 环形)、Home/End(直达首/末页签)切换,滑动指示条自动跟随;disabled: true 的页签置灰不可点",
"需要可关闭页签时给该项加 closable: true,× 或聚焦后按 Delete 触发 onClose(value);组件不改数据源,调用方从数组里摘掉该项再重绘",
"键盘可访问:Tab 聚焦激活页签,←→ 在启用页签间环形移动,Home/End 跳首个/末个启用页签"
]
},