iter(g47): 新增 cascader 级联选择组件
This commit is contained in:
@@ -15,6 +15,7 @@ import {
|
||||
breadcrumb,
|
||||
button,
|
||||
card,
|
||||
cascader,
|
||||
checkbox,
|
||||
dataTable,
|
||||
transfer,
|
||||
@@ -181,6 +182,7 @@ const tableLoading = signal(false);
|
||||
const menuPick = signal('');
|
||||
const listPick = signal(''); // 列表点击选中的条目标题
|
||||
const slideIndex = signal(0); // 轮播当前下标(外部受控演示)
|
||||
const cascaderPath = signal<string[]>(['east', 'sh']); // 级联选择路径(外部受控演示)
|
||||
const treePick = signal('core'); // 树形选中节点 key
|
||||
const transferKeys = signal<string[]>(['a11y']); // 穿梭框右侧集合(外部受控演示)
|
||||
const cityPick = signal(''); // 可搜索下拉的选中城市
|
||||
@@ -677,6 +679,37 @@ const content = h(
|
||||
button({ label: '错误(可关)', variant: 'danger', onClick: () => notification({ title: '保存失败', description: '服务端返回 500,请稍后重试', variant: 'danger' }) }),
|
||||
),
|
||||
),
|
||||
section(
|
||||
'sec-cascader',
|
||||
'级联选择',
|
||||
'cascader:多列联动,悬停即下钻、点叶子提交;changeOnSelect 可停在中间层,Esc 收起,↑↓/→/←/Enter 全键盘可用。',
|
||||
h(
|
||||
'div',
|
||||
{ class: 'row' },
|
||||
cascader({
|
||||
value: cascaderPath,
|
||||
placeholder: '请选择所属区域',
|
||||
changeOnSelect: true,
|
||||
onChange: (p) => toast.success(`已选:${p.join(' / ')}`),
|
||||
options: [
|
||||
{ value: 'east', label: '华东', children: [
|
||||
{ value: 'sh', label: '上海', children: [{ value: 'pd', label: '浦东新区' }, { value: 'xh', label: '徐汇区' }] },
|
||||
{ value: 'hz', label: '杭州', children: [{ value: 'xh-hz', label: '西湖区' }, { value: 'yh', label: '余杭区' }] },
|
||||
] },
|
||||
{ value: 'south', label: '华南', children: [
|
||||
{ value: 'gz', label: '广州', children: [{ value: 'th', label: '天河区' }] },
|
||||
{ value: 'sz', label: '深圳', children: [{ value: 'nsh', label: '南山区' }] },
|
||||
] },
|
||||
{ value: 'overseas', label: '海外(暂不开放)', disabled: true },
|
||||
],
|
||||
}),
|
||||
cascader({ separator: ' · ', placeholder: '必须选到末级', options: [
|
||||
{ value: 'a', label: '研发中心', children: [{ value: 'a1', label: '前端组' }, { value: 'a2', label: '后端组' }] },
|
||||
{ value: 'b', label: '设计中心', children: [{ value: 'b1', label: '交互组' }, { value: 'b2', label: '视觉组' }] },
|
||||
] }),
|
||||
h('span', { class: 'out' }, () => (cascaderPath().length ? `当前路径:${cascaderPath().join(' / ')}` : '未选择')),
|
||||
),
|
||||
),
|
||||
section(
|
||||
'sec-transfer',
|
||||
'穿梭框',
|
||||
|
||||
Reference in New Issue
Block a user