feat: 接口对接完成
This commit is contained in:
+28
-7
@@ -1,28 +1,49 @@
|
||||
import { getUserInfoAPI, logoutUserAPI } from '@/service'
|
||||
import { mergeStep } from '@/utils'
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref } from 'vue'
|
||||
|
||||
const initState = { nickname: '', avatar: '' }
|
||||
|
||||
export const useUserStore = defineStore(
|
||||
'user',
|
||||
() => {
|
||||
const userInfo = ref<IUserInfo>({ ...initState })
|
||||
const userInfo = ref<IUserInfo | null>(null)
|
||||
const token = ref('')
|
||||
|
||||
const loadUserInfo = mergeStep(async () => {
|
||||
const res = await getUserInfoAPI()
|
||||
userInfo.value = res.data.userinfo
|
||||
})
|
||||
|
||||
const setUserInfo = (val: IUserInfo) => {
|
||||
userInfo.value = val
|
||||
}
|
||||
|
||||
const clearUserInfo = () => {
|
||||
userInfo.value = { ...initState }
|
||||
const setToken = (val: string) => {
|
||||
token.value = val
|
||||
}
|
||||
|
||||
const isLogged = computed(() => !!userInfo.value.token)
|
||||
const clearUserInfo = () => {
|
||||
userInfo.value = null
|
||||
}
|
||||
const clearToken = () => {
|
||||
token.value = ''
|
||||
}
|
||||
const logout = async () => {
|
||||
logoutUserAPI()
|
||||
clearUserInfo()
|
||||
clearToken()
|
||||
}
|
||||
|
||||
const isLogged = computed(() => !!token.value)
|
||||
|
||||
return {
|
||||
userInfo,
|
||||
loadUserInfo,
|
||||
setUserInfo,
|
||||
clearUserInfo,
|
||||
isLogged,
|
||||
setToken,
|
||||
token,
|
||||
logout,
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user