JNBusiness/ruoyi-ui/src/router/index.js

312 lines
8.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
/* Layout */
import Layout from '@/layout'
import plainView from '@/plainView'
/**
* Note: 路由配置项
*
* hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401login等页面或者如一些编辑页面/edit/1
* alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时自动会变成嵌套的模式--如组件页面
* // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
* // 若你想不管路由下面的 children 声明的个数都显示你的根路由
* // 你可以设置 alwaysShow: true这样它就会忽略之前定义的规则一直显示根路由
* redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
* name:'router-name' // 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
* query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数
* roles: ['admin', 'common'] // 访问路由的角色权限
* permissions: ['a:a:a', 'b:b:b'] // 访问路由的菜单权限
* meta : {
noCache: true // 如果设置为true则不会被 <keep-alive> 缓存(默认 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: '/ssoLogin',
component: () => import('@/views/ssoLogin'),
hidden: true
},
{
path: '/ssoMobileLogin',
component: () => import('@/views/ssoMobileLogin'),
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' }
}
]
},
/* {
path: '/oaQuote',
component: Layout,
hidden: true,
children: [
{
path: 'oaQuoteEdit',
component: () => import('@/views/redBook/productSelect'),
name: 'productSelect',
meta: { title: '报价单转报价', activeMenu: '/oaQuote/oaQuoteEdit'}
}
]
},*/
{
path: '/hainanOrder/index',
component: Layout,
hidden: true,
children: [
{
path: '',
component: () => import('@/views/hainanOrder/operation/addOrder'),
name: 'HaiNaiOrder',
meta: { title: '海南订单新建', activeMenu: '/hainanOrder/operation' }
}
]
},
{
path: '/quoteMobile/index',
component: Layout,
hidden: true,
children: [
{
path: '',
component: () => import('@/views/mobile/quoteMobile/index'),
name: 'quoteMobile',
meta: { title: '报价单列表', activeMenu: '/mobile/quoteMobile' }
}
]
},
{
path: '/customerMobile/index',
component: Layout,
hidden: true,
children: [
{
path: '',
component: () => import('@/views/mobile/customerMobile/index'),
name: 'customerMobile',
meta: { title: '客户管理', activeMenu: '/mobile/customerMobile' }
}
]
},
{
path: '/quoteMobile/add',
component: Layout,
hidden: true,
children: [
{
path: '',
component: () => import('@/views/mobile/quoteMobile/operation/add'),
name: 'quoteMobileAdd',
meta: { title: '新建报价单', activeMenu: '/mobile/quoteMobile/operation' }
}
]
},
{
path: '/quoteMobile/edit',
component: Layout,
hidden: true,
children: [
{
path: 'edit',
component: () => import('@/views/mobile/quoteMobile/operation/add'),
name: 'quoteMobileEdit',
meta: { title: '编辑报价单', activeMenu: '/mobile/quoteMobile/operation' }
}
]
},
{
path: '/customerMobile/addCustomer',
component: Layout,
hidden: true,
children: [
{
path: '',
component: () => import('@/views/mobile/customerMobile/addCustomer'),
name: 'addCustomer',
meta: { title: '新建客户', activeMenu: '/mobile/customerMobile/addCustomer' }
}
]
},
{
path: '/customerMobile/editCustomer',
component: Layout,
hidden: true,
children: [
{
path: '',
component: () => import('@/views/mobile/customerMobile/addCustomer'),
name: 'editCustomer',
meta: { title: '修改客户', activeMenu: '/mobile/customerMobile/addCustomer' }
}
]
},
{
path: '/mobile/index',
component: Layout,
hidden: true,
children: [
{
path: '',
component: () => import('@/views/mobile/index'),
name: 'mobileIndex'
}
]
},
]
// 动态路由,基于用户权限动态去加载
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' }
}
]
}
]
// 防止连续点击多次路由报错
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
})