permission.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { publicRoutes } from '@/router/public-routes'
  2. import { privateRoutes } from '@/router/private-routes'
  3. export default {
  4. namespaced: true,
  5. state: {
  6. // 路由表: 初始时所拥有的路由表
  7. routes: publicRoutes,
  8. navMenus: []
  9. },
  10. mutations: {
  11. // 增加路由的方法
  12. setRoutes(state, newRoutes) {
  13. state.routes = [...publicRoutes, ...newRoutes]
  14. },
  15. setNavMenus(state, data) {
  16. state.navMenus = data
  17. }
  18. },
  19. actions: {
  20. /**
  21. * 根据权限数据筛选路由
  22. * @param {*} context
  23. * @param {*} menus 权限数据
  24. */
  25. filterRoutes(context, menus) {
  26. const routes = []
  27. menus.forEach((item) => {
  28. privateRoutes.forEach((key) => {
  29. if (key.name === item) routes.push(key)
  30. })
  31. })
  32. routes.push({
  33. path: '/:catchAll(.*)',
  34. redirect: '/404'
  35. })
  36. context.commit('setRoutes', routes)
  37. return routes
  38. },
  39. setNavMenus(context, data) {
  40. context.commit('setNavMenus', [
  41. {
  42. path: '/home',
  43. name: 'Home',
  44. // children: [],
  45. meta: {
  46. title: '综合看板',
  47. icon: 'el-icon-s-home'
  48. }
  49. },
  50. ...data
  51. ])
  52. }
  53. }
  54. }