import { defineStore } from 'pinia'; 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; } export const useUserStore = defineStore('user', { state: (): UserState => ({ token: localStorage.getItem('accessToken') || '', userInfo: null, companyInfo: null, }), actions: { setToken(token: String) { const _token = `Bearer ${token}`; this.token = _token; localStorage.setItem('accessToken', _token); }, // 存储用户信息 setUserInfo(userInfo: UserInfo | null) { this.userInfo = userInfo; if (userInfo) { localStorage.setItem('userInfo', JSON.stringify(userInfo)); } else { localStorage.removeItem('userInfo'); } }, // 获取用户信息 getUserInfo(): UserInfo | null { const userInfoStr = localStorage.getItem('userInfo'); if (userInfoStr) { try { return JSON.parse(userInfoStr); } catch (error) { console.error('解析用户信息失败:', error); return null; } } return null; }, // 存储公司信息 setCompanyInfo(companyInfo: CompanyInfo | null) { this.companyInfo = companyInfo; if (companyInfo) { localStorage.setItem('companyInfo', JSON.stringify(companyInfo)); } else { localStorage.removeItem('companyInfo'); } }, // 获取公司信息 getCompanyInfo(): CompanyInfo | null { const companyInfoStr = localStorage.getItem('companyInfo'); if (companyInfoStr) { try { return JSON.parse(companyInfoStr); } catch (error) { console.error('解析公司信息失败:', error); return null; } } return null; }, // 删除 token deleteToken() { this.token = ''; localStorage.removeItem('accessToken'); }, }, });