81 lines
1.8 KiB
TypeScript
81 lines
1.8 KiB
TypeScript
import { getLoginModuleRegExp } from '@/utils';
|
|
import type { 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',
|
|
},
|
|
},
|
|
// 匹配无效路径的路由
|
|
{
|
|
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;
|
|
}
|