2 12.根据菜单动态添加路由

  • 保存路由信息

const store = createStore({
    state() {
        return {

            ...

            // 
            menus: [],
            ruleNames: []
        }
    },
    mutations: {
        
        ...

        // 菜单相关
        SET_MENUS(state, menus){
            state.menus = menus
        },
        
        SET_RULENAMES(state, ruleNames){
            state.ruleNames = ruleNames
        },
    },
    actions: {

    	...

        // 获取当前登录用户信息
        getinfo({ commit }){
            return new Promise((resolve, reject) => {
                getinfo().then(res=>{
                    // console.log(res)
                    commit('SET_USERINFO', res)
                    commit('SET_MENUS', res.menus)
                    commit('SET_RULENAMES', res.ruleNames)
                    resolve(res)
                }).catch(err=>reject(err))
            })
        },
    }
})
  • 动态路由匹配设置

src/router/index.js

  • 全局前置守卫设置路由

src/permission.js

Last updated