Files
Aida_Purchaser_Front/src/stores/userInfo.ts

52 lines
999 B
TypeScript
Raw Normal View History

2026-04-20 11:21:21 +08:00
// 每一个存储的模块命名规则use开头store结尾
import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
import { removeLocal, setLocal } from '@/utils/local'
import MyEvent from '@/utils/myEvent'
export const useUserInfoStore = defineStore('userInfo', () => {
2026-05-21 10:48:53 +08:00
const state = ref({
2026-05-21 11:04:12 +08:00
userInfo: {
userId: "",
email: "",
username: "",
accessToken: "",
expiresIn: "",
},
token: ''
2026-05-21 10:48:53 +08:00
})
2026-04-20 11:21:21 +08:00
2026-05-21 10:48:53 +08:00
// actions
const setUserInfo = (data: any) => {
state.value.userInfo = data
2026-05-21 11:04:12 +08:00
setToken(data.accessToken)
2026-05-21 10:48:53 +08:00
}
2026-04-20 11:21:21 +08:00
2026-05-21 10:48:53 +08:00
const setToken = (data: string) => {
state.value.token = data
setLocal(data, 'token')
}
2026-04-20 11:21:21 +08:00
2026-05-21 11:04:12 +08:00
const logout = () => {
2026-05-21 10:48:53 +08:00
// 处理退出登录的一些逻辑
return new Promise((resolve) => {
2026-05-21 11:04:12 +08:00
state.value.userInfo = {
userId: "",
email: "",
username: "",
accessToken: "",
expiresIn: "",
}
2026-05-21 10:48:53 +08:00
state.value.token = ''
removeLocal('token')
resolve('')
})
}
2026-04-20 11:21:21 +08:00
2026-05-21 10:48:53 +08:00
return {
state,
setToken,
setUserInfo,
2026-05-21 11:04:12 +08:00
logout
2026-05-21 10:48:53 +08:00
}
2026-04-20 11:21:21 +08:00
})