// 菜单树过滤 (展示的? ) export function filterMenu(menuList) { return menuList // 过滤不是4级的 123 为菜单 .filter(menu => menu.menuType === 1 || menu.menuType === 2 || menu.menuType === 3) .map(menu => ({ ...menu, children: menu.children ? filterMenu(menu.children) : [] })) // 按 id 升序 // .sort((a, b) => a.id - b.id); } // 过滤 只获得第三级的菜单 export function filterFirstMenu(menuList) { return menuList .map(menu => ({ ...menu, children: menu.children ? filterMenu(menu.children) : [] })) .sort((a, b) => a.id - b.id); // 按 id 升序 } // 辅助函数:查找第一个可访问的菜单项 export function findFirstThirdLevelMenu(menuList) { if (!menuList || menuList.length === 0) return null; for (const menu of menuList) { // 先检查当前菜单是否为三级菜单 if (menu.menuType === 1) { return menu; } // 若不是,递归查找其子菜单(无论当前菜单是几级,都深入子菜单找三级) const childResult = findFirstThirdLevelMenu(menu.children); if (childResult) { return childResult; } } return null; } /** * 根据菜单信息获取对应的路由路径 * @param {Object} menu - 菜单对象,必须包含 id 属性(对应接口返回的 menuName 数值标识) * @returns {string} 匹配的路由路径,无匹配时返回 '/noPermission'(无权限页面) */ export const getRoutePath = (menu) => { // 路由映射表: // key: 接口返回的菜单唯一标识(menuName 对应的数值) // value: 前端对应的路由路径(用于页面跳转) const routeMap = { "2": "/workbench", // 工作台 "3": "/goldManage", // 金币管理 "58": "/moneyManage", // 现金管理 "119": "/activityManage", // 活动管理 "124": "/channelManage", // 频道管理 "146": "/language", // 多语言配置 "5": "/audit", // 金币审核 "20": "/beanAudit", // 金豆审核 "27": "/rate", // 汇率管理 "31": "/coinRecharge", // 金币充值 "34": "/beanRecharge", // 金豆充值 "39": "/coinConsume", // 金币消耗 "42": "/beanConsume", // 金豆消耗 "47": "/coinRefund", // 退款管理 "55": "/history", // 历史数据查询(父菜单) "56": "/history/newHistory", // 新版金币查询(历史数据查询子菜单) "57": "/history/oldHistory", // 旧版金币查询(历史数据查询子菜单) "128": "/permissions", // 权限管理(父菜单) "129": "/permissions/userPermission", // 用户管理(权限管理子菜单) "136": "/permissions/rolePermission", // 角色管理(权限管理子菜单) "51": "/usergold", // 金币客户账户明细 "54": "/userbean", // 金豆客户账户明细 "59": "/moneyManage/receiveDetail", // 收款明细(现金管理子菜单) "60": "/moneyManage/receiveDetail/receiveService", // 收款-收款提交(收款明细子菜单) "67": "/moneyManage/receiveDetail/receiveFinance", // 收款-收款处理(收款明细子菜单) "79": "/moneyManage/receiveDetail/receiveManager", // 收款-收款处理(负责人)(收款明细子菜单) // "91": "/moneyManage/receiveDetail/receiveHeader", // 收款-总部财务(收款明细子菜单) 移除 "98": "/moneyManage/refundDetail", // 退款明细(现金管理子菜单) "99": "/moneyManage/refundDetail/refundService", // 退款-退款提交(退款明细子菜单) "103": "/moneyManage/refundDetail/refundFinance", // 退款-退款审批(退款明细子菜单) "107": "/moneyManage/refundDetail/refundCharge", // 退款-退款审批(负责人)(退款明细子菜单) "111": "/moneyManage/refundDetail/refundHeader", // 退款-退款审批(总部财务)(退款明细子菜单) "115": "/moneyManage/executor", // 退款执行(现金管理子菜单) "147": "/moneyManage/financialAccount", // 财务核算(现金管理子菜单) "148": "/moneyManage/financialAccount/cashFlow", // 资金流水账(财务核算子菜单) "149": "/moneyManage/financialAccount/performanceAttribution", // 业绩归属账(财务核算子菜单) "125": "/channelManage/reward", // 打赏管理(频道管理子菜单) "126": "/channelManage/fans", // 铁粉管理(频道管理子菜单) "127": "/channelManage/cart", // 小黄车管理(频道管理子菜单) "150": "/walletManage", // 钱包管理 "151": "/walletManage/walletBalance", // 钱包余额 "152": "/walletManage/walletDetail", // 钱包明细 "153": "/walletManage/walletDetail/hkWallet", // 香港钱包 "154": "/walletManage/walletDetail/sgWalletHC", // 新加坡HC钱包 "156": "/walletManage/walletDetail/sgWalletCM", // 新加坡CM钱包 "155": "/walletManage/walletDetail/myWallet", // 马来西亚钱包 "157": "/walletManage/walletDetail/caWallet", // 加拿大钱包 "158": "/walletManage/walletDetail/thWalletHS", // 泰国HS钱包 "159": "/walletManage/walletDetail/thWalletHA", // 泰国HA钱包 "160": "/walletManage/walletDetail/vnWallet", // 越南钱包 "161": "/walletManage/walletDetail/bjWallet" // 北京钱包 }; // 从映射表中匹配路由,无匹配时返回无权限页面路径 return routeMap[menu.id] || '/noPermission'; }