import { createStore, createLogger } from "vuex"; import weather from "./modules/weather"; import user from "./modules/user"; import routes from "./modules/router"; import getters from "./getters"; const debug = process.env.NODE_ENV !== "production"; // 默认状态 const state = { websocketTimeSec: 1000, loading: false, //全局 - 加载中.... themeName: localStorage.getItem("themeName") || "dark", // 主题 menuData: [], windturbineMap: {}, moudleName: localStorage.getItem("ModuleName") || "", isFixed: JSON.parse(localStorage.getItem("isFixed")) || true, boosterList: JSON.parse(localStorage.getItem("boosterList")) || [], cftList: JSON.parse(localStorage.getItem("cftList")) || [], boosterAlarm: JSON.parse(localStorage.getItem("boosterAlarm")) || 0, drawer: JSON.parse(localStorage.getItem("drawer")) || false, alarmList: JSON.parse(localStorage.getItem("alarmList")) || [], warnList: [], //弹窗报警列表 warningList: [], //实时报警列表 //实时报警列表最大长度 warningListLimitLength: 30, setConfig: 1, menuState: 1, }; //改变状态的方法` const mutations = { loadingStore(state, tag) { state.loading = tag; }, changeIsFixed(state, isFixed) { state.isFixed = isFixed; localStorage.setItem("isFixed", isFixed); }, changeTheme(state, tag) { state.themeName = tag; }, update(state, newData) { state.windturbineMap = newData.data; }, //首次加载请求公共数据 changeBooster(state, data) { state.boosterList = data; localStorage.setItem("boosterList", JSON.stringify(data)); }, changeCft(state, data) { state.cftList = data; localStorage.setItem("cftList", JSON.stringify(data)); }, changeBoosterAlarm(state, data) { state.boosterAlarm = data; localStorage.setItem("boosterAlarm", JSON.stringify(data)); }, //升压站报警列表弹窗 changeDrawer(state, data) { state.drawer = data; localStorage.setItem("drawer", data); }, //修改升压站报警列表 changeAlarmlist(state, data) { state.alarmList = data; localStorage.setItem("alarmList", JSON.stringify(state.alarmList)); }, //修改弹窗报警列表事件 setWarning(state, data) { state.warnList = data; }, removeWarning(state, data) { if (Array.isArray(data)) { data.forEach((ele) => { for (let i = 0; i < state.warnList.length; i++) { if ( `${ele.id}${ele.ts}` === `${state.warnList[i].id}${state.warnList[i].ts}` ) { setTimeout(() => { state.warnList.splice(i, 1); }, 0); break; } } }); } }, emptyWarning(state) { state.warnList = []; }, //修改实时报警列表事件 setWarningList(state, data) { state.warningList = data; }, removeWarningList(state, data) { // if (Array.isArray(data)) { // data.forEach((ele) => { // for (let i = 0; i < state.warningList.length; i++) { // if ( // `${ele.id}${ele.ts}` === // `${state.warningList[i].id}${state.warningList[i].ts}` // ) { // setTimeout(() => { // state.warningList.splice(i, 1); // }, 0); // break; // } // } // }); // } if (Array.isArray(data)) { data.forEach((ele) => { for (let i = 0; i < state.warningList.length; i++) { if ( `${ele.id}${ele.ts}` === `${state.warningList[i].id}${state.warningList[i].ts}` ) { setTimeout(() => { state.warningList.splice(i, 1); }, 0); break; } } }); } else { for (let i = 0; i < state.warningList.length; i++) { if ( `${state.warningList[i].id}${state.warningList[i].ts}` === `${data.id}${data.ts}` ) { state.warningList.splice(i, 1); break; } } } }, emptyWarningList(state, data) { state.warningList = []; }, //菜单相关 changeMenuData(state, newData) { state.menuData = newData; }, changeModuleName(state, newData) { state.moudleName = newData; }, changeMenuState(state) { state.menuState++; }, }; const actions = { actionAlarmList(context, newData) { context.commit("changeAlarmlist", newData); }, getupdate(context, newData) { context.commit("update", newData); }, changeTheme(context, str) { context.commit("changeTheme", str); }, changeMenuData(context, str) { context.commit("changeMenuData", str); }, changeModuleName(context, str) { context.commit("changeModuleName", str); localStorage.setItem("ModuleName", str); }, changeMenuState(state, data) { context.commit("changeMenuState"); }, }; export default createStore({ modules: { weather, user, routes, }, state, mutations, actions, getters, strict: false, plugins: debug ? [createLogger()] : [], });