Ver Fonte

fix: fix some bug

xiaoxian521 há 3 anos atrás
pai
commit
ef2aa27a87
2 ficheiros alterados com 16 adições e 14 exclusões
  1. 3 4
      src/router/index.ts
  2. 13 10
      src/store/modules/permission.ts

+ 3 - 4
src/router/index.ts

@@ -35,8 +35,6 @@ export const constantRoutesArr = ascending(constantRoutes).concat(
   ...remainingRouter
 );
 
-export const isLogin = storageSession.getItem("info");
-
 const router = createRouter({
   history: createWebHashHistory(),
   routes: ascending(constantRoutes).concat(...remainingRouter),
@@ -61,14 +59,15 @@ const whiteList = ["/login", "/register"];
 
 router.beforeEach((to, _from, next) => {
   // _from?.name;
-  if (isLogin) {
+  let name = storageSession.getItem("info");
+  if (name) {
     usePermissionStoreHook().changeSetting();
   }
   NProgress.start();
   const { t } = i18n.global;
   // @ts-ignore
   to.meta.title ? (document.title = t(to.meta.title)) : ""; // 动态title
-  whiteList.indexOf(to.path) !== -1 || isLogin ? next() : next("/login"); // 全部重定向到登录页
+  whiteList.indexOf(to.path) !== -1 || name ? next() : next("/login"); // 全部重定向到登录页
 });
 
 router.afterEach(() => {

+ 13 - 10
src/store/modules/permission.ts

@@ -1,11 +1,12 @@
 import { defineStore } from "pinia";
 import { store } from "/@/store";
 
-import { constantRoutesArr, ascending, isLogin } from "/@/router/index";
+import { constantRoutesArr, ascending } from "/@/router/index";
 
 import { getAsyncRoutes } from "/@/api/routes";
 import Layout from "/@/layout/index.vue";
 import router from "/@/router/index";
+import { storageSession } from "/@/utils/storage";
 
 // https://cn.vitejs.dev/guide/features.html#glob-import
 const modulesRoutes = import.meta.glob("/src/views/*/*/*.vue");
@@ -41,8 +42,8 @@ export const usePermissionStore = defineStore({
       this.asyncRoutes.push(routes);
     },
     async changeSetting() {
-      // 异步路由
-      await getAsyncRoutes({ name: isLogin.username }).then(({ info }) => {
+      let name = storageSession.getItem("info")?.username;
+      await getAsyncRoutes({ name }).then(({ info }) => {
         if (info.length === 0) {
           this.wholeRoutes = router.options.routes.filter(
             (v) => v.meta.showLink
@@ -55,14 +56,16 @@ export const usePermissionStore = defineStore({
             router.options.routes.findIndex(
               (value) => value.path === v.path
             ) !== -1
-          )
+          ) {
             return;
-          // 切记将路由push到routes后还需要使用addRoute,这样路由才能正常跳转
-          router.options.routes.push(v);
-          // 最终路由进行升序
-          ascending(router.options.routes);
-          router.addRoute(v.name, v);
-          this.asyncActionRoutes(v);
+          } else {
+            // 切记将路由push到routes后还需要使用addRoute,这样路由才能正常跳转
+            router.options.routes.push(v);
+            // 最终路由进行升序
+            ascending(router.options.routes);
+            router.addRoute(v.name, v);
+            this.asyncActionRoutes(v);
+          }
         });
       });
     },