Files
pqs-9100_client/frontend/src/stores/modules/auth.ts
2024-08-22 11:27:06 +08:00

46 lines
1.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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,
state: (): AuthState => ({
// 按钮权限列表
authButtonList: {},
// 菜单权限列表
authMenuList: [],
// 当前页面的 router name用来做按钮权限筛选
routeName: ""
}),
getters: {
// 按钮权限列表
authButtonListGet: state => state.authButtonList,
// 菜单权限列表 ==> 这里的菜单没有经过任何处理
authMenuListGet: state => state.authMenuList,
// 菜单权限列表 ==> 左侧菜单栏渲染,需要剔除 isHide == true
showMenuListGet: state => getShowMenuList(state.authMenuList),
// 菜单权限列表 ==> 扁平化之后的一维数组菜单,主要用来添加动态路由
flatMenuListGet: state => getFlatMenuList(state.authMenuList),
// 递归处理后的所有面包屑导航列表
breadcrumbListGet: state => getAllBreadcrumbList(state.authMenuList)
},
actions: {
// Get AuthButtonList
async getAuthButtonList() {
const {data} = await getAuthButtonListApi();
this.authButtonList = data;
},
// Get AuthMenuList
async getAuthMenuList() {
const {data} = await getAuthMenuListApi();
this.authMenuList = data;
},
// Set RouteName
async setRouteName(name: string) {
this.routeName = name;
}
}
});