导航栏/菜单栏显示逻辑修改
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
import {defineStore} from "pinia";
|
||||
import {AuthState} from "@/stores/interface";
|
||||
import {getAuthButtonListApi, getAuthMenuListApi} from "@/api/modules/login";
|
||||
import {getFlatMenuList, getShowMenuList, getAllBreadcrumbList} from "@/utils";
|
||||
import {AUTH_STORE_KEY} from "@/stores/constant";
|
||||
import { defineStore } from "pinia";
|
||||
import { AuthState } from "@/stores/interface";
|
||||
import { getAuthButtonListApi, getAuthMenuListApi } from "@/api/modules/login";
|
||||
import {
|
||||
getFlatMenuList,
|
||||
getShowMenuList,
|
||||
getAllBreadcrumbList,
|
||||
} from "@/utils";
|
||||
import { AUTH_STORE_KEY } from "@/stores/constant";
|
||||
|
||||
export const useAuthStore = defineStore({
|
||||
id: AUTH_STORE_KEY,
|
||||
@@ -12,34 +16,57 @@ export const useAuthStore = defineStore({
|
||||
// 菜单权限列表
|
||||
authMenuList: [],
|
||||
// 当前页面的 router name,用来做按钮权限筛选
|
||||
routeName: ""
|
||||
routeName: "",
|
||||
//登录不显示菜单栏和导航栏,点击进入测试的时候显示
|
||||
showMenuFlag: JSON.parse(localStorage.getItem("showMenuFlag")),
|
||||
}),
|
||||
getters: {
|
||||
// 按钮权限列表
|
||||
authButtonListGet: state => state.authButtonList,
|
||||
authButtonListGet: (state) => state.authButtonList,
|
||||
// 菜单权限列表 ==> 这里的菜单没有经过任何处理
|
||||
authMenuListGet: state => state.authMenuList,
|
||||
authMenuListGet: (state) => state.authMenuList,
|
||||
// 菜单权限列表 ==> 左侧菜单栏渲染,需要剔除 isHide == true
|
||||
showMenuListGet: state => getShowMenuList(state.authMenuList),
|
||||
showMenuListGet: (state) => getShowMenuList(state.authMenuList),
|
||||
// 菜单权限列表 ==> 扁平化之后的一维数组菜单,主要用来添加动态路由
|
||||
flatMenuListGet: state => getFlatMenuList(state.authMenuList),
|
||||
flatMenuListGet: (state) => getFlatMenuList(state.authMenuList),
|
||||
// 递归处理后的所有面包屑导航列表
|
||||
breadcrumbListGet: state => getAllBreadcrumbList(state.authMenuList)
|
||||
breadcrumbListGet: (state) => getAllBreadcrumbList(state.authMenuList),
|
||||
//是否显示菜单和导航栏
|
||||
showMenuFlagGet: (state) => state.showMenuFlag,
|
||||
},
|
||||
actions: {
|
||||
// Get AuthButtonList
|
||||
async getAuthButtonList() {
|
||||
const {data} = await getAuthButtonListApi();
|
||||
const { data } = await getAuthButtonListApi();
|
||||
this.authButtonList = data;
|
||||
},
|
||||
// Get AuthMenuList
|
||||
async getAuthMenuList() {
|
||||
const {data} = await getAuthMenuListApi();
|
||||
const { data } = await getAuthMenuListApi();
|
||||
this.authMenuList = data;
|
||||
},
|
||||
// Set RouteName
|
||||
async setRouteName(name: string) {
|
||||
this.routeName = name;
|
||||
},
|
||||
//重置权限
|
||||
async resetAuthStore() {
|
||||
this.showMenuFlag=false;
|
||||
localStorage.removeItem("showMenuFlag");
|
||||
},
|
||||
//修改判断菜单栏/导航栏显示条件
|
||||
async setShowMenu() {
|
||||
this.showMenuFlag = true;
|
||||
localStorage.setItem("showMenuFlag", true);
|
||||
},
|
||||
//更改模式
|
||||
async changeModel(){
|
||||
this.showMenuFlag=!this.showMenuFlag;
|
||||
if(this.showMenuFlag){
|
||||
localStorage.setItem("showMenuFlag", true);
|
||||
}else{
|
||||
localStorage.removeItem("showMenuFlag");
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user