wms-antdvue/.svn/pristine/af/af4a650533ccef663025a83594f03836740a53d1.svn-base
2024-11-07 16:33:03 +08:00

74 lines
1.8 KiB
Plaintext

import { App } from 'vue';
import { createRouter, createWebHistory, 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[] = [];
const modulesVue = import.meta.glob('/src/views/**/*.vue')
export function getModulesKey() {
return Object.keys(modulesVue).map((item) => item.replace('/src/views', '').replace('.vue', ''))
}
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'),
component: () => import('@/views/login/newLogin.vue'),
meta: {
title: '登录',
},
};
//需要验证权限
export const asyncRoutes = [...routeModuleList];
//普通路由 无需验证权限
export const constantRouter: any[] = [LoginRoute, RootRoute, RedirectRoute];
export const router = createRouter({
history: createWebHistory(''),
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;