将路由根据模块不同 进行分发到不同文件
如图所示:
主路由文件index.js
import { createRouter, createWebHistory } from 'vue-router'
import { Authorize } from "@/authorization/authorize_service";
import Login from '../views/Login.vue'
import RootPage from '../views/RootPage.vue'
import IndexPage from '../views/home/IndexPage.vue'
import expertLibrary from "@/router/expert-library";
import stationInform from "@/router/station-inform";
import projectManagement from "@/router/project-management";
import dataStatistics from "@/router/data-statistics";
import experimentControl from "@/router/experiment-control";
function setDefaultLayout(routers, path){
console.log(routers)
return routers.map(value =>
{
value.path = `/${path}${value.path}`;
// value.meta = {...value.meta, layout: defaultLayout};
if(value.filePath) { //filePath 用于获取多层文件夹下的文件路由
value.component = () => import (`@/components/${path}/${value.filePath}/${value.name}.vue`);
}else{
value.component = () => import (`@/components/${path}/${value.name}.vue`);
}
return value;
}
)
}
export default createRouter({
history: createWebHistory(),
routes: [
{
path: '/login',
name: 'Login',
component: Login
},
{
path: '/root-page',
name: 'RootPage',
component: RootPage,
beforeEnter: [Authorize],
redirect: {
name: 'IndexPage'
},
children: [
{
path: 'index-page', // 主页
name: 'IndexPage',
beforeEnter: [Authorize],
component: IndexPage
},
// 加载子路由
...setDefaultLayout(expertLibrary, "expert-library"),
...setDefaultLayout(stationInform, "station-inform"),
...setDefaultLayout(projectManagement, "project-management"),
...setDefaultLayout(dataStatistics, "data-statistics"),
...setDefaultLayout(experimentControl, "experiment-control"),
],
},
]
})
子路由文件就不全部放出来了,放一个例子出来
project-management.js
import {Authorize} from "@/authorization/authorize_service";
export default [
{
path: '/project', // 项目管理
name: 'ProjectManagement',
beforeEnter: [ Authorize ],
},
{
path: '/audit-states', // 流程详情
name: 'AuditStates',
filePath: '/my-audit'
},
{
path: '/process-record', // 流程记录
name: 'ProcessRecord',
filePath: '/my-audit'
},
{
path: '/software-revise', // 软件修改流程详情
name: 'SoftwareRevise',
filePath: '/my-audit/all-process'
},
{
path: '/all-process/general-testing', // 软件修改流程详情
name: 'GeneralTesting',
filePath: '/my-audit/all-process'
}
]