fix:完善相关页面

This commit is contained in:
liangdong
2025-12-30 19:08:31 +08:00
parent fa4de6f71f
commit bfb6a1e500
22 changed files with 1886 additions and 23 deletions

View File

@@ -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;