Skip to content

TabbedCascader 多 Tab 级联

多数据源 Tab + 面包屑钻取 + 面板内搜索;点击叶子即选中。 支持 string[] 扁平数据与 Tab 级 creatable 自定义输入(如金额)。 v-model 仍为 { tab, path, labels }。

基础用法 ​

归属角色 / 金额(string[] + creatable)/ 同事树:用 fieldNames 按 tab 映射;金额 Tab 可点预设或底部输入数字确认。

选择字段
请选择

API ​

Attributes ​

属性名说明类型默认值
v-model选中值;null 表示未选TabbedCascaderValue | nullnull
optionsTab 列表;每项含 label / value / data。data 可为树或 string[] 扁平叶子;creatable 开启底部自定义输入TabbedCascaderTab[]—
options[].creatable该 Tab 底部自定义输入;true 或 { prefix, append, placeholder }。确认后 v-model 为单段 path/labelsboolean | TabbedCascaderCreatableOptions—
fieldNames字段映射;可为全局一份,或按 tab.value 分别配置TabbedCascaderFieldNames | Record<string, TabbedCascaderFieldNames>{ label: 'label', value: 'value', children: 'children' }
placeholder未选占位string'请选择'
rootLabel面包屑根文案string'全部'
searchPlaceholder面板内搜索占位string'搜索'
emptyText搜索无结果文案string'未找到匹配项…'
clearable是否可清空booleantrue
disabled禁用booleanfalse

Events ​

事件名说明类型
update:modelValue选中或清空(value: TabbedCascaderValue | null) => void
change同 update:modelValue(叶子选中或清空时)(value: TabbedCascaderValue | null) => void
clear点击清空() => void

Slots ​

插槽名说明
append覆盖 creatable 输入框后缀展示(默认用 creatable.append)

TabbedCascaderValue ​

ts
interface TabbedCascaderValue {
  tab: string
  path: string[]
  labels: string[]
}

展示文案为 labels.join(' / ')。扁平 / 自定义金额时 path 与 labels 各一项。工具函数:encodeTabbedCascaderValue(value) → `${tab}-${path.join('.')}`。

TabbedCascaderTab.creatable ​

ts
creatable?: boolean | {
  prefix?: string      // 如「超」,拼进最终文案
  append?: string      // 如「美金」;可用 #append 覆盖展示
  placeholder?: string
}

输入数字(可含千分位)后回车或点确定 → `${prefix}${formatted}${append}`,例如 超5,000美金。