src/store/modules/permission.js
@@ -36,9 +36,10 @@
        return new Promise(resolve => {
          // 向后端请求路由数据
          getRouters().then(res => {
            const sdata = JSON.parse(JSON.stringify(res.data))
            const rdata = JSON.parse(JSON.stringify(res.data))
            const defaultData = JSON.parse(JSON.stringify(res.data))
            const data = filterBadRoutes(JSON.parse(JSON.stringify(res.data)))
            const sdata = JSON.parse(JSON.stringify(data))
            const rdata = JSON.parse(JSON.stringify(data))
            const defaultData = JSON.parse(JSON.stringify(data))
            const sidebarRoutes = filterAsyncRouter(sdata)
            const rewriteRoutes = filterAsyncRouter(rdata, false, true)
            const defaultRoutes = filterAsyncRouter(defaultData)
@@ -55,6 +56,19 @@
    }
  })
// 剔除后端返回的无 path 菜单(如地址只填 https:// 的内链菜单),避免 addRoute 与侧边栏渲染报错
function filterBadRoutes(routes) {
  return routes.filter(route => {
    if (!route.path) {
      return false
    }
    if (route.children && route.children.length) {
      route.children = filterBadRoutes(route.children)
    }
    return true
  })
}
// 遍历后台传来的路由字符串,转换为组件对象
function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
  return asyncRouterMap.filter(route => {