admin-vben5/apps/web-antd/src/router/routes/index.ts

38 lines
1.5 KiB
TypeScript
Raw Normal View History

2024-05-19 21:20:42 +08:00
import type { RouteRecordRaw } from 'vue-router';
import { mergeRouteModules, traverseTreeValues } from '@vben/utils';
2024-06-08 19:49:06 +08:00
import { coreRoutes, fallbackNotFoundRoute } from './core';
2024-06-08 20:14:04 +08:00
const dynamicRouteFiles = import.meta.glob('./modules/**/*.ts', {
eager: true,
});
2024-06-08 20:14:04 +08:00
// 有需要可以自行打开注释,并创建文件夹
// const externalRouteFiles = import.meta.glob('./external/**/*.ts', { eager: true });
// const staticRouteFiles = import.meta.glob('./static/**/*.ts', { eager: true });
2024-05-19 21:20:42 +08:00
/** 动态路由 */
const dynamicRoutes: RouteRecordRaw[] = mergeRouteModules(dynamicRouteFiles);
/** 外部路由列表访问这些页面可以不需要Layout可能用于内嵌在别的系统(不会显示在菜单中) */
// const externalRoutes: RouteRecordRaw[] = mergeRouteModules(externalRouteFiles);
// const staticRoutes: RouteRecordRaw[] = mergeRouteModules(staticRouteFiles);
const staticRoutes: RouteRecordRaw[] = [];
const externalRoutes: RouteRecordRaw[] = [];
2024-05-19 21:20:42 +08:00
2024-11-11 19:22:39 +08:00
/** 404
* */
2024-06-08 20:14:04 +08:00
const routes: RouteRecordRaw[] = [
...coreRoutes,
...externalRoutes,
2024-06-08 20:14:04 +08:00
fallbackNotFoundRoute,
];
/** 基本路由列表,这些路由不需要进入权限拦截 */
const coreRouteNames = traverseTreeValues(coreRoutes, (route) => route.name);
2024-06-08 20:14:04 +08:00
2024-11-11 19:22:39 +08:00
/** 有权限校验的路由列表,包含动态路由和静态路由 */
const accessRoutes = [...dynamicRoutes, ...staticRoutes];
export { accessRoutes, coreRouteNames, routes };