2026-02-02 13:32:33 +08:00
|
|
|
|
// 每一个存储的模块,命名规则use开头,store结尾
|
2026-02-23 14:45:35 +08:00
|
|
|
|
import router from '@/router'
|
2026-02-02 13:32:33 +08:00
|
|
|
|
import { defineStore } from 'pinia'
|
|
|
|
|
|
import { ref, computed } from 'vue'
|
|
|
|
|
|
import { removeLocal, setLocal } from '@/utils/local'
|
|
|
|
|
|
import MyEvent from '@/utils/myEvent'
|
2026-02-26 16:55:25 +08:00
|
|
|
|
import { Logout, GetUserInfo } from '@/api/login'
|
2026-02-02 13:32:33 +08:00
|
|
|
|
export const useUserInfoStore = defineStore('userInfo', () => {
|
2026-02-23 14:45:35 +08:00
|
|
|
|
const state = ref({
|
2026-02-11 16:32:38 +08:00
|
|
|
|
userInfo: {},
|
|
|
|
|
|
token: '',
|
2026-02-02 13:32:33 +08:00
|
|
|
|
|
2026-02-23 14:45:35 +08:00
|
|
|
|
})
|
|
|
|
|
|
|
2026-02-26 16:55:25 +08:00
|
|
|
|
const getUserInfo = async () => {
|
|
|
|
|
|
const res = await GetUserInfo()
|
|
|
|
|
|
if (res) {
|
|
|
|
|
|
state.value.userInfo = { ...res }
|
|
|
|
|
|
} else {
|
|
|
|
|
|
state.value.userInfo = {}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-02-23 14:45:35 +08:00
|
|
|
|
|
|
|
|
|
|
// actions
|
|
|
|
|
|
const setUserInfo = (data: any) => {
|
|
|
|
|
|
state.value.userInfo = data
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const setToken = (data: string) => {
|
|
|
|
|
|
state.value.token = data
|
|
|
|
|
|
// setLocal(data, 'token')
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-26 16:55:25 +08:00
|
|
|
|
const logOut = async (isApi: boolean = true) => {
|
2026-02-23 14:45:35 +08:00
|
|
|
|
// 处理退出登录的一些逻辑
|
2026-02-26 16:55:25 +08:00
|
|
|
|
if (isApi) await Logout()
|
2026-02-23 14:45:35 +08:00
|
|
|
|
state.value.token = ''
|
|
|
|
|
|
state.value.userInfo = {}
|
|
|
|
|
|
// removeLocal('token')
|
|
|
|
|
|
// MyEvent.emit('clear-generate-state')
|
|
|
|
|
|
// MyEvent.emit('clear-client-state')
|
|
|
|
|
|
// MyEvent.emit('clearAllCache')
|
|
|
|
|
|
router.push({ name: 'login' })
|
|
|
|
|
|
return ""
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
state,
|
|
|
|
|
|
getUserInfo,
|
|
|
|
|
|
setToken,
|
|
|
|
|
|
setUserInfo,
|
|
|
|
|
|
logOut
|
|
|
|
|
|
}
|
2026-02-02 13:32:33 +08:00
|
|
|
|
})
|