el-cascader 只能选择子级
时间: 2024-01-04 20:19:31 浏览: 148
el-cascader 只能选择子级的实现方法如下:
1. 隐藏父级的 checkbox,只显示子级的 checkbox。
```css
.hide {
.el-cascader-menu:first-of-type {
.el-cascader-node {
.el-checkbox {
display: none;
}
}
}
}
```
2. 实现多选模式下,同一父级下最多只能选中一个子级的级联选择器。
```javascript
<template>
<el-cascader
v-model="selectedOptions"
:options="options"
:props="props"
:checkStrictly="true"
:multiple="true"
@change="handleCascaderChange"
></el-cascader>
</template>
<script>
export default {
data() {
return {
selectedOptions: [],
options: [
{
value: 'parent1',
label: 'Parent 1',
children: [
{
value: 'child1',
label: 'Child 1'
},
{
value: 'child2',
label: 'Child 2'
}
]
},
{
value: 'parent2',
label: 'Parent 2',
children: [
{
value: 'child3',
label: 'Child 3'
},
{
value: 'child4',
label: 'Child 4'
}
]
}
],
props: {
value: 'value',
label: 'label',
children: 'children'
}
};
},
methods: {
handleCascaderChange(value) {
// 只保留同一父级下的最后一个子级
const filteredValue = value.filter((item, index, arr) => {
const parentValue = item.slice(0, -1).join('/');
const lastChildValue = item[item.length - 1];
return !arr.some((v, i) => {
if (i !== index) {
const pValue = v.slice(0, -1).join('/');
const lValue = v[v.length - 1];
return parentValue === pValue && lastChildValue === lValue;
}
return false;
});
});
this.selectedOptions = filteredValue;
}
}
};
</script>
```
阅读全文