最近开发过程中,遇到需求测一个需求,就是级联选择器,需要多选;但是第一级是单选; 既要单选又要复选。参照网上内容,自己整理了一下功能实现;
如下图:

思路:1.把第一层的复选框去掉
2. 在第一层切换的时候,如果第一次分类改变了,把已有的值清空
代码如下:
- html部分:
-
- <el-cascader
- :popper-class="'first-no-check-cascader'"
- v-model="settingTypeValue"
- :options="treeData"
- :props="{
- value: 'id',
- label: 'name',
- children: 'children',
- emitPath: false,
- multiple: true,
- }"
- :show-all-levels="true"
- clearable
- @expand-change="changeSourceType"
- >
- </el-cascader>
-
-
- css部分:
-
- // 级联选择器,第一级不需要复选框
- .first-no-check-cascader {
- .el-cascader-panel {
- .el-cascader-menu:first-child {
- .el-cascader-node {
- .el-checkbox {
- display: none !important;
- }
- }
- }
- }
- }
-
- 函数部分:
- cascaderTag:[], // 暂存点击时已有的tag
- changeSourceType(selectItem) {
- // 一级分类只能选一个,如果一级分类修改了,清空已有值
- if (!this.cascaderTag.includes(selectItem[0])) {
- this.settingTypeValue = [];
- }
- this.cascaderTag = selectItem;
- },
参考文章:Element UI级联选择器 多选模式下,实现同一父级下最多只能选中一个子级_element级联选择器可输入-CSDN博客