import { constantRoutes } from '@/router' import Layout from '@/views/homePage/HomePage.vue' import baseRouters from '@/router/modules/base' const permission = { state: { routes: [], addRoutes: [], defaultRoutes: [], topbarRouters: [], sidebarRouters: [] }, mutations: { SET_ROUTES: (state, routes) => { state.addRoutes = routes state.routes = constantRoutes.concat(routes) }, SET_DEFAULT_ROUTES: (state, routes) => { state.defaultRoutes = constantRoutes.concat(routes) }, SET_TOPBAR_ROUTES: (state, routes) => { state.topbarRouters = routes }, SET_SIDEBAR_ROUTERS: (state, routes) => { state.sidebarRouters = routes }, }, actions: { generateRoutes({ commit }, route) { return new Promise(resolve => { let accessedRoutes let dtRoutes = { path: '/', component: Layout, redirect: '/homePage', children: [ ...baseRouters, ...route, { path: '/404', component: (resolve) => require(['@/views/error-page/404'], resolve), hidden: true }, ] }; accessedRoutes = [ dtRoutes, { path: '*', redirect: '/404', hidden: true } ] console.log(accessedRoutes, baseRouters); commit('SET_ROUTES', accessedRoutes) resolve(accessedRoutes) }) } } } export const loadView = (view) => { if (process.env.NODE_ENV === 'development') { return (resolve) => require([`@/views/${view}`], resolve) } else { // 使用 import 实现生产环境的路由懒加载 return () => import(`@/views/${view}`) } } export default permission