王旭
2022-10-12 410facfa35a29a14f2dc5a5d74629a8291148aff
src/store/index.js
@@ -1,12 +1,29 @@
import Vue from "vue";
import Vuex from "vuex";
import Vue from 'vue';
import Vuex from 'vuex';
import { getToken, setToken, removeToken } from "@/utils/auth";
import { Loading, Message } from "element-ui";
import { login, getPublicKey } from "@/api/api";
var encrypt = new JSEncrypt();
Vue.use(Vuex);
export default new Vuex.Store({
  state: {
    catalogueName: "",
    catalogueName: '',
    cataNode: {},
    lang: 'zh',
    menuNode: {},
    verCateNode: {},
    verCateNodes: {},
    styleDirCateNodes: {},
    styleDepCateNodes: {},
    iframeMsg: '',
    token: getToken(),
    //请求计数
    apiCount: 0,
    //loading实例
    loadingInstance: null,
    key: null
  },
  mutations: {
    // 获取完整面包屑路径
@@ -17,7 +34,106 @@
    changeNode(state, msg) {
      state.cataNode = msg;
    },
    changeLang(state, msg) {
      state.lang = msg;
    },
    getIframe(state, msg) {
      state.iframeMsg = msg;
    },
    changeName(state, msg) {
      state.menuNode = msg;
      // console.log(msg);
    },
    verChangeNode(state, msg) {
      state.verCateNode = msg;
    },
    verChangeNodes(state, msg) {
      state.verCateNodes = msg;
    },
    //样式管理
    styleDepChangeNode(state, msg) {
      state.styleDepCateNodes = msg;
    },
    styleDirChangeNode(state, msg) {
      state.styleDirCateNodes = msg;
    },
    /* 打开Loading */
    START_LOADING(state, msg) {
      state.loadingInstance = Loading.service({
        lock: true,
        text: msg ? msg : "加载中...",
        background: "rgba(0, 0, 0, 0.7)",
      });
    },
    /* 关闭loading */
    CLOSE_LOADING(state) {
      state.loadingInstance.close();
    },
    /* 更新请求线程池 */
    UPDATE_API_COUNT(state, handle) {
      if (handle == "add") {
        state.apiCount++;
        this.commit("START_LOADING");
      } else {
        state.apiCount--;
        if (state.apiCount <= 0) {
          this.commit("CLOSE_LOADING");
        }
      }
    },
    SET_TOKEN(state, token) {
      state.token = token;
    },
    SET_KEY(state, key) {
      state.key = key;
    },
  },
  actions: {},
  actions: {
    // 用户登录 login
    login({ commit, state }, userInfo) {
      return new Promise((resolve, reject) => {
        var data = {
          uid: encrypt.encrypt(userInfo.uid),
          pwd: encrypt.encrypt(userInfo.pwd)
        };
        login(data)
          .then((response) => {
            const data = response;
            if (data.code !== 200) {
              return Message({
                message: data.msg,
                type: "error",
                duration: 5 * 1000,
              });
            }
            commit("SET_TOKEN", data.result.token);
            setToken(data.result.token);
            resolve(data);
          })
          .catch((error) => {
            reject(error);
          });
      });
    },
    getpublickey({ commit, state }, userInfo) {
      return new Promise((resolve, reject) => {
        getPublicKey(userInfo)
          .then((response) => {
            const data = response;
            commit("SET_KEY", data.result);
            encrypt.setPublicKey(data.result); // 设置公钥
            resolve();
          })
          .catch((error) => {
            reject(error);
          });
      });
    }
  },
  modules: {},
});