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