提交 e0dc5cf2 编写于 作者: V Vben

fix(breadcrumb): ensure that the single-level breadcrumbs jump correctly close #321

上级 d5d4c4b4
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
- 修复树组件 demo 示例样式错误 - 修复树组件 demo 示例样式错误
- 修复账号管理新增未清空旧数据 - 修复账号管理新增未清空旧数据
- form 组件应允许 setFieldsValue 方法值为 null 或者 undefined - form 组件应允许 setFieldsValue 方法值为 null 或者 undefined
- 确保单级面包屑正确跳转
## 2.0.2 (2021-03-04) ## 2.0.2 (2021-03-04)
......
...@@ -72,10 +72,25 @@ ...@@ -72,10 +72,25 @@
if (currentRoute.value.meta?.currentActiveMenu) { if (currentRoute.value.meta?.currentActiveMenu) {
filterBreadcrumbList.push((currentRoute.value as unknown) as RouteLocationMatched); filterBreadcrumbList.push((currentRoute.value as unknown) as RouteLocationMatched);
} }
// routes.value = filterBreadcrumbList.length === 1 ? [] : filterBreadcrumbList; routes.value = subRouteExtraction(filterBreadcrumbList);
routes.value = filterBreadcrumbList;
}); });
function subRouteExtraction(routeList: RouteLocationMatched[]) {
const resultRoutes: RouteLocationMatched[] = [];
routeList.forEach((route) => {
if (route.children?.length === 1) {
const subRoute = route.children[0] as RouteLocationMatched;
const subRouteName = subRoute.name as string;
const routeName = route.name;
if (subRouteName && `${subRouteName}Parent` === routeName) {
route = subRoute;
}
}
resultRoutes.push(route);
});
return resultRoutes;
}
function filterItem(list: RouteLocationMatched[]) { function filterItem(list: RouteLocationMatched[]) {
let resultList = filter(list, (item) => { let resultList = filter(list, (item) => {
const { meta } = item; const { meta } = item;
...@@ -83,15 +98,14 @@ ...@@ -83,15 +98,14 @@
if (!meta) { if (!meta) {
return false; return false;
} }
const { title, hideBreadcrumb, hideMenu } = meta; const { title, hideBreadcrumb, hideMenu } = meta;
if (!title || hideBreadcrumb || hideMenu) { if (!title || hideBreadcrumb || hideMenu) {
return false; return false;
} }
return true; return true;
}).filter((item) => !item.meta?.hideBreadcrumb || !item.meta?.hideMenu); }).filter((item) => !item.meta?.hideBreadcrumb || !item.meta?.hideMenu);
// resultList = resultList.filter((item) => item.path !== PageEnum.BASE_HOME);
return resultList; return resultList;
} }
...@@ -101,7 +115,8 @@ ...@@ -101,7 +115,8 @@
children, children,
redirect, redirect,
meta, meta,
// components
// components
} = route; } = route;
// const isParent = // const isParent =
...@@ -123,23 +138,29 @@ ...@@ -123,23 +138,29 @@
if (redirect && isString(redirect)) { if (redirect && isString(redirect)) {
go(redirect); go(redirect);
} else { } else {
const ps = paths.slice(1); let goPath = '';
const lastPath = ps.pop() || ''; if (paths.length === 1) {
const parentPath = ps.pop() || ''; goPath = paths[0];
let path = `${parentPath}/${lastPath}`; } else {
path = /^\//.test(path) ? path : `/${path}`; const ps = paths.slice(1);
go(path); const lastPath = ps.pop() || '';
const parentPath = ps.pop() || '';
goPath = `${parentPath}/${lastPath}`;
}
goPath = /^\//.test(goPath) ? goPath : `/${goPath}`;
go(goPath);
} }
} }
function hasRedirect(routes: RouteLocationMatched[], route: RouteLocationMatched) { function hasRedirect(routes: RouteLocationMatched[], route: RouteLocationMatched) {
if (route?.meta?.isLink) {
return true;
}
if (routes.indexOf(route) === routes.length - 1) { if (routes.indexOf(route) === routes.length - 1) {
return false; return false;
} }
// if (route?.meta?.isLink) {
// return true;
// }
return true; return true;
} }
......
...@@ -51,7 +51,7 @@ import { isDevMode } from '/@/utils/env'; ...@@ -51,7 +51,7 @@ import { isDevMode } from '/@/utils/env';
// The development environment takes effect // The development environment takes effect
if (isDevMode()) { if (isDevMode()) {
app.config.performance = true; // app.config.performance = true;
window.__APP__ = app; window.__APP__ = app;
} }
})(); })();
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册