elementUI 组件的selection多选框出现错乱问题 怎么办哇
<el-table
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 100%;"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection"
width="55">
</el-table-column>
<el-table-column
label="日期"
width="120"
prop="date"
>
</el-table-column>
<el-table-column
prop="name"
label="姓名"
width="120">
</el-table-column>
<el-table-column
prop="address"
label="地址"
show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="130">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdate(scope.row.id)">编辑</el-button>
<el-button type="text" size="small" @click="delData(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
代码试了一下,没有这种问题,刷新看看
先上图
通过赋值的方式实现 即子级下拉选项循环数组为空 将所需的值对空数组重新赋值
代码如下 第一个循环数组为
procedureType
第二个是causeGroup
暂且称之为父级与子级
<el-select
v-model="ruleForm.procedure_type"
placeholder="请选择"
@change="changeSelect"
>
<el-option
v-for="(item,i) in procedureType"
:key="i"
:label="item"
:value="item"
>
</el-option>
</el-select>
<el-select
v-model="ruleForm.cause_group"
placeholder="请选择"
style="margin-left: 30px"
>
<el-option
v-for="(item,i) in causeGroup"
:key="i"
:label="item"
:value="item"
>
</el-option>
</el-select>
须注意的是父级下拉绑定的change事件 要对子级作出滞空操作 也就是
清空子选项的值
不然会出现切换选项1 或者 选项2的时候子级选项值保留的问题 如下所示
methods: {
changeSelect() {
// 联动子级滞空
this.ruleForm.cause_group = "";
// 循环遍历父级
for (const k in this.procedureType) {
if (this.ruleForm.procedure_type === this.procedureType[k]) {
// 核心代码在这里 进行赋值操作
this.causeGroup = this.TypeObj[this.ruleForm.procedure_type];
}
}
},
},
data() {
return {
// 在这里定义所需的值
procedureType: ["选项a", "选项b"],
TypeObj: {
选项a: ["连级选项a1", "连级选项a2", "连级选项a3"],
选项b: ["连级选项b1", "连级选项b2", "连级选项b3"],
},
ruleForm: {
procedure_type: "",
cause_group: "",
},
// 由 changeSelect 接管 causeGroup 的值
causeGroup: [],
};
},
到这里已经实现了两个Select下拉联动的效果 关键就在于将定义好的值赋值给子级数组
本文是模拟假数据 所以直接在数组定义数据 如果是从接口拿值 在接口请求处将数据赋给procedureType
与TypeObj
即可
其实还有更简单的写法 子级数组直接循环 不进行赋值操作 但仍需保留滞空操作
<el-select
v-model="ruleForm.cause_group"
placeholder="请选择"
style="margin-left: 30px"
>
<el-option
v-for="(item, i) in TypeObj[ruleForm.procedure_type]"
:key="i"
:label="item"
:value="item"
>
</el-option>
</el-select>