routes.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /**
  2. * @description 路由拦截状态管理,目前两种模式:all模式与intelligence模式,其中partialRoutes是菜单暂未使用
  3. */
  4. import { asyncRoutes, constantRoutes } from '@/router'
  5. import { getRouterList } from '@/api/router'
  6. import { convertRouter, filterRoutes } from '@/utils/routes'
  7. import { ElMessage } from 'element-plus'
  8. import store from '..'
  9. // import { Layout } from 'ant-design-vue'
  10. const state = () => ({
  11. routes: [],
  12. partialRoutes: [],
  13. })
  14. const getters = {
  15. routes: (state) => state.routes,
  16. partialRoutes: (state) => state.partialRoutes,
  17. }
  18. const mutations = {
  19. setRoutes(state, routes) {
  20. state.routes = routes
  21. },
  22. setPartialRoutes(state, routes) {
  23. state.partialRoutes = routes
  24. },
  25. }
  26. const actions = {
  27. /**
  28. * @description intelligence模式设置路由
  29. * @param {*} { commit }
  30. * @returns
  31. */
  32. async setRoutes({ commit }) {
  33. const finallyRoutes = filterRoutes([...constantRoutes, ...asyncRoutes])
  34. commit('setRoutes', finallyRoutes)
  35. return [...asyncRoutes]
  36. },
  37. /**
  38. * @description all模式设置路由
  39. * @param {*} { commit }
  40. * @returns
  41. */
  42. async setAllRoutes({ commit }) {
  43. let { data } = await getRouterList();
  44. if (data.length == 0) {
  45. store.state.auth = 0
  46. ElMessage.warning('此角色暂无分配权限,请先联系超级管理员分配权限 ! ')
  47. } else {
  48. store.state.auth = 1
  49. }
  50. data.forEach(function (item) {
  51. if (item.children.length > 1) {
  52. item.children.forEach(function (i) {
  53. i.meta.icon = ''
  54. })
  55. }
  56. })
  57. const asyncRoutes = convertRouter(data)
  58. const finallyRoutes = filterRoutes([...constantRoutes, ...asyncRoutes])
  59. commit('setRoutes', finallyRoutes)
  60. return [...asyncRoutes]
  61. },
  62. /**
  63. * @description 画廊布局、综合布局设置路由
  64. * @param {*} { commit }
  65. * @param accessedRoutes 画廊布局、综合布局设置路由
  66. */
  67. setPartialRoutes({ commit }, accessedRoutes) {
  68. commit('setPartialRoutes', accessedRoutes)
  69. },
  70. }
  71. export default { state, getters, mutations, actions }