user.js 3.12 KB
import { userLogin, logout, getInfo } from "@/api/login";
import { getToken, setToken, removeToken } from "@/utils/auth";
import { MessageBox } from "element-ui";

const user = {
  state: {
    token: getToken(),
    userData: {},
    name: "",
    id: "",
    avatar: "",
    activePortName: "",
    appLoading: false,
  },

  mutations: {
    SET_TOKEN: (state, token) => {
      state.token = token;
    },
    SET_USERDATA: (state, data) => {
      state.userData = data;
    },
    SET_NAME: (state, name) => {
      state.name = name;
    },
    SET_ID: (state, id) => {
      state.id = id;
    },
    SET_AVATAR: (state, avatar) => {
      state.avatar = avatar;
    },
    SET_ACTIVEPORTNAME: (state, activePortName) => {
      state.activePortName = activePortName;
      sessionStorage.setItem("portName", activePortName);
    },
    SET_APP_LOADING(state, newValue) {
      state.appLoading = newValue;
    }
  },

  actions: {
    // 登录
    Login({ commit }, userInfo) {
      const accNo = userInfo.accNo.trim();
      const password = userInfo.password;
      const rememberMe = userInfo.rememberMe;
      return new Promise((resolve, reject) => {
        userLogin(accNo, password, rememberMe)
          .then((res) => {
            if (res.code == 200) {
              setToken(res.data);
              commit("SET_TOKEN", res.data);
              resolve();
            } else {
              MessageBox.alert(res.msg, "Tip", {
                dangerouslyUseHTMLString: true,
              });
              return Promise.reject(new Error(msg));
            }
          })
          .catch((error) => {
            reject(error);
          });
      });
    },

    // 获取用户信息
    GetInfo({ commit, state }) {
      return new Promise((resolve, reject) => {
        getInfo()
          .then((res) => {
            if (res.code === 200) {
              const user = res.data;
              commit("SET_USERDATA", res.data);
              resolve(res);
            }
          })
          .catch((error) => {
            reject(error);
          });
      });
    },

    // 退出系统
    LogOut({ commit, state }) {
      return new Promise((resolve, reject) => {
        logout(state.token)
          .then(() => {
            commit("SET_TOKEN", "");
            commit("SET_USERDATA", {});
            removeToken();
            resolve();
          })
          .catch((error) => {
            reject(error);
          });
      });
    },

    RemoveInfo({ commit }) {
      return new Promise((resolve, reject) => {
        commit("SET_USERDATA", { user: {} });
        commit("SET_NAME", "");
        commit("SET_AVATAR", "");
        resolve();
      }).catch(() => {
        reject();
      });
    },

    // 前端 登出
    FedLogOut({ commit }) {
      return new Promise((resolve) => {
        // window.location.href = "https://test-myapps.secure.fedex.com/purpleid/signout";//wsso系统跳转
        commit("SET_TOKEN", "");
        commit("SET_USERDATA", {});
        removeToken();
        resolve();
      });
    },

    AppLoading({ commit }, newValue) {
      commit('SET_APP_LOADING', newValue)
    },
  },
};

export default user;