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; }); };