push
This commit is contained in:
123
lib/paas/router/routes/index.ts
Normal file
123
lib/paas/router/routes/index.ts
Normal file
@@ -0,0 +1,123 @@
|
||||
import type { RouteRecordRaw } from 'vue-router';
|
||||
import { isArray } from 'lodash-es';
|
||||
import { appConfig } from '/@/config/app.config.ts';
|
||||
const modules = import.meta.globEager('/src/router/**/*.ts');
|
||||
|
||||
// const jsonModules = import.meta.globEager('/src/data/router/*.json');
|
||||
|
||||
const routers: any[] = [];
|
||||
// Object.keys(modules).forEach((key) => {
|
||||
// const mod = modules[key].default || {};
|
||||
// const modList = Array.isArray(mod) ? [...mod] : [mod];
|
||||
// modList[0].path && routers.push(...modList);
|
||||
// });
|
||||
|
||||
// Object.keys(jsonModules).forEach((key) => {
|
||||
// const mod = jsonModules[key].default || {};
|
||||
// const modList = Array.isArray(mod) ? [...mod] : [mod];
|
||||
// modList.forEach((item, index) => {
|
||||
// modList[index] = setComponent(item);
|
||||
// });
|
||||
// routers.push(...modList);
|
||||
// });
|
||||
|
||||
/**
|
||||
* 检测路由中是否包含name为root的路由(root是默认路由)
|
||||
* @param routers
|
||||
*/
|
||||
function hasRoot(routers: RouteRecordRaw[]): boolean {
|
||||
let root = undefined;
|
||||
function checkRoot(route: RouteRecordRaw | RouteRecordRaw[]) {
|
||||
if (isArray(route)) {
|
||||
for (let i = 0, l = route.length; i < l; i++) {
|
||||
checkRoot(route[i]);
|
||||
}
|
||||
} else {
|
||||
if (route.name === 'root') {
|
||||
return (root = route);
|
||||
}
|
||||
if (route.children) {
|
||||
for (let i = 0, l = route.children.length; i < l; i++) {
|
||||
checkRoot(route.children[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
checkRoot(routers);
|
||||
return !!root;
|
||||
}
|
||||
// if (!hasRoot(routers)) console.error('Route named root is required as the default route');
|
||||
|
||||
function setComponent(route: any) {
|
||||
/* @vite-ignore */
|
||||
const component = route.component;
|
||||
if (component) {
|
||||
route.component = () =>
|
||||
import(/* @vite-ignore */ `/nerv-lib/paas/view/service/${component}.vue`);
|
||||
} else {
|
||||
route.component = () =>
|
||||
import(/* @vite-ignore */ '/nerv-lib/paas/view/system/layout/content.vue');
|
||||
}
|
||||
if (route.children) {
|
||||
route.children.forEach((item: Object, index: number) => {
|
||||
route.children[index] = setComponent(item);
|
||||
});
|
||||
}
|
||||
return route;
|
||||
}
|
||||
|
||||
/**
|
||||
* 登陆页面路由
|
||||
*/
|
||||
export const LoginRoute = {
|
||||
path: '/login',
|
||||
name: 'login',
|
||||
component: appConfig.customLogin
|
||||
? appConfig.customLogin
|
||||
: () => import('/nerv-lib/paas/view/system/login.vue'),
|
||||
meta: {
|
||||
title: '登录',
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* 页面不存在
|
||||
*/
|
||||
export const Error404Route = {
|
||||
path: '/:pathMatch(.*)*',
|
||||
name: 'error404',
|
||||
component: () => import('/nerv-lib/paas/view/service/error-404.vue'),
|
||||
};
|
||||
|
||||
/**
|
||||
* 页面无权限
|
||||
*/
|
||||
export const Error403Route = {
|
||||
path: '/403',
|
||||
name: 'error403',
|
||||
component: () => import('/nerv-lib/paas/view/service/error-403.vue'),
|
||||
};
|
||||
|
||||
/**
|
||||
* 默认路由 转发至root
|
||||
*/
|
||||
export const RootRoute = {
|
||||
path: '/',
|
||||
name: 'rootRoute',
|
||||
redirect: 'root',
|
||||
};
|
||||
const outControlPageName: any[] = [];
|
||||
Object.keys(modules).forEach((key) => {
|
||||
const mod = modules[key].default || {};
|
||||
if (mod.name && mod.outContrl) {
|
||||
outControlPageName.push(mod.name);
|
||||
}
|
||||
});
|
||||
export const WHITE_NAME_LIST = [
|
||||
Error404Route.name,
|
||||
Error403Route.name,
|
||||
LoginRoute.name,
|
||||
...outControlPageName,
|
||||
];
|
||||
|
||||
export const ALLRoute = [...routers, LoginRoute, Error403Route, Error404Route, RootRoute];
|
||||
Reference in New Issue
Block a user