findNodeWithSequence(data, targetSequence, parentNodes = []) {
for (const node of data) {
const newNode = { ...node, parentNodes };
const newParentNodes = [...parentNodes, newNode];
if (node.sequence === targetSequence) {
return newNode;
}
if (node.children) {
const result = this.findNodeWithSequence(
node.children,
targetSequence,
newParentNodes
);
if (result) {
return result;
}
}
}
return null;
},
const DeptTree=[{
deptName: "学校",
id: 346,
label: "学校",
value: 346,
children: [{
deptName: "教务处",
id: 347,
label: "教务处",
value: 347,
children: [{
name: "崔亚书",
sequence: "366554078418",
uid: 14776,
label: "崔亚书",
value: "366554078418",
}, ],
}, ],
},
{
deptName: "管理员",
id: 345,
label: "管理员",
value: 345,
children: [{
name: "崔亚书",
sequence: "366554078418",
uid: 14776,
label: "崔亚书",
value: "366554078418",
}, ],
},
]
const result = this.findNodeWithSequence(
DeptTree,
id
);
const parentNodesIds = [];
if (result && result.parentNodes) {
for (const node of result.parentNodes) {
if (node.id) {
parentNodesIds.push(node.id);
}
}
}
this.maintainerArr = parentNodesIds.concat(
result ? [result.value] : []
);