longyvfengyun
2024-04-24 2ea742e653a2f6e4f14bb183297ca48da1130d09
src/views/dataTest/intelRealTime.vue
@@ -1,22 +1,54 @@
<script>
import HomeList from "@/views/dataTest/movingRingSystem/HomeList.vue";
import {getBattGroupInfo} from "@/views/dataMager/js/battGroupMager";
import { getBattGroupInfo } from "@/views/dataMager/js/battGroupMager";
import ContentBox from "@/components/ContentBox.vue";
import HdwLight from "@/components/HdwLight.vue";
import getIntelDevState from "@/views/dataTest/js/getIntelDevState";
import IntelDevStateTools from "@/views/dataTest/components/IntelDevStateTools.vue";
import IntelCircuit from "@/views/dataTest/components/diagrams/intelCircuit/index.vue";
import createWs from "@/assets/js/websocket";
import { getBit } from "@/assets/js/const/const_storage";
const WSMixin = createWs("Intelligent");
export default {
  name: "movingRingSysteRrealTime",
  components: {IntelCircuit, IntelDevStateTools, HdwLight, ContentBox, HomeList},
  mixins: [WSMixin],
  components: {
    IntelCircuit,
    IntelDevStateTools,
    HdwLight,
    ContentBox,
    HomeList,
  },
  data() {
    return {
      homeListShow: true,
      batt: {},
      acTabs: "eleLine",
      stateList: getIntelDevState(),
    }
      devData: {
        dcdc1Errcode: 0,
        dcdc1Inputcurr: 0,
        dcdc1Inputvol: 0,
        dcdc1Outputcurr: 0,
        dcdc1Outputvol: 0,
        dcdc1Temp: 0,
        dcdc2Errcode: 0,
        dcdc2Inputcurr: 0,
        dcdc2Inputvol: 0,
        dcdc2Outputcurr: 0,
        dcdc2Outputvol: 0,
        dcdc2Temp: 0,
        devId: 0,
        num: 0,
        recordTime: "1980-01-01 00:00:00",
      },
      diagram: {
        isConnect: false,
        update: 0,
      },
    };
  },
  watch: {
    "$route.params.BattGroupId"(battGroupId) {
@@ -46,13 +78,56 @@
    },
    leafClick(data) {
      this.batt = data;
      this.$nextTick(() => {
        // 开启循环请求
        this.sendMessage();
      });
    },
    resize() {
    resize() {},
    tabClick() {},
    onWSOpen() {
      this.$nextTick(() => {
        this.sendMessage();
      });
    },
    tabClick() {
    sendMessage() {
      let batt = this.batt;
      if (!batt.battGroupId || !this.isWSOpen) {
        return false;
      }
      // console.log("=====9=", params, JSON.stringify(params));
      this.SOCKET.send(batt.fbsdeviceId);
    },
    onWSMessage(res) {
      let rs = JSON.parse(res.data);
      if (rs.code === 1 && rs.data) {
        this.devData = rs.data2;
      }
      let data = this.devData;
      // 判断是否超时
      let outTime = 2 * 60; //设备超时时间(2分钟)
      let nowTime = new Date(rs.data3).getTime(); //当前时间
      let record = new Date(data.recordTime).getTime();
    }
      // 超过2分钟
      if (false) {
        // if (Math.abs(nowTime - record) / 1000 > outTime) {
        this.diagram.isConnect = false;
        this.stateList.map((item) => {
          item.value1 = -1;
          item.value2 = -1;
        });
      } else {
        this.diagram.isConnect = true;
        this.stateList.map((item) => {
          item.value1 = getBit(data.dcdc1Errcode, item.bit);
          item.value2 = getBit(data.dcdc2Errcode, item.bit);
        });
      }
      // 更新数据
      this.diagram.update = Math.random();
    },
  },
  computed: {
    battFullName() {
@@ -69,8 +144,8 @@
    if (battGroupId) {
      this.getBattGroupInfo(battGroupId);
    }
  }
}
  },
};
</script>
<template>
@@ -79,15 +154,21 @@
      v-if="homeListShow"
      slot="header"
      @toggleChange="toggleChange"
      @leaf-click="leafClick"></home-list>
      @leaf-click="leafClick"
    ></home-list>
    <content-box
      style="margin-left: 4px; margin-right: 4px"
      :title="battFullName">
      :title="battFullName"
    >
      <div class="page-content">
        <div class="state-tools-wrapper">
          <intel-dev-state-tools :list="stateList"></intel-dev-state-tools>
        </div>
        <intel-circuit></intel-circuit>
        <intel-circuit
          :option="devData"
          :update="diagram.update"
          :is-connect="diagram.isConnect"
        ></intel-circuit>
      </div>
    </content-box>
  </flex-layout>