index.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. Vue.use(Router)
  4. /* Layout */
  5. import Layout from '@/layout'
  6. /* Router Modules */
  7. import sysRouter from './modules/sys'
  8. import userRouter from './modules/user'
  9. import wechatRouter from './modules/wechat'
  10. import webPageRouter from './modules/webPage'
  11. import productRouter from './modules/product'
  12. import financeRouter from './modules/finance'
  13. import keywordLibraryRouter from './modules/keywordLibrary'
  14. import memberRouter from './modules/member'
  15. import mallProtraitRouter from './modules/mallPortrait'
  16. import serviceSettlement from './modules/serviceSettlement'
  17. import activity from './modules/activity'
  18. import dataBase from './modules/database'
  19. // import tableRouter from './modules/table'
  20. // import nestedRouter from './modules/nested'
  21. /**
  22. // 当设置 true 的时候该路由不会在侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
  23. hidden: true // (默认 false)
  24. //当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
  25. redirect: 'noRedirect'
  26. // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
  27. // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
  28. // 若你想不管路由下面的 children 声明的个数都显示你的根路由
  29. // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
  30. alwaysShow: true
  31. name: 'router-name' // 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
  32. meta: {
  33. roles: ['admin', 'editor'] // 设置该路由进入的权限,支持多个权限叠加
  34. title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字
  35. icon: 'svg-name' // 设置该路由的图标,支持 svg-class,也支持 el-icon-x element-ui 的 icon
  36. noCache: true // 如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
  37. breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示(默认 true)
  38. affix: true // 如果设置为true,它则会固定在tags-view中(默认 false)
  39. // 当路由设置了该属性,则会高亮相对应的侧边栏。
  40. // 这在某些场景非常有用,比如:一个文章的列表页路由为:/article/list
  41. // 点击文章进入文章详情页,这时候路由为/article/1,但你想在侧边栏高亮文章列表的路由,就可以进行如下设置
  42. activeMenu: '/article/list'
  43. }
  44. */
  45. // 基础路由
  46. export const constantRoutes = [
  47. {
  48. path: '/',
  49. component: Layout,
  50. redirect: '/dashboard',
  51. children: [
  52. {
  53. path: 'dashboard',
  54. component: () => import('@/views/dashboard/index'),
  55. name: 'Dashboard',
  56. meta: { title: '采美后台', icon: 'dashboard', affix: true }
  57. }
  58. ]
  59. },
  60. {
  61. path: '/redirect',
  62. component: Layout,
  63. hidden: true,
  64. children: [
  65. {
  66. path: '/redirect/:path(.*)',
  67. component: () => import('@/views/sys/redirect/index')
  68. }
  69. ]
  70. },
  71. {
  72. path: '/login',
  73. component: () => import('@/views/sys/login/index'),
  74. hidden: true
  75. },
  76. {
  77. path: '/profile',
  78. component: Layout,
  79. redirect: '/profile/index',
  80. hidden: true,
  81. children: [
  82. {
  83. path: 'index',
  84. component: () => import('@/views/sys/profile/index'),
  85. name: 'Profile',
  86. meta: { title: '个人中心', icon: 'user', noCache: true }
  87. }
  88. ]
  89. }
  90. ]
  91. // 默认路由列表
  92. export const asyncRoutes = [
  93. sysRouter,
  94. userRouter,
  95. webPageRouter,
  96. productRouter,
  97. financeRouter,
  98. wechatRouter,
  99. memberRouter,
  100. keywordLibraryRouter,
  101. mallProtraitRouter,
  102. serviceSettlement,
  103. activity,
  104. dataBase
  105. ]
  106. /**
  107. * afterRoutes
  108. * a base page that does not have permission requirements And last loaded
  109. * all roles can be accessed
  110. */
  111. export const afterRoutes = [
  112. {
  113. path: 'external-link',
  114. component: Layout,
  115. children: [
  116. {
  117. path: 'https://www.caimei365.com/',
  118. meta: { title: '采美365', icon: 'link' }
  119. }
  120. ]
  121. },
  122. {
  123. path: '/404',
  124. component: () => import('@/views/sys/error/404'),
  125. hidden: true
  126. },
  127. {
  128. path: '/401',
  129. component: () => import('@/views/sys/error/401'),
  130. hidden: true
  131. },
  132. // 404 page must be placed at the end !!!
  133. { path: '*', redirect: '/404', hidden: true }
  134. ]
  135. // 创建路由对象
  136. const createRouter = () =>
  137. new Router({
  138. // mode: 'history', // require service support
  139. scrollBehavior: () => ({ y: 0 }),
  140. routes: constantRoutes
  141. })
  142. const router = createRouter()
  143. // 重置路由
  144. export function resetRouter() {
  145. const newRouter = createRouter()
  146. router.matcher = newRouter.matcher // reset router
  147. }
  148. export default router