You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

98 lines
3.1 KiB

// 菜单树过滤 (展示的? )
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) : []
}))
.sort((a, b) => a.id - b.id); // 按 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;
}
// 路由映射(左侧菜单栏)
export const getRoutePath = (menu) => {
// 路由映射表:key为接口menuName,value为对应路由路径
const routeMap = {
'工作台': '/workbench',
'金币管理': '/goldManage',
'现金管理': '/moneyManage',
'金币审核': '/audit',
'金豆审核': '/beanAudit',
'汇率管理': '/rate',
'金币充值': '/coinRecharge',
'金豆充值': '/beanRecharge',
'金币消耗': '/coinConsume',
'金豆消耗': '/beanConsume',
'退款管理': '/coinRefund',
'历史数据查询': '/history',
'新版金币查询': '/history/newHistory',
'旧版金币查询': '/history/oldHistory',
'权限管理': '/permissions',
'用户管理': '/permissions/userPermission',
'角色管理': '/permissions/rolePermission',
'金币客户账户明细': '/usergold',
'金豆客户账户明细': '/userbean',
'收款明细': '/moneyManage/receiveDetail',
'收款-地区客服':'/moneyManage/receiveDetail/receiveService',
'收款-地区财务':'/moneyManage/receiveDetail/receiveArea',
'收款-地区负责人':'/moneyManage/receiveDetail/receiveArea',
'收款-总部财务':'/moneyManage/receiveDetail/receiveHead',
'退款明细': '/moneyManage/refundDetail',
'退款-地区客服':'/moneyManage/refundDetail/refundService',
'退款-地区财务':'/moneyManage/refundDetail/refundFinance',
'退款-地区负责人':'/moneyManage/refundDetail/refundCharge',
'退款-总部财务':'/moneyManage/refundDetail/refundHeader',
'执行明细': '/moneyManage/executor',
};
// 未匹配的菜单默认使用id作为路由(可根据实际需求调整)
return routeMap[menu.menuName] || '/noPermission'
}