From b94b71d44d62802bb8093f64a202d0176fdade50 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期二, 05 八月 2025 17:00:46 +0800
Subject: [PATCH] '一些更改'

---
 src/views/system/dept/index.vue      |   26 +-------
 src/router/modules/item.ts           |   23 +++++--
 src/store/modules/user.ts            |   17 ++++-
 src/store/types.ts                   |    1 
 types/router.d.ts                    |    2 
 src/views/mine/index.vue             |    3 +
 src/views/system/dept/utils/hook.tsx |    8 ++
 src/utils/auth.ts                    |   28 +++++++--
 src/router/modules/mine.ts           |    2 
 src/views/system/dept/utils/rule.ts  |   38 ++++++------
 src/router/index.ts                  |   12 +--
 src/store/modules/multiTags.ts       |    2 
 src/router/utils.ts                  |   11 +++
 13 files changed, 101 insertions(+), 72 deletions(-)

diff --git a/src/router/index.ts b/src/router/index.ts
index 1d1dbca..4f09942 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -128,7 +128,7 @@
       if (!item.meta.title) return "";
       const Title = getConfig().Title;
       if (Title) document.title = `${item.meta.title} | ${Title}`;
-      else document.title = item.meta.title as string;
+      else document.title = item.meta.title;
     });
   }
   /** 濡傛灉宸茬粡鐧诲綍骞跺瓨鍦ㄧ櫥褰曚俊鎭悗涓嶈兘璺宠浆鍒拌矾鐢辩櫧鍚嶅崟锛岃�屾槸缁х画淇濇寔鍦ㄥ綋鍓嶉〉闈� */
@@ -137,7 +137,7 @@
   }
   if (Cookies.get(multipleTabsKey) && userInfo) {
     // 鏃犳潈闄愯烦杞�403椤甸潰
-    if (to.meta?.roles && !isOneOfArray(to.meta?.roles, userInfo?.exRoles)) {
+    if (to.meta?.roles && !isOneOfArray(to.meta?.roles, userInfo?.roles)) {
       next({ path: "/error/403" });
     }
     // 寮�鍚殣钘忛椤靛悗鍦ㄦ祻瑙堝櫒鍦板潃鏍忔墜鍔ㄨ緭鍏ラ椤祑elcome璺敱鍒欒烦杞埌404椤甸潰
@@ -197,12 +197,8 @@
       if (whiteList.indexOf(to.path) !== -1) {
         next();
       } else {
-        // if (noLoginList.indexOf(to.path) == -1) {
-        next();
-        // } else {
-        //   removeToken();
-        //   next({ path: "/login" });
-        // }
+        removeToken();
+        next({ path: "/login" });
       }
     } else {
       next();
diff --git a/src/router/modules/item.ts b/src/router/modules/item.ts
index 28141ae..7c93c3e 100644
--- a/src/router/modules/item.ts
+++ b/src/router/modules/item.ts
@@ -1,12 +1,21 @@
 export default {
   path: "/item",
-  component: () => import("@/views/system/dept/index.vue"),
-  name: "item",
-  // redirect: "/error/403",
   meta: {
-    icon: "ri/information-line",
-    // showLink: hasFlash,
     title: "椤圭洰绠$悊",
-    rank: 9
-  }
+    icon: "mdi:chart-timeline"
+  },
+  children: [
+    {
+      // path闅忎究鍐欙紝浣嗗墠闈㈠繀椤绘湁涓� `/`
+      path: "/item",
+      // component瀵瑰簲鐨勫�煎墠涓嶉渶瑕佸姞 / 鍊煎搴旂殑鏄疄闄呬笟鍔� `.vue` 鎴� `.tsx` 浠g爜璺緞
+      component: () => import("@/views/system/dept/index.vue"),
+      name: "item",
+      meta: {
+        title: "椤圭洰绠$悊",
+        roles: ["GYS"]
+        // showLink:false
+      }
+    }
+  ]
 } satisfies RouteConfigsTable;
diff --git a/src/router/modules/mine.ts b/src/router/modules/mine.ts
index 47dd1bb..3ec70cd 100644
--- a/src/router/modules/mine.ts
+++ b/src/router/modules/mine.ts
@@ -4,7 +4,7 @@
   name: "Mine",
   // redirect: "/error/403",
   meta: {
-    icon: "ep/home-filled",
+    icon: "mdi:account-outline",
     // showLink: false,
     title: "涓汉涓績",
     rank: 9
diff --git a/src/router/utils.ts b/src/router/utils.ts
index 9137806..b5e524f 100644
--- a/src/router/utils.ts
+++ b/src/router/utils.ts
@@ -26,6 +26,7 @@
 const IFrame = () => import("@/layout/frame.vue");
 // https://cn.vitejs.dev/guide/features.html#glob-import
 const modulesRoutes = import.meta.glob("/src/views/**/*.{vue,tsx}");
+const quanxianList = ["/item"];
 
 // 鍔ㄦ�佽矾鐢�
 import { getAsyncRoutes } from "@/api/routes";
@@ -55,9 +56,15 @@
 
 /** 杩囨护meta涓璼howLink涓篺alse鐨勮彍鍗� */
 function filterTree(data: RouteComponent[]) {
+  const hasFlsh = useUserStoreHook().nowRole.hasFlsh;
   const newTree = cloneDeep(data).filter(
-    (v: { meta: { showLink: boolean } }) => v.meta?.showLink !== false
+    (v: { meta: { showLink: boolean } }) => {
+      quanxianList.includes(v.path) ? (v.meta.showLink = hasFlsh) : null;
+      return v.meta?.showLink !== false;
+    }
   );
+  console.log(newTree);
+
   newTree.forEach(
     (v: { children }) => v.children && (v.children = filterTree(v.children))
   );
@@ -85,7 +92,7 @@
 /** 浠巐ocalStorage閲屽彇鍑哄綋鍓嶇櫥褰曠敤鎴风殑瑙掕壊roles锛岃繃婊ゆ棤鏉冮檺鐨勮彍鍗� */
 function filterNoPermissionTree(data: RouteComponent[]) {
   const currentRoles =
-    storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? [];
+    storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? [];
   const newTree = cloneDeep(data).filter((v: any) =>
     isOneOfArray(v.meta?.roles, currentRoles)
   );
diff --git a/src/store/modules/multiTags.ts b/src/store/modules/multiTags.ts
index 41346b8..839b8f7 100644
--- a/src/store/modules/multiTags.ts
+++ b/src/store/modules/multiTags.ts
@@ -62,8 +62,6 @@
       value?: T | multiType,
       position?: positionType
     ): T {
-      console.log(mode, "--------------",value);
-
       switch (mode) {
         case "equal":
           this.multiTags = value;
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index b4f62ea..fabcc62 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -38,7 +38,7 @@
     username: storageLocal().getItem<DataInfo<number>>(userKey)?.username ?? "",
     // 鏄电О
     nickname: storageLocal().getItem<DataInfo<number>>(userKey)?.nickname ?? "",
-    // 椤甸潰绾у埆鏉冮檺
+    // 褰撳墠瑙掕壊鍒楄〃
     exRoles: storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? [],
     // 鎸夐挳绾у埆鏉冮檺
     permissions:
@@ -51,7 +51,9 @@
     enterpriseInfo:
       storageLocal().getItem<CusExtendDto>("enterpriseInfo") ?? {},
     nowRole: storageLocal().getItem<nowRoleType>("nowRole") ?? {},
-    rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? []
+    rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? [],
+    // 椤甸潰绾у埆鏉冮檺
+    roles: storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? []
   }),
   actions: {
     /** 瀛樺偍澶村儚 */
@@ -67,15 +69,19 @@
       this.nickname = nickname;
     },
     /** 瀛樺偍鐢ㄦ埛瑙掕壊 */
-    SET_ROLES(exRoles: Array<string>) {
+    SET_EXROLES(exRoles: Array<string>) {
       this.exRoles = exRoles;
+    },
+    /** 瀛樺偍瑙掕壊 */
+    SET_ROLES(roles: Array<string>) {
+      this.roles = roles;
     },
     /** 瀛樺偍瑙掕壊褰撳墠瑙掕壊 */
     SET_NOW_ROLE(nowRole: nowRoleType) {
       this.nowRole = nowRole;
     },
     /** 瀛樺偍瑙掕壊鍒楄〃 */
-    SET_ROLES_LIST(rolesList: Array<string>) {
+    SET_EXROLES_LIST(rolesList: Array<string>) {
       this.rolesList = rolesList;
     },
     /** 瀛樺偍鎸夐挳绾у埆鏉冮檺 */
@@ -100,6 +106,7 @@
         getLogin(obj)
           .then(data => {
             if (data?.code == 200) {
+              data.result.roles = [obj.exRuleCode];
               setToken(data.result);
               this.getNowRole(obj.exRuleCode);
             }
@@ -144,6 +151,7 @@
         getChangeLogoInExRule(obj)
           .then(async data => {
             if (data?.code == 200) {
+              data.result.roles = [obj.ruleCode];
               setToken(data.result);
               this.getNowRole(obj.ruleCode);
               await this.getCusExtendInfo();
@@ -174,6 +182,7 @@
     logOut() {
       this.username = "";
       this.exRoles = [];
+      this.roles = [];
       this.permissions = [];
       removeToken();
       useMultiTagsStoreHook().handleTags("equal", [...routerArrays]);
diff --git a/src/store/types.ts b/src/store/types.ts
index 6f92baa..f80f533 100644
--- a/src/store/types.ts
+++ b/src/store/types.ts
@@ -47,6 +47,7 @@
   username?: string;
   nickname?: string;
   exRoles?: Array<string>;
+  roles?: Array<string>;
   permissions?: Array<string>;
   isRemembered?: boolean;
   loginDay?: number;
diff --git a/src/utils/auth.ts b/src/utils/auth.ts
index d4646a5..65b67b0 100644
--- a/src/utils/auth.ts
+++ b/src/utils/auth.ts
@@ -16,8 +16,10 @@
   username?: string;
   /** 鏄电О */
   nickname?: string;
-  /** 褰撳墠鐧诲綍鐢ㄦ埛鐨勮鑹� */
+  /** 褰撳墠鐧诲綍鐢ㄦ埛鐨勮鑹插垪琛� */
   exRoles?: Array<string>;
+  /** 褰撳墠鐧诲綍鐢ㄦ埛鐨勮鑹� */
+  roles?: Array<string>;
   /** 褰撳墠鐧诲綍鐢ㄦ埛鐨勬寜閽骇鍒潈闄� */
   permissions?: Array<string>;
 }
@@ -193,11 +195,19 @@
       : {}
   );
 
-  function setUserKey({ avatar, username, nickname, exRoles, permissions }) {
+  function setUserKey({
+    avatar,
+    username,
+    nickname,
+    exRoles,
+    permissions,
+    roles
+  }) {
     useUserStoreHook().SET_AVATAR(avatar);
     useUserStoreHook().SET_USERNAME(username);
     useUserStoreHook().SET_NICKNAME(nickname);
-    useUserStoreHook().SET_ROLES(exRoles);
+    useUserStoreHook().SET_EXROLES(exRoles);
+    useUserStoreHook().SET_ROLES(roles);
     useUserStoreHook().SET_PERMS(permissions);
     storageLocal().setItem(userKey, {
       refreshToken,
@@ -206,17 +216,19 @@
       username,
       nickname,
       exRoles,
+      roles,
       permissions
     });
   }
 
-  if (data.exRoles) {
-    const { username, exRoles } = data;
+  if (data.exRoles && data.roles) {
+    const { username, exRoles, roles } = data;
     setUserKey({
       avatar: data?.avatar ?? "",
       username,
       nickname: data?.nickname ?? "",
       exRoles,
+      roles,
       permissions: data?.permissions ?? []
     });
   } else {
@@ -228,6 +240,8 @@
       storageLocal().getItem<DataInfo<number>>(userKey)?.nickname ?? "";
     const exRoles =
       storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? [];
+    const roles =
+      storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? [];
     const permissions =
       storageLocal().getItem<DataInfo<number>>(userKey)?.permissions ?? [];
     setUserKey({
@@ -235,6 +249,7 @@
       username,
       nickname,
       exRoles,
+      roles,
       permissions
     });
   }
@@ -250,7 +265,7 @@
 }
 
 export function setRoleListInfo(data: DataInfo<string>) {
-  useUserStoreHook().SET_ROLES_LIST(data);
+  useUserStoreHook().SET_EXROLES_LIST(data);
   storageLocal().setItem("rolesList", data);
 }
 
@@ -262,6 +277,7 @@
     });
     data = { ...obj, ...data };
   }
+  useUserStoreHook().SET_ROLES([data.name]);
   useUserStoreHook().SET_NOW_ROLE(data);
   storageLocal().setItem("nowRole", data);
 }
diff --git a/src/views/mine/index.vue b/src/views/mine/index.vue
index 89bb176..91d9e6e 100644
--- a/src/views/mine/index.vue
+++ b/src/views/mine/index.vue
@@ -11,6 +11,8 @@
 import { cusExtendInfo, changeCusExtend } from "@/api/mine";
 import { Edit } from "@element-plus/icons-vue";
 import { enterpriseTypes } from "@/api/register/index";
+import { initRouter, getTopMenu, handleAliveRoute } from "@/router/utils";
+
 const ruleFormRef = ref<FormInstance>();
 const isLoading = ref(false);
 const showDialog = ref(false);
@@ -326,6 +328,7 @@
     await useUserStoreHook().changeLogoInExRule({
       ruleCode: useUserStoreHook().nowRole.code
     });
+    initRouter();
     message("淇敼鎴愬姛锛�", {
       type: "success"
     });
diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue
index 3470945..f156df0 100644
--- a/src/views/system/dept/index.vue
+++ b/src/views/system/dept/index.vue
@@ -68,9 +68,8 @@
                 class="w-full"
                 :options="state.regionList"
                 :props="{
-                  value: 'id',
+                  value: 'code',
                   label: 'name',
-                  emitPath: false,
                   children: 'regions'
                 }"
                 clearable
@@ -180,12 +179,7 @@
           </el-col>
           <el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4">
             <el-form-item label-width="40">
-              <el-button
-                type="primary"
-                :icon="useRenderIcon('ri/search-line')"
-                :loading="loading"
-                @click="onSearch"
-              >
+              <el-button type="primary" :loading="loading" @click="onSearch">
                 鎼滅储
               </el-button>
               <!-- <el-button
@@ -194,13 +188,7 @@
               >
                 閲嶇疆
               </el-button> -->
-              <el-button
-                type="primary"
-                :icon="useRenderIcon(AddFill)"
-                @click="openDialog()"
-              >
-                鏂板
-              </el-button>
+              <el-button type="primary" @click="openDialog()"> 鏂板 </el-button>
             </el-form-item>
           </el-col>
         </el-row>
@@ -251,9 +239,7 @@
               :size="size"
               :icon="useRenderIcon(EditPen)"
               @click="openDialog('淇敼', row)"
-            >
-              淇敼
-            </el-button>
+            />
             <!-- <el-button
               class="reset-margin"
               link
@@ -275,9 +261,7 @@
                   type="primary"
                   :size="size"
                   :icon="useRenderIcon(Delete)"
-                >
-                  鍒犻櫎
-                </el-button>
+                />
               </template>
             </el-popconfirm>
           </template>
diff --git a/src/views/system/dept/utils/hook.tsx b/src/views/system/dept/utils/hook.tsx
index bb68750..1825877 100644
--- a/src/views/system/dept/utils/hook.tsx
+++ b/src/views/system/dept/utils/hook.tsx
@@ -181,11 +181,11 @@
     }
   };
   async function onSearch() {
-    loading.value = true;
     const obj = cloneDeep(form);
     obj.tousu = obj.tousu.join("");
     obj.zhiyi = obj.zhiyi.join("");
-    obj.xingzhengquyu = obj.xingzhengquyu.join("");
+    obj.xingzhengquyu = obj.xingzhengquyu ? obj.xingzhengquyu.join("") : "";
+    loading.value = true;
     const { result } = await zhaobiaoPageOrder(obj); // 杩欓噷鏄繑鍥炰竴缁存暟缁勭粨鏋勶紝鍓嶇鑷澶勭悊鎴愭爲缁撴瀯锛岃繑鍥炴牸寮忚姹傦細鍞竴id鍔犵埗鑺傜偣parentId锛宲arentId鍙栫埗鑺傜偣id
     const newData = result.items;
     loading.value = false;
@@ -216,6 +216,8 @@
   }
 
   function openDialog(title = "鏂板", row?: FormItemProps) {
+    console.log(row,'-');
+    
     addDialog({
       title: `${title}椤圭洰`,
       props: {
@@ -299,6 +301,8 @@
           } else {
             closeLoading();
             const fail = [];
+            console.log(obj);
+            
             for (const key in obj) {
               fail.push(obj[key][0].message);
             }
diff --git a/src/views/system/dept/utils/rule.ts b/src/views/system/dept/utils/rule.ts
index 3e6edbc..4b05d23 100644
--- a/src/views/system/dept/utils/rule.ts
+++ b/src/views/system/dept/utils/rule.ts
@@ -26,9 +26,9 @@
   ],
   // 閲囪喘棰勭畻锛堝彲閫夛紝闇�涓烘暟瀛楋級
   caigouyusuan: [
-    { required: true, message: "璇疯緭鍏ラ噰璐绠�", trigger: "blur" },
-    { type: "number", message: "閲囪喘棰勭畻蹇呴』涓烘暟瀛�", trigger: "blur" },
-    { min: 0, message: "閲囪喘棰勭畻涓嶈兘涓鸿礋鏁�", trigger: "blur" }
+    { required: true, message: "璇疯緭鍏ラ噰璐绠�", trigger: "blur" }
+    // { type: "number", message: "閲囪喘棰勭畻蹇呴』涓烘暟瀛�", trigger: "blur" },
+    // { min: 0, message: "閲囪喘棰勭畻涓嶈兘涓鸿礋鏁�", trigger: "blur" }
   ],
   // 瀹氭爣瑙勫垯锛堝彲閫夛級
   dingbiaoguize: [
@@ -37,15 +37,15 @@
   ],
   // 鎶ュ悕璐癸紙鍙�夛紝闇�涓烘暟瀛楋級
   baomingfei: [
-    { required: true, message: "璇疯緭鍏ユ姤鍚嶈垂", trigger: "blur" },
-    { type: "number", message: "鎶ュ悕璐瑰繀椤讳负鏁板瓧", trigger: "blur" },
-    { min: 0, message: "鎶ュ悕璐逛笉鑳戒负璐熸暟", trigger: "blur" }
+    { required: true, message: "璇疯緭鍏ユ姤鍚嶈垂", trigger: "blur" }
+    // { type: "number", message: "鎶ュ悕璐瑰繀椤讳负鏁板瓧", trigger: "blur" },
+    // { min: 0, message: "鎶ュ悕璐逛笉鑳戒负璐熸暟", trigger: "blur" }
   ],
   // 鎶曟爣淇濊瘉閲戯紙鍙�夛紝闇�涓烘暟瀛楋級
   toubiaobaozhengjin: [
-    { required: true, message: "璇疯緭鍏ユ姇鏍囦繚璇侀噾璐�", trigger: "blur" },
-    { type: "number", message: "鎶曟爣淇濊瘉閲戝繀椤讳负鏁板瓧", trigger: "blur" },
-    { min: 0, message: "鎶曟爣淇濊瘉閲戜笉鑳戒负璐熸暟", trigger: "blur" }
+    { required: true, message: "璇疯緭鍏ユ姇鏍囦繚璇侀噾璐�", trigger: "blur" }
+    // { type: "number", message: "鎶曟爣淇濊瘉閲戝繀椤讳负鏁板瓧", trigger: "blur" },
+    // { min: 0, message: "鎶曟爣淇濊瘉閲戜笉鑳戒负璐熸暟", trigger: "blur" }
   ],
   // 鑱斿悎浣撴姇鏍囷紙鍙�夛紝闇�涓哄竷灏斿�硷級
   lianhetitoubiao: [
@@ -78,18 +78,18 @@
     { type: "array", message: "琛屾斂鍖哄煙蹇呴』涓烘暟缁勬牸寮�", trigger: "change" }
   ],
   // 琛屾斂鍖哄煙鍚嶇О锛堝彲閫夛級
-  xingzhengquyuName: [
-    { required: false },
-    { max: 100, message: "琛屾斂鍖哄煙鍚嶇О闀垮害涓嶈兘瓒呰繃100涓瓧绗�", trigger: "blur" }
-  ],
+  // xingzhengquyuName: [
+  //   { required: false },
+  //   { max: 100, message: "琛屾斂鍖哄煙鍚嶇О闀垮害涓嶈兘瓒呰繃100涓瓧绗�", trigger: "blur" }
+  // ],
   // 鏈烘瀯浠g爜锛堝彲閫夛紝楠岃瘉鏍煎紡锛�
   jigoudaima: [
-    { required: true, message: "璇疯緭鍏ユ満鏋勪唬鐮�", trigger: "blur" },
-    {
-      pattern: /^[A-Z0-9]{8}-[A-Z0-9]{1}$/,
-      message: "鏈烘瀯浠g爜鏍煎紡涓嶆纭�",
-      trigger: "blur"
-    }
+    { required: true, message: "璇疯緭鍏ユ満鏋勪唬鐮�", trigger: "blur" }
+    // {
+    //   pattern: /^[A-Z0-9]{8}-[A-Z0-9]{1}$/,
+    //   message: "鏈烘瀯浠g爜鏍煎紡涓嶆纭�",
+    //   trigger: "blur"
+    // }
   ],
   // 浠g爜绫诲瀷锛堝彲閫夛級
   daimaleixing: [
diff --git a/types/router.d.ts b/types/router.d.ts
index 415a953..f0d0a7e 100644
--- a/types/router.d.ts
+++ b/types/router.d.ts
@@ -24,6 +24,8 @@
     showParent?: boolean;
     /** 椤甸潰绾у埆鏉冮檺璁剧疆 `鍙�塦 */
     exRoles?: Array<string>;
+    // 椤甸潰绾у埆鏉冮檺璁剧疆
+    roles?: Array<string>;
     /** 鎸夐挳绾у埆鏉冮檺璁剧疆 `鍙�塦 */
     auths?: Array<string>;
     /** 璺敱缁勪欢缂撳瓨锛堝紑鍚� `true`銆佸叧闂� `false`锛塦鍙�塦 */

--
Gitblit v1.9.1