ball_admin/src/store/user.ts

75 lines
2.1 KiB
TypeScript

import { action, computed, makeObservable, observable } from "mobx";
// 用户信息
import baseHttp from "@/service/base";
import BaseStore from "./baseStore";
import { UserDataType, UserInfos } from "@/model/userModel";
class UserConfig {
static LOGINURI: string = "anth/login"
static LIST: string = "user/list"
static ADD: string = "user"
static DELETE: string = "user"
static EDIT: string = "user"
static team: string = "team/list"
static per: string = "persMgmt/list"
}
class UserStore extends BaseStore<UserDataType> {
_userinfo: UserInfos = {}; // 用户信息
isNeedLogin: boolean = false; // 是否需要登录
constructor() {
super(UserConfig)
makeObservable(this, {
logOut: action,
login: action,
getTeam:action,
getPer:action,
_userinfo: observable,
isNeedLogin: observable,
openLoginDilog: action,
userInfo: computed,
})
}
async getTeam(){
return await baseHttp.get(UserConfig.team, null)
}
async getPer(){
return await baseHttp.get(UserConfig.per, null)
}
get userInfo(): UserInfos {
if (!this._userinfo.token) {
let token = window.localStorage.getItem("token")
this._userinfo.token = token;
}
return this._userinfo;
}
logOut() {
this._userinfo.token = "";
window.localStorage.clear();
this.item = "";
}
async login(params: UserInfos) {
let param = {
account: params.userName,
password: params.passWord,
genre: 1
}
try {
let data = await baseHttp.post(UserConfig.LOGINURI, param)
window.localStorage.setItem("token", data.data.token ?? "");
return true
} catch (error) {
console.log(error)
return false
}
}
openLoginDilog() {
this.isNeedLogin = true;
}
closeLoginDilog() {
this.isNeedLogin = false;
}
}
const userStore = new UserStore();
export default userStore;