Files
lanecarford_front/src/stores/modules/userInfo.ts

68 lines
1.4 KiB
TypeScript
Raw Normal View History

2025-10-09 09:29:36 +08:00
// 每一个存储的模块命名规则use开头store结尾
import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
2025-10-27 11:43:07 +08:00
import { removeLocal, setLocal } from '@/utils/local'
import MyEvent from '@/utils/myEvent'
export const useUserInfoStore = defineStore('userInfo', () => {
2025-10-24 17:37:15 +08:00
const state = ref({
userInfo: {},
token: '',
generateParams: {
2025-10-28 11:33:20 +08:00
stylist: '',
2025-10-24 17:37:15 +08:00
sex: ''
}
})
// getters
2025-10-24 17:37:15 +08:00
const getUserInfo = computed(() => state.value.userInfo)
// actions
const setUserInfo = (data: any) => {
2025-10-24 17:37:15 +08:00
state.value.userInfo = data
}
2025-10-24 17:37:15 +08:00
const setToken = (data: string) => {
state.value.token = data
2025-10-27 11:43:07 +08:00
setLocal(data, 'token')
2025-10-24 17:37:15 +08:00
}
const getGenerateParams = () => {
return state.value.generateParams
}
const setGenerateParams = (data: any) => {
state.value.generateParams = data
}
const resetGenerateParams = () => {
state.value.generateParams = {
2025-10-28 11:33:20 +08:00
stylist: '',
2025-10-24 17:37:15 +08:00
sex: ''
}
}
const logOut = () => {
// 处理退出登录的一些逻辑
2025-10-24 17:37:15 +08:00
return new Promise((resolve) => {
state.value.token = ''
state.value.userInfo = {}
2025-10-27 11:43:07 +08:00
removeLocal('token')
2025-10-24 17:37:15 +08:00
resetGenerateParams()
MyEvent.emit('clear-generate-state')
MyEvent.emit('clearAllCache')
2025-10-24 17:37:15 +08:00
resolve('')
})
}
return {
2025-10-24 17:37:15 +08:00
state,
getUserInfo,
2025-10-24 17:37:15 +08:00
setToken,
setUserInfo,
2025-10-24 17:37:15 +08:00
setGenerateParams,
getGenerateParams,
resetGenerateParams,
2025-10-27 11:08:26 +08:00
logOut
2025-10-09 09:29:36 +08:00
}
})