// 每一个存储的模块,命名规则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: {}, token: '', generateParams: { stylist: '', sex: '', stylistImage: '' } }) // getters const getUserInfo = computed(() => state.value.userInfo) // actions const setUserInfo = (data: any) => { state.value.userInfo = data } const setToken = (data: string) => { state.value.token = data setLocal(data, 'token') } const getGenerateParams = () => { return state.value.generateParams } const setGenerateParams = (data: any) => { state.value.generateParams = data } const resetGenerateParams = () => { state.value.generateParams = { stylist: '', sex: '', stylistImage: '' } } const logOut = () => { // 处理退出登录的一些逻辑 return new Promise((resolve) => { state.value.token = '' state.value.userInfo = {} removeLocal('token') resetGenerateParams() MyEvent.emit('clear-generate-state') MyEvent.emit('clear-client-state') MyEvent.emit('clearAllCache') resolve('') }) } return { state, getUserInfo, setToken, setUserInfo, setGenerateParams, getGenerateParams, resetGenerateParams, logOut } })