传递该节点的children数组
此方法存在问题
ids =this.getChildernId(node.children);
获取children数组中所有的id
getChildernId(list) {
let ids = [], childIds = [];
list.forEach(item => {
ids.push(item.id);
if (item.children && item.children.length > 0) {
childIds = this.getChildernId(item.children);
}
});
return [...ids, ...childIds].filter(v => v);
},
改方法可以
获取所有节点id包括其子节点—递归
getChildrenIds(groups, groupsIdName = []) {
const { children } = groups;
if (!Array.isArray(children) || !children.length) return false;
children.forEach((item) => {
const { id, name } = item;
if (groupsIdName.indexOf({ id, name }) === -1) {
groupsIdName.push({ id, name });
}
this.getChildrenIds(item, groupsIdName);
});
return groupsIdName;
},
if (Array.isArray(groups) && groups.length) {
const all = {
id: "",
name: "全部",
children: groups,
};
allGroups = this.getChildrenIds(all);
}