actions:{ //获取当前登录用户的路由表 async loadAuthRouters(){ const userStore = useGlobalUserStore(); //请求获取路由 const res = await getRouters( userStore.currentRolePerm ); if( res.code == '200' ){ // const menu = normalizeMenu( res.data ); console.log( res.data ); this.menuList = menu.routers; this.menuMap = menu.authMenuMap; } } } }) //生成map扁平化格式,方便判断(如果当前用户没有某一个权限那么就不能进入某一个路由中) function normalizeMenu( routers ){ const authMap = new Map(); const authMenuMap = normalizeMenuItem( routers , authMap ); return { routers, authMenuMap } } function normalizeMenuItem( routers , map ){ routers.forEach(item=>{ map.set( item.path , item ); if( item.children ){ return normalizeMenuItem( item.children , map ); } }) return map; }
时间: 2024-02-14 16:22:45 浏览: 254
这段代码是一个 Vue.js 的组件中的 actions 对象,其中 loadAuthRouters 方法是用来获取当前登录用户的路由表。它先通过 useGlobalUserStore 方法获取当前用户的角色权限,然后调用 getRouters 方法来请求获取路由表。如果请求成功,就调用 normalizeMenu 方法来生成扁平化格式的路由表,然后将其赋值给组件的 menuList 和 menuMap。normalizeMenu 方法中调用了 normalizeMenuItem 方法来生成扁平化格式的路由表。这个扁平化格式的路由表可以方便地判断当前用户是否有某一个权限,从而决定是否能够进入某一个路由。
阅读全文