import { defineStore } from 'pinia' /** * 用户信息 Store */ export const useUserStore = defineStore('user', { state: () => ({ userInfo: null, token: '', isLogin: false }), getters: { // 获取用户昵称 nickname: (state) => state.userInfo?.nickname || '未登录', // 获取用户头像 avatar: (state) => state.userInfo?.avatar || '/static/default-avatar.svg' }, actions: { // 设置用户信息 setUserInfo(userInfo) { this.userInfo = userInfo this.isLogin = true }, // 设置 token setToken(token) { this.token = token // 持久化存储 uni.setStorageSync('token', token) }, // 登出(仅清除本地数据,不调用API) logout() { // 清除 store 中的用户信息 this.userInfo = null this.token = '' this.isLogin = false // 清除本地存储的 token uni.removeStorageSync('token') }, // 从本地存储恢复状态 restoreState() { const token = uni.getStorageSync('token') if (token) { this.token = token // 这里可以调用 API 获取用户信息 } } } }) /** * 应用全局 Store */ export const useAppStore = defineStore('app', { state: () => ({ theme: 'light', loading: false, networkStatus: true }), getters: { isDark: (state) => state.theme === 'dark' }, actions: { // 切换主题 toggleTheme() { this.theme = this.theme === 'light' ? 'dark' : 'light' uni.setStorageSync('theme', this.theme) }, // 设置加载状态 setLoading(loading) { this.loading = loading }, // 设置网络状态 setNetworkStatus(status) { this.networkStatus = status } } })