| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import { App } from 'vue';
- import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router';
- import { RedirectRoute } from '@/router/base';
- import { PageEnum } from '@/enums/pageEnum';
- import { createRouterGuards } from './router-guards';
- const modules: any = import.meta.glob('./modules/**/*.ts', { eager: true });
- const routeModuleList: RouteRecordRaw[] = [];
- Object.keys(modules).forEach((key) => {
- const mod = modules[key].default || {};
- const modList = Array.isArray(mod) ? [...mod] : [mod];
- routeModuleList.push(...modList);
- });
- function sortRoute(a, b) {
- return (a.meta?.sort || 0) - (b.meta?.sort || 0);
- }
- routeModuleList.sort(sortRoute);
- export const RootRoute: RouteRecordRaw = {
- path: '/',
- name: 'Root',
- redirect: PageEnum.BASE_HOME,
- meta: {
- title: 'Root',
- },
- };
- export const LoginRoute: RouteRecordRaw = {
- path: '/login',
- name: 'Login',
- // component: () => import('@/views/login/index.vue'), //v1.x 模板
- // component: () => import('@/views/login/newLogin.vue'), // 2.x新模板
- component: () => import('@/views/login/newLogin2.vue'), // 2.x全新模板
- // redirect: '/',
- meta: {
- title: '登录',
- },
- };
- //需要验证权限
- export const asyncRoutes = [...routeModuleList];
- //普通路由 无需验证权限
- export const constantRouter: any[] = [LoginRoute, RootRoute, RedirectRoute];
- export const router = createRouter({
- history: createWebHashHistory(import.meta.env.VITE_PUBLIC_PATH),
- routes: constantRouter,
- strict: true,
- scrollBehavior(to) {
- if (to.hash) {
- return {
- el: to.hash,
- behavior: 'smooth',
- };
- }
- },
- });
- export function setupRouter(app: App) {
- app.use(router);
- // 创建路由守卫
- createRouterGuards(router);
- }
- export default router;
|