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: '', cataNode: {}, lang: 'zh', menuNode: {}, verCateNode: {}, verCateNodes: {}, styleDirCateNodes: {}, styleDepCateNodes: {}, iframeMsg: '', token: getToken(), //请求计数 apiCount: 0, //loading实例 loadingInstance: null, key: null }, mutations: { // 获取完整面包屑路径 changeCata(state, msg) { state.catalogueName = msg; }, // 获取点击的目录点对象 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: { // 用户登录 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: {}, });