iter(g61): tree 支持勾选多选与父子级联

This commit is contained in:
HIsheR
2026-10-26 12:26:46 +08:00
parent 0dd0f50985
commit f56ca51cb0
7 changed files with 140 additions and 44 deletions
+18 -1
View File
@@ -1807,6 +1807,21 @@
"t": "(node: TreeNode) => void",
"k": 1,
"d": "选中回调:点击标签或 Enter/空格触发"
},
{
"n": "multi",
"t": "boolean",
"d": "是否显示勾选框并开启多选;缺省 false"
},
{
"n": "checked",
"t": "Signal<string[]>",
"d": "勾选 key 集合(multi 时生效);不传则内部维护"
},
{
"n": "onCheck",
"t": "(keys: string[]) => void",
"d": "勾选变更回调(父子已级联,传副本)"
}
],
"example": "const sel = signal(''); tree({ nodes: [{ key: 'src', label: 'src', children: [{ key: 'ui', label: 'ui' }] }], selected: sel, onSelect: (n) => console.log(n.key) })",
@@ -1815,7 +1830,9 @@
"传 selected 信号即可外部受控;不传则组件内部维护选中态",
"点箭头只展开/收起,点标签才选中;叶子节点箭头位置留空以对齐",
"键盘:↑↓ 在可见节点间移动、Home/End 到首末行(只移动焦点),Enter/空格 选中、→ 展开、← 收起;disabled 节点点击与键盘都不响应",
"defaultExpandAll 首屏展开全部分支(外部已给 expanded 初值时以外部为准)"
"defaultExpandAll 首屏展开全部分支(外部已给 expanded 初值时以外部为准)",
"multi: true 时每行前置勾选框:勾父级下钻全选子孙(跳过禁用项),子孙全选后父级自动上勾、部分勾选显示半选",
"勾选框点击不触发选中(stopPropagation),键盘在多选模式下 Enter/空格改为切换勾选"
]
},
{