refactor: ♻️ (store)优化路由处理逻辑,完整返回路由配置对象
This commit is contained in:
@@ -107,31 +107,19 @@ const parseDynamicRoutes = (rawRoutes: RouteVO[]): RouteRecordRaw[] => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 去除中间层的路由 `component` 属性
|
* 路由处理函数
|
||||||
|
* - 去除中间层路由 `component: Layout` 的 `component` 属性
|
||||||
* @param routes 路由数组
|
* @param routes 路由数组
|
||||||
* @param isTopLevel 是否是顶层路由
|
* @param isTopLevel 是否是顶层路由
|
||||||
*/
|
*/
|
||||||
const processRoutes = (routes: RouteVO[], isTopLevel: boolean = true): RouteVO[] => {
|
const processRoutes = (routes: RouteVO[], isTopLevel: boolean = true): RouteVO[] => {
|
||||||
return routes.map((route) => {
|
return routes.map(({ component, children, ...args }) => {
|
||||||
// 创建新对象
|
return {
|
||||||
const newRoute: RouteVO = {
|
...args,
|
||||||
path: route.path,
|
component: isTopLevel || component !== "Layout" ? component : undefined,
|
||||||
name: route.name,
|
|
||||||
children: route.children,
|
|
||||||
meta: { ...route.meta },
|
|
||||||
};
|
|
||||||
|
|
||||||
// 如果是顶层或者component不是"Layout",保留component属性
|
|
||||||
if (isTopLevel || route.component !== "Layout") {
|
|
||||||
newRoute.component = route.component;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 递归处理children,标记为非顶层
|
// 递归处理children,标记为非顶层
|
||||||
if (route.children && route.children.length > 0) {
|
children: children && children.length > 0 ? processRoutes(children, false) : [],
|
||||||
newRoute.children = processRoutes(route.children, false);
|
};
|
||||||
}
|
|
||||||
|
|
||||||
return newRoute;
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user