12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import type { RouteMeta } from 'vue-router';
- import ElegantVueRouter from '@elegant-router/vue/vite';
- import type { RouteKey } from '@elegant-router/types';
- export function setupElegantRouter() {
- return ElegantVueRouter({
- layouts: {
- base: 'src/layouts/base-layout/index.vue',
- blank: 'src/layouts/blank-layout/index.vue'
- },
- customRoutes: {
- names: [
- 'exception_403',
- 'exception_404',
- 'exception_500',
- 'document_project',
- 'document_project-link',
- 'document_vue',
- 'document_vite',
- 'document_unocss',
- 'document_naive',
- 'document_antd'
- ]
- },
- routePathTransformer(routeName, routePath) {
- const key = routeName as RouteKey;
- if (key === 'login') {
- const modules: UnionKey.LoginModule[] = ['pwd-login', 'code-login', 'register', 'reset-pwd', 'bind-wechat'];
- const moduleReg = modules.join('|');
- return `/login/:module(${moduleReg})?`;
- }
- return routePath;
- },
- onRouteMetaGen(routeName) {
- const key = routeName as RouteKey;
- const constantRoutes: RouteKey[] = ['login', '403', '404', '500'];
- const meta: Partial<RouteMeta> = {
- title: key,
- i18nKey: `route.${key}` as App.I18n.I18nKey
- };
- if (constantRoutes.includes(key)) {
- meta.constant = true;
- }
- return meta;
- }
- });
- }
|