feat: 初始化收支管理系统

This commit is contained in:
wangshuo
2026-08-30 14:36:22 +08:00
commit 733ed4bb86
79 changed files with 5808 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
// 用户状态管理模块:管理用户的登录状态(token、昵称、用户ID)
import { defineStore } from 'pinia'
import { ref } from 'vue'
import { getUserInfo } from '../api/user'
export const useUserStore = defineStore('user', () => {
// 从 localStorage 恢复 token,若不存在则为空字符串
const token = ref(localStorage.getItem('token') || '')
const nickname = ref('') // 用户昵称
const userId = ref<number | null>(null) // 用户 ID
/** 设置 token 并持久化到 localStorage */
function setToken(t: string) {
token.value = t
localStorage.setItem('token', t)
}
/** 设置用户基本信息(昵称和 ID) */
function setUserInfo(nick: string, id: number) {
nickname.value = nick
userId.value = id
}
/** 从后端获取当前登录用户的信息 */
async function fetchUserInfo() {
try {
const res: any = await getUserInfo()
setUserInfo(res.data.nickname, res.data.id)
} catch (e) {
console.error('获取用户信息失败', e)
}
}
/** 退出登录:清空状态并移除 localStorage 中的 token */
function logout() {
token.value = ''
nickname.value = ''
userId.value = null
localStorage.removeItem('token')
}
return { token, nickname, userId, setToken, setUserInfo, fetchUserInfo, logout }
})