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 { _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;