Skip to content

Cascader

级联选择器

基础用法

点击触发 级联选择对数据有较严格要求,请参照示例的格式使用data,每项数据至少包含 valuelabel 两项,子集为 children,以此类推。

提示

modelValue 为当前选择的数据的 value 值的数组,比如['jiangsu', 'nanjing'],按照级联顺序依次排序,使用 v-model 进行双向绑定。

vue




默认值

可以通过指定 modelValue 的初始值来初始化组件选中的值

vue




输出单个值

传入emit-path: false可以 emit 单个值

提示

默认v-model 返回的值是一个数组,可以通过 emit-path: false来输出单个值。这种情况下,需要使用者保证options每个值的唯一性。

vue




禁用

设置属性 disabled 可以禁用组件。

给某项数据设置 disabled: true 可以禁用某一项。

vue




触发方式

默认是点击触发选中,当然可以通过 trigger: hover来设置 hover 触发

使用 trigger 指定感触发方式

vue




任何节点均可选中

默认只有最边缘的节点才可以被选中,可以设置 change-on-select: true 修改这个行为,点击任意一级都可选中

vue




自定义节点渲染

如果你不满意默认的节点渲染,还可以使用slot来自定义节点渲染样式

TIP

默认插槽会暴露四个参数:node: 当前节点对象; active: 当前节点是否被激活,被选中或者,在选中的路径上都会被激活;selected: 当前节点是否被直接选中;leaf: 当前节点是否为叶子节点

vue






Props

参数类型是否必传说明默认值
modelValuearray/string/numberemitPath = true, 为数组,否则为 string/number-
placeholderstringinput 的 placeholder'请选择'
emitPathboolean是否将值的路径都 emit 出去true
multipleboolean是否支持多选false
disabledboolean禁用false
heightstring/numberCascader 的高度-
clearableboolean是否显示清除false
showAllLevelsboolean在 input 上显示单个的值还是完整的路径(这个仅仅作用于显示,emitPath 作用于 v-model 值)true
autoFocusboolean是否自动聚焦false
changeOnSelectboolean点击任意节点都会选中false
separatorstringinput 上显示不同层级节点名字的 分隔符/
dataarray对象数组, 每个对象需要包含 label, value, children 字段。如果不符合要求,需要传 fieldNames 字段。可以给对象传入 disabled 字段控制单个节点是否可供选择必传
trigger'click'/'hover'节点选中的触发方式'click'
fieldNames对象一个对象,描述 data 中 field, value, children 的对应字段名。Record<'label' | 'value' | 'children', string>{}
searchboolean是否支持搜索false

Events

事件名称说明回调参数
update:modelValuemodelValue 值改变根据 emitPath 的值,将新的值传出
select选中任何一个节点会触发格式化好的节点对象
search-change搜索内容变化时出发输入的结果

Slots

插槽名称说明参数
node单个节点的自定义渲染node: 当前节点对象; active: 当前节点是否被激活,被选中或者,在选中的路径上都会被激活;selected: 当前节点是否被直接选中;leaf: 当前节点是否为叶子节点