ruoyi-plus-soybean/src/router/routes/index.ts

81 lines
1.8 KiB
TypeScript
Raw Normal View History

import { getLoginModuleRegExp } from '@/utils';
import { LoginModuleKey } from '@/interface';
/** 固定的路由 */
export const constantRoutes: AuthRoute.Route[] = [
{
name: 'root',
path: '/',
redirect: '/dashboard/analysis',
meta: {
title: 'Root'
}
},
{
name: 'login',
path: '/login',
component: 'self',
props: route => {
const moduleType = (route.params.module as LoginModuleKey) || 'pwd-login';
return {
module: moduleType
};
},
meta: {
title: '登录',
dynamicPath: `/login/:module(${getLoginModuleRegExp()})?`,
singleLayout: 'blank'
}
},
{
name: 'no-permission',
path: '/no-permission',
component: 'self',
meta: {
title: '无权限',
singleLayout: 'blank'
}
},
{
name: 'not-found',
path: '/not-found',
component: 'self',
meta: {
title: '未找到',
singleLayout: 'blank'
}
},
{
name: 'service-error',
path: '/service-error',
component: 'self',
meta: {
title: '服务器错误',
singleLayout: 'blank'
}
},
// 匹配无效的路径重定向not-found的页面
{
name: 'not-found-page',
path: '/:pathMatch(.*)*',
component: 'blank',
meta: {
title: '未找到',
singleLayout: 'blank'
}
}
];
/** 路由名称 */
export const routeName = (key: AuthRoute.RouteKey) => key;
/** 路由路径 */
export function routePath(key: Exclude<AuthRoute.RouteKey, 'not-found-page'>): AuthRoute.RoutePath {
const rootPath: AuthRoute.RoutePath = '/';
if (key === 'root') return rootPath;
const splitMark: AuthRoute.RouteSplitMark = '_';
const pathSplitMark = '/';
const path = key.split(splitMark).join(pathSplitMark);
return (pathSplitMark + path) as AuthRoute.RoutePath;
}