From 439e3b0f076280311b7cd4251a95820730242780 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期三, 07 八月 2024 10:43:33 +0800
Subject: [PATCH] 一些更新

---
 src/hooks/web/usePermission.ts |   34 ++++++++++++++++++++++------------
 1 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/src/hooks/web/usePermission.ts b/src/hooks/web/usePermission.ts
index c367875..7853cf7 100644
--- a/src/hooks/web/usePermission.ts
+++ b/src/hooks/web/usePermission.ts
@@ -1,21 +1,21 @@
 import type { RouteRecordRaw } from 'vue-router';
 
-import { useAppStore } from '/@/store/modules/app';
-import { usePermissionStore } from '/@/store/modules/permission';
-import { useUserStore } from '/@/store/modules/user';
+import { useAppStore } from '@/store/modules/app';
+import { usePermissionStore } from '@/store/modules/permission';
+import { useUserStore } from '@/store/modules/user';
 
 import { useTabs } from './useTabs';
 
-import { router, resetRouter } from '/@/router';
-// import { RootRoute } from '/@/router/routes';
+import { router, resetRouter } from '@/router';
+// import { RootRoute } from '@/router/routes';
 
-import projectSetting from '/@/settings/projectSetting';
-import { PermissionModeEnum } from '/@/enums/appEnum';
-import { RoleEnum } from '/@/enums/roleEnum';
+import projectSetting from '@/settings/projectSetting';
+import { PermissionModeEnum } from '@/enums/appEnum';
+import { RoleEnum } from '@/enums/roleEnum';
 
 import { intersection } from 'lodash-es';
-import { isArray } from '/@/utils/is';
-import { useMultipleTabStore } from '/@/store/modules/multipleTab';
+import { isArray } from '@/utils/is';
+import { useMultipleTabStore } from '@/store/modules/multipleTab';
 
 // User permissions related operations
 export function usePermission() {
@@ -40,16 +40,18 @@
   /**
    * Reset and regain authority resource information
    * 閲嶇疆鍜岄噸鏂拌幏寰楁潈闄愯祫婧愪俊鎭�
-   * @param id
    */
   async function resume() {
     const tabStore = useMultipleTabStore();
     tabStore.clearCacheTabs();
     resetRouter();
+
+    // 鍔ㄦ�佸姞杞借矾鐢憋紙鍐嶆锛�
     const routes = await permissionStore.buildRoutesAction();
     routes.forEach((route) => {
       router.addRoute(route as unknown as RouteRecordRaw);
     });
+
     permissionStore.setLastBuildMenuTime();
     closeAll();
   }
@@ -63,7 +65,7 @@
       return def;
     }
 
-    const permMode = projectSetting.permissionMode;
+    const permMode = appStore.getProjectConfig.permissionMode;
 
     if ([PermissionModeEnum.ROUTE_MAPPING, PermissionModeEnum.ROLE].includes(permMode)) {
       if (!isArray(value)) {
@@ -75,6 +77,14 @@
     if (PermissionModeEnum.BACK === permMode) {
       const allCodeList = permissionStore.getPermCodeList as string[];
       if (!isArray(value)) {
+        const splits = ['||', '&&'];
+        const splitName = splits.find((item) => value.includes(item));
+        if (splitName) {
+          const splitCodes = value.split(splitName);
+          return splitName === splits[0]
+            ? intersection(splitCodes, allCodeList).length > 0
+            : intersection(splitCodes, allCodeList).length === splitCodes.length;
+        }
         return allCodeList.includes(value);
       }
       return (intersection(value, allCodeList) as string[]).length > 0;

--
Gitblit v1.9.3