import { action, computed, makeObservable, observable } from "mobx"; import { base } from "@/service/base"; import BaseStore from "./baseStore"; import { UserDataType, UserInfos } from "@/model/userModel"; import { message } from "antd"; import { UserConfig } from "@/service/user_config"; class UserStore extends BaseStore { _userinfo: UserInfos = {}; // 用户信息 userDetail = {} isNeedLogin: boolean = false; // 是否需要登录 menu = [] constructor() { super(UserConfig) makeObservable(this, { logOut: action, login: action, getMenu: action, _userinfo: observable, isNeedLogin: observable, userDetail: observable, openLoginDilog: action, userInfo: computed, menu: observable, }) } 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 = ""; window.location.href = '#/login' } async login(params: UserInfos) { let param = { account: params.userName, password: params.passWord, genre: 1 } try { let data = await base.post(UserConfig.LOGINURI, param) if (data.code !== 200) { message.error(data.msg) return false } window.localStorage.setItem("token", data.data.token ?? ""); this.getMenu() return true } catch (error) { console.log(error) return false } } openLoginDilog() { this.isNeedLogin = true; } closeLoginDilog() { this.isNeedLogin = false; } setUserDetaul(data) { this.userDetail = data } async getMenu() { let data = await base.get(UserConfig.menu, {}) console.log(data) } } const userStore = new UserStore(); export default userStore;