index.js 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. Vue.use(Router)
  4. /* Layout */
  5. import Layout from '@/layout'
  6. /**
  7. * Note: 路由配置项
  8. *
  9. * hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
  10. * alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
  11. * // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
  12. * // 若你想不管路由下面的 children 声明的个数都显示你的根路由
  13. * // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
  14. * redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
  15. * name:'router-name' // 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
  16. * query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数
  17. * roles: ['admin', 'common'] // 访问路由的角色权限
  18. * permissions: ['a:a:a', 'b:b:b'] // 访问路由的菜单权限
  19. * meta : {
  20. noCache: true // 如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
  21. title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字
  22. icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg
  23. breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示
  24. activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。
  25. }
  26. */
  27. // 公共路由
  28. export const constantRoutes = [{
  29. path: '/redirect',
  30. component: Layout,
  31. hidden: true,
  32. children: [{
  33. path: '/redirect/:path(.*)',
  34. component: () => import('@/views/redirect')
  35. }]
  36. }, {
  37. path: '/login',
  38. component: () => import('@/views/login'),
  39. hidden: true
  40. }, {
  41. path: '/register',
  42. component: () => import('@/views/register'),
  43. hidden: true
  44. }, {
  45. path: '/404',
  46. component: () => import('@/views/error/404'),
  47. hidden: true
  48. }, {
  49. path: '/401',
  50. component: () => import('@/views/error/401'),
  51. hidden: true
  52. }, {
  53. path: '',
  54. component: Layout,
  55. redirect: 'index',
  56. children: [{
  57. path: 'index',
  58. component: () => import('@/views/index'),
  59. name: 'Index',
  60. meta: {
  61. title: '首页',
  62. icon: 'dashboard',
  63. affix: true
  64. }
  65. }]
  66. }, {
  67. path: '/user',
  68. component: Layout,
  69. hidden: true,
  70. redirect: 'noredirect',
  71. children: [{
  72. path: 'profile',
  73. component: () => import('@/views/system/user/profile/index'),
  74. name: 'Profile',
  75. meta: {
  76. title: '个人中心',
  77. icon: 'user'
  78. }
  79. }]
  80. }, {
  81. path: '/home',
  82. component: () => import('@/views1/HomeView.vue'),
  83. hidden: true,
  84. children: [{
  85. path: "/home/page",
  86. component: () => import('@/views1/Page/PageView.vue')
  87. }, {
  88. path: "/home/retrieval",
  89. component: () => import('@/views1/Retrieval/RetrievalView.vue')
  90. }, {
  91. path: "/home/retrieval/list",
  92. component: () => import('@/views1/Retrieval/List/ListView.vue')
  93. }, {
  94. path: "/home/file",
  95. component: () => import('@/views1/File/FileView.vue')
  96. }, {
  97. path: "/home/file/part",
  98. component: () => import('@/views1/File/Part/PartView.vue')
  99. }, {
  100. path: "/home/file/publi",
  101. component: () => import('@/views1/File/Publi/PublicView.vue')
  102. }, {
  103. path: "/home/file/individual",
  104. component: () => import('@/views1/File/Individual/IndividualView.vue')
  105. }, {
  106. path: "/home/file/set",
  107. component: () => import('@/views1/File/Set/SetView.vue')
  108. }, {
  109. path: "/home/personal",
  110. component: () => import('@/views1/Personal/PersonalView.vue')
  111. }, {
  112. path: "/home/personal/classify",
  113. component: () => import('@/views1/Personal/Classify/ClassifyView.vue')
  114. }, {
  115. path: "/home/personal/space",
  116. component: () => import('@/views1/Personal/Space/SpaceView.vue')
  117. }, {
  118. path: "/home/personal/modify",
  119. component: () => import('@/views1/Personal/Modify/ModifyView.vue')
  120. }, {
  121. path: "/home/system",
  122. component: () => import('@/views1/System/SystemView.vue')
  123. }, {
  124. path: "/home/system/organization",
  125. component: () => import('@/views1/System/Organization/OrganizationView.vue')
  126. }, {
  127. path: "/home/system/user",
  128. component: () => import('@/views1/System/User/UserView.vue')
  129. }, {
  130. path: "/home/system/authority",
  131. component: () => import('@/views1/System/Authority/AuthorityView.vue')
  132. }, {
  133. path: "/home/system/notes",
  134. component: () => import('@/views1/System/Notes/NotesView.vue')
  135. }, {
  136. path: "/home/system/space",
  137. component: () => import('@/views1/System/Space/SpaceView.vue')
  138. }],
  139. }, {
  140. path: '/login1',
  141. component: () => import('@/views1/LoginView.vue'),
  142. hidden: true,
  143. }, ]
  144. // 动态路由,基于用户权限动态去加载
  145. export const dynamicRoutes = [{
  146. path: '/system/user-auth',
  147. component: Layout,
  148. hidden: true,
  149. permissions: ['system:user:edit'],
  150. children: [{
  151. path: 'role/:userId(\\d+)',
  152. component: () => import('@/views/system/user/authRole'),
  153. name: 'AuthRole',
  154. meta: {
  155. title: '分配角色',
  156. activeMenu: '/system/user'
  157. }
  158. }]
  159. }, {
  160. path: '/system/role-auth',
  161. component: Layout,
  162. hidden: true,
  163. permissions: ['system:role:edit'],
  164. children: [{
  165. path: 'user/:roleId(\\d+)',
  166. component: () => import('@/views/system/role/authUser'),
  167. name: 'AuthUser',
  168. meta: {
  169. title: '分配用户',
  170. activeMenu: '/system/role'
  171. }
  172. }]
  173. }, {
  174. path: '/system/dict-data',
  175. component: Layout,
  176. hidden: true,
  177. permissions: ['system:dict:list'],
  178. children: [{
  179. path: 'index/:dictId(\\d+)',
  180. component: () => import('@/views/system/dict/data'),
  181. name: 'Data',
  182. meta: {
  183. title: '字典数据',
  184. activeMenu: '/system/dict'
  185. }
  186. }]
  187. }, {
  188. path: '/monitor/job-log',
  189. component: Layout,
  190. hidden: true,
  191. permissions: ['monitor:job:list'],
  192. children: [{
  193. path: 'index/:jobId(\\d+)',
  194. component: () => import('@/views/monitor/job/log'),
  195. name: 'JobLog',
  196. meta: {
  197. title: '调度日志',
  198. activeMenu: '/monitor/job'
  199. }
  200. }]
  201. }, {
  202. path: '/tool/gen-edit',
  203. component: Layout,
  204. hidden: true,
  205. permissions: ['tool:gen:edit'],
  206. children: [{
  207. path: 'index/:tableId(\\d+)',
  208. component: () => import('@/views/tool/gen/editTable'),
  209. name: 'GenEdit',
  210. meta: {
  211. title: '修改生成配置',
  212. activeMenu: '/tool/gen'
  213. }
  214. }]
  215. }, {
  216. path: '/doc/oo-edit',
  217. component: Layout,
  218. hidden: true,
  219. permissions: ['doc:info:edit'],
  220. children: [{
  221. path: 'index/:docId(\\d+)',
  222. component: () => import('@/views/doc/oo/edit'),
  223. name: 'OoEdit',
  224. meta: {
  225. title: '文件在线编辑',
  226. activeMenu: '/doc/info'
  227. }
  228. }]
  229. }, {
  230. path: '/doc/group-user/',
  231. component: Layout,
  232. hidden: true,
  233. permissions: ['doc:groupUser:edit'],
  234. children: [{
  235. path: 'user/:groupId(\\d+)',
  236. component: () => import('@/views/doc/groupUser/index'),
  237. name: 'AuthUser',
  238. meta: {
  239. title: '分配成员',
  240. activeMenu: '/doc/group'
  241. }
  242. }]
  243. }]
  244. // 防止连续点击多次路由报错
  245. let routerPush = Router.prototype.push;
  246. Router.prototype.push = function push(location) {
  247. return routerPush.call(this, location).catch(err => err)
  248. }
  249. export default new Router({
  250. mode: 'history', // 去掉url中的#
  251. scrollBehavior: () => ({
  252. y: 0
  253. }),
  254. routes: constantRoutes
  255. })