农经大屏
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

permission.js 1.3 KiB

il y a 2 semaines
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { constantRoutes } from '@/router'
  2. const permission = {
  3. state: {
  4. routes: [],
  5. addRoutes: [],
  6. sidebarRouters: []
  7. },
  8. mutations: {
  9. SET_ROUTES: (state, routes) => {
  10. state.addRoutes = routes
  11. state.routes = constantRoutes.concat(routes)
  12. },
  13. SET_SIDEBAR_ROUTERS: (state, routers) => {
  14. state.sidebarRouters = constantRoutes.concat(routers)
  15. },
  16. },
  17. actions: {
  18. }
  19. }
  20. function filterChildren (childrenMap) {
  21. var children = []
  22. childrenMap.forEach((el, index) => {
  23. if (el.children && el.children.length) {
  24. if (el.component === 'ParentView') {
  25. el.children.forEach(c => {
  26. c.path = el.path + '/' + c.path
  27. if (c.children && c.children.length) {
  28. children = children.concat(filterChildren(c.children, c))
  29. return
  30. }
  31. children.push(c)
  32. })
  33. return
  34. }
  35. }
  36. children = children.concat(el)
  37. })
  38. return children
  39. }
  40. export const loadView = (view) => {
  41. if (process.env.NODE_ENV === 'development') {
  42. return (resolve) => require([`@/views/${view}`], resolve)
  43. } else {
  44. // 使用 import 实现生产环境的路由懒加载
  45. return () => import(`@/views/${view}`)
  46. }
  47. }
  48. export default permission