import { defineStore } from 'pinia' import { resetRouter } from '@/router' import { useTagsStore, usePermissionStore } from '@/store' import { removeToken, toLogin } from '@/utils' // import api from '@/api' export const useUserStore = defineStore('user', { state() { return { userInfo: {}, } }, getters: { userId() { return this.userInfo?.id }, name() { return this.userInfo?.name }, avatar() { return ( this.userInfo?.avatar || 'https://pic3.58cdn.com.cn/nowater/webim/big/n_v21bc7874294754e63a22b80febac9cf51.jpg' ) }, role() { return this.userInfo?.role || [] }, }, actions: { async getUserInfo() { const typeMer = localStorage.getItem('type') this.userInfo = { role: [typeMer], } // try { // const res = await api.getUser() // const { id, name, avatar, role } = res.data // this.userInfo = { id, name, avatar, role } // return Promise.resolve(res.data) // } catch (error) { // return Promise.reject(error) // } }, async logout() { const { resetTags } = useTagsStore() const { resetPermission } = usePermissionStore() removeToken() resetTags() resetPermission() resetRouter() this.$reset() toLogin() }, setUserInfo(userInfo = {}) { this.userInfo = { ...this.userInfo, ...userInfo } }, }, })