组件内部有一个:default-expanded-keys方法就是默认展开的节点,思路就是每次点击节点的时候把绑定的数组里添加或者删除对应的id,如果已有就代表是折叠,需要删除这个默认展开,如果没有就添加到:default-expanded-keys=绑定的数组里去
data里给dxk为空数组
点击节点的时候这个flag必须要判断状态,不能无脑的push,不然永远无法折叠节点!!!!
以上是错误势力,只能找一层的children,而实际需求是需要通过递归把当前id下的多有children(不管嵌套多少层都要找出来)然后删除
flag里的内容是用默认展开的数据去遍历,用a去遍历,然后如果a的每一项不包含在b里面就放进新数组了(读取a里面两个数组不重复的部分)
递归函数
deepGet(tree, result) {
tree.forEach(item => {
result.push(item.id);
if (item.children && item.children.length) {
this.deepGet(item.children, result);
}
});
return result;
},