diff --git a/src/utils/ruoyi.ts b/src/utils/ruoyi.ts index 8efd12c..07a4a6b 100644 --- a/src/utils/ruoyi.ts +++ b/src/utils/ruoyi.ts @@ -167,39 +167,21 @@ export const handleTree = (data: any[], id?: string, parentId?: string, child }; const childrenListMap: any = {}; - const nodeIds: any = {}; const tree: T[] = []; - for (const d of data) { - const parentId = d[config.parentId]; - if (childrenListMap[parentId] == null) { - childrenListMap[parentId] = []; - } - nodeIds[d[config.id]] = d; - childrenListMap[parentId].push(d); + const id = d[config.id]; + childrenListMap[id] = d; } for (const d of data) { const parentId = d[config.parentId]; - if (nodeIds[parentId] == null) { + const parentObj = childrenListMap[parentId] + if (!parentObj) { tree.push(d); + } else { + parentObj[config.childrenList].push(d) } } - const adaptToChildrenList = (o: any) => { - if (childrenListMap[o[config.id]] !== null) { - o[config.childrenList] = childrenListMap[o[config.id]]; - } - if (o[config.childrenList]) { - for (const c of o[config.childrenList]) { - adaptToChildrenList(c); - } - } - }; - - for (const t of tree) { - adaptToChildrenList(t); - } - return tree; };