el-tree全树刷新,节点刷新
文章目录
一、单节点刷新
1. 如果你的el-tree设置了node-key=“id”,拿父节点的id 作为第一个参数,
2. 重新请求子节点数据,数组作为第二个参数
3. 调用updateKeyChildren
let {
updateKeyChildren,
} = this.$refs.entityTreeRef;
let res = await this.listChildrenNode(this.confTarget);
updateKeyChildren(id, res);
二、全树刷新
1. 保存上次展开节点的id (可选)
代码如下:
let { nodesMap } = this.$refs.entityTreeRef.root.store;
let lastExpandIds = [];
let localMap = Object.values(nodesMap);
localMap.forEach(item => {
if (item.expanded) {
lastExpandIds.push(item.data.id);
}
});
nodesMap = {};
2. 清除本次树的store数据
nodesMap = {};
3. 设置树的defaultExpandedKeys属性值变量
let { nodesMap } = this.$refs.entityTreeRef.root.store;
this.defaultExpandedKeys = ids;
this.$refs.entityTreeRef.root.setData(result);