| | |
| | | searchBattInfo, |
| | | getBattGroupInfo, |
| | | realTimeAlarm, |
| | | realTimePowerOff, |
| | | realTimeSearch, |
| | | realTimeGroup, |
| | | JhStateActionSerchByCondition, |
| | |
| | | import progressBlockVerticalBar from "@/components/chart/progress-block-vertical-bar"; |
| | | import getMarkLineData from "@/components/chart/js/getMarkLineData"; |
| | | import getTblHeader from "@/pages/monitoring/js/getTblHeader"; |
| | | import const_61850 from "@/assets/js/const/const_61850"; |
| | | import const_9100 from "@/assets/js/const/const_9100"; |
| | | import const_ld_nine from "@/assets/js/const/const_ld_nine"; |
| | | let vol, resChart, temp, conduct, currChart, leakVol; |
| | | export default { |
| | | data() { |
| | | let pageConfig = this.$store.getters["user/realTabsConfig"]; |
| | | let stateList = const_61850.stateList; |
| | | let historyStateList = const_61850.historyStateList; |
| | | let lastCapacityTest = const_61850.lastCapacityTest; |
| | | return { |
| | | stateList: stateList, |
| | | historyStateList: historyStateList, |
| | | lastCapacityTest: lastCapacityTest, |
| | | showPopup: false, |
| | | cascaderValue: '', |
| | | fieldValue: '请选择站点', |
| | |
| | | let batt = this.batt; |
| | | if (this.$units.regEquipType(batt.FBSDeviceId, ["LD9"])) { |
| | | this.realTimeLd9Data(); |
| | | } else { |
| | | this.realTimePowerOffs(); |
| | | } |
| | | }, |
| | | /* 查询电路图开关状态和信息 */ |
| | | realTimePowerOffs() { |
| | | let batt = this.batt; |
| | | // 设备为61850显示右侧的面板 |
| | | if (this.$units.regEquipType(batt.FBSDeviceId, ["equip61850"])) { |
| | | this.stateListShow = true; |
| | | } else { |
| | | this.stateListShow = false; |
| | | } |
| | | // 查询后台数据 |
| | | realTimePowerOff({ |
| | | dev_id: batt.FBSDeviceId, |
| | | }).then((res) => { |
| | | let rs = JSON.parse(res.data.result); |
| | | let outTime = 2 * 60; //设备超时时间(2分钟) |
| | | let isOutTime = true; //通讯中断 判断设备是否通讯中断 true:中断 false:正常 |
| | | if (rs.code == 1) { |
| | | let data = rs.data[0]; |
| | | // 设置版本号 |
| | | this.dev_version = data.dev_version; |
| | | // 基础信息 |
| | | this.setEquipBase(data); |
| | | |
| | | // 判断是否超时 |
| | | var nowTime = new Date(data.note).getTime(); //当前时间 |
| | | var record = new Date(data.record_datetime).getTime(); |
| | | if (Math.abs(nowTime - record) / 1000 > outTime) { |
| | | this.disconnect(); |
| | | } else { |
| | | // 未超时执行逻辑 |
| | | let dev_id = batt.FBSDeviceId; |
| | | this.diagram.powerCut = 0; |
| | | // 设备为61850 |
| | | if (this.$units.regEquipType(dev_id, "equip61850")) { |
| | | this.setEquip61850(data); |
| | | } else if ( |
| | | this.$units.regEquipType(dev_id, ["BTS", "BTS9110", "BTS9120", "lithium", "LD9"]) |
| | | ) { |
| | | this.setEquipBTS(data); |
| | | } else if (this.$units.regEquipType(dev_id, ["BTS9605", "BTS9611"])) { |
| | | this.setEquip9605(data); |
| | | } else { |
| | | this.disconnect(); |
| | | } |
| | | } |
| | | } else { |
| | | // 设置版本号 |
| | | this.dev_version = ""; |
| | | // 设备处于未连接 |
| | | this.disconnect(); |
| | | } |
| | | }); |
| | | }, |
| | | // 设置stateList的值 |
| | | setStateList(name, value, type) { |
| | | let stateList = this.stateList; |
| | | for (let i = 0; i < stateList.length; i++) { |
| | | let state = stateList[i]; |
| | | if (state.name == name) { |
| | | state.value = value; |
| | | state.type = type ? type : ""; |
| | | } |
| | | } |
| | | |
| | | let historyStateList = this.historyStateList; |
| | | for (let i = 0; i < historyStateList.length; i++) { |
| | | let state = historyStateList[i]; |
| | | if (state.name == name) { |
| | | state.value = value; |
| | | state.type = type ? type : ""; |
| | | } |
| | | } |
| | | |
| | | for (let i = 0, list = this.lastCapacityTest, j = list.length; i < j; i++) { |
| | | let state = list[i]; |
| | | if (state.name == name) { |
| | | state.value = value; |
| | | state.type = type || ""; |
| | | } |
| | | } |
| | | }, |
| | | // 9605设备 |
| | | setEquip9605(data) { |
| | | let batt = this.batt; |
| | | // 关闭遮罩层 |
| | | this.maskShow = false; |
| | | // 电路图类型 |
| | | let workstatus = parseInt(data.dev_workstate); //[0:'在线监测',1:'放电测试',2:'充电测试',3:'内阻测试',4:'未知']; |
| | | this.diagram.desc = ""; |
| | | let battstate = this.inputs.batt_state; |
| | | let alarmstatus = data.dev_alarmstate; |
| | | |
| | | // 设置停电放电状态 |
| | | if (data.dev_onlinevollow) { |
| | | this.inputs.batt_state = 5; |
| | | this.diagram.type = 5; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | this.diagram.powerCut = 1; |
| | | // 当前设备是BTS设备 |
| | | if (workstatus === 0 && data.dev_res_test_state !== 0) { |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | return; |
| | | } |
| | | // 判断workstatus |
| | | switch (workstatus) { |
| | | case 0: |
| | | this.diagram.type = 0; |
| | | //this.diagram.desc = '(开关闭合)'; |
| | | // 当前设备是BTS设备 |
| | | if (data.dev_res_test_state !== 0) { |
| | | this.diagram.type = 6; |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | break; |
| | | case 1: |
| | | this.diagram.type = 1; |
| | | //this.diagram.desc = '(开关断开)'; |
| | | break; |
| | | case 2: |
| | | this.diagram.type = 2; |
| | | //this.diagram.desc = '(开关断开)'; |
| | | break; |
| | | default: |
| | | this.diagram.type = -1; |
| | | this.maskShow = true; |
| | | break; |
| | | } |
| | | }, |
| | | // BTS设备信息 |
| | | setEquipBTS(data) { |
| | | let batt = this.batt; |
| | | // 关闭遮罩层 |
| | | this.maskShow = false; |
| | | // 电路图类型 |
| | | let workstatus = parseInt(data.dev_workstate); //[0:'在线监测',1:'放电测试',2:'充电测试',3:'内阻测试',4:'未知']; |
| | | this.diagram.desc = ""; |
| | | let battstate = this.inputs.batt_state; |
| | | let alarmstatus = data.dev_alarmstate; |
| | | |
| | | // 是否为锂电池 |
| | | let isLithium = this.$units.regEquipType(batt.FBSDeviceId, "lithium"); |
| | | |
| | | // 设置停电放电状态 |
| | | if (data.dev_onlinevollow) { |
| | | this.inputs.batt_state = 5; |
| | | this.diagram.type = 5; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | this.diagram.powerCut = 1; |
| | | // 当前设备是BTS设备 |
| | | if (workstatus === 0 && data.dev_res_test_state !== 0) { |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | |
| | | // 锂电池详细描述为空 |
| | | if (isLithium) { |
| | | this.diagram.desc = ""; |
| | | } |
| | | |
| | | return; |
| | | } |
| | | // 判断workstatus |
| | | switch (workstatus) { |
| | | case 0: |
| | | this.diagram.type = 0; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | // 当前设备是BTS设备 |
| | | if (data.dev_res_test_state !== 0) { |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | break; |
| | | case 1: |
| | | if ( |
| | | data.dev_testgroupnum > 0 && |
| | | data.dev_testgroupnum === batt.GroupIndexInFBSDevice + 1 |
| | | ) { |
| | | this.diagram.type = 1; |
| | | this.diagram.desc = "(开关断开)"; |
| | | } else { |
| | | if (battstate === 3) { |
| | | this.diagram.type = 1; |
| | | this.diagram.desc = "(开关断开)"; |
| | | } else { |
| | | this.diagram.type = 0; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | } |
| | | } |
| | | |
| | | // 当前设备是BTS设备 |
| | | if (data.dev_testtype == 209) { |
| | | this.diagram.desc += "(KD测试)"; |
| | | this.diagram.type = 3; |
| | | } |
| | | break; |
| | | case 2: |
| | | //辨别当前电池组是否在充电 |
| | | if ( |
| | | this.diagram.type == 2 || |
| | | (data.dev_testgroupnum > 0 && |
| | | data.dev_testgroupnum === batt.GroupIndexInFBSDevice + 1) |
| | | ) { |
| | | //充电 |
| | | if ( |
| | | alarmstatus === 1 || |
| | | alarmstatus === 2 || |
| | | alarmstatus === 3 || |
| | | alarmstatus === 4 || |
| | | alarmstatus === 6 |
| | | ) { |
| | | //限流充电 -->常闭接触器断开 |
| | | this.diagram.type = 2; |
| | | this.diagram.desc = "(开关断开)"; |
| | | } else { |
| | | //直流充电 -->常闭接触器闭合 |
| | | this.diagram.type = 2; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | } |
| | | } else { |
| | | this.diagram.type = 0; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | } |
| | | break; |
| | | default: |
| | | this.diagram.type = -1; |
| | | this.maskShow = true; |
| | | break; |
| | | } |
| | | |
| | | // 锂电池详细描述为空 |
| | | if (isLithium) { |
| | | this.diagram.desc = ""; |
| | | } |
| | | }, |
| | | // 61850设备信息 |
| | | setEquip61850(data) { |
| | | // 电路图类型 |
| | | let workstatus = parseInt(data.dev_workstate); //[0:'在线监测',1:'放电测试',2:'充电测试',3:'内阻测试',4:'未知']; |
| | | this.diagram.desc = ""; |
| | | // 关闭遮罩层 |
| | | this.maskShow = false; |
| | | // 设置停电放电状态 |
| | | if (data.dev_onlinevollow) { |
| | | this.inputs.batt_state = 5; |
| | | this.diagram.type = 5; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | this.diagram.powerCut = 1; |
| | | // 当前设备是BTS设备 |
| | | if (workstatus === 0 && data.dev_res_test_state !== 0) { |
| | | this.diagram.desc += "(内阻测试)"; |
| | | } |
| | | return; |
| | | } |
| | | |
| | | switch (workstatus) { |
| | | case 0: //浮充状态拓扑图 |
| | | this.diagram.type = 0; |
| | | this.diagram.desc = "(开关闭合)"; |
| | | break; |
| | | case 4: //浮充状态(内阻测试)拓扑图 |
| | | this.diagram.type = 0; |
| | | // 当前设备是否是内阻测试 |
| | | this.diagram.desc = "(开关闭合)"; |
| | | this.diagram.desc += "(内阻测试)"; |
| | | break; |
| | | case 1: //充电状态拓扑图 |
| | | this.diagram.type = 2; |
| | | this.diagram.desc = "(开关断开)"; |
| | | break; |
| | | case 2: //放电状态拓扑图 |
| | | this.diagram.type = 1; |
| | | this.diagram.desc = "(开关断开)"; |
| | | break; |
| | | case 3: //放电状态拓扑图 |
| | | this.diagram.type = 5; |
| | | break; |
| | | case 5: //放电状态(KD测试)拓扑图 |
| | | this.diagram.type = 3; |
| | | this.diagram.desc = "(开关断开)"; |
| | | this.diagram.desc += "(KD测试)"; |
| | | break; |
| | | case 6: // 离线养护测试 |
| | | this.diagram.type = 4; |
| | | this.diagram.desc = "离线养护测试"; |
| | | break; |
| | | default: |
| | | //未知 |
| | | this.diagram.type = -1; |
| | | this.diagram.desc = "(未知)"; |
| | | this.maskShow = true; |
| | | break; |
| | | } |
| | | |
| | | // 设备工作状态 |
| | | let workStates = const_61850.workstates; |
| | | this.setStateList("workState", workStates[data.dev_workstate]); |
| | | // 核容终止原因 |
| | | // let stopReasons = const_61850.stopreasons; |
| | | // if (data.dev_workstate == 2) { |
| | | // this.setStateList("stopReason", "未知"); |
| | | // } else { |
| | | // this.setStateList( |
| | | // "stopReason", |
| | | // stopReasons[data.dev_last_captest_stop_type] |
| | | // ); |
| | | // } |
| | | |
| | | // 操作失败原因 |
| | | let failReasons = const_61850.failreasons; |
| | | this.setStateList("failReason", failReasons[data.dev_alarmstate]); |
| | | |
| | | // 告警信息 |
| | | let alarms = data.dev_61850alarms.split(","); |
| | | // alarms = ['false', 'false', 'true', 'false', 'true']; |
| | | // 通讯状态 |
| | | if (alarms[1] == "true") { |
| | | this.setStateList("connect", "异常", "table-row-error"); |
| | | } else { |
| | | this.setStateList("connect", "正常", ""); |
| | | } |
| | | |
| | | // 温度 |
| | | if (alarms[2] == "true") { |
| | | this.setStateList("devTemp", "异常", "table-row-error"); |
| | | } else { |
| | | this.setStateList("devTemp", "正常", ""); |
| | | } |
| | | |
| | | // 干接点 |
| | | if (alarms[4] == "true") { |
| | | this.setStateList("contact", "异常", "table-row-error"); |
| | | } else { |
| | | this.setStateList("contact", "正常", ""); |
| | | } |
| | | }, |
| | | // 基础信息 |
| | | setEquipBase(data) { |
| | | let groupIndex = this.batt.GroupIndexInFBSDevice; |
| | | // 设备的温度 |
| | | this.diagram.temp = data.dev_temp; |
| | | let contactRes = (groupIndex != 0 |
| | | ? data.dev_conresist1 |
| | | : data.dev_conresist |
| | | ).toHold(2); |
| | | let dropVol = (groupIndex != 0 |
| | | ? data.dev_condvoldp1 |
| | | : data.dev_condvoldp |
| | | ).toHold(2); |
| | | let alarms = data.dev_61850alarms.split(","); |
| | | if (alarms.length) { |
| | | this.diagram.contactRes = alarms[0] == "true" ? "k1异常" : contactRes; |
| | | this.diagram.dropVol = alarms[3] == "true" ? "D1异常" : dropVol; |
| | | } else { |
| | | this.diagram.contactRes = contactRes; |
| | | this.diagram.dropVol = dropVol; |
| | | } |
| | | }, |
| | | realTimeLd9Data() { |