import { createStore } from 'vuex' export default createStore({ state: { query: null, siteId: 1, //公共api请求参数->siteId Time_Data: [], //公共api请求参数->Time_Data timearr: [], //公共处理开始时间和结束时间中的时间段天数 值存储 itemStyle: [{ normal: { borderColor: "rgba(0,244,253,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(0,244,253,1)", }, }, }, { normal: { borderColor: "rgba(253,143,0,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(253,143,0,1)", }, }, }, { normal: { borderColor: "rgba(0,255,18,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(0,255,18,1)", }, }, }, { normal: { borderColor: "rgba(0,255,230,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(0,255,230,1)", }, }, }, { normal: { borderColor: "rgba(142,51,255,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(142,51,255,1)", }, }, }, { normal: { borderColor: "rgba(77,200,120,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(77,200,120,1)", }, }, }, { normal: { borderColor: "rgba(255,47,47,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(255,47,47,1)", }, }, }, { normal: { borderColor: "rgba(70,100,255,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(70,100,255,1)", }, }, }, { normal: { borderColor: "rgba(255,143,53,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(255,143,53,1)", }, }, }, { normal: { borderColor: "rgba(150,150,50,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(150,150,50,1)", }, }, }, { normal: { borderColor: "rgba(70,192,255,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(70,192,255,1)", }, }, }, { normal: { borderColor: "rgba(20,99,100,1)", borderWidth: 2, color: "rgba(6, 68, 83, 1)", lineStyle: { width: 2, //折线宽度 color: "rgba(20,99,100,1)", }, }, }, ], //公共echarts图表样式 Time_All: [], //公共时间 返回数组 -> 年月日时分秒 时间戳 queryType: '', //设备监控--->数据报表api请求参数->queryType run_off_Status: null, //设备监控--->运行状态统计->echarts->OFF次数分布和运行状态曲线图表 api信息存储 HistoricalCurve: null, //设备监控--->历史趋势->echarts->曲线图表 api信息存储 se_defaultTime: [], //设备监控--->历史趋势时间选择器v-model th_defaultTime: [], //设备监控--->数据报表时间选择器v-model fh_defaultTime: [], //设备监控--->运行状态统计时间选择器v-model table_list: [{ name: "电流", list: [ { name: "A相电流", value: "Ia" }, { name: "B相电流", value: "Ib" }, { name: "C相电流", value: "Ic" }, ], }, { name: "功率", list: [ { name: "A相有功功率 kW", value: "Pa" }, { name: "A相无功功率 kVar", value: "Qa" }, { name: "B相有功功率 kW", value: "Pb" }, { name: "B相无功功率 kVar", value: "Qb" }, { name: "C相有功功率 kW", value: "Pc" }, { name: "C相无功功率 kVar", value: "Qc" }, { name: "总有功功率 kW", value: "P" }, { name: "总无功功率 kW", value: "Q" }, { name: "实时需量 kW", value: "Demand" }, ], }, { name: "电度", list: [ { name: "正有功电度 kWh", value: "Epp" }, { name: "负有功电度 kWh", value: "Epn" }, { name: "正无功电度 kvarh", value: "Eqp" }, { name: "负无功电度 kvarh", value: "Eqn" }, ], }, { name: "电压", list: [ { name: "A相电压 kV", value: "Ua" }, { name: "B相电压 kV", value: "Ub" }, { name: "C相电压 kV", value: "Uc" }, { name: "回路电压 V", value: "Ul" }, { name: "AB线电压 V", value: "Uab" }, { name: "BC线电压 V", value: "Ubc" }, { name: "CA线电压 V", value: "Uca" }, ], }, { name: "温度 ℃", list: [ { name: "外接温度1", value: "T1" }, { name: "外接温度2", value: "T2" }, { name: "外接温度3", value: "T3" }, { name: "外接温度4", value: "T4" }, { name: "环境温度", value: "DeviceTemp" }, ], }, { name: "频率 Hz", list: [{ name: "频率", value: "F" }], }, { name: "功率因数", list: [ { name: "A相功率因数", value: "COSa" }, { name: "B相功率因数", value: "COSb" }, { name: "C相功率因数", value: "COSc" }, { name: "功率因数", value: "COS" }, ], }, { name: "谐波电流有效值 A", list: [ { name: "Ia总谐波电流", value: "IHa" }, { name: "Ib总谐波电流", value: "IHa" }, { name: "Ic总谐波电流", value: "IHc" }, ], }, { name: "通讯参数", list: [{ name: "设备信号强度", value: "SignalIntensity" }], }, { name: "电压突变 次", list: [ { name: "电压暂升次数", value: "Upt" }, { name: "电压暂降次数", value: "Udt" }, { name: "电压中断次数", value: "Ust" }, ], }, ], //设备监控--->数据报表->默认tabs数据 se_tabs: [ { label: '电流', name: "I" }, { label: '功率', name: "P" }, { label: '电度', name: "KWh" }, { label: '电压', name: "V" }, { label: '温度', name: "C" }, { label: '频率', name: "HZ" }, { label: '功率因数', name: "PS" }, { label: '谐波电流有效值', name: "RMS" }, { label: '通讯参数', name: "DDB" }, { label: '电压突变', name: "VT" }, ], //设备监控--->历史趋势->默认tabs数据 trendIco: null, //事件告警--->事件告警统计->echarts->柱状图 api信息存储 trendIco_state: null, //事件告警--->事件告警统计->select状态api信息存储 trendIco_table: [ { label: '发生时间', porp: 'soeTime' }, { label: '告警描述', porp: 'measName' }, { label: '设备', porp: 'deviceCode' }, { label: '告警类型', porp: 'alarmName' }, { label: '状态', porp: 'handlingStatus' }, { label: '处理人', porp: 'handler' }, { label: '处理时间', porp: 'handlingTime' }, ], //事件告警--->事件告警统计->表格默认值存储 trendIcoCount: null, }, mutations: { /** * @公共api请求参数siteId * @param {*}} state * @param {*} val */ increment(state, val) { state.siteId = val }, /** * @数据报表 —> 多选按钮数据处理 * @param {*} state * @param {*} checked_list */ checkedCities_all(state, checked_list) { state.queryType = '' var checked = '' for (let i in checked_list) { checked_list[i] === "电流" ? checked = "I" : checked_list[i] === "功率" ? checked = "P" : checked_list[i] === "电度" ? checked = "KWh" : checked_list[i] === "电压" ? checked = "V" : checked_list[i] === "温度" ? checked = "C" : checked_list[i] === "频率" ? checked = "HZ" : checked_list[i] === "功率因数" ? checked = "PS" : checked_list[i] === "谐波电流有效值" ? checked = "RMS" : checked_list[i] === "通讯参数" ? checked = "DDB" : checked_list[i] === "电压突变" ? checked = "VT" : "" state.queryType += checked_list.length > 1 ? checked + "," : checked; } state.queryType = checked_list.length > 1 ? state.queryType.slice(0, state.queryType.length - 1) : state.queryType }, /** * @历史趋势 -> echarts ->曲线图表 api信息存储 */ HistoricalCurve(state, data) { state.HistoricalCurve = data }, /** * @公共处理时区方法 */ TimeAll_function(state, time) { state.Time_Data = [] for (let i in time) { var Y = time[i].getFullYear() < 10 ? '0' + time[i].getFullYear() : time[i].getFullYear() var M = (time[i].getMonth() + 1) < 10 ? '0' + (time[i].getMonth() + 1) : (time[i].getMonth() + 1) var D = time[i].getDate() < 10 ? '0' + time[i].getDate() : time[i].getDate() var HH = time[i].getHours() < 10 ? '0' + time[i].getHours() : time[i].getHours() var MM = time[i].getMinutes() < 10 ? '0' + time[i].getMinutes() : time[i].getMinutes() var SS = time[i].getSeconds() < 10 ? '0' + time[i].getSeconds() : time[i].getSeconds() // console.log(Y + '-' + M + '-' + D + ' ' + HH + ':' + MM + ':' + SS) state.Time_Data.push(Y + '-' + M + '-' + D + ' ' + HH + ':' + MM + ':' + SS) } }, /** * @公共处理开始时间和结束时间中的时间段天数 * @param {*} state * @param {*} begin 开始时间和结束时间 */ getAll(state, begin) { let arr1 = begin[0].split("-"); let arr2 = begin[1].split("-"); let arr1_ = new Date(); let arrTime = []; arr1_.setUTCFullYear(arr1[0], arr1[1] - 1, arr1[2]); let arr2_ = new Date(); arr2_.setUTCFullYear(arr2[0], arr2[1] - 1, arr2[2]); let unixDb = arr1_.getTime(); let unixDe = arr2_.getTime(); for (let k = unixDb; k <= unixDe;) { arrTime.push(datetimeparse(k, "YY-MM-DD")); k = k + 24 * 60 * 60 * 1000; } state.timearr = arrTime // return arrTime; // 时间格式处理 function datetimeparse(timestamp, format, prefix) { if (typeof timestamp == "string") { timestamp = Number(timestamp); } //转换时区 let currentZoneTime = new Date(timestamp); let currentTimestamp = currentZoneTime.getTime(); let offsetZone = currentZoneTime.getTimezoneOffset() / 60; //如果offsetZone>0是西区,西区晚 let offset = null; //客户端时间与服务器时间保持一致,固定北京时间东八区。 offset = offsetZone + 8; currentTimestamp = currentTimestamp + offset * 3600 * 1000; let newtimestamp = null; if (currentTimestamp) { if (currentTimestamp.toString().length === 13) { newtimestamp = currentTimestamp.toString(); } else if (currentTimestamp.toString().length === 10) { newtimestamp = currentTimestamp + "000"; } else { newtimestamp = null; } } else { newtimestamp = null; } let dateobj = newtimestamp ? new Date(parseInt(newtimestamp)) : new Date(); let YYYY = dateobj.getFullYear(); let MM = dateobj.getMonth() > 8 ? dateobj.getMonth() + 1 : "0" + (dateobj.getMonth() + 1); let DD = dateobj.getDate() > 9 ? dateobj.getDate() : "0" + dateobj.getDate(); let HH = dateobj.getHours() > 9 ? dateobj.getHours() : "0" + dateobj.getHours(); let mm = dateobj.getMinutes() > 9 ? dateobj.getMinutes() : "0" + dateobj.getMinutes(); let ss = dateobj.getSeconds() > 9 ? dateobj.getSeconds() : "0" + dateobj.getSeconds(); let output = ""; let separator = "/"; if (format) { separator = format.match(/-/) ? "-" : "/"; output += format.match(/yy/i) ? YYYY : ""; output += format.match(/MM/) ? (output.length ? separator : "") + MM : ""; output += format.match(/dd/i) ? (output.length ? separator : "") + DD : ""; output += format.match(/hh/i) ? (output.length ? " " : "") + HH : ""; output += format.match(/mm/) ? (output.length ? ":" : "") + mm : ""; output += format.match(/ss/i) ? (output.length ? ":" : "") + ss : ""; } else { output += YYYY + separator + MM + separator + DD; } output = prefix ? prefix + output : output; return newtimestamp ? output : ""; } }, /** * @公共echarts图表下载 */ getConnectedDataURL(state, refs) { state || refs var url = refs[0].getConnectedDataURL({ pixelRatio: 15, backgroundColor: "black", excludeComponents: ["toolbox"], type: "png", }); var $a = document.createElement("a"); var type = "png"; //图片名称 $a.download = refs[1] + "." + type; $a.target = "_blank"; $a.href = url; if (typeof MouseEvent === "function") { var evt = new MouseEvent("click", { view: window, bubbles: true, cancelable: false, }); $a.dispatchEvent(evt); } }, /** * @公共时间 返回数组 -> 年月日时分秒 时间戳 */ getTimeAll(state) { const time = new Date(); const Y = time.getFullYear(); //年 const M = time.getMonth(); //月 const D = time.getDate(); //日 const HH = time.getHours(); //时, const MM = time.getMinutes(); //分 const SS = time.getSeconds(); //秒 const timestamp = new Date().getTime(); //时间戳 state.Time_All = [Y, M, D, HH, MM, SS, timestamp] state.se_defaultTime = [new Date(Y, M, D, 0, 0, 0), new Date()] //设备监控--->历史趋势时间选择器v-model state.th_defaultTime = [new Date(Y, M, D, 0, 0, 0), new Date()] //设备监控--->数据报表时间选择器v-model state.fh_defaultTime = [new Date(Y, M, 1, 0, 0, 0), new Date()] //设备监控--->运行状态统计时间选择器v-model //概览 -> 告警统计折线图 }, } })