he wei
2024-01-05 a9c9544d4c9010077b177f4caf866c8479653d61
src/views/home/index.vue
@@ -6,6 +6,7 @@
import ProtectorBox from "./components/protectorBox";
import TextBox from "./components/textBox";
import SvgLine from "./components/svgLine";
import marqueeLeft from "./components/marqueeLeft.vue";
import getBinaryDigits from "@/assets/js/getBinaryDigits";
import FileProcess from "./fileProcess";
@@ -34,6 +35,7 @@
    TextBox,
    SvgLine,
    ListCard,
    marqueeLeft,
  },
  data() {
    const baseURL = getWebUrl();
@@ -61,6 +63,8 @@
        dcin2_switch_trip: [],
        dc1_switch1_trip: [],
        dc2_switch1_trip: [],
        breaker_state1: [],
        breaker_state2: [],
      },
    };
  },
@@ -98,12 +102,17 @@
        dcIn2SwitchTripReal,
        dc1Switch1TripReal,
        dc2Switch1TripReal,
        breakerState1,
        breakerState2,
      } = data2;
      let ac1_outswitch1_trip = getBinaryDigits(ac1OutSwitch1TripReal);
      let ac2_outswitch1_trip = getBinaryDigits(ac2OutSwitch1TripReal);
      let dc1_switch1_trip = getBinaryDigits(dc1Switch1TripReal);
      let dc2_switch1_trip = getBinaryDigits(dc2Switch1TripReal);
      let breaker_state1 = getBinaryDigits(breakerState1);
      let breaker_state2 = getBinaryDigits(breakerState2);
      let acin1_switch_trip = [acIn1SwitchTripReal];
      let acin2_switch_trip = [acIn2SwitchTripReal];
      let dcin1_switch_trip = [dcIn1SwitchTripReal];
@@ -118,6 +127,8 @@
        dcin2_switch_trip,
        dc1_switch1_trip,
        dc2_switch1_trip,
        breaker_state1,
        breaker_state2,
      };
      // this.UPDATE_HOMEDATA(this.rtData);
    },
@@ -143,6 +154,14 @@
          console.log(err);
        });
    },
    getAlarm(name) {
      const breaker =
        this.breakerList.filter((v) => v.breakerName == name)[0] || {};
      if (!breaker.nodeName) {
        return false;
      }
      return !!this.switchStates[breaker.nodeName][breaker.nodeBit];
    },
  },
  computed: {
    ...mapState({
@@ -150,10 +169,44 @@
    }),
    switchState() {
      let v = this.curSwitch;
      if (!v['nodeName']) {
        return '未知';
      if (!v["switchNodeName"]) {
        return "未知";
      }
      return this.switchStates[v.nodeName][v.nodeBit] ? "合闸" : "分闸";
      return this.switchStates[v.switchNodeName][v.switchNodeBit]
        ? "分闸"
        : "合闸";
    },
    alarm_ac1() {
      let breakerList = this.breakerList.filter(
        (v) =>
          v.breakerAddr == "交流进线1" &&
          this.switchStates[v.nodeName][v.nodeBit]
      );
      return breakerList.map((v) => v.breakerType + v.breakerName);
    },
    alarm_ac2() {
      let breakerList = this.breakerList.filter(
        (v) =>
          v.breakerAddr == "交流进线2" &&
          this.switchStates[v.nodeName][v.nodeBit]
      );
      return breakerList.map((v) => v.breakerType + v.breakerName);
    },
    alarm_dc1() {
      let breakerList = this.breakerList.filter(
        (v) =>
          v.breakerAddr == "直流进线1" &&
          this.switchStates[v.nodeName][v.nodeBit]
      );
      return breakerList.map((v) => v.breakerType + v.breakerName);
    },
    alarm_dc2() {
      let breakerList = this.breakerList.filter(
        (v) =>
          v.breakerAddr == "直流进线2" &&
          this.switchStates[v.nodeName][v.nodeBit]
      );
      return breakerList.map((v) => v.breakerType + v.breakerName);
    },
  },
  mounted() {
@@ -258,45 +311,57 @@
              <div class="svg-contain">
                <div class="pos-full">
                  <svg width="100%" height="100%" viewBox="0 0 500 340">
                    <text-box :offset="[220, 10]" @click="(el) => showState(el, 'JK11')"></text-box>
                    <text-box
                      :alarm="getAlarm('JK11')"
                      :offset="[220, 10]"
                      @click="(el) => showState(el, 'JK11')"
                    ></text-box>
                    <protector-box
                      @click="(el) => showState(el, 'JK12')"
                      :offset="[36, 10]"
                      :alarm="getAlarm('JK12')"
                    ></protector-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK13')"
                      :type="3"
                      :offset="[36, 134]"
                      :alarm="getAlarm('JK13')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK14')"
                      :type="3"
                      :offset="[220, 134]"
                      :alarm="getAlarm('JK14')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK15')"
                      :type="3"
                      :offset="[390, 134]"
                      :alarm="getAlarm('JK15')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK16')"
                      :type="1"
                      :offset="[36, 252]"
                      :alarm="getAlarm('JK16')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK17')"
                      :type="1"
                      :offset="[150, 252]"
                      :alarm="getAlarm('JK17')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK18')"
                      :type="1"
                      :offset="[274, 252]"
                      :alarm="getAlarm('JK18')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK19')"
                      :type="1"
                      :offset="[390, 252]"
                      :alarm="getAlarm('JK19')"
                    ></switch-box>
                    <svg-line
                      :points="[
@@ -363,8 +428,10 @@
              </div>
              <div class="yc-panel-footer">
                <!-- TODO 告警 滚动 -->
                <div class="state"></div>
                <div class="state">
                  <marqueeLeft :list="alarm_ac1" v-if="alarm_ac1.length"></marqueeLeft>
                  <div class="no-warning-msg" v-else>无</div>
                </div>
              </div>
            </div>
          </div>
@@ -374,45 +441,57 @@
              <div class="svg-contain">
                <div class="pos-full">
                  <svg width="100%" height="100%" viewBox="0 0 500 340">
                    <text-box :offset="[220, 10]" @click="(el) => showState(el, 'JK21')"></text-box>
                    <text-box
                      :offset="[220, 10]"
                      @click="(el) => showState(el, 'JK21')"
                      :alarm="getAlarm('JK21')"
                    ></text-box>
                    <protector-box
                      @click="(el) => showState(el, 'JK22')"
                      :offset="[390, 10]"
                      :alarm="getAlarm('JK22')"
                    ></protector-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK23')"
                      :type="3"
                      :offset="[36, 134]"
                      :alarm="getAlarm('JK23')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK24')"
                      :type="3"
                      :offset="[220, 134]"
                      :alarm="getAlarm('JK24')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK25')"
                      :type="3"
                      :offset="[390, 134]"
                      :alarm="getAlarm('JK25')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK26')"
                      :type="1"
                      :offset="[36, 252]"
                      :alarm="getAlarm('JK26')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK27')"
                      :type="1"
                      :offset="[150, 252]"
                      :alarm="getAlarm('JK27')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK28')"
                      :type="1"
                      :offset="[274, 252]"
                      :alarm="getAlarm('JK28')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'JK29')"
                      :type="1"
                      :offset="[390, 252]"
                      :alarm="getAlarm('JK29')"
                    ></switch-box>
                    <svg-line
                      :points="[
@@ -478,7 +557,10 @@
                </div>
              </div>
              <div class="yc-panel-footer">
                <div class="state"></div>
                <div class="state">
                  <marqueeLeft :list="alarm_ac2" v-if="alarm_ac2.length"></marqueeLeft>
                  <div class="no-warning-msg" v-else>无</div>
                </div>
              </div>
            </div>
          </div>
@@ -494,47 +576,56 @@
                      @click="(el) => showState(el, 'DK11')"
                      :type="2"
                      :offset="[269, 14]"
                      :alarm="getAlarm('DK11')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK12')"
                      small
                      :offset="[20, 160]"
                      :alarm="getAlarm('DK12')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK13')"
                      small
                      :offset="[94, 160]"
                      :alarm="getAlarm('DK13')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK14')"
                      small
                      :offset="[168, 160]"
                      :alarm="getAlarm('DK14')"
                    ></switch-box>
                    <!-- alarm -->
                    <switch-box
                      @click="(el) => showState(el, 'DK15')"
                      small
                      :offset="[242, 160]"
                      :alarm="getAlarm('DK15')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK16')"
                      small
                      :offset="[316, 160]"
                      :alarm="getAlarm('DK16')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK17')"
                      small
                      :offset="[390, 160]"
                      :alarm="getAlarm('DK17')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK18')"
                      small
                      :offset="[464, 160]"
                      :alarm="getAlarm('DK18')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK19')"
                      small
                      :offset="[538, 160]"
                      :alarm="getAlarm('DK19')"
                    ></switch-box>
                    <svg-line
                      :points="[
@@ -591,7 +682,10 @@
                </div>
              </div>
              <div class="yc-panel-footer">
                <div class="state"></div>
                <div class="state">
                  <marqueeLeft :list="alarm_dc1" v-if="alarm_dc1.length"></marqueeLeft>
                  <div class="no-warning-msg" v-else>无</div>
                </div>
              </div>
            </div>
          </div>
@@ -605,46 +699,55 @@
                      @click="(el) => showState(el, 'DK21')"
                      :type="2"
                      :offset="[269, 14]"
                      :alarm="getAlarm('DK21')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK22')"
                      small
                      :offset="[20, 160]"
                      :alarm="getAlarm('DK22')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK23')"
                      small
                      :offset="[94, 160]"
                      :alarm="getAlarm('DK23')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK24')"
                      small
                      :offset="[168, 160]"
                      :alarm="getAlarm('DK24')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK25')"
                      small
                      :offset="[242, 160]"
                      :alarm="getAlarm('DK25')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK26')"
                      small
                      :offset="[316, 160]"
                      :alarm="getAlarm('DK26')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK27')"
                      small
                      :offset="[390, 160]"
                      :alarm="getAlarm('DK27')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK28')"
                      small
                      :offset="[464, 160]"
                      :alarm="getAlarm('DK28')"
                    ></switch-box>
                    <switch-box
                      @click="(el) => showState(el, 'DK29')"
                      small
                      :offset="[538, 160]"
                      :alarm="getAlarm('DK29')"
                    ></switch-box>
                    <svg-line
                      :points="[
@@ -701,7 +804,10 @@
                </div>
              </div>
              <div class="yc-panel-footer">
                <div class="state"></div>
                <div class="state">
                  <marqueeLeft :list="alarm_dc2" v-if="alarm_dc2.length"></marqueeLeft>
                  <div class="no-warning-msg" v-else>无</div>
                </div>
              </div>
            </div>
          </div>
@@ -712,11 +818,13 @@
    <div class="pop-info" v-show="popVisible" :style="popPosition">
      <div class="item">
        <div class="label">开关名称</div>
        <div class="value">{{ curSwitch['breakerType'] + curSwitch['breakerName'] }}</div>
        <div class="value">
          {{ curSwitch["breakerType"] + curSwitch["breakerName"] }}
        </div>
      </div>
      <div class="item">
        <div class="label">开关规格</div>
        <div class="value">{{ curSwitch['breakerLevel'] + 'P' }}</div>
        <div class="value">{{ curSwitch["breakerLevel"] + "P" }}</div>
      </div>
      <div class="item">
        <div class="label">开关状态</div>
@@ -918,7 +1026,7 @@
            color: #011f39;
            font-weight: bold;
            border-radius: 4px;
            padding-left: 0.8em;
            padding: 0 0.8em;
          }
        }
      }