import { getUserCenter } from '@/api/user' import { TOKEN_KEY } from '@/enums/cacheEnums' import cache from '@/utils/cache' import { defineStore } from 'pinia' interface UserSate { userInfo: Record token: string | null temToken: string | null } export const useUserStore = defineStore({ id: 'userStore', state: (): UserSate => ({ userInfo: {}, token: cache.get(TOKEN_KEY) || null, temToken: null }), getters: { isLogin: (state) => !!state.token }, actions: { async getUser() { const data = await getUserCenter({ token: this.token || this.temToken }) this.userInfo = data }, login(token: string) { this.token = token cache.set(TOKEN_KEY, token) }, logout() { this.token = '' this.userInfo = {} cache.remove(TOKEN_KEY) } } })