From 20459fe59f680031bfc7c1012be860e0727cb016 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期二, 05 八月 2025 17:47:09 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdmin --- src/store/modules/permission.ts | 97 +++++++++++++++++++++++++----------------------- 1 files changed, 51 insertions(+), 46 deletions(-) diff --git a/src/store/modules/permission.ts b/src/store/modules/permission.ts index 6aa2a72..5416c3d 100644 --- a/src/store/modules/permission.ts +++ b/src/store/modules/permission.ts @@ -3,6 +3,8 @@ // import { RouteConfigs } from "@/layout/types"; import { constantRoutes, Route } from '@/router'; import { addAsyncRoutes, ascending } from '@/router/utils'; +import * as menuServices from '@/services/api/menu'; +import { myClient } from '@/constants/query'; export interface PermissonState { routes: Route[]; @@ -26,11 +28,20 @@ getModuleList() { return new Promise<Route[]>(async (resolve, reject) => { try { - // const res = await baseModuleServices.getCurrentUserModuleList({ - // showLoading: false, - // }); - const res = []; - const accessedRoutes = ascending(addAsyncRoutes(formatModuleList(res, null))); // createAccessedRoutes(userMenuList, userInfo) + const params: API.APIgetMenusParams = { + userType: EnumUserType.Operation, + clientType: EnumClientType.PcWeb, + }; + const res = await myClient.fetchQuery({ + queryKey: ['menuServices/getMenus', params], + queryFn: () => { + return menuServices.getMenus(params, { + showLoading: false, + }); + }, + staleTime: Infinity, + }); + const accessedRoutes = ascending(addAsyncRoutes(formatModuleList(res))); // createAccessedRoutes(userMenuList, userInfo) //@ts-ignore accessedRoutes.push({ path: '/:pathMatch(.*)*', redirect: '/404', hidden: true }); @@ -55,47 +66,41 @@ return usePermissionStore(store); } -function formatModuleList(moduleList: API.ModuleDto[], parentId: string | null) { - const treeModuleList: Route[] = []; - if (moduleList.length > 0) { - moduleList.forEach((item) => { - if (item.parentId === parentId) { - const isRootModule = !item.parentId && item.isMenu === 1; - //@ts-ignore - const asyncRoute: Route = isRootModule - ? { - path: formatPath(item.path), - name: item.enCode, - redirect: 'noRedirect', - alwaysShow: true, - hidden: item.isMenu !== 1, - meta: { - title: item.name, - icon: item.icon, - moduleId: item.id, - rank: item?.sortCode, - rootMenu: true, - }, - } - : { - path: formatPath(item.path), - name: item.enCode, - hidden: item.isMenu !== 1, - alwaysShow: true, - meta: { - title: item.name, - moduleId: item.id, - noCache: !item.isCache, - rank: item?.sortCode, - }, - }; - const children = formatModuleList(moduleList, item.id); - asyncRoute.children = children; - treeModuleList.push(asyncRoute); - } - }); - } - return treeModuleList; +function formatModuleList(moduleList: API.GetMenusQueryResultItem[]) { + return moduleList.map((item) => { + const isRootModule = !item.parentId && item.type == EnumMenuType.Menu; + //@ts-ignore + let asyncRoute: Route = isRootModule + ? { + path: formatPath(item.url), + name: item.code, + redirect: 'noRedirect', + alwaysShow: true, + hidden: item.type != EnumMenuType.Menu, + meta: { + title: item.name, + icon: item.icon, + moduleId: item.id, + rank: item?.sort, + rootMenu: true, + }, + } + : { + path: formatPath(item.url), + name: item.code, + hidden: item.type != EnumMenuType.Menu, + alwaysShow: true, + meta: { + title: item.name, + moduleId: item.id, + noCache: !item.isCache, + rank: item?.sort, + }, + }; + const children = formatModuleList(item.children); + asyncRoute.children = children; + return asyncRoute; + }); } function formatPath(path: string) { -- Gitblit v1.9.1