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中制作假数据然后通过后端接口返回的数据进行对比,相等的显示

相关推荐
你好潘先生1 分钟前
让 AI 任务不丢进度:YeeroAI 后台续跑与全局快捷操作实践
前端·人工智能·后端
不好听6139 分钟前
javascript中对象的简单了解
javascript
candyTong15 分钟前
Claude Code 的 Skill 动态发现机制
javascript
小KK_17 分钟前
写给前端小白:我终于搞懂了JS原型和原型链
前端·javascript
烂人文19 分钟前
Codex 走中转站后,手机也能远程控制,Free 账号也能用
前端
Java技术小馆22 分钟前
Claude Code CLI 命令大全:60 个原生命令一次讲清
前端·后端
HjhIron23 分钟前
学习并且总结JavaScript对象
javascript
LCG元42 分钟前
深耕多智能体编排,解锁复杂Agent开发之路
前端·数据库·人工智能
拾年2751 小时前
520刚过,今天来教你怎么"驾驭"别人的对象
前端·javascript