60 lines
1.4 KiB
JavaScript
60 lines
1.4 KiB
JavaScript
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 }
|
|
},
|
|
},
|
|
})
|