管道基础大数据平台系统开发-【前端】-新系統界面
编辑 | blame | 历史 | 原始文档
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';
import variables from '@/assets/element-variables.scss';
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,
    //系统监控WebSocket
    ws: null,
    //权限合集
    permsEntity: [],
    currentPerms: '',
    //综合展示
    syntiesis: {},
    mapMenuBoolean: false,
    mapPopBoolean: false,
    mapPopBoxFlag: null,
    mapMenuBoxFlag: null,
    mapSpaceQueryLayer: null,
    mapMenuShpFile: null,

    //主题切换
    theme: variables.theme,
    //登录用户名
    uname: null,
    //项目管理
    projeOl: null,
    download: false,
    showAllLayers: true,
    primitLayer:null,
    loading:false,
    pipelineEntity:[],
    reporturl:null,
   layerMnage:false,
  },
  mutations: {
    //获取权限合集
    getPermsEntity(state, msg) {
      state.permsEntity = msg;
    },
    currentPerms(state, msg) {
      state.currentPerms = msg;
    },
    // 获取完整面包屑路径
    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_UNAME(state, name) {
      state.uname = name;
    },
    SET_TOKEN(state, token) {
      state.token = token;
    },
    SET_KEY(state, key) {
      state.key = key;
    },
    CHANGE_SETTING: (state, { key, value }) => {
      // console.log(state, { key, value });
      if (state.hasOwnProperty(key)) {
        state[key] = value;
      }
    },
  },
  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) {
              resolve(data);
              return
              // return Message({
              //   message: data.msg,
              //   type: 'error',
              //   duration: 5 * 1000,
              // });
            }
            commit('SET_UNAME', data.result.uname);
            commit('SET_TOKEN', data.result.token);

            setToken(data.result.token);
            resolve(data);
          })
          .catch((error) => {
            reject(error);
          });
      });
    },
    setCookies(res) {
      var value = localStorage.getItem('LFToken');
      if (value != null) {
        this.rmCookies();
      }
      var timeData = moment(res.result.expire).format('YYYY-MM-DD HH:mm:ss');
      var token = res.result;
      var LfPrems = {
        token: token,
        time: timeData,
      };
      LfPrems = JSON.stringify(LfPrems);
      localStorage.setItem('LFToken', LfPrems);
    },
    rmCookies() {
      localStorage.removeItem('LFToken');
    },
    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);
          });
      });
    },
    //主题切换
    changeSetting({ commit }, data) {
      commit('CHANGE_SETTING', data);
    },
  },
  modules: {},
});