实现效果如下
想法-----点击选中返回的为选中的数组其中selection-change在跳转页面时候触发,所以用了上两个方法
----》新建数组存放选中----》点击选中按钮返回其中对象----》遍历所存数组有此对象为删除,无为添加
其中需用
this.tableData.forEach((row) => {
this.$refs.tablebox.toggleRowSelection(row, true);
});
来设置默认选中状态
核心代码如下
handleSelectionChange(selection, row) {
//判断点击的tag
if (this.activeName === "2") {
//倒序遍历删除所选内容
for (let i = this.tableDataSlect.length - 1; i >= 0; i--) {
if (this.tableDataSlect[i].id == row.id) {
this.tableDataSlect.splice(i, 1);
}
}
this.$nextTick(() => {
this.tableData.forEach((row) => {
this.$refs.tablebox.toggleRowSelection(row, true);
});
});
this.tableData = this.tableDataSlect;
this.tableDataLength = this.tableDataSlect.length;
} else {
// 判断为空直接传入
if (this.tableDataSlect.length == 0) {
this.tableDataSlect.push(row);
this.tableDataLength = this.tableDataSlect.length;
return false;
}
// 给定状态判断是否删除
let stu = false;
for (let i = this.tableDataSlect.length - 1; i >= 0; i--) {
if (this.tableDataSlect[i].id == row.id) {
this.tableDataSlect.splice(i, 1);
stu = true;
}
}
// 正序splice
// for(let i=0;i<this.tableDataSlect.length;i++){
// if(this.tableDataSlect[i].id==row.id){
// console.log(i)
// this.tableDataSlect.splice(i,1)
// console.log(this.tableDataSlect,i)
// stu=true
// break;
// }
// }
// 删除
if (stu == false) {
this.tableDataSlect.push(row);
}
this.tableDataLength = this.tableDataSlect.length;
}
},
全部实现放资源中,数据格式如下
另,,,所选中数组为本地分页 全部实现放资源中 ------》element 全选记忆