简而言之就是利用:default-expanded-keys=“expandedList” 这个默认展开的属性
然后用expandedList 数组记录你的展开情况
在数据刷新之后,el-tree 会自动根据这个属性值的数组展开选项
话不多说,上代码:
<template>
<el-tree
ref="navigationTree"
:default-expanded-keys="expandedList"
:data="treeData"
node-key="code"
draggable
@node-drop="dropSuccess"
@node-expand="nodeExpand"
@node-collapse="nodeCollapse"
>
</el-tree>
</template>
<script>
export default{
data(){
return {
treeData: []
expandedList: [] // 作为el-tree 的默认展开选项,在 数据刷新之后el-tree 会自动根据这个数据来展开对应选项
}
},
methods: {
load(){
... 加载el-tree的数据treeData
},
nodeExpand(data) {
this.expandedList.push(data.code); // 在节点展开是添加到默认展开数组
},
nodeCollapse(data) {
this.expandedList.splice(this.expandedList.indexOf(data.code), 1); // 收起时删除数组里对应选项
},
dropSuccess(){
this.load()
}
}
}
</script>