vue3+elementPlus+ts table合并select选择框,解决全选后再一个个取消全选状态还在的问题

首先需要两个字段分别存储当前行选中数据和所有选中数据;

@selection-change="handleSelectionChange"//selected

@select="selectCur"写进el-table标签里;//selectCurRow

之后从vue里引入watch。当选中数据变化后,先判断当前点击数据是取消还是选中,如果是选中,那么selected数组里一定有selectCurRow的数据(selected.value.indexOf(selectCurRow.value) > -1)此条件为true,否则就是取消选中;然后根据自己系统业务需求从字段里找出和让select合并的同一个字段进行判断,将合并的数据同步勾选状态。

watch(

selected,

(newValue: any) => {

console.log(newValue, "watch");

if (selected.value.indexOf(selectCurRow.value) > -1) {

console.log("选中进来了");

tableData.value.forEach((item: any) => {

if (selectCurRow.value.logicId === item.logicId && selectCurRow.value.id !== item.id) {

proTableRef.value.element.toggleRowSelection(item, true);

}

});

} else {

console.log("取消进来了");

tableData.value.forEach((item: any) => {

if (selectCurRow.value.logicId === item.logicId) {

proTableRef.value.element.toggleRowSelection(item, false);

}

});

}

console.log("selected", selected.value);

},

{ immediate: true }

);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值