mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-01-24 02:00:25 +08:00
fix(breadcrumb): ensure that the single-level breadcrumbs jump correctly close #321
This commit is contained in:
parent
d5d4c4b413
commit
e0dc5cf2f2
@ -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 @@
|
|||||||
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 @@
|
|||||||
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 @@
|
|||||||
children,
|
children,
|
||||||
redirect,
|
redirect,
|
||||||
meta,
|
meta,
|
||||||
// components
|
|
||||||
|
// components
|
||||||
} = route;
|
} = route;
|
||||||
|
|
||||||
// const isParent =
|
// const isParent =
|
||||||
@ -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';
|
|||||||
|
|
||||||
// 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;
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
Loading…
Reference in New Issue
Block a user