he wei
2025-01-13 8ffb54b88e3907ea59c120d34a8cd9f486cc1151
src/views/home/StateInfo.vue
@@ -1,24 +1,39 @@
<script>
<script setup>
import HdwBox from "@/components/HdwBox.vue";
import { ref } from "vue";
import ycLight from "@/components/ycLight.vue";
import toFixed from "@/assets/js/toFixed.js";
import const_digits from "@/assets/js/const_digits";
export default {
  name: "StateInfo" ,
  components: {HdwBox},
  data() {
    return {
      title: "标题"
    };
const emit = defineEmits(["editParams", 'start', 'stop', 'clearAlarm']);
const { VOL, CURR, TEMP, FREQ } = const_digits;
const props = defineProps({
  // title: {
  //   type: String,
  //   default: "标题",
  // },
  info: {
    type: Object,
    // default: () => {
    //   return {};
    // },
    required: true,
  },
}
});
</script>
<template>
  <hdw-box :title="title">
  <hdw-box :title="info.powerName">
    <template #tools>
      <el-button size="small" type="primary">启动测试</el-button>
      <el-button size="small" type="primary" @click="emit('clearAlarm')">清除故障</el-button>
      <el-button size="small" type="primary" @click="emit('editParams')">修改参数</el-button>
      <el-button size="small" type="primary" v-if="!info.state?.powerWorkstat" @click="emit('start')">开机</el-button>
      <el-button size="small" type="primary" v-else @click="emit('stop')">关机</el-button>
    </template>
    <el-scrollbar>
      <div class="state-info-title">IIC读取数据</div>
      <!-- <div class="state-info-title">IIC读取数据</div>
      <div class="state-info-list-wrapper">
        <el-row :gutter="0">
          <el-col :span="8">
@@ -76,15 +91,17 @@
            </div>
          </el-col>
        </el-row>
      </div>
      <div class="state-info-title adc">单片机ADC采样</div>
      </div> -->
      <!-- <div class="state-info-title adc">单片机ADC采样</div> -->
      <div class="state-info-list-wrapper">
        <el-row :gutter="0">
          <el-col :span="8">
            <div class="state-info-item-wrapper">
              <div class="state-info-label">A相电压:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">
                  {{ toFixed(info.state?.vgridrmsVola, VOL) }}
                </div>
                <div class="state-info-unit">V</div>
              </div>
            </div>
@@ -93,7 +110,9 @@
            <div class="state-info-item-wrapper">
              <div class="state-info-label">B相电压:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">
                  {{ toFixed(info.state?.vgridrmsVolb, VOL) }}
                </div>
                <div class="state-info-unit">V</div>
              </div>
            </div>
@@ -102,7 +121,9 @@
            <div class="state-info-item-wrapper">
              <div class="state-info-label">C相电压:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">
                  {{ toFixed(info.state?.vgridrmsVolc, VOL) }}
                </div>
                <div class="state-info-unit">V</div>
              </div>
            </div>
@@ -111,7 +132,9 @@
            <div class="state-info-item-wrapper">
              <div class="state-info-label">A相电流:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">
                  {{ toFixed(info.state?.igridrmsCurra, CURR) }}
                </div>
                <div class="state-info-unit">A</div>
              </div>
            </div>
@@ -120,7 +143,9 @@
            <div class="state-info-item-wrapper">
              <div class="state-info-label">B相电流:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">
                  {{ toFixed(info.state?.igridrmsCurrb, CURR) }}
                </div>
                <div class="state-info-unit">A</div>
              </div>
            </div>
@@ -129,7 +154,9 @@
            <div class="state-info-item-wrapper">
              <div class="state-info-label">C相电流:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">
                  {{ toFixed(info.state?.igridrmsCurrc, CURR) }}
                </div>
                <div class="state-info-unit">A</div>
              </div>
            </div>
@@ -139,7 +166,7 @@
      <div class="state-info-title line"></div>
      <div class="state-info-list-wrapper">
        <el-row :gutter="0">
          <el-col :span="8">
          <!-- <el-col :span="8">
            <div class="state-info-item-wrapper">
              <div class="state-info-label">A相功率:</div>
              <div class="state-info-value-wrapper">
@@ -165,12 +192,12 @@
                <div class="state-info-unit"></div>
              </div>
            </div>
          </el-col>
          </el-col> -->
          <el-col :span="8">
            <div class="state-info-item-wrapper">
              <div class="state-info-label">母线电压:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">{{ toFixed(info.state?.vbusVol, VOL) }}</div>
                <div class="state-info-unit">V</div>
              </div>
            </div>
@@ -179,7 +206,7 @@
            <div class="state-info-item-wrapper">
              <div class="state-info-label">交流频率:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">{{ toFixed(info.state?.gridFreq, FREQ) }}</div>
                <div class="state-info-unit">HZ</div>
              </div>
            </div>
@@ -188,7 +215,9 @@
            <div class="state-info-item-wrapper">
              <div class="state-info-label">PCB温度:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">
                  {{ toFixed(info.state?.degreeTemppcb, TEMP) }}
                </div>
                <div class="state-info-unit">℃</div>
              </div>
            </div>
@@ -197,7 +226,7 @@
            <div class="state-info-item-wrapper">
              <div class="state-info-label">BUS+正电压:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">{{ toFixed(info.state?.vmidVol, VOL) }}</div>
                <div class="state-info-unit">V</div>
              </div>
            </div>
@@ -206,7 +235,9 @@
            <div class="state-info-item-wrapper">
              <div class="state-info-label">A散热器温度:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">
                  {{ toFixed(info.state?.degreeTempa, TEMP) }}
                </div>
                <div class="state-info-unit">℃</div>
              </div>
            </div>
@@ -215,7 +246,9 @@
            <div class="state-info-item-wrapper">
              <div class="state-info-label">B散热器温度:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">
                  {{ toFixed(info.state?.degreeTempb, TEMP) }}
                </div>
                <div class="state-info-unit">℃</div>
              </div>
            </div>
@@ -224,65 +257,204 @@
            <div class="state-info-item-wrapper">
              <div class="state-info-label">C散热器温度:</div>
              <div class="state-info-value-wrapper">
                <div class="state-info-value">0</div>
                <div class="state-info-value">
                  {{ toFixed(info.state?.degreeTempc, TEMP) }}
                </div>
                <div class="state-info-unit">℃</div>
              </div>
            </div>
          </el-col>
<!--          <el-col :span="12">-->
<!--            <div class="state-info-item-wrapper">-->
<!--              <div class="state-info-label">A相电压有效值:</div>-->
<!--              <div class="state-info-value-wrapper">-->
<!--                <div class="state-info-value">0</div>-->
<!--                <div class="state-info-unit">V</div>-->
<!--              </div>-->
<!--            </div>-->
<!--          </el-col>-->
<!--          <el-col :span="12">-->
<!--            <div class="state-info-item-wrapper">-->
<!--              <div class="state-info-label">B相电压有效值:</div>-->
<!--              <div class="state-info-value-wrapper">-->
<!--                <div class="state-info-value">0</div>-->
<!--                <div class="state-info-unit">V</div>-->
<!--              </div>-->
<!--            </div>-->
<!--          </el-col>-->
<!--          <el-col :span="12">-->
<!--            <div class="state-info-item-wrapper">-->
<!--              <div class="state-info-label">C相电压有效值:</div>-->
<!--              <div class="state-info-value-wrapper">-->
<!--                <div class="state-info-value">0</div>-->
<!--                <div class="state-info-unit">C</div>-->
<!--              </div>-->
<!--            </div>-->
<!--          </el-col>-->
<!--          <el-col :span="12">-->
<!--            <div class="state-info-item-wrapper">-->
<!--              <div class="state-info-label large">A相电流有效值:</div>-->
<!--              <div class="state-info-value-wrapper">-->
<!--                <div class="state-info-value">0</div>-->
<!--                <div class="state-info-unit">A</div>-->
<!--              </div>-->
<!--            </div>-->
<!--          </el-col>-->
<!--          <el-col :span="12">-->
<!--            <div class="state-info-item-wrapper">-->
<!--              <div class="state-info-label large">B相电流有效值:</div>-->
<!--              <div class="state-info-value-wrapper">-->
<!--                <div class="state-info-value">0</div>-->
<!--                <div class="state-info-unit">A</div>-->
<!--              </div>-->
<!--            </div>-->
<!--          </el-col>-->
<!--          <el-col :span="12">-->
<!--            <div class="state-info-item-wrapper">-->
<!--              <div class="state-info-label">C相电流有效值:</div>-->
<!--              <div class="state-info-value-wrapper">-->
<!--                <div class="state-info-value">0</div>-->
<!--                <div class="state-info-unit">A</div>-->
<!--              </div>-->
<!--            </div>-->
<!--          </el-col>-->
          <!--          <el-col :span="12">-->
          <!--            <div class="state-info-item-wrapper">-->
          <!--              <div class="state-info-label">A相电压有效值:</div>-->
          <!--              <div class="state-info-value-wrapper">-->
          <!--                <div class="state-info-value">0</div>-->
          <!--                <div class="state-info-unit">V</div>-->
          <!--              </div>-->
          <!--            </div>-->
          <!--          </el-col>-->
          <!--          <el-col :span="12">-->
          <!--            <div class="state-info-item-wrapper">-->
          <!--              <div class="state-info-label">B相电压有效值:</div>-->
          <!--              <div class="state-info-value-wrapper">-->
          <!--                <div class="state-info-value">0</div>-->
          <!--                <div class="state-info-unit">V</div>-->
          <!--              </div>-->
          <!--            </div>-->
          <!--          </el-col>-->
          <!--          <el-col :span="12">-->
          <!--            <div class="state-info-item-wrapper">-->
          <!--              <div class="state-info-label">C相电压有效值:</div>-->
          <!--              <div class="state-info-value-wrapper">-->
          <!--                <div class="state-info-value">0</div>-->
          <!--                <div class="state-info-unit">C</div>-->
          <!--              </div>-->
          <!--            </div>-->
          <!--          </el-col>-->
          <!--          <el-col :span="12">-->
          <!--            <div class="state-info-item-wrapper">-->
          <!--              <div class="state-info-label large">A相电流有效值:</div>-->
          <!--              <div class="state-info-value-wrapper">-->
          <!--                <div class="state-info-value">0</div>-->
          <!--                <div class="state-info-unit">A</div>-->
          <!--              </div>-->
          <!--            </div>-->
          <!--          </el-col>-->
          <!--          <el-col :span="12">-->
          <!--            <div class="state-info-item-wrapper">-->
          <!--              <div class="state-info-label large">B相电流有效值:</div>-->
          <!--              <div class="state-info-value-wrapper">-->
          <!--                <div class="state-info-value">0</div>-->
          <!--                <div class="state-info-unit">A</div>-->
          <!--              </div>-->
          <!--            </div>-->
          <!--          </el-col>-->
          <!--          <el-col :span="12">-->
          <!--            <div class="state-info-item-wrapper">-->
          <!--              <div class="state-info-label">C相电流有效值:</div>-->
          <!--              <div class="state-info-value-wrapper">-->
          <!--                <div class="state-info-value">0</div>-->
          <!--                <div class="state-info-unit">A</div>-->
          <!--              </div>-->
          <!--            </div>-->
          <!--          </el-col>-->
        </el-row>
      </div>
      <div class="state-info-title line"></div>
      <div class="state-info-list-wrapper">
        <el-row :gutter="0">
          <el-col :span="8">
            <div class="state-info-item-wrapper alarm">
              <div class="label">A相过流</div>
              <div class="value">
                <yc-light :error="info.state?.acinOverCurra"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="state-info-item-wrapper alarm">
              <div class="label">B相过流</div>
              <div class="value">
                <yc-light :error="info.state?.acinOverCurrb"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="state-info-item-wrapper alarm">
              <div class="label">C相过流</div>
              <div class="value">
                <yc-light :error="info.state?.acinOverCurrc"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="state-info-item-wrapper alarm">
              <div class="label">A相过压</div>
              <div class="value">
                <yc-light :error="info.state?.vgridOverVola"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="state-info-item-wrapper alarm">
              <div class="label">B相过压</div>
              <div class="value">
                <yc-light :error="info.state?.vgridOverVolb"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="state-info-item-wrapper alarm">
              <div class="label">C相过压</div>
              <div class="value">
                <yc-light :error="info.state?.vgridOverVolc"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="state-info-item-wrapper alarm">
              <div class="label">A相欠压</div>
              <div class="value">
                <yc-light :error="info.state?.vgridUnderVola"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="state-info-item-wrapper alarm">
              <div class="label">B相欠压</div>
              <div class="value">
                <yc-light :error="info.state?.vgridUnderVolb"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="state-info-item-wrapper alarm">
              <div class="label">C相欠压</div>
              <div class="value">
                <yc-light :error="info.state?.vgridUnderVolc"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="state-info-item-wrapper alarm">
              <div class="label">BUS过压</div>
              <div class="value">
                <yc-light :error="info.state?.busOverVol"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="state-info-item-wrapper alarm">
              <div class="label">BUS欠压</div>
              <div class="value">
                <yc-light :error="info.state?.busUnderVol"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="8"> </el-col>
          <el-col :span="12">
            <div class="state-info-item-wrapper alarm">
              <div class="label">A散热器温度过温</div>
              <div class="value">
                <yc-light :error="info.state?.mosaOverTemp"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="12">
            <div class="state-info-item-wrapper alarm">
              <div class="label">B散热器温度过温</div>
              <div class="value">
                <yc-light :error="info.state?.mosbOverTemp"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="12">
            <div class="state-info-item-wrapper alarm">
              <div class="label">C散热器温度过温</div>
              <div class="value">
                <yc-light :error="info.state?.moscOverTemp"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="12"></el-col>
          <el-col :span="12">
            <div class="state-info-item-wrapper alarm">
              <div class="label">风机故障</div>
              <div class="value">
                <yc-light :error="info.state?.fanAlarm"></yc-light>
              </div>
            </div>
          </el-col>
          <el-col :span="12">
            <div class="state-info-item-wrapper alarm">
              <div class="label">12V辅助电源故障</div>
              <div class="value">
                <yc-light :error="info.state?.vdc12vFault"></yc-light>
              </div>
            </div>
          </el-col>
        </el-row>
      </div>
    </el-scrollbar>
@@ -321,6 +493,23 @@
        display: inline-block;
      }
    }
    &.alarm {
      display: flex;
      flex-direction: row;
      align-items: center;
      padding: 0;
    }
    .label {
      flex: 1;
      text-align: right;
      margin-right: 0.6em;
      &::after {
        content: ":";
      }
    }
    .value {
      margin-right: 0.4em;
    }
  }
}
.state-info-title {