import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) import Layout from '@/layout' import driverManagement from './driverManagement/index' import cargoOwnerManagement from './cargoOwnerManagement/index' import enterpriseManagement from './enterpriseManagement/index' import orderManagement from './orderManagement/index' import contractManagement from './contractManagement/index' import platformManagement from './platformManagement/index' import feedbackManagement from './feedbackManagement/index' import officialWebsiteManagement from './officialWebsiteManagement/index' import parkReportManagement from './parkReportManagement/index' import settlementManagement from './settlementManagement/index' export const constantRoutes = [{ path: '/login', component: () => import ('@/views/login/index'), hidden: true }, { path: '/404', component: () => import ('@/views/404'), hidden: true }, { path: '/', component: Layout, redirect: '/dashboard', children: [{ path: 'dashboard', name: 'Dashboard', component: () => import ('@/views/dashboard/index'), meta: { title: '首页', icon: 'shouye' } }] }, driverManagement, cargoOwnerManagement, enterpriseManagement, orderManagement, contractManagement, platformManagement, feedbackManagement, officialWebsiteManagement, parkReportManagement, settlementManagement, // { // path: '/example', // component: Layout, // redirect: '/example/table', // name: 'Example', // meta: { // title: 'Example', // icon: 'el-icon-s-help' // }, // children: [{ // path: 'table', // name: 'Table', // component: () => import('@/views/table/index'), // meta: { // title: 'Table', // icon: 'table' // } // }, // { // path: 'tree', // name: 'Tree', // component: () => import('@/views/tree/index'), // meta: { // title: 'Tree', // icon: 'tree' // } // } // ] // }, // { // path: '/form', // component: Layout, // children: [{ // path: 'index', // name: 'Form', // component: () => import('@/views/form/index'), // meta: { // title: 'Form', // icon: 'form' // } // }] // }, // { // path: 'external-link', // component: Layout, // children: [{ // path: 'https://panjiachen.github.io/vue-element-admin-site/#/', // meta: { // title: 'External Link', // icon: 'link' // } // }] // }, // 404 page must be placed at the end !!! { path: '*', redirect: '/404', hidden: true } ] let cofigRouter = [] const modulesFiles = require.context('../views', true, /.js$/) modulesFiles.keys().forEach((model_item, key) => { if (model_item === 'index.js' || modulesFiles(model_item).default === undefined || modulesFiles(model_item) .default.path === undefined) return cofigRouter = cofigRouter.concat(modulesFiles(model_item).default) }) // 需要根据用户角色动态加载的路由 export const asyncRoutes = cofigRouter const createRouter = () => new Router({ // mode: 'history', scrollBehavior: () => ({ y: 0 }), linkActiveClass: 'active', // router-link .active样式 routes: constantRoutes }) const router = createRouter() // Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 export function resetRouter() { const newRouter = createRouter() router.matcher = newRouter.matcher // reset router } export default router