105 lines
2.9 KiB
TypeScript
105 lines
2.9 KiB
TypeScript
import { defineStore } from 'pinia'
|
|
import { login, register, sendCodeEmail, userInfo, logout, sendForgetCodeEmail, forget} from '@/api/user'
|
|
import type { LoginReqData, RegisterReqData, sendCodeEmailReq, ForgetReqData } from '@/api/user/type'
|
|
export const useUserStore = defineStore('user', {
|
|
//用来存放变量
|
|
state: () => ({
|
|
token: localStorage.getItem('TOKEN'),//token
|
|
username: '',
|
|
avatar: '',
|
|
email: '',
|
|
}),
|
|
//方法
|
|
actions: {
|
|
//获取登录状态
|
|
isLogin() {
|
|
let flag = false;
|
|
if (this.token != null && this.token != undefined && this.token != '') {
|
|
flag = true;
|
|
}
|
|
return flag;
|
|
},
|
|
//login
|
|
async login(data: LoginReqData) {
|
|
//发送请求
|
|
const result: any = await login(data)
|
|
if (result.code == 200) {
|
|
//仓库存储token
|
|
this.token = result.data.token
|
|
//本地存储token
|
|
localStorage.setItem('TOKEN', result.data.token)
|
|
return result.message
|
|
} else {
|
|
return Promise.reject(new Error(result.message))
|
|
}
|
|
},
|
|
//logout
|
|
async logout() {
|
|
//发送请求
|
|
const result: any = await logout()
|
|
if (result.code == 200) {
|
|
//本地存储token
|
|
localStorage.setItem('TOKEN', '')
|
|
return result.message
|
|
} else {
|
|
return Promise.reject(new Error(result.message))
|
|
}
|
|
},
|
|
//register
|
|
async register(data: RegisterReqData) {
|
|
//发送请求
|
|
const result: any = await register(data)
|
|
if (result.code == 200) {
|
|
return result.message
|
|
} else {
|
|
return Promise.reject(new Error(result.message))
|
|
}
|
|
},
|
|
//forget
|
|
async forget(data: ForgetReqData) {
|
|
//发送请求
|
|
const result: any = await forget(data)
|
|
if (result.code == 200) {
|
|
return result.message
|
|
} else {
|
|
return Promise.reject(new Error(result.message))
|
|
}
|
|
},
|
|
//register - send code email
|
|
async sendCodeEmail(data: sendCodeEmailReq) {
|
|
//发送请求
|
|
const result: any = await sendCodeEmail(data)
|
|
if (result.code == 200) {
|
|
return result.message
|
|
} else {
|
|
return Promise.reject(new Error(result.message))
|
|
}
|
|
},
|
|
//forget - send code email
|
|
async sendForgetCodeEmail(data: sendCodeEmailReq) {
|
|
//发送请求
|
|
const result: any = await sendForgetCodeEmail(data)
|
|
if (result.code == 200) {
|
|
return result.message
|
|
} else {
|
|
return Promise.reject(new Error(result.message))
|
|
}
|
|
},
|
|
//获取用户信息
|
|
async userInfo() {
|
|
if (!this.isLogin()) {
|
|
return
|
|
}
|
|
//发送请求
|
|
const result: any = await userInfo()
|
|
if (result.code == 200) {
|
|
this.username = result.data.nick_name
|
|
this.avatar = result.data.avatar
|
|
this.email = result.data.email
|
|
return result.message
|
|
} else {
|
|
return Promise.reject(new Error(result.message))
|
|
}
|
|
}
|
|
}
|
|
}) |