| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 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_video',        'document_vue',        'document_vite',        'document_unocss',        'document_naive',        'document_pro-naive',        'document_antd',        'document_alova'      ]    },    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;    }  });}
 |