fix:联调权限接口
This commit is contained in:
33
src/router/generateFinalMenu.ts
Normal file
33
src/router/generateFinalMenu.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
import { componentMap } from "./routeMap";
|
||||
/**
|
||||
* 组装函数:将后端原始嵌套树重组为前端要求的骨架结构
|
||||
* @param backendTree 后端返回的原始数据 (包含 backend, business 等顶层节点的树)
|
||||
*/
|
||||
export const transformBackendTree = (backendTree: any[]): any[] => {
|
||||
if (!backendTree || !Array.isArray(backendTree)) return [];
|
||||
|
||||
// 排序操作
|
||||
const sortedTree = [...backendTree].sort((a, b) => {
|
||||
const sortA = a.sort ?? 999; // 兜底值,防止没有 sort 字段
|
||||
const sortB = b.sort ?? 999;
|
||||
return sortA - sortB;
|
||||
});
|
||||
return sortedTree.map(item => {
|
||||
// 2. 构造当前节点
|
||||
const newNode: any = {
|
||||
...item,
|
||||
code: componentMap[item.code],
|
||||
originalCode: item.code, // 保留一份原始 code 备用
|
||||
};
|
||||
|
||||
// 3. 递归处理 children
|
||||
if (item.children && item.children.length > 0) {
|
||||
newNode.children = transformBackendTree(item.children);
|
||||
} else {
|
||||
newNode.children = null;
|
||||
}
|
||||
|
||||
return newNode;
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user