这种需要删除功能的树形数据懒加载,调用删除接口重新给table赋值会发现被折叠的行数据没有被删除,需要刷新一下页面才可以删除。这种可以采用下面的方法进行删除。
//点击删除按钮的删除方法item为行数据
deleteLazyTableItem (item) {
const store = this.$refs.table.store;
if (item.parent != -1) {
//查找父级 找到返回item 否则返回undefined
let parentRow = store.states.data.find(child => child.id == item.parent);
if (!parentRow) {
const keys = Object.keys(store.states.lazyTreeNodeMap);
for (let i = 0; i < keys.length; i++) {
parentRow = store.states.lazyTreeNodeMap[keys[i]].find(child => child.id == item.parent);
if (parentRow) {
break;
}
}
}
parentRow.childrenCount--;
const parent = store.states.lazyTreeNodeMap[item.parent];
const index = parent.findIndex(child => child.id == item.id);
parent.splice(index, 1);
}
else {
const parent = store.states.data;
const index = parent.findIndex(child => child.id == item.id);
parent.splice(index, 1);
}
},