修复四级菜单无法显示问题
This commit is contained in:
		
							parent
							
								
									baeed2e8d3
								
							
						
					
					
						commit
						df504c5c14
					
				| 
						 | 
					@ -27,7 +27,7 @@ const permission = {
 | 
				
			||||||
          const sdata = JSON.parse(JSON.stringify(res.data))
 | 
					          const sdata = JSON.parse(JSON.stringify(res.data))
 | 
				
			||||||
          const rdata = JSON.parse(JSON.stringify(res.data))
 | 
					          const rdata = JSON.parse(JSON.stringify(res.data))
 | 
				
			||||||
          const sidebarRoutes = filterAsyncRouter(sdata)
 | 
					          const sidebarRoutes = filterAsyncRouter(sdata)
 | 
				
			||||||
          const rewriteRoutes = filterAsyncRouter(rdata, true)
 | 
					          const rewriteRoutes = filterAsyncRouter(rdata, false, true)
 | 
				
			||||||
          rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true })
 | 
					          rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true })
 | 
				
			||||||
          commit('SET_ROUTES', rewriteRoutes)
 | 
					          commit('SET_ROUTES', rewriteRoutes)
 | 
				
			||||||
          commit('SET_SIDEBAR_ROUTERS', sidebarRoutes)
 | 
					          commit('SET_SIDEBAR_ROUTERS', sidebarRoutes)
 | 
				
			||||||
| 
						 | 
					@ -39,9 +39,9 @@ const permission = {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 遍历后台传来的路由字符串,转换为组件对象
 | 
					// 遍历后台传来的路由字符串,转换为组件对象
 | 
				
			||||||
function filterAsyncRouter(asyncRouterMap, isRewrite = false) {
 | 
					function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
 | 
				
			||||||
  return asyncRouterMap.filter(route => {
 | 
					  return asyncRouterMap.filter(route => {
 | 
				
			||||||
    if (isRewrite && route.children) {
 | 
					    if (type && route.children) {
 | 
				
			||||||
      route.children = filterChildren(route.children)
 | 
					      route.children = filterChildren(route.children)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (route.component) {
 | 
					    if (route.component) {
 | 
				
			||||||
| 
						 | 
					@ -55,13 +55,16 @@ function filterAsyncRouter(asyncRouterMap, isRewrite = false) {
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (route.children != null && route.children && route.children.length) {
 | 
					    if (route.children != null && route.children && route.children.length) {
 | 
				
			||||||
      route.children = filterAsyncRouter(route.children, route, isRewrite)
 | 
					      route.children = filterAsyncRouter(route.children, route, type)
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      delete route['children']
 | 
				
			||||||
 | 
					      delete route['redirect']
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return true
 | 
					    return true
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function filterChildren(childrenMap) {
 | 
					function filterChildren(childrenMap, lastRouter = false) {
 | 
				
			||||||
  var children = []
 | 
					  var children = []
 | 
				
			||||||
  childrenMap.forEach((el, index) => {
 | 
					  childrenMap.forEach((el, index) => {
 | 
				
			||||||
    if (el.children && el.children.length) {
 | 
					    if (el.children && el.children.length) {
 | 
				
			||||||
| 
						 | 
					@ -77,6 +80,9 @@ function filterChildren(childrenMap) {
 | 
				
			||||||
        return
 | 
					        return
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (lastRouter) {
 | 
				
			||||||
 | 
					      el.path = lastRouter.path + '/' + el.path
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    children = children.concat(el)
 | 
					    children = children.concat(el)
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
  return children
 | 
					  return children
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue