import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) /* Layout */ import Layout from '@/layout' /** * Note: sub-menu only appear when route children.length >= 1 * Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html * * hidden: true if set true, item will not show in the sidebar(default is false) * alwaysShow: true if set true, will always show the root menu * if not set alwaysShow, when item has more than one children route, * it will becomes nested mode, otherwise not show the root menu * redirect: noRedirect if set noRedirect will no redirect in the breadcrumb * name:'router-name' the name is used by (must set!!!) * meta : { roles: ['admin','editor'] control the page roles (you can set multiple roles) title: 'title' the name show in sidebar and breadcrumb (recommend set) icon: 'svg-name'/'el-icon-x' the icon show in the sidebar breadcrumb: false if set false, the item will hidden in breadcrumb(default is true) activeMenu: '/example/list' if set path, the sidebar will highlight the path you set } */ /** * constantRoutes * a base page that does not have permission requirements * all roles can be accessed */ // 公用模块 export const commonRoutes = [ /* * 看板部分路由 * */ { path: '/zhkb', component: () => import('@/views/kanbanManager/zhkb'), hidden: true }, { path: '/cgdd', component: () => import('@/views/kanbanManager/cgdd'), hidden: true }, { path: '/ckgl', component: () => import('@/views/kanbanManager/ckgl'), hidden: true }, { path: '/login', component: () => import('@/views/login/index'), hidden: true }, { path: '/404', component: () => import('@/views/404'), hidden: true }, { path: '/redirect', component: Layout, hidden: true, children: [ { path: '/redirect/:path(.*)', component: () => import('@/views/redirect/index') } ] }, { path: '/', component: Layout, redirect: '/index', name: '系统首页', children: [{ path: 'index', name: 'index', component: () => import('@/views/systemHome/index'), meta: { title: '系统首页', icon: 'home', affix: true } }] } // { path: '*', redirect: '/404', hidden: true } ] export const asyncRoutes = [ { path: '/basicSettings', component: Layout, redirect: '/basicSettings/organizationList', name: '基础设置', code: '1001', meta: { code: '1001', title: '基础设置', icon: 'tree2' }, alwaysShow: true, // 当children只有一个时,也显示父菜单 children: [ { path: 'organizationList', name: 'organizationListCancel', code: '1010', component: () => import('@/views/basicSettings/organizationList'), meta: { code: '1010', title: '组织架构', icon: '', keepAlive: true } }, { path: 'personList', name: 'personListCancel', code: '1011', component: () => import('@/views/basicSettings/personList'), meta: { code: '1011', title: '人员管理', icon: '', keepAlive: true } }, { path: 'postList', name: 'personListCancel', code: '1012', component: () => import('@/views/basicSettings/postList'), meta: { code: '1012', title: '岗位管理', icon: '', keepAlive: true } }, { path: 'roleList', name: 'roleListCancel', code: '1013', component: () => import('@/views/basicSettings/roleList'), meta: { code: '1013', title: '角色管理', icon: '', keepAlive: true } }, { path: 'groupList', name: 'groupListCancel', code: '1014', component: () => import('@/views/basicSettings/groupList'), meta: { code: '1014', title: '班组管理', icon: '', keepAlive: true } }, { path: 'menuList', name: 'menuListCancel', code: '1015', component: () => import('@/views/basicSettings/menuList'), meta: { code: '1015', title: '菜单管理', icon: '', keepAlive: true } } ] }, { path: '/workOrder', component: Layout, redirect: '/workOrder/workOrderList', name: '工单管理', code: '1002', meta: { code: '1002', title: '工单管理', icon: 'bbgl' }, alwaysShow: true, // 当children只有一个时,也显示父菜单 children: [ { path: 'workOrderList', name: 'workOrderListCancel', code: '1020', component: () => import('@/views/workOrder/workOrderList'), meta: { code: '1010', title: '工单列表', icon: '', keepAlive: true } }, { path: 'workOrderSend', name: 'workOrderSendCancel', code: '1021', component: () => import('@/views/workOrder/workOrderSend'), meta: { code: '1021', title: '工单派发', icon: '', keepAlive: true } }, { path: 'workOrderClose', name: 'workOrderCloseCancel', code: '1022', component: () => import('@/views/workOrder/workOrderClose'), meta: { code: '1022', title: '工单关闭', icon: '', keepAlive: true } } ] }, { path: '/produce', component: Layout, redirect: '/produce/stepReport', name: '生产执行', code: '1003', meta: { code: '1003', title: '生产执行', icon: 'production' }, alwaysShow: true, // 当children只有一个时,也显示父菜单 children: [ { path: 'stepReport', name: 'stepReportCancel', code: '1030', component: () => import('@/views/produce/stepReport'), meta: { code: '1030', title: '工序报工', icon: '', keepAlive: true } }, { path: 'reportCorrect', name: 'reportCorrectCancel', code: '1031', component: () => import('@/views/produce/reportCorrect'), meta: { code: '1031', title: '报工修正', icon: '', keepAlive: true } }, { path: 'reportVerify', name: 'reportVerifyCancel', code: '1032', component: () => import('@/views/produce/reportVerify'), meta: { code: '1032', title: '报工审核', icon: '', keepAlive: true } } ] }, { path: '/statistic', component: Layout, redirect: '/statistic/reportList', name: '统计报表', code: '1004', meta: { code: '1004', title: '统计报表', icon: 'quality' }, alwaysShow: true, // 当children只有一个时,也显示父菜单 children: [ { path: 'reportList', name: 'reportListCancel', code: '1040', component: () => import('@/views/statistic/reportList'), meta: { code: '1040', title: '报工记录', icon: '', keepAlive: true } }, { path: 'monthReport', name: 'monthReportCancel', code: '1041', component: () => import('@/views/statistic/monthReport'), meta: { code: '1041', title: '月度统计', icon: '', keepAlive: true } }, { path: 'workOrderProcess', name: 'workOrderProcessCancel', code: '1042', component: () => import('@/views/statistic/workOrderProcess'), meta: { code: '1042', title: '工单进度', icon: '', keepAlive: true } }, { path: 'inProcessList', name: 'inProcessListCancel', code: '1043', component: () => import('@/views/statistic/inProcessList'), meta: { code: '1043', title: '在制列表', icon: '', keepAlive: true } } ] }, { path: '/systemSetting', component: Layout, redirect: '/systemSetting/encodingRules', name: '系统设置', code: '1005', meta: { code: '1005', title: '系统设置', icon: 'xtsz' }, alwaysShow: true, // 当children只有一个时,也显示父菜单 children: [ { path: 'reportList', name: 'reportListCancel', code: '1050', component: () => import('@/views/systemSetting/encodingRules'), meta: { code: '1050', title: '编码规则', icon: '', keepAlive: true } } ] } ] const createRouter = () => new Router({ // mode: 'history', // require service support scrollBehavior: () => ({ y: 0 }), routes: commonRoutes }) 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