vue3-admin-element框架实现动态路由(根据接口返回)

第一步:在src-utils-handleRoutes,修改代码:

复制代码
export function convertRouter(routers) {
  let array = [];
  for (let i in routers) {
    for (let s in asyncRoutes) {
      if (routers[i].path == asyncRoutes[s].path) {
        array.push({ ...asyncRoutes[s] });
        if (s != 0) array[s].children = [];
        for (let o in routers[i].children) {
          for (let p in asyncRoutes[s].children) {
            if (
              routers[i].children[o].path == asyncRoutes[s].children[p].path &&
              routers[i].children[o].path != '/index'
            ) {
              array[s].children.push(asyncRoutes[s].children[p]);
            }
          }
        }
      }
    }
  }
  return array;
}

第二步登录后存储菜单数据:

第三部:因为框架默认为前端控制路由所以需要在src-config-setting文件将authentication改为all

第四步:找到src-config-permission ,获取登录成功后存储的菜单列表

第五步:找到src--store-modules-routes.js

async setAllRoutes({ commit }) {

let data = JSON.parse(localStorage.getItem('data'));

let menu = data.data.menu;

let accessRoutes = convertRouter(menu);

commit('setAllRoutes', accessRoutes);

return accessRoutes;

},

总结:此方法需要先在router index.js中制作假数据然后通过后端接口返回的数据进行对比,相等的显示

相关推荐
IT 行者5 小时前
Web逆向工程AI工具:JSHook MCP,80+专业工具让Claude变JS逆向大师
开发语言·javascript·ecmascript·逆向
devlei6 小时前
从源码泄露看AI Agent未来:深度对比Claude Code原生实现与OpenClaw开源方案
android·前端·后端
程序员 沐阳7 小时前
JavaScript 内存与引用:深究深浅拷贝、垃圾回收与 WeakMap/WeakSet
开发语言·javascript·ecmascript
Jagger_7 小时前
周末和AI肝了两天,终于知道:为什么要把AI当做实习生
前端
weixin_456164837 小时前
vue3 子组件向父组件传参
前端·vue.js
沉鱼.447 小时前
第十二届题目
java·前端·算法
Setsuna_F_Seiei7 小时前
CocosCreator 游戏开发 - 多维度状态机架构设计与实现
前端·cocos creator·游戏开发
Bigger8 小时前
CodeWalkers:让 AI 助手化身桌面宠物,陪你敲代码的赛博伙伴!
前端·app·ai编程
cyclv9 小时前
无网络地图展示轨迹,地图瓦片下载,绘制管线
前端·javascript
土豆12509 小时前
Tauri 入门与实践:用 Rust 构建你的下一个桌面应用
前端·rust