import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) /* Layout */ import Layout from '@/layout' /** * Note: 路由配置项 * * hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1 * alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 * // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面 * // 若你想不管路由下面的 children 声明的个数都显示你的根路由 * // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由 * redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 * name:'router-name' // 设定路由的名字,一定要填写不然使用时会出现各种问题 * query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数 * roles: ['admin', 'common'] // 访问路由的角色权限 * permissions: ['a:a:a', 'b:b:b'] // 访问路由的菜单权限 * meta : { noCache: true // 如果设置为true,则不会被 缓存(默认 false) title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字 icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示 activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。 } */ // 公共路由 export const constantRoutes = [ { path: '/redirect', component: Layout, hidden: true, children: [ { path: '/redirect/:path(.*)', component: () => import('@/views/redirect') } ] }, { path: '/login', component: () => import('@/views/login'), hidden: true }, { path: '/login2', component: () => import('@/views/login2'), hidden: true }, { path: '/register', component: () => import('@/views/register'), hidden: true }, { path: '/404', component: () => import('@/views/error/404'), hidden: true }, { path: '/401', component: () => import('@/views/error/401'), hidden: true }, { path: '', component: Layout, redirect: 'index', children: [ { path: 'index', component: () => import('@/views/index'), name: 'Index', meta: { title: '首页', icon: 'dashboard', affix: true } } ] }, { path: '/user', component: Layout, hidden: true, redirect: 'noredirect', children: [ { path: 'profile', component: () => import('@/views/system/user/profile/index'), name: 'Profile', meta: { title: '个人中心', icon: 'user' } } ] }, ] // 动态路由,基于用户权限动态去加载 export const dynamicRoutes = [ { path: '/system/user-auth', component: Layout, hidden: true, permissions: ['system:user:edit'], children: [ { path: 'role/:userId(\\d+)', component: () => import('@/views/system/user/authRole'), name: 'AuthRole', meta: { title: '分配角色', activeMenu: '/system/user' } } ] }, { path: '/system/role-auth', component: Layout, hidden: true, permissions: ['system:role:edit'], children: [ { path: 'user/:roleId(\\d+)', component: () => import('@/views/system/role/authUser'), name: 'AuthUser', meta: { title: '分配用户', activeMenu: '/system/role' } } ] }, { path: '/system/dict-data', component: Layout, hidden: true, permissions: ['system:dict:list'], children: [ { path: 'index/:dictId(\\d+)', component: () => import('@/views/system/dict/data'), name: 'Data', meta: { title: '字典数据', activeMenu: '/system/dict' } } ] }, { path: '/monitor/job-log', component: Layout, hidden: true, permissions: ['monitor:job:list'], children: [ { path: 'index/:jobId(\\d+)', component: () => import('@/views/monitor/job/log'), name: 'JobLog', meta: { title: '调度日志', activeMenu: '/monitor/job' } } ] }, { path: '/tool/gen-edit', component: Layout, hidden: true, permissions: ['tool:gen:edit'], children: [ { path: 'index/:tableId(\\d+)', component: () => import('@/views/tool/gen/editTable'), name: 'GenEdit', meta: { title: '修改生成配置', activeMenu: '/tool/gen' } } ] }, { path: "/dms/detail", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:flowCheckplanId(\\d+)", component: () => import("@/views/dms/detail/index"), name: "childDetail", meta: { title: "查看盘点详细信息", activeMenu: "/dms/detail" }, }, ], }, { path: "/dms/maintDetail", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:planMaintId(\\d+)/:planMaintCode", component: () => import("@/views/dms/maintDetail/index"), name: "childMaint", meta: { title: "保养计划明细", activeMenu: "/dms/maintDetail" }, }, ], }, { path: '/warehouse/allocateMaterial', component: Layout, hidden: true, permissions: ['wms:wmswarehouse:materialallocate'], children: [ { path: 'index/:warehouseId(\\d+)', component: () => import('@/views/wms/base/wmswarehouse/allocateMaterial'), name: 'AllocateMaterial', meta: { title: '仓库物料配置', activeMenu: '/wms/base/wmswarehouse' } } ] }, { path: '/system/wfProcessActivityAuth', component: Layout, hidden: true, permissions: ["system:wfProcessActivityAuth:list"], children: [ { path: 'index/:processActivityId(\\d+)', component: () => import('@/views/system/common/wfProcessActivityAuth/index'), name: 'AllocateMaterial', meta: { title: '流程权限分配', activeMenu: '/system/common/wfProcessActivityAuth' } } ] }, { path: "/dms/dmsRepairDetail", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:planMaintId(\\d+)", component: () => import("@/views/dms/dmsRepairDetail/index"), name: "childReapirDetaile", meta: { title: "查看检修管理详细信息", activeMenu: "/dms/dmsRepairDetail" }, }, ], }, { path: "/dms/dmsInspectRouteDetail", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:routeCode(\\d+)", component: () => import("@/views/dms/dmsInspectRouteDetail/index"), name: "childRouteDetail", meta: { title: "查看巡检线路明细", activeMenu: "/dms/dmsInspectRouteDetail" }, }, ], }, //审批检修工单路由 { path: "/dms/repairInstanceActivity", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:repairInstanceId(\\d+)", component: () => import("@/views/dms/repairInstanceActivity/index"), name: "childInstanceUpdate", meta: { title: "工单处理", activeMenu: "/repairInstanceActivity" }, }, ], }, { path: '/mes/product-order', component: Layout, hidden: true, permissions: ['mes:productOrder:bind'], children: [ { path: 'bind/:purchaseOrderId(\\d+)', component: () => import('@/views/mes/purchaseOrder/bindOrder'), name: 'orderBind', meta: { title: '订单信息绑定', activeMenu: '/mes/purchaseOrder' } } ] }, { path: '/mes/product-plan', component: Layout, hidden: true, permissions: ['mes:productplan:edit'], children: [ { path: 'index/:productOrderId(\\d+)', component: () => import('@/views/mes/productplan/editProductPlan'), name: 'productPlanEdit', meta: { title: '工单生产派工', activeMenu: '/mes/productplan' } } ] }, { path: '/mes/production-scheduling', component: Layout, hidden: true, permissions: ['mes:productplan:edit'], children: [ { path: 'index/:productOrderId(\\d+)', component: () => import('@/views/mes/productOrder/productionScheduling'), name: 'productionScheduling', meta: { title: '工单排产', activeMenu: '/mes/productionScheduling' } } ] }, //查看工单路由,不可审批 { path: "/dms/repairInstanceActivitySelect", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:repairInstanceId(\\d+)", component: () => import("@/views/dms/repairInstanceActivity/index"), name: "childInstanceSelect", meta: { title: "工单查看", activeMenu: "/repairInstanceActivity" }, }, ], }, { path: '/checkRule/checkRuleDetailConfig', component: Layout, hidden: true, permissions: ['qms:checkrule:add'], children: [ { path: 'index/:checkRuleId(\\d+)', component: () => import('@/views/qms/base/checkrule/checkRuleDetail'), name: 'ConfigCheckRuleDetail', meta: { title: '规则明细配置', activeMenu: '/qms/base/checkrule' } } ] }, //审批巡检工单路由 { path: "/dms/dmsBillsInspectActivity", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:inspectInstanceId(\\d+)", component: () => import("@/views/dms/dmsBillsInspectActivity/index"), name: "childDmsBillsInspectActivity", meta: { title: "工单详情", activeMenu: "/dmsBillsInspectActivity" }, }, ], }, //查看巡检工单路由 { path: "/dms/dmsBillsInspectActivity", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:inspectInstanceId(\\d+)", component: () => import("@/views/dms/dmsBillsInspectActivity/index"), name: "selectDmsBillsInspectActivity", meta: { title: "工单处理", activeMenu: "/dmsBillsInspectActivity" }, }, ], }, //审批润滑工单路由 { path: "/dms/dmsBillsLubeInstanceActivity", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:lubeInstanceId(\\d+)", component: () => import("@/views/dms/dmsBillsLubeInstanceActivity/index"), name: "childDmsBillsLubeInstanceActivity", meta: { title: "工单详情", activeMenu: "/dmsBillsLubeInstanceActivity" }, }, ], }, //查看润滑工单路由 { path: "/dms/dmsBillsLubeInstanceActivity", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:lubeInstanceId(\\d+)", component: () => import("@/views/dms/dmsBillsLubeInstanceActivity/index"), name: "selectChildDmsBillsLubeInstanceActivity", meta: { title: "工单处理", activeMenu: "/dmsBillsLubeInstanceActivity" }, }, ], }, //审批报修工单路由 { path: "/dms/activity", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:repairInstanceId(\\d+)", component: () => import("@/views/dms/activity/index"), name: "childDmsFaultInstanceActivity", meta: { title: "工单详情", activeMenu: "/activity" }, }, ], }, //审批保养工单路由 { path: "/dms/dmsMaintInstanceActivity", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:maintInstanceId(\\d+)", component: () => import("@/views/dms/dmsMaintInstanceActivity/index"), name: "childDmsMaintInstanceActivity", meta: { title: "工单详情", activeMenu: "/dmsMaintInstanceActivity" }, }, ], }, { path: '/dms/lubeDetail', component: Layout, hidden: true, permissions: ['dms:lube:add'], children: [ { path: 'index/:planLubeId(\\d+)/:planLubeCode', component: () => import('@/views/dms/lubeDetail/index'), name: 'planLubeDetailEdit', meta: { title: '润滑计划明细', activeMenu: '/dms/lube' } } ] }, { path: '/dms/dmsBillsLubeDetail', component: Layout, hidden: true, permissions: ['dms:lube:add'], children: [ { path: 'index/:planLubeId(\\d+)', component: () => import('@/views/dms/dmsBillsLubeDetail/index'), name: 'planLubeDetailEdit', meta: { title: '润滑工单明细', activeMenu: '/dms/lube' } } ] }, { path: '/dms/dmsBillsMaintDetail', component: Layout, hidden: true, permissions: ['dms:maint:add'], children: [ { path: 'index/:planMaintId(\\d+)', component: () => import('@/views/dms/dmsBillsMaintDetail/index'), name: 'productPlanEdit', meta: { title: '保养工单明细', activeMenu: '/dms/maint' } } ] }, { path: '/wms/raw-outstock', component: Layout, hidden: true, permissions: ['wms:rawoutstock:info'], children: [ { path: 'detail/:rawOutstockId/:detailFlag/:warehouseName', component: () => import('@/views/wms/info/rawoutstock/rawOutstockDetail'), name: 'RawOutStockDetail', meta: { title: '原材料出库明细', activeMenu: '/wms/info/rawoutstock' } } ] }, { path: '/wms/raw-outstock', component: Layout, hidden: true, permissions: ['wms:rawoutstock:audit'], children: [ { path: 'audit/:taskCode/:detailFlag/:warehouseName', component: () => import('@/views/wms/rawmanagement/rawoutstock/rawOutstockDetail'), name: 'RawOutStockDetail', meta: { title: '原材料出库审核', activeMenu: '/wms/rawmanagement/rawoutstock' } } ] }, { path: '/wms/raw-return', component: Layout, hidden: true, permissions: ['wms:rawreturn:info'], children: [ { path: 'detail/:rawReturnId/:detailFlag/:warehouseName', component: () => import('@/views/wms/info/rawreturn/rawReturnDetail'), name: 'RawReturnDetail', meta: { title: '原材料退库明细', activeMenu: '/wms/info/rawreturn' } } ] }, { path: '/wms/raw-return', component: Layout, hidden: true, permissions: ['wms:rawreturn:audit'], children: [ { path: 'audit/:rawReturnId/:detailFlag/:warehouseName', component: () => import('@/views/wms/rawmanagement/rawreturn/rawReturnDetail'), name: 'RawReturnDetail', meta: { title: '原材料退库审核', activeMenu: '/wms/rawmanagement/rawreturn' } } ] }, { path: '/wms/inventory-check', component: Layout, hidden: true, permissions: ['wms:inventoryCheck:detail'], children: [ { path: 'detail/:inventoryCheckId/:inventoryCheckCode/:warehouseName', component: () => import('@/views/wms/info/inventoryCheck/detail'), name: 'InventoryCheckDetail', meta: { title: '盘点详情', activeMenu: '/wms/info/inventoryCheck' } } ] }, { path: '/wms/move', component: Layout, hidden: true, permissions: ['wms:move:detail'], children: [ { path: 'detail/:moveId/:taskCode/:warehouseName/:materialCode/:materialName', component: () => import('@/views/wms/info/move/detail'), name: 'moveDetail', meta: { title: '移库合库详情', activeMenu: '/wms/info/move' } } ] }, //质检结果详细 { path: "/qms/base/checkresultdetail", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:checkResultId(\\d+)", component: () => import("@/views/qms/base/checkresultdetail/index"), name: "checkResultDetail", meta: { title: "质检结果详细", activeMenu: "/qms/base/checkresultdetail" }, }, ], }, // 质检工单实例 { path: "/qms/base/qualityinstanceactivity", component: Layout, hidden: true, permissions: ["tool:gen:edit"], children: [ { path: "index/:qualityInstanceId(\\d+)", component: () => import("@/views/qms/base/qualityinstanceactivity/index"), name: "checkQualityInstanceActivity", meta: { title: "质检结果详细", activeMenu: "/qms/base/qualityinstanceactivity" }, }, ], }, ] // 防止连续点击多次路由报错 let routerPush = Router.prototype.push; let routerReplace = Router.prototype.replace; // push Router.prototype.push = function push(location) { return routerPush.call(this, location).catch(err => err) } // replace Router.prototype.replace = function push(location) { return routerReplace.call(this, location).catch(err => err) } export default new Router({ mode: 'history', // 去掉url中的# scrollBehavior: () => ({ y: 0 }), routes: constantRoutes })