ElementUI表格多選的問題
阿新 • • 發佈:2020-12-13
效果:頁面中有一個推送物件的容器,點選後會彈出使用者選擇的dialog表格,表格可多選,選完後點確定會把選中的使用者資訊放進容器中,當容器為空時在表格中選中再確定沒問題,但當容器中有使用者資訊時,再點選選中表格內容會覆蓋已有內容
解決辦法:
...
//這是彈出dialog的方法,i是當前容器的下標
showDialog(i) {
this.dialogVisible = true;
if (i != this.pushIndex) {
this.$nextTick(() => {
this .$refs.multipleTable.clearSelection();
});
}
this.pushIndex = i;
//userArr表示容器中已有的資料
const userArr = this.details[i].user;
if (userArr.length > 0) {
//先清空表格中所有的選中項
this.$nextTick(() => {
this.$refs.multipleTable.clearSelection();
} );
userArr.forEach(user => {
//遍歷已有資料,取出資料中的使用者登入ID
let loginName = user.substr(user.indexOf("/") + 1, user.length);
const form = {
limit: 2,
page: 1,
keyword: loginName
};
//將使用者登入ID作為搜尋關鍵詞通過搜尋介面來請求使用者的完整資料物件
this.noEncryptionAixos
.get(apiUserList, { params: form })
.then(res => {
if (res.code == 200) {
this.$nextTick(() => {
this.getTableData()
const userObj = res.data.list[0];
//請求到完整資料後將資料所在行選中,這樣繫結上就不會出現覆蓋的情況了
this.$refs.multipleTable.toggleRowSelection(userObj, true);
});
}
});
});
} else {
this.$nextTick(() => {
this.$refs.multipleTable.clearSelection();
});
}
...
最終效果: