Files
wireguard-dashboard-admin/src/store/modules/user.js

51 lines
1.1 KiB
JavaScript
Raw Normal View History

2022-01-08 17:20:46 +08:00
import { defineStore } from 'pinia'
import { getUser } from '@/api/user'
import { removeToken } from '@/utils/token'
2022-06-17 22:44:32 +08:00
import { toLogin } from '@/utils/auth'
2022-01-08 17:20:46 +08:00
export const useUserStore = defineStore('user', {
state() {
return {
userInfo: {},
}
},
getters: {
userId() {
return this.userInfo?.id
},
name() {
return this.userInfo?.name
},
avatar() {
return this.userInfo?.avatar
},
role() {
return this.userInfo?.role || []
},
},
actions: {
async getUserInfo() {
try {
const res = await getUser()
if (res.code === 0) {
const { id, name, avatar, role } = res.data
this.userInfo = { id, name, avatar, role }
return Promise.resolve(res.data)
} else {
2022-06-17 22:44:32 +08:00
return Promise.reject(res)
2022-01-08 17:20:46 +08:00
}
} catch (error) {
2022-06-17 22:44:32 +08:00
return Promise.reject(error)
2022-01-08 17:20:46 +08:00
}
},
2022-06-17 23:05:57 +08:00
async logout() {
2022-01-08 17:20:46 +08:00
removeToken()
this.userInfo = {}
2022-06-17 23:05:57 +08:00
toLogin()
2022-01-08 17:20:46 +08:00
},
2022-02-17 19:02:05 +08:00
setUserInfo(userInfo = {}) {
this.userInfo = { ...this.userInfo, ...userInfo }
},
2022-01-08 17:20:46 +08:00
},
})