| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 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
- }
- }
- })
|