diff --git a/src/router/helper/menuHelper.ts b/src/router/helper/menuHelper.ts index c4eb1dcdb..e2e92f4ea 100644 --- a/src/router/helper/menuHelper.ts +++ b/src/router/helper/menuHelper.ts @@ -1,5 +1,5 @@ import { AppRouteModule } from '@/router/types'; -import type { MenuModule, Menu, AppRouteRecordRaw } from '@/router/types'; +import type { Menu, AppRouteRecordRaw } from '@/router/types'; import { findPath, treeMap } from '@/utils/helper/treeHelper'; import { cloneDeep } from 'lodash-es'; import { isHttpUrl } from '@/utils/is'; @@ -30,13 +30,12 @@ function joinParentPath(menus: Menu[], parentPath = '') { } } } - -// Parsing the menu module -export function transformMenuModule(menuModule: MenuModule): Menu { - const menuList = [menuModule]; - - joinParentPath(menuList); - return menuList[0]; +// 菜单路径处理 +export function transformMenuModules(routeModList: Menu[]) { + const cloneMenuModules = cloneDeep(routeModList); + // 路径处理 + joinParentPath(cloneMenuModules); + return cloneMenuModules; } // 将路由转换成菜单 diff --git a/src/router/menus/index.ts b/src/router/menus/index.ts index f9e6b4f0a..7742fc5e9 100644 --- a/src/router/menus/index.ts +++ b/src/router/menus/index.ts @@ -3,7 +3,7 @@ import type { RouteRecordNormalized } from 'vue-router'; import { useAppStoreWithOut } from '@/store/modules/app'; import { usePermissionStore } from '@/store/modules/permission'; -import { transformMenuModule, getAllParentPath } from '@/router/helper/menuHelper'; +import { getAllParentPath } from '@/router/helper/menuHelper'; import { filter } from '@/utils/helper/treeHelper'; import { isHttpUrl } from '@/utils/is'; import { router } from '@/router'; @@ -12,7 +12,7 @@ import { pathToRegexp } from 'path-to-regexp'; const modules = import.meta.glob('../routes/modules/**/*.ts', { eager: true }); -const menuModules: MenuModule[] = []; +export const menuModules: MenuModule[] = []; Object.keys(modules).forEach((key) => { const mod = (modules as Recordable)[key].default || {}; @@ -40,17 +40,6 @@ const isRoleMode = () => { return getPermissionMode() === PermissionModeEnum.ROLE; }; -const staticMenus: Menu[] = []; -(() => { - menuModules.sort((a, b) => { - return (a.orderNo || 0) - (b.orderNo || 0); - }); - - for (const menu of menuModules) { - staticMenus.push(transformMenuModule(menu)); - } -})(); - async function getAsyncMenus() { const permissionStore = usePermissionStore(); //递归过滤所有隐藏的菜单 @@ -69,7 +58,7 @@ async function getAsyncMenus() { if (isRouteMappingMode()) { return menuFilter(permissionStore.getFrontMenuList); } - return staticMenus; + return permissionStore.getStaticMenuList; } export const getMenus = async (): Promise