Browse Source

fix: fix homePage affix error

修复当没有通过接口为用户指定首页时,如果默认的首页是一个带有重定向的路由,则可能出现双首页Tab的问题
pull/941/head
无木 5 years ago
parent
commit
c1178027f0
  1. 2
      src/router/routes/modules/about.ts
  2. 12
      src/store/modules/permission.ts

2
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,
},
},
],

12
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);
});

Loading…
Cancel
Save