From 8ffb54b88e3907ea59c120d34a8cd9f486cc1151 Mon Sep 17 00:00:00 2001
From: he wei <858544502@qq.com>
Date: 星期一, 13 一月 2025 16:37:36 +0800
Subject: [PATCH] U 提交

---
 src/views/home/StateInfo.vue |  355 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 272 insertions(+), 83 deletions(-)

diff --git a/src/views/home/StateInfo.vue b/src/views/home/StateInfo.vue
index cb0c339..74c6eca 100644
--- a/src/views/home/StateInfo.vue
+++ b/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">鍗曠墖鏈篈DC閲囨牱</div>
+      </div> -->
+      <!-- <div class="state-info-title adc">鍗曠墖鏈篈DC閲囨牱</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+姝g數鍘�:</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鏁g儹鍣ㄦ俯搴�:</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鏁g儹鍣ㄦ俯搴�:</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鏁g儹鍣ㄦ俯搴�:</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鏁g儹鍣ㄦ俯搴﹁繃娓�</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鏁g儹鍣ㄦ俯搴﹁繃娓�</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鏁g儹鍣ㄦ俯搴﹁繃娓�</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 {

--
Gitblit v1.9.1