92 lines
1.9 KiB
TypeScript
92 lines
1.9 KiB
TypeScript
import type { IUserInfoRes } from '@/api/types/login'
|
|
import { defineStore } from 'pinia'
|
|
import { ref } from 'vue'
|
|
|
|
|
|
// 初始化状态
|
|
const userInfoState: IUserInfoRes = {
|
|
nickName: '',
|
|
avatar: '',
|
|
openId: "",
|
|
wxCode: "",
|
|
mobile: "",
|
|
userExtend: {},
|
|
talentExtend: {
|
|
"name": "",
|
|
"type": 0,
|
|
"specialtyDirection": "",
|
|
"ageLimit": "",
|
|
"advantages": "",
|
|
"height": "",
|
|
"weight": "",
|
|
"awards": "",
|
|
"fitnessResult": "",
|
|
sprint:"",
|
|
broadJump:''
|
|
}, // 天赋
|
|
}
|
|
|
|
export const useUserStore = defineStore(
|
|
'user',
|
|
() => {
|
|
// 定义用户信息
|
|
const userInfo = ref<IUserInfoRes>({ ...userInfoState })
|
|
// 设置用户信息
|
|
const setUserInfo = (val: IUserInfoRes) => {
|
|
userInfo.value = { ...userInfo.value, ...val }
|
|
}
|
|
const setUserAvatar = (avatar: string) => {
|
|
userInfo.value.avatar = avatar
|
|
}
|
|
// 删除用户信息
|
|
const clearUserInfo = () => {
|
|
userInfo.value = { ...userInfoState }
|
|
uni.removeStorageSync('user')
|
|
}
|
|
|
|
/**
|
|
* 获取用户信息
|
|
*/
|
|
const fetchUserInfo = async () => {
|
|
return null
|
|
}
|
|
|
|
|
|
// 存储user openId
|
|
const setUserOpenId = (openId: string) => {
|
|
userInfo.value.openId = openId
|
|
}
|
|
const setUserExtend = (userExtend: any) => {
|
|
userInfo.value.userExtend = userExtend
|
|
}
|
|
|
|
const setUserTalent = (talent: any) => {
|
|
userInfo.value.talentExtend = talent;
|
|
}
|
|
|
|
const setSex = (sex: string | null) => {
|
|
userInfo.value.sex = sex
|
|
}
|
|
|
|
const initUserTalent = () => {
|
|
userInfo.value.talentExtend = JSON.parse(JSON.stringify(userInfoState.talentExtend))
|
|
}
|
|
|
|
return {
|
|
userInfo,
|
|
clearUserInfo,
|
|
fetchUserInfo,
|
|
setUserInfo,
|
|
setUserAvatar,
|
|
setUserOpenId,
|
|
setUserExtend,
|
|
setSex,
|
|
setUserTalent,
|
|
initUserTalent
|
|
}
|
|
},
|
|
{
|
|
persist: true,
|
|
},
|
|
)
|