import { defineStore } from 'pinia'; import { fetchProfileInfo } from '@/api/all/login'; interface UserInfo { id: number; name: string; head_image: String; current_enterprise_id: number; mobile: string; // 添加其他用户属性... } interface CompanyInfo { id: number; name: string; // 添加其他公司属性... } interface UserState { token: string; userInfo: UserInfo | null; companyInfo: CompanyInfo | null; // isLogin: boolean; } interface UserInfo { id: number; mobile: string; name: string; } export const useUserStore = defineStore('user', { state: (): UserState => ({ token: localStorage.getItem('accessToken') || '', userInfo: null, companyInfo: null, }), getters: { isLogin(): boolean { return !!this.token; }, }, actions: { // 设置 Token setToken(token: string) { this.token = `Bearer ${token}`; localStorage.setItem('accessToken', this.token); }, deleteToken() { this.token = ''; localStorage.removeItem('accessToken'); }, // 获取 Token getToken() { return this.token; }, // 设置用户信息 setUserInfo(userInfo: UserInfo | null) { this.userInfo = userInfo; }, // 获取用户信息 async fetchUserInfo() { const { code, data } = await fetchProfileInfo(); if (code === 200) { this.setUserInfo(data); } }, }, });