微人事(7)- 菜单请求类封装

1 菜单项数据加载成功后

在前端有几个可以存放的地方:

  1. sessionStorage
  2. localStorage
  3. vuex(状态管理工具)

2 vuex 安装配置

微人事(7)- 菜单请求类封装_第1张图片
在这里插入图片描述

import Vue from 'vue'
import Vuex from 'vuex'

Vue.user(Vuex)

export default new Vuex.Store({
    state:{
        routes:[]
    },
    mutations:{
        initRoutes(state,data){
            state.routes = data;
        }
    },
    actions:{

    }
})
  • store.js
    微人事(7)- 菜单请求类封装_第2张图片

微人事(7)- 菜单请求类封装_第3张图片

3 菜单请求类的封装

微人事(7)- 菜单请求类封装_第4张图片

import {getRequest} from "../../utils/api";


export const initMenu=(router,store) =>{
    if(store.state.routes.length > 0){
        // 说明有菜单数据,直接返回
        return;
    }
    getRequest("/system/config/menu").then(data =>{
        if(data){
            let fmtRoutes = formatRoutes(data);
            router.addRoutes(fmtRoutes);
            store.commit('initRoutes', fmtRoutes);
        }
    })
}

export const formatRoutes=(routes)=>{
    let fmRoutes = [];
    routes.forEach(router =>{
        let{
            path,
            component,
            name,
            meta,
            iconCls,
            children
        } = router

        if(children && children instanceof Array){
            // 说明是一级菜单
            children = formatRoutes(children);
        }

        let fmRouter={
            path:path,
            name:name,
            iconCls:iconCls,
            meta:meta,
            children:children,
            component(resolve){
                require(['../views/' + component+'.vue'],resolve);
            }
        }

        fmRoutes.push(fmRouter);
    })
    return fmRoutes;
}

4 前端页面添加并完善菜单请求

微人事(7)- 菜单请求类封装_第5张图片

微人事(7)- 菜单请求类封装_第6张图片

微人事(7)- 菜单请求类封装_第7张图片

5 左边导航菜单加载

路由导航守卫
微人事(7)- 菜单请求类封装_第8张图片
微人事(7)- 菜单请求类封装_第9张图片


微人事(7)- 菜单请求类封装_第10张图片

微人事(7)- 菜单请求类封装_第11张图片

微人事(7)- 菜单请求类封装_第12张图片
微人事(7)- 菜单请求类封装_第13张图片

微人事(7)- 菜单请求类封装_第14张图片


5.1 安装图标库

微人事(7)- 菜单请求类封装_第15张图片
微人事(7)- 菜单请求类封装_第16张图片
微人事(7)- 菜单请求类封装_第17张图片

微人事(7)- 菜单请求类封装_第18张图片

微人事(7)- 菜单请求类封装_第19张图片

6 页面加载问题

微人事(7)- 菜单请求类封装_第20张图片
微人事(7)- 菜单请求类封装_第21张图片


  • 按回车登录
    微人事(7)- 菜单请求类封装_第22张图片

你可能感兴趣的:(#,微人事项目,springboot,vue,微人事)