56 lines
962 B
JavaScript
56 lines
962 B
JavaScript
import { defineStore } from 'pinia'
|
||
import { ref, computed } from 'vue'
|
||
|
||
const initState = {
|
||
nickname: '',
|
||
avatar: '',
|
||
id: null,
|
||
name: '',
|
||
mobile: '',
|
||
cardId: '',
|
||
createTime: '',
|
||
updateTime: '',
|
||
token: '',
|
||
sex: '',
|
||
isRealName: false,
|
||
isPetNursery: false,
|
||
expiresTime: '',
|
||
refreshToken: '',
|
||
}
|
||
|
||
export const useUserStore = defineStore(
|
||
'user',
|
||
() => {
|
||
const userInfo = ref({ ...initState })
|
||
|
||
const setUserInfo = (val) => {
|
||
userInfo.value = {
|
||
...userInfo.value,
|
||
...val,
|
||
}
|
||
}
|
||
|
||
const clearUserInfo = () => {
|
||
userInfo.value = { ...initState }
|
||
}
|
||
|
||
// 一般没有reset需求,不需要的可以删除
|
||
const reset = () => {
|
||
userInfo.value = { ...initState }
|
||
}
|
||
|
||
const isLogined = computed(() => userInfo.value.token != '')
|
||
|
||
return {
|
||
userInfo,
|
||
setUserInfo,
|
||
clearUserInfo,
|
||
isLogined,
|
||
reset,
|
||
}
|
||
},
|
||
{
|
||
persist: true,
|
||
},
|
||
)
|