فهرست منبع

fix: fix homePage affix error

修复当没有通过接口为用户指定首页时,如果默认的首页是一个带有重定向的路由,则可能出现双首页Tab的问题
无木 3 سال پیش
والد
کامیت
c1178027f0
2فایلهای تغییر یافته به همراه9 افزوده شده و 5 حذف شده
  1. 1 1
      src/router/routes/modules/about.ts
  2. 8 4
      src/store/modules/permission.ts

+ 1 - 1
src/router/routes/modules/about.ts

@@ -22,7 +22,7 @@ const dashboard: AppRouteModule = {
       meta: {
         title: t('routes.dashboard.about'),
         icon: 'simple-icons:about-dot-me',
-        // hideMenu: true,
+        hideMenu: true,
       },
     },
   ],

+ 8 - 4
src/store/modules/permission.ts

@@ -123,15 +123,19 @@ export const usePermissionStore = defineStore({
        * */
       const patchHomeAffix = (routes: AppRouteRecordRaw[]) => {
         if (!routes || routes.length === 0) return;
-        const homePath = userStore.getUserInfo.homePath || PageEnum.BASE_HOME;
+        let homePath: string = userStore.getUserInfo.homePath || PageEnum.BASE_HOME;
         function patcher(routes: AppRouteRecordRaw[], parentPath = '') {
           if (parentPath) parentPath = parentPath + '/';
           routes.forEach((route: AppRouteRecordRaw) => {
-            const { path, children } = route;
+            const { path, children, redirect } = route;
             const currentPath = path.startsWith('/') ? path : parentPath + path;
             if (currentPath === homePath) {
-              route.meta = Object.assign({}, route.meta, { affix: true });
-              throw new Error('end');
+              if (redirect) {
+                homePath = route.redirect! as string;
+              } else {
+                route.meta = Object.assign({}, route.meta, { affix: true });
+                throw new Error('end');
+              }
             }
             children && children.length > 0 && patcher(children, currentPath);
           });