优化前端树结构性能问题

This commit is contained in:
RuoYi 2025-03-01 14:53:39 +08:00
parent 1ef73d7360
commit 40c7ca34a8
1 changed files with 19 additions and 27 deletions

View File

@ -1,5 +1,3 @@
/** /**
* 通用js方法封装处理 * 通用js方法封装处理
* Copyright (c) 2019 ruoyi * Copyright (c) 2019 ruoyi
@ -165,37 +163,19 @@ export function handleTree(data, id, parentId, children) {
}; };
var childrenListMap = {}; var childrenListMap = {};
var nodeIds = {};
var tree = []; var tree = [];
for (let d of data) { for (let d of data) {
let parentId = d[config.parentId]; let id = d[config.id];
if (childrenListMap[parentId] == null) { childrenListMap[id] = d;
childrenListMap[parentId] = [];
}
nodeIds[d[config.id]] = d;
childrenListMap[parentId].push(d);
} }
for (let d of data) { for (let d of data) {
let parentId = d[config.parentId]; let parentId = d[config.parentId]
if (nodeIds[parentId] == null) { let parentObj = childrenListMap[parentId]
if (!parentObj) {
tree.push(d); tree.push(d);
} } else {
} parentObj[config.childrenList].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);
}
} }
} }
return tree; return tree;
@ -227,6 +207,18 @@ export function tansParams(params) {
return result return result
} }
// 返回项目路径
export function getNormalPath(p) {
if (p.length === 0 || !p || p == 'undefined') {
return p
};
let res = p.replace('//', '/')
if (res[res.length - 1] === '/') {
return res.slice(0, res.length - 1)
}
return res;
}
// 验证是否为blob格式 // 验证是否为blob格式
export function blobValidate(data) { export function blobValidate(data) {
return data.type !== 'application/json' return data.type !== 'application/json'