import Vue from "vue"; import Vuex from "vuex"; import createPersistedState from "vuex-persistedstate"; //持久化所有state // import { login } from '@/api/api'; // var encrypt = new JSEncrypt(); Vue.use(Vuex); // 遍历节点 function ergodicNode(nodes) { if (nodes && nodes.length) { nodes.forEach(item => { item.rename = false; item.children && ergodicNode(item.children); }); } } let store = new Vuex.Store({ state: { viewer1Show: false, qyEchartsShow: false, layerTreeTwoScreen: false, yqfk: false, dlbm: false, ndlbm: false, treeData: [], cesiumInit: false, //地图是否初始化完成 showSetting: false, isShowHistory: false, description: {}, selectedLayers: [], userId: "", userName: "", // layerData: {} }, mutations: { selectedLayer(state, b) { state.selectedLayers = b }, saveUserInfo(state, b) { state.userId = b.userId state.userName = b.userName }, showHistory(state, b) { state.isShowHistory = b }, // saveData(state, b) { // state.layerData = b // }, setCesiumInit(state, b) { state.cesiumInit = b }, setViewer1Show(state, b) { state.viewer1Show = b; }, setqyEchartsShow(state, b) { state.qyEchartsShow = b; console.log(b); }, setLayerTreeTwoScreen(state, b) { state.layerTreeTwoScreen = b; }, setYqfk(state, b) { state.yqfk = b; }, GeoCode(state, b) { state.dlbm = b; }, ReGeoCode(state, b) { state.ndlbm = b; }, description(state, b) { state.description = b; }, showSetBox(state, b) { state.showSetting = b; }, // 定义工程树数据 setTreeData(state, data = []) { ergodicNode(data); state.treeData = data; }, // 树指定位置增加子节点(必须标识为key) addTreeChildren({ treeData }, { parentNode, pid, item }) { if (!pid) { treeData.push(item); return; } (parentNode || treeData).forEach(ele => { if (ele.id === pid) { if (ele.children) { ele.children.push(item); } else { (parentNode || treeData).push(item); } return; } else { if (ele.children) { store.commit("addTreeChildren", { parentNode: ele.children, pid, item }); } } }); }, // 勾选节点 checkTreeNode({ treeData }, { parentNode, id, checked }) { (parentNode || treeData).forEach(ele => { if (!id || (id && ele.id === id)) { // id不存,勾选所有子节点,id存在,勾选当前节点 ele.checked = checked; if (ele.children) { store.commit("checkTreeNode", { parentNode: ele.children, checked }); } else if (ele._children) { store.commit("checkTreeNode", { parentNode: ele._children, checked }); } if (id) { return; } } else { // 递归 if (ele.children) { store.commit("checkTreeNode", { parentNode: ele.children, id, checked }); } } }); }, // 更新节点数据 updataTreeNode({ treeData }, { parentNode, id, nodeValue, key, value }) { (parentNode || treeData).forEach(ele => { if (ele.id === id) { if (nodeValue) { for (let _key in nodeValue) { if (nodeValue[_key] === undefined) { delete ele[_key]; } else { ele[_key] = nodeValue[_key]; } } } else { ele[key] = value; } return; } else { if (ele.children) { store.commit("updataTreeNode", { parentNode: ele.children, id, nodeValue, key, value }); } } }); }, // 移除节点 removeTreeNode({ treeData }, { id, parentNode }) { (parentNode || treeData).forEach((ele, index) => { if (ele.id === id) { (parentNode || treeData).splice(index, 1); return; } else { if (ele.children) { store.commit("removeTreeNode", { id, parentNode: ele.children }); } } }); } }, plugins: [ createPersistedState({ storage: window.sessionStorage, //存储到localStorage reducer(val) { return { // 只存储state中的userData treeData: val.treeData, // selectedLayer: val.selectedLayer } } }) ], 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); // }); // }); // }, // 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); // }); // }); // }, } }); export default store