import { acceptHMRUpdate, defineStore } from 'pinia'; interface BasicUserInfo { [key: string]: any; /** * 头像 */ avatar: string; /** * 用户昵称 */ nickname: string; /** * 用户id */ userId: string; /** * 用户名 */ username: string; } interface AccessState { /** * 用户信息 */ userInfo: BasicUserInfo | null; /** * 用户角色 */ userRoles: string[]; } /** * @zh_CN 用户信息相关 */ export const useUserStore = defineStore('core-user', { actions: { setUserInfo(userInfo: BasicUserInfo | null) { this.userInfo = userInfo; }, setUserRoles(roles: string[]) { this.userRoles = roles; }, }, state: (): AccessState => ({ userInfo: null, userRoles: [], }) }); // 解决热更新问题 const hot = import.meta.hot; if (hot) { hot.accept(acceptHMRUpdate(useUserStore, hot)); }