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({ ...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, }, )