实现效果图
项目代码
<el-cascader
v-model="value"
:options="transSubjectList"
size="mini">
<template slot-scope="{data }" >
<span @click="handleChange(data, 'click',)">{{ data.label }}</span>
</template>
</el-cascader>
总结
- 设置默认值 ,
data () {
return {
value: ['self'],
transSubjectList: [{
level_type: 'self',
pk: 0,
value: 'self',
label: '本人',
childrens: undefined
}]
}
}
- 第一个本人没有 children, 为了不显示 空白的子集类似下图这个样子
需将子集的children 设为undefined
设置完效果如下图所示
- 当有两个或者多个联动选择器的时候,来回切换会报错
会出现Cannot read property ‘level’ of null的错误
这是因为没有设置key值,导致来回切换的时候,会关联之前的数据,找不到之前的元素,所以应该设置一个key值,在 tab切换的时候,设置不同的key值。
<el-cascader
v-model="value"
:options="transSubjectList"
:key="cascaderKey"
size="mini">
<template slot-scope="{data }" >
<span @click="handleChange(data, 'click',)">{{ data.label }}</span>
</template>
</el-cascader>
data() {
return {
cascaderKey: 0
}
}
在tab切换的时候执行一下方法就可以
changeNav () {
++this.cascaderKey
}
最后
以上就是我所踩的坑,如有不足之处,希望大家可以指正,希望能帮助到大家~