mirror of
https://github.com/soybeanjs/soybean-admin.git
synced 2025-12-24 21:40:22 +08:00
41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import type { Component } from 'vue';
|
|
import { getRouteNameMap } from '@/utils';
|
|
import { BasicLayout, BlankLayout } from '@/layouts';
|
|
import type { CustomRoute } from '@/interface';
|
|
import getCacheRoutes from './cache';
|
|
import transformRouteToMenu from './menus';
|
|
|
|
/** 给需要缓存的页面组件设置名称 */
|
|
export function setCacheName(component: Component, name?: string) {
|
|
if (name) {
|
|
Object.assign(component, { name });
|
|
}
|
|
}
|
|
|
|
/** 路由name map */
|
|
export const RouteNameMap = getRouteNameMap();
|
|
|
|
function getSingleRoute(route: CustomRoute, container: Component) {
|
|
const routeItem: CustomRoute = {
|
|
name: `${route.name as string}_`,
|
|
path: `${route.path}_`,
|
|
component: container,
|
|
redirect: { name: route.name },
|
|
meta: {
|
|
isNotMenu: true
|
|
},
|
|
children: [route]
|
|
};
|
|
|
|
return routeItem;
|
|
}
|
|
|
|
export function getSingleBasicLayoutRoute(route: CustomRoute) {
|
|
return getSingleRoute(route, BasicLayout);
|
|
}
|
|
export function getSingleBlankLayoutRoute(route: CustomRoute) {
|
|
return getSingleRoute(route, BlankLayout);
|
|
}
|
|
|
|
export { getCacheRoutes, transformRouteToMenu };
|