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 = [ // 1.系统管理(基础设置类) { path: '/systemSetting', component: Layout, redirect: '/systemSetting/organizationList', name: '系统管理', code: '2001', meta: { code: '2001', title: '系统管理', icon: 'xtsz' }, alwaysShow: true, // 当children只有一个时,也显示父菜单 children: [ { path: 'organizationList', name: 'organizationListCancel', code: '1010', component: () => import('@/views/basicSettings/organizationList'), meta: { code: '1010', title: '组织架构', icon: '', keepAlive: true } }, { path: 'roleList', name: 'roleListCancel', code: '1012', component: () => import('@/views/basicSettings/roleList'), meta: { code: '1012', title: '角色清单', icon: '', keepAlive: true } }, { path: 'installationLampSetting', name: 'installationLampSettingCancel', code: '1014', component: () => import('@/views/basicSettings/installationLampSetting'), meta: { code: '1014', title: '安灯设置', icon: '', keepAlive: true } } ] }, // 2.客户管理 { path: '/basicSettings', component: Layout, redirect: '/basicSettings/userList', name: '客户管理', code: '2002', meta: { code: '2002', title: '客户管理', icon: 'khgl' }, alwaysShow: true, // 当children只有一个时,也显示父菜单 children: [ { path: 'userList', name: 'userListCancel', code: '1011', component: () => import('@/views/basicSettings/userList'), meta: { code: '1011', title: '用户清单', icon: '', keepAlive: true } }, { path: 'contactUnitList', name: 'contactUnitListCancel', code: '1013', component: () => import('@/views/basicSettings/contactUnitList'), meta: { code: '1013', title: '往来单位', icon: '', keepAlive: true } } ] }, // 3.数据采集管理 sop上传 灵翔项目的看下 // 4.订单管理 { path: '/orderManager', component: Layout, redirect: '/orderManager/erpProduceOrder', name: 'ERP生产订单', code: '2004', meta: { code: '2004', title: 'ERP生产订单', icon: 'production' }, alwaysShow: true, children: [ { path: 'erpProduceOrder', name: 'produceOrderCancel', code: '1070', component: () => import('@/views/produceManager/produceOrder'), meta: { code: '1070', title: 'ERP生产订单', icon: '', keepAlive: true } } ] }, // 5.物料计划管理 { path: '/materialPlanManager', component: Layout, redirect: '/materialPlanManager/materialList', name: '物料计划管理', code: '2005', meta: { code: '2005', title: '物料计划管理', icon: 'icu' }, alwaysShow: true, children: [ { path: 'materialList', name: 'materialListCancel', code: '1062', component: () => import('@/views/makeModel/materialList'), meta: { code: '1062', title: '物料清单', icon: '', keepAlive: true } } ] }, // 6.质量管理 { path: '/qualityManager', component: Layout, redirect: '/qualityManager/defectDefine', name: '质量管理', code: '2006', meta: { code: '2006', title: '质量管理', icon: 'quality' }, alwaysShow: true, children: [ { path: 'defectDefine', name: 'defectDefineCancel', code: '1081', component: () => import('@/views/qualityManager/defectDefine'), meta: { code: '1081', title: '缺陷定义', icon: '', keepAlive: true } }, { path: 'qualityPlaning', name: 'ZJFACancel', code: '1088', component: () => import('@/views/qualityManager/qualityPlaning'), meta: { code: '1088', title: '质检方案', icon: '', keepAlive: true } } ] }, // 7.工序管理 { path: '/processManager', component: Layout, redirect: '/processManager/processCheck', name: '工序管理', code: '2007', meta: { code: '2007', title: '工序管理', icon: 'gxgl' }, alwaysShow: true, children: [ { path: 'processCheck', name: 'processCheckCancel', code: '1082', component: () => import('@/views/qualityManager/processCheck'), meta: { code: '1082', title: '工序检验', icon: '', keepAlive: true } }, { path: 'processCheckStandard', name: 'processCheckStandardCancel', code: '1085', component: () => import('@/views/qualityManager/processCheckStandard'), meta: { code: '1085', title: '工序检验标准', icon: '', keepAlive: true } }, { path: 'processCheckItem', name: 'processCheckItemCancel', code: '1086', component: () => import('@/views/qualityManager/processCheckItem'), meta: { code: '1086', title: '工序检验项目', icon: '', keepAlive: true } }, { path: 'processCheckRecord', name: 'processCheckRecordCancel', code: '1087', component: () => import('@/views/qualityManager/processCheckRecord'), meta: { code: '1087', title: '工序检验记录', icon: '', keepAlive: true } } ] }, // 8.人力资源管理 { path: '/resourcesManager', component: Layout, redirect: '/resourcesManager/groupSalaryList', name: '人力资源管理', code: '2008', meta: { code: '1008', title: '人力资源管理', icon: 'rlzy' }, alwaysShow: true, children: [ { path: 'groupSalaryList', name: 'groupSalaryListCancel', code: '1090', component: () => import('@/views/reportManager/groupSalaryList'), meta: { code: '1090', title: '班组工资统计报表', icon: '', keepAlive: true } }, { path: 'personSalaryList', name: 'personSalaryListCancel', code: '1091', component: () => import('@/views/reportManager/personSalaryList'), meta: { code: '1091', title: '人员工资明细报表', icon: '', keepAlive: true } }, { path: 'subcontractingOperation', name: 'subcontractingOperationCancel', code: '1092', component: () => import('@/views/reportManager/subcontractingOperation'), meta: { code: '1092', title: '委外工序明细报表', icon: '', keepAlive: true } } ] }, // 9.智能报表 { path: '/reportManager', component: Layout, redirect: '/reportManager/defectDetailList', name: '智能报表', code: '2009', meta: { code: '2009', title: '智能报表', icon: 'bbgl' }, alwaysShow: true, children: [ { path: 'defectDetailList', name: 'defectDetailListCancel', code: '1093', component: () => import('@/views/reportManager/defectDetailList'), meta: { code: '1093', title: '不良明细报表', icon: '', keepAlive: true } }, { path: 'abnormalQualityList', name: 'abnormalQualityListCancel', code: '1094', component: () => import('@/views/reportManager/abnormalQualityList'), meta: { code: '1094', title: '品质异常排行报表', icon: '', keepAlive: true } }, { path: 'repairDetailList', name: 'repairDetailListCancel', code: '1095', component: () => import('@/views/reportManager/repairDetailList'), meta: { code: '1095', title: '维修明细报表', icon: '', keepAlive: true } }, { path: 'installationLampList', name: 'installationLampListCancel', code: '1096', component: () => import('@/views/reportManager/installationLampList'), meta: { code: '1096', title: '安灯报表', icon: '', keepAlive: true } } ] }, // 10.库存管理 { path: '/inventoryManager', component: Layout, redirect: '/inventoryManager/storehouseDefine', name: '库存管理', code: '2010', meta: { code: '2010', title: '库存管理', icon: 'table' }, alwaysShow: true, children: [ { path: 'storehouseDefine', name: 'storehouseDefineCancel', code: '1050', component: () => import('@/views/materialManager/storehouseDefine'), meta: { code: '1050', title: '仓库定义', icon: '', keepAlive: true } }, { path: 'locationDefine', name: 'locationDefineCancel', code: '1051', component: () => import('@/views/materialManager/locationDefine'), meta: { code: '1051', title: '库位定义', icon: '', keepAlive: true } }, // { // path: 'containerType', // name: 'containerTypeCancel', // code: '1052', // component: () => import('@/views/materialManager/containerType'), // meta: { code: '1052', title: '容器类型', icon: '', keepAlive: true } // }, { // path: 'containerList', // name: 'containerListCancel', // code: '1053', // component: () => import('@/views/materialManager/containerList'), // meta: { code: '1053', title: '容器清单', icon: '', keepAlive: true } // }, { // path: 'inOutboundRecord', // name: 'inOutboundRecordCancel', // code: '1054', // component: () => import('@/views/materialManager/inOutboundRecord'), // meta: { code: '1054', title: '出入库记录', icon: '', keepAlive: true } // }, { // path: 'inventoryQuery', // name: 'inventoryQueryCancel', // code: '1055', // component: () => import('@/views/materialManager/inventoryQuery'), // meta: { code: '1055', title: '库存查询', icon: '', keepAlive: true } // }, { path: 'InventoryLedgerList', name: 'InventoryLedgerListCancel', code: '1205', component: () => import('@/views/purchasesManager/InventoryLedgerList'), meta: { code: '1205', title: '库存台账', icon: '', keepAlive: true } } ] }, // 11.采购管理 { path: '/purchasesManager', component: Layout, redirect: '/purchasesManager/purchasesList', name: '采购管理', code: '2011', meta: { code: '2011', title: '采购管理', icon: 'cggl' }, alwaysShow: true, children: [ { path: 'purchasesList', name: 'CGDDCancel', code: '1201', component: () => import('@/views/purchasesManager/purchasesList'), meta: { code: '1201', title: '采购订单', icon: '', keepAlive: true } }, { path: 'arrivalNoticeList', name: 'arrivalNoticeListCancel', code: '1202', component: () => import('@/views/purchasesManager/arrivalNoticeList'), meta: { code: '1202', title: '采购收货单', icon: '', keepAlive: true } } ] }, // 12.销售管理 { path: '/sale', component: Layout, redirect: '/sale/salesStatisticsList', name: '销售管理', code: '2012', meta: { code: '2012', title: '销售管理', icon: 'xsgl' }, alwaysShow: true, children: [ { path: 'salesStatisticsList', name: 'salesStatisticsCancel', code: '1203', component: () => import('@/views/purchasesManager/salesStatisticsList'), meta: { code: '1203', title: '销售订单', icon: '', keepAlive: true } }, { path: 'goodsStatisticsList', name: 'goodsStatisticsListCancel', code: '1204', component: () => import('@/views/purchasesManager/goodsStatisticsList'), meta: { code: '1204', title: '销货单', icon: '', keepAlive: true } } ] }, // 13.工单管理 { path: '/work', component: Layout, redirect: '/work/workOrder', name: '工单管理', code: '2013', meta: { code: '2013', title: '工单管理', icon: 'gzgl' }, alwaysShow: true, children: [ { path: 'workOrder', name: 'workOrderCancel', code: '1071', component: () => import('@/views/produceManager/workOrder'), meta: { code: '1071', title: 'MES工单', icon: '', keepAlive: true } }, { path: 'workOrderBatchClose', name: 'workOrderBatchCloseCancel', code: '1074', component: () => import('@/views/produceManager/workOrderBatchClose'), meta: { code: '1074', title: 'MES工单批量关闭', icon: '', keepAlive: true } } ] }, // 14.工单排产 { path: '/produceManager', component: Layout, redirect: '/produceManager/produceOrder', name: '工单排产', code: '2014', meta: { code: '2014', title: '工单排产', icon: 'scgl' }, alwaysShow: true, children: [ { path: 'AutoScheduling', name: 'AutoSchedulingCancel', code: '1076', component: () => import('@/views/produceManager/AutoScheduling'), meta: { code: '1076', title: '自动排程', icon: '', keepAlive: true } } ] }, // 15.生产管理 { path: '/extendedModule', component: Layout, redirect: '/extendedModule/produceStartOrder', name: '生产管理', code: '2015', meta: { code: '2015', title: '生产管理', icon: 'tree2' }, alwaysShow: true, // 当children只有一个时,也显示父菜单 children: [ { path: 'produceStartOrder', name: 'produceStartOrderCancel', code: '1073', component: () => import('@/views/produceManager/produceStartOrder'), meta: { code: '1073', title: '生产开报工', icon: '', keepAlive: true } }, { path: 'capacityPlanning', name: 'capacityPlanningCancel', code: '1075', component: () => import('@/views/produceManager/capacityPlanning'), meta: { code: '1075', title: '产能规划', icon: '', keepAlive: true } } ] }, // 16.工艺管理 { path: '/makeModel', component: Layout, redirect: '/makeModel/processRoute', name: '车间管理', code: '2016', meta: { code: '2016', title: '车间管理', icon: 'cjgl' }, alwaysShow: true, children: [ { path: 'processRoute', name: 'processRouteCancel', code: '1063', component: () => import('@/views/makeModel/processRoute'), meta: { code: '1063', title: '工艺路线', icon: '', keepAlive: true } }, { path: 'processDefine', name: 'processDefineCancel', code: '1064', component: () => import('@/views/makeModel/processDefine'), meta: { code: '1064', title: '工序定义', icon: '', keepAlive: true } }, { path: 'meterPrice', name: 'meterPriceCancel', code: '1065', component: () => import('@/views/makeModel/meterPrice'), meta: { code: '1065', title: '节拍工价', icon: '', keepAlive: true } } ] }, // 17.设备管理 { path: '/deviceManager', component: Layout, redirect: '/deviceManager/deviceList', name: '设备管理', code: '2017', meta: { code: '2017', title: '设备管理', icon: 'example' }, alwaysShow: true, children: [ { path: 'deviceList', name: 'deviceListCancel', code: '1022', component: () => import('@/views/deviceManager/deviceList'), meta: { code: '1022', title: '设备清单', icon: '', keepAlive: true } }, { path: 'checkStandard', name: 'checkStandardCancel', code: '1023', component: () => import('@/views/deviceManager/checkStandard'), meta: { code: '1023', title: '设备点检标准', icon: '', keepAlive: true } }, { path: 'checkPosition', name: 'checkPositionCancel', code: '1024', component: () => import('@/views/deviceManager/checkPosition'), meta: { code: '1024', title: '设备点检部位', icon: '', keepAlive: true } }, { path: 'maintainStandard', name: 'maintainStandardCancel', code: '1025', component: () => import('@/views/deviceManager/maintainStandard'), meta: { code: '1025', title: '设备保养标准', icon: '', keepAlive: true } }, { path: 'maintainPosition', name: 'maintainPositionCancel', code: '1026', component: () => import('@/views/deviceManager/maintainPosition'), meta: { code: '1026', title: '设备保养部位', icon: '', keepAlive: true } }, { path: 'checkRecord', name: 'checkRecordCancel', code: '1027', component: () => import('@/views/deviceManager/checkRecord'), meta: { code: '1027', title: '设备点检记录', icon: '', keepAlive: true } }, { path: 'maintainRecord', name: 'maintainRecordCancel', code: '1028', component: () => import('@/views/deviceManager/maintainRecord'), meta: { code: '1028', title: '设备保养记录', icon: '', keepAlive: true } }, { path: 'repairRecord', code: '1029', name: 'repairRecordCancel', component: () => import('@/views/deviceManager/repairRecord'), meta: { code: '1029', title: '设备维修记录', icon: '', keepAlive: true } } ] }, // 18.其它ERP集成 { path: '/otherErp', component: Layout, redirect: '/otherErp/InventoryList', name: '其它ERP集成', code: '2018', meta: { code: '2018', title: '其它ERP集成', icon: 'erpjc' }, alwaysShow: true, children: [ { path: 'InventoryList', name: 'InventoryListCancel', code: '1061', component: () => import('@/views/makeModel/InventoryList'), meta: { code: '1061', title: '存货档案', icon: '', keepAlive: true } } ] } // { // path: '/systemSettings', // component: Layout, // redirect: '/systemSettings/bmgz', // name: '系统设置', // code: '1009', // meta: { code: '1009', title: '系统设置', icon: 'xtsz' }, // alwaysShow: true, // children: [ // { // path: 'codingRules', // name: 'codingRulesCancel', // code: '1101', // component: () => import('@/views/systemSettings/codingRules'), // meta: { code: '1101', title: '编码规则', icon: '', keepAlive: true } // }, { // path: 'passwordEdit', // name: 'passwordEditCancel', // code: '1102', // component: () => import('@/views/systemSettings/passwordEdit'), // meta: { code: '1102', title: '密码修改', icon: '', keepAlive: true } // }, { // path: 'systemLog', // name: 'systemLogCancel', // code: '1103', // component: () => import('@/views/systemSettings/systemLog'), // meta: { code: '1103', title: '系统日志', icon: '', keepAlive: true } // }, { // path: 'sopUpload', // name: 'sopUploadCancel', // code: '1104', // component: () => import('@/views/systemSettings/sopUpload'), // meta: { code: '1104', title: 'SOP上传', icon: '', keepAlive: true } // }, { // path: 'shopNotice', // name: 'shopNoticeCancel', // code: '1105', // component: () => import('@/views/systemSettings/shopNotice'), // meta: { code: '1105', 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