From 6940bdec72ef961c2103947986bf30eaf2341205 Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期一, 23 十二月 2024 17:28:52 +0800
Subject: [PATCH] MergeItem

---
 src/layout/components/Logo/src/Logo.vue |   33 ++++++++++++++++++++++++++++++++-
 1 files changed, 32 insertions(+), 1 deletions(-)

diff --git a/src/layout/components/Logo/src/Logo.vue b/src/layout/components/Logo/src/Logo.vue
index d241130..ef80370 100644
--- a/src/layout/components/Logo/src/Logo.vue
+++ b/src/layout/components/Logo/src/Logo.vue
@@ -1,7 +1,17 @@
 <script lang="ts" setup>
 import { computed, onMounted, ref, unref, watch } from 'vue'
 import { useAppStore } from '@/store/modules/app'
+import { useUserStoreWithOut } from '@/store/modules/user'
+import { usePermissionStoreWithOut } from '@/store/modules/permission'
 import { useDesign } from '@/hooks/web/useDesign'
+import {isRelogin} from "@/config/axios/service";
+import router from "@/router";
+import type {RouteRecordRaw} from "vue-router";
+import {CACHE_KEY, useCache, useSessionCache} from "@/hooks/web/useCache";
+import {getAccessToken} from "@/utils/auth";
+import {getInfo} from "@/api/login";
+const { wsCache } = useCache()
+const { wsSessionCache } = useSessionCache()
 
 defineOptions({ name: 'Logo' })
 
@@ -13,11 +23,15 @@
 
 const show = ref(true)
 
+const homePath = ref('/index')
+
 const title = computed(() => appStore.getTitle)
 
 const layout = computed(() => appStore.getLayout)
 
 const collapse = computed(() => appStore.getCollapse)
+
+homePath.value = '/index'
 
 onMounted(() => {
   if (unref(collapse)) show.value = false
@@ -54,6 +68,22 @@
     }
   }
 )
+
+/** 刷新所有菜单权限 */
+const gotoHome = async () => {
+  const permissionStore = usePermissionStoreWithOut()
+  isRelogin.show = true
+  let userInfo = await getInfo()
+  wsCache.set(CACHE_KEY.USER, userInfo)
+  wsSessionCache.set(CACHE_KEY.ROLE_ROUTERS, userInfo.menus)
+  isRelogin.show = false
+  // 后端过滤菜单
+  await permissionStore.generateRoutes()
+  permissionStore.getAddRouters.forEach((route) => {
+    router.addRoute(route as unknown as RouteRecordRaw) // 动态添加可访问路由表
+  })
+}
+
 </script>
 
 <template>
@@ -64,7 +94,8 @@
         layout !== 'classic' ? `${prefixCls}__Top` : '',
         'flex !h-[var(--logo-height)] items-center cursor-pointer pl-8px relative decoration-none overflow-hidden'
       ]"
-      to="/"
+      @click="gotoHome"
+      :to="homePath"
     >
       <img
         class="h-[calc(var(--logo-height)-10px)] w-[calc(var(--logo-height)-10px)]"

--
Gitblit v1.9.3