fix:完善相关页面
This commit is contained in:
@@ -1,12 +1,63 @@
|
||||
import { defineStore } from "pinia";
|
||||
import useTokenRefresh from "@/hooks/useTokenRefresh";
|
||||
|
||||
const baseUrl = import.meta.env.VITE_APP_BASE_API || "";
|
||||
|
||||
interface UserInfo {
|
||||
name?: string;
|
||||
role?: string;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface RouteMenu {
|
||||
path: string;
|
||||
name?: string;
|
||||
component?: string;
|
||||
meta?: {
|
||||
title?: string;
|
||||
icon?: string;
|
||||
requiresAuth?: boolean;
|
||||
roles?: string[];
|
||||
[key: string]: any;
|
||||
};
|
||||
children?: RouteMenu[];
|
||||
}
|
||||
|
||||
const useUserStore = defineStore("user", {
|
||||
state: () => {
|
||||
const { getAccessToken } = useTokenRefresh(baseUrl);
|
||||
return {
|
||||
name: "user",
|
||||
token: getAccessToken() || "",
|
||||
userInfo: {} as UserInfo,
|
||||
routes: [] as RouteMenu[],
|
||||
isRoutesLoaded: false, // 标记路由是否已加载
|
||||
};
|
||||
},
|
||||
getters: {
|
||||
isLoggedIn: (state) => {
|
||||
return !!state.token;
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
setToken(token: string) {
|
||||
this.token = token;
|
||||
},
|
||||
setUserInfo(userInfo: UserInfo) {
|
||||
this.userInfo = userInfo;
|
||||
},
|
||||
setRoutes(routes: RouteMenu[]) {
|
||||
this.routes = routes;
|
||||
this.isRoutesLoaded = true;
|
||||
},
|
||||
clearUserData() {
|
||||
this.token = "";
|
||||
this.userInfo = {};
|
||||
this.routes = [];
|
||||
this.isRoutesLoaded = false;
|
||||
const { clearTokens } = useTokenRefresh(baseUrl);
|
||||
clearTokens();
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
export default useUserStore;
|
||||
Reference in New Issue
Block a user