王旭
2022-10-10 083b17d07939af29bcb04a27e564664c7280595a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
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: {},
    verCateNode: {},
    verCateNodes: {},
    styleDirCateNodes: {},
    styleDepCateNodes: {},
    token: getToken(),
    //请求计数
    apiCount: 0,
    //loading实例
    loadingInstance: null,
    key: null
  },
  mutations: {
    // 获取完整面包屑路径
    changeCata(state, msg) {
      state.catalogueName = msg;
    },
    // 获取点击的目录点对象
    changeNode(state, msg) {
      state.cataNode = 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: {},
});