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: '/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: '/enterpriseAdd', component: Layout, hidden: true, permissions: ['enterpriseLibrary:enterprise:add'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/enterprise/components/EnterpriseForm'), name: 'EnterpriseForm', meta: { title: '新增主体信息', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/enterpriseEdit', component: Layout, hidden: true, permissions: ['enterpriseLibrary:enterprise:edit'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/enterprise/components/EnterpriseForm'), name: 'EnterpriseEditForm', meta: { title: '编辑主体信息', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/enterpriseDetail', component: Layout, hidden: true, permissions: ['enterpriseLibrary:enterprise:detail'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/enterprise/components/EnterpriseDetail'), name: 'EnterpriseDetail', meta: { title: '主体信息详情', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/enterpriseKnowledge', component: Layout, hidden: true, permissions: ['enterpriseLibrary:enterprise:EnterpriseKnowledge'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/enterprise/components/EnterpriseKnowledge'), name: 'EnterpriseKnowledge', meta: { title: '企业知识库', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/personnel', component: Layout, hidden: true, permissions: ['enterpriseLibrary:personnel:list'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/personnel/index'), name: 'Personnel', meta: { title: '人员库', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/personnelAdd/', component: Layout, hidden: true, permissions: ['enterpriseLibrary:personnel:add'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/personnel/components/PersonnelForm'), name: 'PersonnelForm', meta: { title: '新增人员', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/personnelEdit/', component: Layout, hidden: true, permissions: ['enterpriseLibrary:personnel:edit'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/personnel/components/PersonnelForm'), name: 'PersonnelEditForm', meta: { title: '编辑人员', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/personnelDetail/', component: Layout, hidden: true, permissions: ['enterpriseLibrary:personnel:detail'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/personnel/components/PersonnelDetail'), name: 'PersonnelDetail', meta: { title: '人员详情', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/technical', component: Layout, hidden: true, permissions: ['enterpriseLibrary:technical:list'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/technical/index'), name: 'Technical', meta: { title: '技术方案库', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/technicalAdd', component: Layout, hidden: true, permissions: ['enterpriseLibrary:technical:add'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/technical/components/TechnicalForm'), name: 'TechnicalAdd', meta: { title: '新增方案', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/technicalEdit', component: Layout, hidden: true, permissions: ['enterpriseLibrary:technical:edit'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/technical/components/TechnicalForm'), name: 'TechnicalEdit', meta: { title: '修改方案', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/technicalDetail', component: Layout, hidden: true, permissions: ['enterpriseLibrary:technical:detail'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/technical/components/TechnicalDetail'), name: 'TechnicalDetail', meta: { title: '方案详情', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/tools', component: Layout, hidden: true, permissions: ['enterpriseLibrary:tool:list'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/tool/index'), name: 'Tools', meta: { title: '工器具库', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] }, { path: '/performanceList', component: Layout, hidden: true, permissions: ['enterpriseLibrary:performance:list'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/performance/index'), name: 'Performance', meta: { title: '业绩库列表', activeMenu: '/enterpriseLibrary/performance', noCache: true } } ] }, { path: '/performanceForm', component: Layout, hidden: true, permissions: ['enterpriseLibrary:performance:add'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/performance/components/PerformanceForm'), name: 'PerformanceForm', meta: { title: '新增业绩库', activeMenu: '/enterpriseLibrary/performance', noCache: true } } ] }, { path: '/performanceDetail', component: Layout, hidden: true, permissions: ['enterpriseLibrary:performance:detail'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/performance/components/PerformanceDetail'), name: 'PerformanceDetail', meta: { title: '业绩库详情', activeMenu: '/enterpriseLibrary/performance', noCache: true } } ] }, { path: '/performanceEdit', component: Layout, hidden: true, permissions: ['enterpriseLibrary:performance:edit'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/performance/components/PerformanceEdit'), name: 'PerformanceEdit', meta: { title: '编辑业绩库', activeMenu: '/enterpriseLibrary/performance', noCache: true } } ] }, { path: '/financeList', component: Layout, hidden: true, permissions: ['enterpriseLibrary:finance:list'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/finance/index'), name: 'Financial', meta: { title: '财务库列表', activeMenu: '/enterpriseLibrary/performance', noCache: true } } ] }, { path: '/financeForm', component: Layout, hidden: true, permissions: ['enterpriseLibrary:finance:add'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/finance/components/FinanceForm'), name: 'FinanceForm', meta: { title: '新增财务库', activeMenu: '/enterpriseLibrary/finance', noCache: true } } ] }, { path: '/financeEdit', component: Layout, hidden: true, permissions: ['enterpriseLibrary:finance:edit'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/finance/components/FinanceForm'), name: 'FinanceEdit', meta: { title: '编辑财务库', activeMenu: '/enterpriseLibrary/finance', noCache: true } } ] }, { path: '/financeForm', component: Layout, hidden: true, permissions: ['enterpriseLibrary:finance:detail'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/finance/components/FinanceDetail'), name: 'FinanceDetail', meta: { title: '财务库详情', activeMenu: '/enterpriseLibrary/finance', noCache: true } } ] }, { path: '/qualificationList', component: Layout, hidden: true, permissions: ['enterpriseLibrary:qualification:list'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/qualification/index'), name: 'Qualification', meta: { title: '资质库列表', activeMenu: '/enterpriseLibrary/qualification', noCache: true } } ] }, { path: '/qualificationForm', component: Layout, hidden: true, permissions: ['enterpriseLibrary:qualification:add'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/qualification/components/QualificationForm'), name: 'QualificationForm', meta: { title: '新增资质库', activeMenu: '/enterpriseLibrary/qualification', noCache: true } } ] }, { path: '/rejectionItemList', component: Layout, hidden: true, permissions: ['enterpriseLibrary:rejectionItem:list'], children: [ { path: 'index', component: () => import('@/views/enterpriseLibrary/rejectionItem/index'), name: 'Rejection', meta: { title: '废标项列表', activeMenu: '/enterpriseLibrary/rejection', noCache: true } } ] }, { path: '/analysisDetail', component: Layout, hidden: true, permissions: ['enterpriseLibrary:analysis:detail'], children: [ { path: 'index', component: () => import('@/views/analysis/components/AnalysisDetail'), name: 'AnalysisDetail', meta: { title: '项目解析结果', activeMenu: '/analysis', noCache: true } } ] }, { path: '/analysisBidDetail', component: Layout, hidden: true, permissions: ['enterpriseLibrary:analysis:detail'], children: [ { path: 'index', component: () => import('@/views/analysis/components/AnalysisBidDetail'), name: 'AnalysisBidDetail', meta: { title: '项目标段', activeMenu: '/analysis', noCache: true } } ] }, { path: '/analysisBid', component: Layout, hidden: true, permissions: ['enterpriseLibrary:analysis:detail'], children: [ { path: 'index', component: () => import('@/views/analysis/components/AnalysisBidIndex'), name: 'AnalysisBidIndex', meta: { title: '标段信息', activeMenu: '/analysis', noCache: true } } ] }, { path: '/testOnlyOffice', component: Layout, hidden: true, permissions: ['enterpriseLibrary:analysis:detail'], children: [ { path: 'index', component: () => import('@/views/analysis/components/TestOnlyOffice'), name: 'TestOnlyOffice', meta: { title: '预览文档', activeMenu: '/analysis', noCache: true } } ] }, ] // 防止连续点击多次路由报错 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, base: process.env.VUE_APP_ENV === 'production' ? '/smart-bid' : '' })