iter(g55): 新增 checkboxGroup 多选组组件

This commit is contained in:
HIsheR
2026-10-26 12:19:23 +08:00
parent 73b37b1cdf
commit e54fdb6f22
12 changed files with 270 additions and 10 deletions
+27
View File
@@ -19,6 +19,7 @@ import {
card,
cascader,
checkbox,
checkboxGroup,
colorPicker,
dataTable,
datePicker,
@@ -191,6 +192,7 @@ const listPick = signal(''); // 列表点击选中的条目标题
const slideIndex = signal(0); // 轮播当前下标(外部受控演示)
const cascaderPath = signal<string[]>(['east', 'sh']); // 级联选择路径(外部受控演示)
const splitSizes = signal<number[]>([35, 65]); // 分栏比例(外部受控演示)
const permPick = signal<string[]>(['read']); // 多选组选中值(外部受控演示)
const colorVal = signal('var(--ua-color-accent)'); // 颜色选择值(外部受控演示)
const dateVal = signal('2026-10-26'); // 日期选择值(外部受控演示)
const acValue = signal(''); // 自动补全输入值(外部受控演示)
@@ -690,6 +692,31 @@ const content = h(
button({ label: '错误(可关)', variant: 'danger', onClick: () => notification({ title: '保存失败', description: '服务端返回 500,请稍后重试', variant: 'danger' }) }),
),
),
section(
'sec-checkgroup',
'多选组',
'checkboxGroup:数组信号双向绑定,min/max 用「禁用边界项」代替报错,checkAll 带半选,只统计未禁用项。',
h(
'div',
{ class: 'col' },
checkboxGroup({
value: permPick,
min: 1,
max: 3,
checkAll: true,
onChange: (v) => toast.info(`已选 ${v.length} 项`),
options: [
{ value: 'read', label: '读取' },
{ value: 'write', label: '写入' },
{ value: 'delete', label: '删除' },
{ value: 'share', label: '分享' },
{ value: 'audit', label: '审计日志(不可授予)', disabled: true },
],
}),
checkboxGroup({ direction: 'vertical', options: [{ value: 'a', label: '纵向 A' }, { value: 'b', label: '纵向 B' }] }),
h('span', { class: 'out' }, () => `已选:${permPick().join(' / ') || '无'}(下限 1、上限 3)`),
),
),
section(
'sec-watermark',
'水印',