// 每一个存储的模块,命名规则use开头,store结尾 import router from '@/router' 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: '', }) // 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 logOut = async () => { // 处理退出登录的一些逻辑 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 } })