iter(g159): 多选下拉支持标签折叠

This commit is contained in:
HIsheR
2026-10-26 16:02:24 +08:00
parent cbf0526408
commit 312e80118f
7 changed files with 51 additions and 7 deletions
+3 -1
View File
@@ -1,6 +1,6 @@
# @ui-arch 组件库 Agent 文档(无图形版)
> 自动生成于 2026-10-26T08:00:04.262Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 自动生成于 2026-10-26T08:02:08.033Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 组件 = 普通函数,传 props 返回 DOM;状态用 signal 双向绑定:读 signal() 写 signal(v)。
## 快速上手
@@ -1590,6 +1590,7 @@ affix({ offset: 8 }, card({ title: '滚动时我会贴顶' }, h('p', null, '正
- value:Signal<string[]> —— 选中值数组信号;不传则内部维护
- placeholder:string —— 未选时占位文案;已选时让位给标签
- max:number —— 最多选几项:到上限后未选项自动禁用
- maxTagCount:number —— 标签区最多显示几个,超出的折成一枚「+N」(悬停看全量、点击展开弹层);缺省全部显示
- searchable:boolean —— 是否可输入过滤;缺省 true
- disabled:boolean | Signal<boolean> —— 禁用整个下拉
- onChange:(values: string[]) => void —— 变更回调(传副本)
@@ -1607,6 +1608,7 @@ multiSelect({ value: tagPick, max: 3, placeholder: '选择技术栈', options: [
3. 点选项只切换该项、弹层不收起,适合连续多选;到 max 后未选项置灰不可点
4. ↑↓ 环形移动高亮、Enter 切换当前项、Esc 收起(与其它弹层共用一个 Esc 栈)
5. value 传数组信号即受控,外部写入会同步标签区
6. 选中项多时传 maxTagCount: 2 折叠:前 2 枚标签照常逐个删除,其余折成虚线「+N」,悬停 title 给出被折叠的项名,点它直接展开弹层;受控数组一变折叠数就重算
现场演示:apps/docs/demo.html#sec-multiselect