/* * @Description: * @Author: 王旭 * @Date: 2022-03-01 15:33:01 * @LastEditTime: 2023-06-07 17:06:08 * @LastEditors: Andy */ import Vue from "vue"; import Vuex from "vuex"; import { getToken, setToken, removeToken } from "@/utils/auth"; import { login } from "@/api/api"; import { Loading, Message } from "element-ui"; import createPersistedState from "vuex-persistedstate"; //权限管理系统 import appModuels from './modules/app' import user from './modules/user' import tagsView from './modules/tagsView' import permission from './modules/permission' import settings from './modules/settings' import getters from './getters' import { getFileInfo } from "prettier"; Vue.use(Vuex); export default new Vuex.Store({ state: { ueFlytoData:'', currentMenu:'',//ue传来的点击菜单 requestSuffix: "dlg", appName: APP_NAME, token: getToken(), //请求计数 apiCount: 0, //loading实例 loadingInstance: null, app: { themeColor: "black" }, dataMenuTypes: [], // 模型数据 modelData: {}, resolutions: [ { id: 1, text: "50米" }, { id: 2, text: "100米" }, { id: 3, text: "200米" }, { id: 4, text: "500米" }, { id: 5, text: "1公里" }, { id: 6, text: "2公里" }, { id: 7, text: "5公里" }, { id: 8, text: "10公里" }, { id: 9, text: "20公里" }, { id: 10, text: "50公里" }, { id: 11, text: "100公里" }, { id: 12, text: "500公里" }, { id: 13, text: "1000公里" }, { id: 14, text: "2000公里" }, { id: 15, text: "5000公里" }, ], scales: [ { id: 1, text: "1:500" }, { id: 2, text: "1:1000" }, { id: 3, text: "1:2000" }, { id: 4, text: "1:5000" }, { id: 5, text: "1:10000" }, { id: 6, text: "1:25000" }, { id: 7, text: "1:50000" }, { id: 8, text: "1:100000" }, { id: 9, text: "1:250000" }, { id: 10, text: "1:500000" }, { id: 11, text: "1:1000000" }, ], currentSelectNode: null, bimModelListAll: {}, bimModelListInitEd: {}, bimModelTransform: null, bimModelLoaded: [], modelData: {}, _linkage: false,//联动功能触发器 _position:{},//记录当前视角 tableStatus:false, echartsUpdata:0 }, mutations: { changeStatus(state,status) { // 重复赋值 console.log("console0",status) state.tableStatus = status; }, changeEchartsUpdata(state,status) { // 重复赋值 console.log("console0",status) state.echartsUpdata = status; }, updateModelList(state, data) { state.bimModelListAll = data; }, updateModelListInitEd(state, data) { state.bimModelListInitEd = data; }, updateModelTransform(state, data) { state.bimModelTransform = data; }, updateLoadedModelId(state, data) { if (data.isadd) { if (state.bimModelLoaded.indexOf(data.id) < 0) { state.bimModelLoaded.push(data.id); } } else { if (state.bimModelLoaded.indexOf(data.id) > -1) { state.bimModelLoaded.splice(state.bimModelLoaded.indexOf(data.id), 1); } } }, updateSelectNode(state, data) { state.currentSelectNode = data; }, // 更新选中模型 modelUpdate(state, data) { state.modelData = data; }, //数据入库状态 UP_REQUERT(state, msg) { state.requestSuffix = 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_USERNAME: (state, username) => { state.username = username; }, INITIAL_DATA_MENU: (state, datameus) => { state.dataMenuTypes = datameus; }, CHANGE_LINKAGE(state, status) { // 重复赋值 state._linkage = status; }, SET_POSITION(state, status) { state._position = status; }, SET_CURRENT_MENU(state, status){ state.currentMenu = status; }, UPDATE_MAP_VIEW(state, status){ state.ueFlytoData = status; } }, actions: { // 用户登录 login login({ commit }, userInfo) { return new Promise((resolve, reject) => { login(userInfo) .then((response) => { const { data } = response; commit("SET_TOKEN", data.access_token); commit("SET_USERNAME", userInfo.username); setToken(data.access_token); resolve(); }) .catch((error) => { reject(error); }); }); }, }, modules: { appModuels, user, tagsView, permission, settings }, getters, plugins: [createPersistedState( { reducer(val) { return { token: val.token, username: val.username, dataMenuTypes: val.dataMenuTypes, requestSuffix: val.requestSuffix, apiCount: val.apiCount, app: val.app, permission: val.permission, settings: val.settings, tagsView: val.tagsView, user: val.user, _linkage: val._linkage, currentSelectNode:val.currentSelectNode } } } )] });