52 lines
999 B
TypeScript
52 lines
999 B
TypeScript
// 每一个存储的模块,命名规则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', () => {
|
||
const state = ref({
|
||
userInfo: {
|
||
userId: "",
|
||
email: "",
|
||
username: "",
|
||
accessToken: "",
|
||
expiresIn: "",
|
||
},
|
||
token: ''
|
||
})
|
||
|
||
// actions
|
||
const setUserInfo = (data: any) => {
|
||
state.value.userInfo = data
|
||
setToken(data.accessToken)
|
||
}
|
||
|
||
const setToken = (data: string) => {
|
||
state.value.token = data
|
||
setLocal(data, 'token')
|
||
}
|
||
|
||
const logout = () => {
|
||
// 处理退出登录的一些逻辑
|
||
return new Promise((resolve) => {
|
||
state.value.userInfo = {
|
||
userId: "",
|
||
email: "",
|
||
username: "",
|
||
accessToken: "",
|
||
expiresIn: "",
|
||
}
|
||
state.value.token = ''
|
||
removeLocal('token')
|
||
resolve('')
|
||
})
|
||
}
|
||
|
||
return {
|
||
state,
|
||
setToken,
|
||
setUserInfo,
|
||
logout
|
||
}
|
||
})
|