From 537fc97695717b3db452ed52b1d4f7b475b393be Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期六, 01 三月 2025 14:54:05 +0800 Subject: [PATCH] 优化前端树结构性能问题 --- src/utils/ruoyi.js | 37 ++++++++----------------------------- 1 files changed, 8 insertions(+), 29 deletions(-) diff --git a/src/utils/ruoyi.js b/src/utils/ruoyi.js index 2714962..2bc6db0 100644 --- a/src/utils/ruoyi.js +++ b/src/utils/ruoyi.js @@ -1,5 +1,3 @@ - - /** * 閫氱敤js鏂规硶灏佽澶勭悊 * Copyright (c) 2019 ruoyi @@ -86,7 +84,7 @@ return actions.join(''); } -// 鍥炴樉鏁版嵁瀛楀吀锛堝瓧绗︿覆鏁扮粍锛� +// 鍥炴樉鏁版嵁瀛楀吀锛堝瓧绗︿覆銆佹暟缁勶級 export function selectDictLabels(datas, value, separator) { if (value === undefined || value.length ===0) { return ""; @@ -165,37 +163,19 @@ }; var childrenListMap = {}; - var nodeIds = {}; var tree = []; - for (let d of data) { - let parentId = d[config.parentId]; - if (childrenListMap[parentId] == null) { - childrenListMap[parentId] = []; - } - nodeIds[d[config.id]] = d; - childrenListMap[parentId].push(d); + let id = d[config.id]; + childrenListMap[id] = d; } for (let d of data) { - let parentId = d[config.parentId]; - if (nodeIds[parentId] == null) { + let parentId = d[config.parentId] + let parentObj = childrenListMap[parentId] + if (!parentObj) { tree.push(d); - } - } - - for (let t of tree) { - adaptToChildrenList(t); - } - - function adaptToChildrenList(o) { - if (childrenListMap[o[config.id]] !== null) { - o[config.childrenList] = childrenListMap[o[config.id]]; - } - if (o[config.childrenList]) { - for (let c of o[config.childrenList]) { - adaptToChildrenList(c); - } + } else { + parentObj[config.childrenList].push(d) } } return tree; @@ -226,7 +206,6 @@ } return result } - // 杩斿洖椤圭洰璺緞 export function getNormalPath(p) { -- Gitblit v1.9.3