formatRoutesToModule.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { constantRoutes, asyncRoutes } from '@/router/index'
  2. import store from '@/store'
  3. let routesTree = []
  4. let routes = []
  5. function getRoutes() {
  6. const roles = store.getters.roles
  7. routes = [...constantRoutes, ...asyncRoutes].filter(item => item.meta)
  8. if (!roles.includes('admin')) {
  9. routes = routes.filter(route => !route.meta.roles || route.meta.roles.includes('normal'))
  10. }
  11. return routes
  12. }
  13. function formatRoutesToModule() {
  14. routes = getRoutes()
  15. routesTree = []
  16. routes.forEach(first => {
  17. const obj = {
  18. label: first.meta.title,
  19. value: first.meta.id
  20. }
  21. if (first.children) {
  22. obj.children = []
  23. first.children.forEach(second => {
  24. obj.children.push({
  25. label: second.meta.title,
  26. value: second.meta.id
  27. })
  28. })
  29. }
  30. routesTree.push(obj)
  31. })
  32. return routesTree
  33. }
  34. export function getToutesTree() {
  35. return formatRoutesToModule()
  36. }
  37. // 根据id获取栏目
  38. export function getModuleType(ids) {
  39. ids = ids.split('-')
  40. const parent = routes.find(item => item.meta.id === parseInt(ids[0]))
  41. const children = parent && parent.children.find(item => item.meta.id === parseInt(ids[1]))
  42. if (!parent || !children) {
  43. return ''
  44. }
  45. return `${parent.meta.title}/${children.meta.title}`
  46. }