import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) /* Layout */ import Layout from '@/layout' import BoardIndex from '@/layout/boardIndex' import ModelIndex from '@/layout/modelIndex' /** * 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: '/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_v1'), 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'} } ] }, { path: '', hidden: true, component: BoardIndex, redirect: 'board', meta: { title: "看板管理", icon: "chart", }, children: [ { path: 'liner', component: () => import('@/views/board/liner/index'), name: 'Liner', meta: {title: '内胆', icon: '404',} }, { path: 'caseShell2', name: 'CaseShell2', component: () => import('@/views/board/caseShell/index2'), meta: {title: '箱壳前后板', icon: 'dashboard',} }, { path: 'foaming', name: 'Foaming', query: "{\"id\": 1}", component: () => import('@/views/board/foaming/index'), meta: {title: '一线箱体发泡', icon: 'dashboard',} }, { path: 'foaming3', name: 'Foaming3', query: "{\"id\": 2}", component: () => import('@/views/board/foaming/index'), meta: {title: '二线箱体发泡', icon: 'dashboard',} }, { path: 'foaming2', name: 'Foaming2', component: () => import('@/views/board/foaming/index2'), meta: {title: '箱门匹配', icon: 'dashboard',} }, { path: 'pourInto', name: 'PourInto', component: () => import('@/views/board/pourInto/index2'), meta: {title: '总装工序', icon: 'dashboard',} }, { path: 'finalAssembly', name: 'FinalAssembly', component: () => import('@/views/board/finalAssembly/index'), meta: {title: '总装', icon: 'dashboard',} }, { path: 'scanDown', name: 'ScanDown', query: "{\"id\": 1}", component: () => import('@/views/board/scanDown/index'), meta: {title: '一线成品入库', icon: 'dashboard',} }, { path: 'scanDown2', name: 'ScanDown2', query: "{\"id\": 2}", component: () => import('@/views/board/scanDown/index'), meta: {title: '二线成品入库', icon: 'dashboard',} }, { path: 'week', name: 'Week', component: () => import('@/views/board/week/index'), meta: {title: '综合看板', icon: 'dashboard',} }, ] }, { path: '', hidden: true, component: ModelIndex, redirect: 'model', meta: { title: "参观大屏管理", icon: "chart", }, children: [ { path: 'model', component: () => import('@/views/model/model'), name: 'index', meta: {title: '模型', icon: '404',} }, ] }, ] // 动态路由,基于用户权限动态去加载 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: "/production/bom-info", component: Layout, hidden: true, permissions: ["production:baseBomInfo:list"], children: [ { path: "index/:materialCode(\\d+)", component: () => import("@/views/production/baseBomInfo/childBom"), name: "childBom", meta: {title: "查看生产子BOM信息", activeMenu: "/production/baseBomInfo"}, }, ], }, { path: "/base/bom-info", component: Layout, hidden: true, permissions: ["base:orderBomInfo:list"], children: [ { path: "index/:materialCode(\\d+)", component: () => import("@/views/base/orderBomInfo/childIndex"), name: "childBom", meta: {title: "查看订单子BOM信息", activeMenu: "/base/orderBomInfo"}, }, ], }, { path: "/base/qualityInspectionItemChild", component: Layout, hidden: true, permissions: ["base:qualityInspectionItem:list"], children: [ { path: "index/:parentId(\\d+)", component: () => import("@/views/base/qualityInspectionItem/childIndex"), name: "childQuality", meta: {title: "质检项缺陷信息", activeMenu: "/base/qualityInspectionItem"}, }, ], }, { path: "/base/product-station", component: Layout, hidden: true, permissions: ["base:productLine:list"], children: [ { path: "index/:productLineCode", component: () => import("@/views/base/productStation/index"), name: "childStation", meta: {title: "工位信息", activeMenu: "/base/productStation"}, }, ], }, { path: "/base/productProcess-station", component: Layout, hidden: true, permissions: ["base:processStation:list"], children: [ { path: "index/:processCode", component: () => import("@/views/base/productStation/index"), name: "childStation", meta: {title: "工位信息", activeMenu: "/base/productStation"}, }, ], }, { path: "/wcs/space-info", component: Layout, hidden: true, permissions: ["base:storeInfo:list"], children: [ { path: "index/:storeCode", component: () => import("@/views/base/spaceInfo/index"), name: "childSpaceInfo", meta: {title: "货道信息", activeMenu: "/base/spaceInfo"}, }, ], }, { path: "/wcs/inventory-statistics", component: Layout, hidden: true, permissions: ["base:storeInfo:list"], children: [ { path: "index/:storeCode", component: () => import("@/views/report/inventoryStatistics/index"), name: "inventoryStatistics", meta: {title: "库存统计", activeMenu: "/report/inventoryStatistics"}, }, ], }, { path: "/base/subordinate-workers", component: Layout, hidden: true, permissions: ["base:processStation:list"], children: [ { path: "index/:productLineCode", component: () => import("@/views/base/processStation/index"), name: "SubordinateWorkers", meta: {title: "工序信息", activeMenu: "/base/processStation"}, }, ], }, { path: "/report/quality-material", component: Layout, hidden: true, permissions: ["report:qualityMaterial:list"], children: [ { path: "index/:orderCode", component: () => import("@/views/report/qualityMaterial/index"), name: "qualityMaterial", meta: {title: "质检材料信息", activeMenu: "/quality/qualityMaterial"}, }, ], }, ] // 防止连续点击多次路由报错 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 })