1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// tree 工具
export function buildTreeNode(nodes, titleKey, nodeKey) {
return nodes.map(item => {
const res = {};
if (item.children) {
res.children = buildTreeNode(item.children, titleKey, nodeKey);
}
// res.title = `${item.id}-${item[titleKey]}`;
res.title = `${item[titleKey]}`;
res.key = item[nodeKey];
return res;
});
}
// @primary
function findNodes(id, nodes) {
const res = [];
for (let i = 0; i < nodes.length; i += 1) {
const node = nodes[i];
if (node.key === id) {
res.push(node.key);
break;
} else if (node.children) {
const childNodes = findNodes(id, node.children);
for (let j = 0; j < childNodes.length; j += 1) {
res.push(childNodes[j]);
}
}
}
return res;
}
export function findAllNodes(resourceIds, nodes) {
console.log('resourceIds', resourceIds);
const findNodesArray = [];
for (let i = 0; i < resourceIds.length; i += 1) {
const findNodesData = findNodes(resourceIds[i], nodes);
console.log('findNodesData', findNodesData);
if (findNodesData) {
for (let j = 0; j < findNodesData.length; j += 1) {
const jD = findNodesData[j];
if (findNodesArray.indexOf(jD) === -1) {
findNodesArray.push(jD);
}
}
}
}
return findNodesArray;
}
export function findCheckedKeys(nodes) {
let res = [];
for (let i = 0; i < nodes.length; i += 1) {
const node = nodes[i];
if (node.children) {
const findChildrenNodes = findCheckedKeys(node.children);
if (findChildrenNodes) {
res = res.concat(findChildrenNodes);
}
} else if (node.assigned === true) {
res.push(node.id);
}
}
return res;
}