From d3290cacdae24c00244569de87aa5d7f8cd0c774 Mon Sep 17 00:00:00 2001
From: Gary Gu <garygu@Garydebijibendiannao.local>
Date: Tue, 27 May 2025 15:10:40 +0800
Subject: [PATCH] feat: 设备状态UI修改

---
 src/views/EquipmentView.vue | 1337 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 699 insertions(+), 638 deletions(-)

diff --git a/src/views/EquipmentView.vue b/src/views/EquipmentView.vue
index 2860604..dd39b73 100644
--- a/src/views/EquipmentView.vue
+++ b/src/views/EquipmentView.vue
@@ -1,692 +1,753 @@
 <template>
-<div class="equipment-container">
- <div class="top-nav w-full mb-[1vh]" :style="{
-          backgroundImage: `url(${titleImage})`,
-          backgroundRepeat: 'no-repeat',
-          backgroundPosition: 'center center',
-          backgroundSize: '100% 100%'
-        }">
- </div>
- <div class="bottom-nav">
-  <div class="top-section mb-[20px]">
+  <div class="equipment-container">
+    <div
+      class="top-nav w-full mb-[1vh]"
+      :style="{
+        backgroundImage: `url(${titleImage})`,
+        backgroundRepeat: 'no-repeat',
+        backgroundPosition: 'center center',
+        backgroundSize: '100% 100%',
+      }"
+    >
+    </div>
+    <div class="bottom-nav">
+      <div class="top-section mb-[20px]">
+        <div class="stats-grid" :style="sectionStyle">
+          <div class="stat-item mb-[10px]">
+            <div class="stat-info">
+              <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/shishirenshu.png" alt="" />
+              <span class="satalabel ml-[8px]">实时人数</span>
+            </div>
+            <div class="value text-[#00FFFF] text-[28px] font-bold">62</div>
+          </div>
+          <div class="stat-item mb-[10px]">
+            <div class="stat-info">
+              <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/people.png" alt="" />
+              <span class="satalabel ml-[8px]">今日累计/人次</span>
+            </div>
+            <div class="value text-[#FFD500] text-[28px] font-bold">62</div>
+          </div>
+          <div class="stat-item">
+            <div class="stat-info">
+              <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/zaigang.png" alt="" />
+              <span class="satalabel ml-[8px]">在岗总数</span>
+            </div>
+            <div class="value text-[#FFD500] text-[28px] font-bold">62</div>
+          </div>
+        </div>
+      </div>
 
-   <div class="stats-grid" :style="sectionStyle">
-    <div class="stat-item mb-[10px]">
-     <div class="stat-info">
-      <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/shishirenshu.png" alt="">
-      <span class="satalabel ml-[8px]">实时人数</span>
-     </div>
-     <div class="value text-[#00FFFF] text-[28px] font-bold">62</div>
-    </div>
-    <div class="stat-item mb-[10px]">
-     <div class="stat-info">
-      <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/people.png" alt="">
-      <span class="satalabel ml-[8px]">今日累计/人次</span>
-     </div>
-     <div class="value text-[#FFD500] text-[28px] font-bold">62</div>
-    </div>
-    <div class="stat-item">
-     <div class="stat-info">
-      <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/zaigang.png" alt="">
-      <span class="satalabel ml-[8px]">在岗总数</span>
-     </div>
-     <div class="value text-[#FFD500] text-[28px] font-bold">62</div>
-    </div>
-   </div>
-  </div>
-
-  <div class="middle-section mb-[20px]">
-   <div class="w-full h-[4vh] mb-[1vh]" :style="{
-          backgroundImage: `url(${middleImage})`,
-          backgroundRepeat: 'no-repeat',
-          backgroundPosition: 'center center',
-          backgroundSize: '100% 100%'
-        }">
-   </div>
-   <div class="equipment-status" :style="sectionStyle">
-    <div class="w-full h-[30px]" :style="{
-            backgroundImage: `url(${bgImage})`,
+      <div class="middle-section mb-[20px]">
+        <div
+          class="w-full h-[4vh] mb-[1vh]"
+          :style="{
+            backgroundImage: `url(${middleImage})`,
             backgroundRepeat: 'no-repeat',
             backgroundPosition: 'center center',
-            backgroundSize: '100% 100%'
-          }">
-     <div class="text-white text-[14px] ml-[40px] leading-[35px]">升降机监控</div>
-    </div>
-    <div class="status-circles">
-     <template v-for="item in circleItems">
-      <div class="circle-item flex flex-col items-center justify-center" :key="item.id">
-       <div class="progress-circle">
-        <V2Echarts :idName="item.id" :options="item.options" />
-        <div class="percentage">{{item.percentage}}%</div>
-       </div>
-       <div class="label mt-[5px] flex flex-row items-center justify-center">
-        <div class="text-[16px] text-[#FFFFFF] mr-[12px]">{{item.name}}</div>
-        <div class="text-[24px] text-[#FFD500]">{{item.value}}</div>
-       </div>
+            backgroundSize: '100% 100%',
+          }"
+        >
+        </div>
+        <div class="equipment-status" :style="sectionStyle">
+          <el-select v-model="equipmentSelected" placeholder="请选择">
+            <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
+          <div
+            class="w-full h-[30px]"
+            :style="{
+              backgroundImage: `url(${bgImage})`,
+              backgroundRepeat: 'no-repeat',
+              backgroundPosition: 'center center',
+              backgroundSize: '100% 100%',
+            }"
+          >
+            <div class="text-white text-[14px] ml-[40px] leading-[35px] mt-[10px]">升降机监控</div>
+          </div>
+          <div class="status-circles">
+            <template v-for="item in circleItems">
+              <div class="circle-item flex flex-col items-center justify-center" :key="item.id">
+                <div class="progress-circle">
+                  <V2Echarts :idName="item.id" :options="item.options" />
+                  <div class="percentage">{{ item.percentage }}%</div>
+                </div>
+                <div class="label mt-[5px] flex flex-row items-center justify-center">
+                  <div class="text-[16px] text-[#FFFFFF] mr-[12px]">{{ item.name }}</div>
+                  <div class="text-[24px] text-[#FFD500]">{{ item.value }}</div>
+                </div>
+              </div>
+            </template>
+          </div>
+          <div class="divider"></div>
+          <div class="progress-bar px-[10px]">
+            <div class="label">运行设备总数</div>
+            <div class="bar flex items-center">
+              <div class="progress relative w-[90%] h-[24px]">
+                <div class="progress-inner" :style="{ width: `${(deviceOnline / deviceTotal) * 100}%` }"></div>
+                <div class="progress-blocks">
+                  <div v-for="n in 28" :key="n" class="block" :class="{ active: ((n - 1) / 28) * 100 <= (deviceOnline / deviceTotal) * 100 }"></div>
+                </div>
+              </div>
+              <div class="count-container ml-[25px]">
+                <span class="text-[#FFBF00] text-[24px]">{{ deviceOnline }}</span>
+                <span class="text-white text-[24px]">/</span>
+                <span class="text-white text-[24px]">{{ deviceTotal }}</span>
+              </div>
+            </div>
+          </div>
+        </div>
       </div>
-     </template>
-    </div>
-    <div class="control-buttons">
-     <button class="control-btn" :class="{ 'active': currentTab === '塔吊监控' }" @click="handleControlBtnClick('塔吊监控')">塔吊监控</button>
-     <button class="control-btn" :class="{ 'active': currentTab === '升降机监控' }" @click="handleControlBtnClick('升降机监控')">升降机监控</button>
-    </div>
-    <div class="divider"></div>
-    <div class="progress-bar px-[10px]">
-     <div class="label">运行设备总数</div>
-     <div class="bar flex items-center">
-      <div class="progress relative w-[90%] h-[24px]">
-       <div class="progress-inner" :style="{ width: `${deviceOnline / deviceTotal * 100}%` }"></div>
-       <div class="progress-blocks">
-        <div v-for="n in 28" :key="n" class="block" :class="{ 'active': (n-1)/28 * 100 <= (deviceOnline / deviceTotal * 100) }"></div>
-       </div>
-      </div>
-      <div class="count-container ml-[25px]">
-       <span class="text-[#FFBF00] text-[24px]">{{deviceOnline}}</span>
-       <span class="text-white text-[24px]">/</span>
-       <span class="text-white text-[24px]">{{deviceTotal}}</span>
-      </div>
-     </div>
-    </div>
-   </div>
-  </div>
 
-  <div class="bottom-section">
-   <div class="w-full h-[4vh] mb-[1vh]" :style="{
-          backgroundImage: `url(${bottomImage})`,
-          backgroundRepeat: 'no-repeat',
-          backgroundPosition: 'center center',
-          backgroundSize: '100% 100%'
-        }">
-   </div>
-   <div class="environment-grid" :style="sectionStyle">
-    <div class="env-item">
-     <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqiwendu.png" alt="">
-     <div class="env-info">
-      <span class="envlabel">大气温度</span>
-      <div class="envvalue" :style="enviorStyle">
-        <span class="envvalue-text">5°C</span>
+      <div class="bottom-section">
+        <div
+          class="w-full h-[4vh] mb-[1vh]"
+          :style="{
+            backgroundImage: `url(${bottomImage})`,
+            backgroundRepeat: 'no-repeat',
+            backgroundPosition: 'center center',
+            backgroundSize: '100% 100%',
+          }"
+        >
+        </div>
+        <div class="environment-grid" :style="sectionStyle">
+          <div class="env-item">
+            <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqiwendu.png" alt="" />
+            <div class="env-info">
+              <span class="envlabel">大气温度</span>
+              <div class="envvalue" :style="enviorStyle">
+                <span class="envvalue-text">5°C</span>
+              </div>
+            </div>
+          </div>
+          <div class="env-item">
+            <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqishidu.png" alt="" />
+            <div class="env-info">
+              <span class="envlabel">大气湿度</span>
+              <div class="envvalue" :style="enviorStyle">
+                <span class="envvalue-text">22.9%</span>
+              </div>
+            </div>
+          </div>
+          <div class="env-item">
+            <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM2.png" alt="" />
+            <div class="env-info">
+              <span class="envlabel">PM2.5</span>
+              <div class="envvalue" :style="enviorStyle">
+                <span class="envvalue-text">10 μg/m³</span>
+              </div>
+            </div>
+          </div>
+          <div class="env-item">
+            <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM10.png" alt="" />
+            <div class="env-info">
+              <span class="envlabel">PM10</span>
+              <div class="envvalue" :style="enviorStyle">
+                <span class="envvalue-text">13 μg/m³</span>
+              </div>
+            </div>
+          </div>
+          <div class="env-item">
+            <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengli.png" alt="" />
+            <div class="env-info">
+              <span class="envlabel">风力</span>
+              <div class="envvalue" :style="enviorStyle">
+                <span class="envvalue-text">3级</span>
+              </div>
+            </div>
+          </div>
+          <div class="env-item">
+            <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengxiang.png" alt="" />
+            <div class="env-info">
+              <span class="envlabel">风向</span>
+              <div class="envvalue" :style="enviorStyle">
+                <span class="envvalue-text">北风</span>
+              </div>
+            </div>
+          </div>
+        </div>
       </div>
-     </div>
     </div>
-    <div class="env-item">
-     <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqishidu.png" alt="">
-     <div class="env-info">
-      <span class="envlabel">大气湿度</span>
-      <div class="envvalue" :style="enviorStyle">
-        <span class="envvalue-text">22.9%</span>
-      </div>
-     </div>
-    </div>
-    <div class="env-item">
-     <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM2.png" alt="">
-     <div class="env-info">
-      <span class="envlabel">PM2.5</span>
-      <div class="envvalue" :style="enviorStyle">
-        <span class="envvalue-text">10 μg/m³</span>
-      </div>
-     </div>
-    </div>
-    <div class="env-item">
-     <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM10.png" alt="">
-     <div class="env-info">
-      <span class="envlabel">PM10</span>
-      <div class="envvalue" :style="enviorStyle">
-        <span class="envvalue-text">13 μg/m³</span>
-      </div>
-     </div>
-    </div>
-    <div class="env-item">
-     <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengli.png" alt="">
-     <div class="env-info">
-      <span class="envlabel">风力</span>
-      <div class="envvalue" :style="enviorStyle">
-        <span class="envvalue-text">3级</span>
-      </div>
-     </div>
-    </div>
-    <div class="env-item">
-     <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengxiang.png" alt="">
-     <div class="env-info">
-      <span class="envlabel">风向</span>
-      <div class="envvalue" :style="enviorStyle">
-        <span class="envvalue-text">北风</span>
-      </div>
-     </div>
-    </div>
-   </div>
   </div>
- </div>
-</div>
 </template>
 
 <script>
-import V2Echarts from '@/components/V2Echarts.vue'
-export default {
- name: 'EquipmentView',
- components: {
-  V2Echarts
- },
- data() {
-  return {
-   backgroundImage: new URL('@/assets/images/backgrounds/cover_bg.png',
-    import.meta.url).href,
-   titleImage: new URL('@/assets/images/titles/renyuan.png',
-    import.meta.url).href,
-   middleImage: new URL('@/assets/images/titles/shebei.png',
-    import.meta.url).href,
-   bottomImage: new URL('@/assets/images/titles/huanjing.png',
-    import.meta.url).href,
-   bgImage: new URL('@/assets/images/titles/title_second.png',
-    import.meta.url).href,
-   enviorImage: new URL('@/assets/images/titles/wendu_bg.png',
-    import.meta.url).href,
-   deviceOnline: 1,
-   deviceTotal: 27,
-   currentTab: '塔吊监控',
-   circleItems: [{
-     id: 'zaixianChartBox',
-     name: '总在线',
-     value: 22,
-     percentage: 81.5,
-     options: {
-      tooltip: {
-       trigger: 'item',
-       show: false
-      },
-      legend: {
-       itemWidth: 8,
-       itemHeight: 8,
-       top: '5%',
-       left: 'center',
-       show: false,
-      },
-      series: [{
-        type: 'pie',
-        radius: ['70%', '80%'],
-        center: ['50%', '50%'],
-        avoidLabelOverlap: false,
-        hoverAnimation: false,
-        startAngle: 90,
-        itemStyle: {
-         normal: {
-          label: {
-           show: false,
-          },
-          labelLine: {
-           show: false,
-          },
-          shadowBlur: 40,
-          borderWidth: 5,
-          shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
-         },
-        },
-        data: [{
-         value: 100,
-         name: '',
-         itemStyle: {
-          color: '#234E84'
-         }
-        }, ],
-       },
-       {
-        type: 'pie',
-        radius: ['70%', '100%'],
-        center: ['50%', '50%'],
-        avoidLabelOverlap: false,
-        hoverAnimation: false,
-        startAngle: 90,
-        itemStyle: {
-         normal: {
-          label: {
-           show: false,
-          },
-          labelLine: {
-           show: false,
-          },
-          shadowBlur: 40,
-          borderWidth: 10,
-          shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
-         },
-        },
-        data: [{
-          value: 81.5,
-          name: '',
-          itemStyle: {
-           color: '#00FFFF'
-          }
-         },
-         {
-          value: 18.5,
-          name: '',
-          itemStyle: {
-           color: 'transparent'
-          }
-         },
-        ],
-       },
-
-      ],
-     }
+  import V2Echarts from "@/components/V2Echarts.vue";
+  export default {
+    name: "EquipmentView",
+    components: {
+      V2Echarts,
     },
-    {
-     id: 'lixianChartBox',
-     name: '总离线',
-     value: 5,
-     percentage: 33,
-     options: {
-      tooltip: {
-       trigger: 'item',
-       show: false
-      },
-      legend: {
-       itemWidth: 8,
-       itemHeight: 8,
-       top: '5%',
-       left: 'center',
-       show: false,
-      },
-      series: [{
-        type: 'pie',
-        radius: ['70%', '80%'],
-        center: ['50%', '50%'],
-        avoidLabelOverlap: false,
-        hoverAnimation: false,
-        startAngle: 90,
-        itemStyle: {
-         normal: {
-          label: {
-           show: false,
+    data() {
+      return {
+        equipmentSelected: "",
+        options: [
+          {
+            value: "选项1",
+            label: "黄金糕",
           },
-          labelLine: {
-           show: false,
+          {
+            value: "选项2",
+            label: "双皮奶",
           },
-          shadowBlur: 40,
-          borderWidth: 5,
-          shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
-         },
-        },
-        data: [{
-         value: 100,
-         name: '',
-         itemStyle: {
-          color: '#234E84'
-         }
-        }, ],
-       },
-       {
-        type: 'pie',
-        radius: ['70%', '100%'],
-        center: ['50%', '50%'],
-        avoidLabelOverlap: false,
-        hoverAnimation: false,
-        startAngle: 90,
-        itemStyle: {
-         normal: {
-          label: {
-           show: false,
+          {
+            value: "选项3",
+            label: "蚵仔煎",
           },
-          labelLine: {
-           show: false,
+          {
+            value: "选项4",
+            label: "龙须面",
           },
-          shadowBlur: 40,
-          borderWidth: 10,
-          shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
-         },
-        },
-        data: [{
-          value: 33,
-          name: '',
-          itemStyle: {
-           color: '#00FFFF'
-          }
-         },
-         {
-          value: 77,
-          name: '',
-          itemStyle: {
-           color: 'transparent'
-          }
-         },
+          {
+            value: "选项5",
+            label: "北京烤鸭",
+          },
         ],
-       },
-
-      ],
-     }
+        backgroundImage: new URL("@/assets/images/backgrounds/cover_bg.png", import.meta.url).href,
+        titleImage: new URL("@/assets/images/titles/renyuan.png", import.meta.url).href,
+        middleImage: new URL("@/assets/images/titles/shebei.png", import.meta.url).href,
+        bottomImage: new URL("@/assets/images/titles/huanjing.png", import.meta.url).href,
+        bgImage: new URL("@/assets/images/titles/title_second.png", import.meta.url).href,
+        enviorImage: new URL("@/assets/images/titles/wendu_bg.png", import.meta.url).href,
+        deviceOnline: 1,
+        deviceTotal: 27,
+        currentTab: "塔吊监控",
+        circleItems: [
+          {
+            id: "zaixianChartBox",
+            name: "总在线",
+            value: 22,
+            percentage: 81.5,
+            options: {
+              tooltip: {
+                trigger: "item",
+                show: false,
+              },
+              legend: {
+                itemWidth: 8,
+                itemHeight: 8,
+                top: "5%",
+                left: "center",
+                show: false,
+              },
+              series: [
+                {
+                  type: "pie",
+                  radius: ["70%", "80%"],
+                  center: ["50%", "50%"],
+                  avoidLabelOverlap: false,
+                  hoverAnimation: false,
+                  startAngle: 90,
+                  itemStyle: {
+                    normal: {
+                      label: {
+                        show: false,
+                      },
+                      labelLine: {
+                        show: false,
+                      },
+                      shadowBlur: 40,
+                      borderWidth: 5,
+                      shadowColor: "rgba(0, 0, 0, 0)", // 边框阴影
+                    },
+                  },
+                  data: [
+                    {
+                      value: 100,
+                      name: "",
+                      itemStyle: {
+                        color: "#234E84",
+                      },
+                    },
+                  ],
+                },
+                {
+                  type: "pie",
+                  radius: ["70%", "100%"],
+                  center: ["50%", "50%"],
+                  avoidLabelOverlap: false,
+                  hoverAnimation: false,
+                  startAngle: 90,
+                  itemStyle: {
+                    normal: {
+                      label: {
+                        show: false,
+                      },
+                      labelLine: {
+                        show: false,
+                      },
+                      shadowBlur: 40,
+                      borderWidth: 10,
+                      shadowColor: "rgba(0, 0, 0, 0)", // 边框阴影
+                    },
+                  },
+                  data: [
+                    {
+                      value: 81.5,
+                      name: "",
+                      itemStyle: {
+                        color: "#00FFFF",
+                      },
+                    },
+                    {
+                      value: 18.5,
+                      name: "",
+                      itemStyle: {
+                        color: "transparent",
+                      },
+                    },
+                  ],
+                },
+              ],
+            },
+          },
+          {
+            id: "lixianChartBox",
+            name: "总离线",
+            value: 5,
+            percentage: 33,
+            options: {
+              tooltip: {
+                trigger: "item",
+                show: false,
+              },
+              legend: {
+                itemWidth: 8,
+                itemHeight: 8,
+                top: "5%",
+                left: "center",
+                show: false,
+              },
+              series: [
+                {
+                  type: "pie",
+                  radius: ["70%", "80%"],
+                  center: ["50%", "50%"],
+                  avoidLabelOverlap: false,
+                  hoverAnimation: false,
+                  startAngle: 90,
+                  itemStyle: {
+                    normal: {
+                      label: {
+                        show: false,
+                      },
+                      labelLine: {
+                        show: false,
+                      },
+                      shadowBlur: 40,
+                      borderWidth: 5,
+                      shadowColor: "rgba(0, 0, 0, 0)", // 边框阴影
+                    },
+                  },
+                  data: [
+                    {
+                      value: 100,
+                      name: "",
+                      itemStyle: {
+                        color: "#234E84",
+                      },
+                    },
+                  ],
+                },
+                {
+                  type: "pie",
+                  radius: ["70%", "100%"],
+                  center: ["50%", "50%"],
+                  avoidLabelOverlap: false,
+                  hoverAnimation: false,
+                  startAngle: 90,
+                  itemStyle: {
+                    normal: {
+                      label: {
+                        show: false,
+                      },
+                      labelLine: {
+                        show: false,
+                      },
+                      shadowBlur: 40,
+                      borderWidth: 10,
+                      shadowColor: "rgba(0, 0, 0, 0)", // 边框阴影
+                    },
+                  },
+                  data: [
+                    {
+                      value: 33,
+                      name: "",
+                      itemStyle: {
+                        color: "#00FFFF",
+                      },
+                    },
+                    {
+                      value: 77,
+                      name: "",
+                      itemStyle: {
+                        color: "transparent",
+                      },
+                    },
+                  ],
+                },
+              ],
+            },
+          },
+          {
+            id: "baojingChartBox",
+            name: "总报警",
+            value: 0,
+            percentage: 20,
+            options: {
+              tooltip: {
+                trigger: "item",
+                show: false,
+              },
+              legend: {
+                itemWidth: 8,
+                itemHeight: 8,
+                top: "5%",
+                left: "center",
+                show: false,
+              },
+              series: [
+                {
+                  type: "pie",
+                  radius: ["70%", "80%"],
+                  center: ["50%", "50%"],
+                  avoidLabelOverlap: false,
+                  hoverAnimation: false,
+                  startAngle: 90,
+                  itemStyle: {
+                    normal: {
+                      label: {
+                        show: false,
+                      },
+                      labelLine: {
+                        show: false,
+                      },
+                      shadowBlur: 40,
+                      borderWidth: 5,
+                      shadowColor: "rgba(0, 0, 0, 0)", // 边框阴影
+                    },
+                  },
+                  data: [
+                    {
+                      value: 100,
+                      name: "",
+                      itemStyle: {
+                        color: "#234E84",
+                      },
+                    },
+                  ],
+                },
+                {
+                  type: "pie",
+                  radius: ["70%", "100%"],
+                  center: ["50%", "50%"],
+                  avoidLabelOverlap: false,
+                  hoverAnimation: false,
+                  startAngle: 90,
+                  itemStyle: {
+                    normal: {
+                      label: {
+                        show: false,
+                      },
+                      labelLine: {
+                        show: false,
+                      },
+                      shadowBlur: 40,
+                      borderWidth: 10,
+                      shadowColor: "rgba(0, 0, 0, 0)", // 边框阴影
+                    },
+                  },
+                  data: [
+                    {
+                      value: 20,
+                      name: "",
+                      itemStyle: {
+                        color: "#00FFFF",
+                      },
+                    },
+                    {
+                      value: 80,
+                      name: "",
+                      itemStyle: {
+                        color: "transparent",
+                      },
+                    },
+                  ],
+                },
+              ],
+            },
+          },
+        ],
+      };
     },
-    {
-     id: 'baojingChartBox',
-     name: '总报警',
-     value: 0,
-     percentage: 20,
-     options: {
-      tooltip: {
-       trigger: 'item',
-       show: false
+    computed: {
+      sectionStyle() {
+        return {
+          backgroundImage: `url(${this.backgroundImage})`,
+          backgroundRepeat: "no-repeat",
+          backgroundPosition: "center center",
+          backgroundSize: "100% 100%",
+        };
       },
-      legend: {
-       itemWidth: 8,
-       itemHeight: 8,
-       top: '5%',
-       left: 'center',
-       show: false,
+      enviorStyle() {
+        return {
+          backgroundImage: `url(${this.enviorImage})`,
+          backgroundRepeat: "no-repeat",
+          backgroundPosition: "center center",
+          backgroundSize: "100% 100%",
+        };
       },
-      series: [{
-        type: 'pie',
-        radius: ['70%', '80%'],
-        center: ['50%', '50%'],
-        avoidLabelOverlap: false,
-        hoverAnimation: false,
-        startAngle: 90,
-        itemStyle: {
-         normal: {
-          label: {
-           show: false,
-          },
-          labelLine: {
-           show: false,
-          },
-          shadowBlur: 40,
-          borderWidth: 5,
-          shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
-         },
-        },
-        data: [{
-         value: 100,
-         name: '',
-         itemStyle: {
-          color: '#234E84'
-         }
-        }, ],
-       },
-       {
-        type: 'pie',
-        radius: ['70%', '100%'],
-        center: ['50%', '50%'],
-        avoidLabelOverlap: false,
-        hoverAnimation: false,
-        startAngle: 90,
-        itemStyle: {
-         normal: {
-          label: {
-           show: false,
-          },
-          labelLine: {
-           show: false,
-          },
-          shadowBlur: 40,
-          borderWidth: 10,
-          shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
-         },
-        },
-        data: [{
-          value: 20,
-          name: '',
-          itemStyle: {
-           color: '#00FFFF'
-          }
-         },
-         {
-          value: 80,
-          name: '',
-          itemStyle: {
-           color: 'transparent'
-          }
-         },
-        ],
-       },
-      ],
-     }
-    }
-   ]
-  }
- },
- computed: {
-  sectionStyle() {
-   return {
-    backgroundImage: `url(${this.backgroundImage})`,
-    backgroundRepeat: 'no-repeat',
-    backgroundPosition: 'center center',
-    backgroundSize: '100% 100%'
-   }
-  },
-  enviorStyle() {
-   return {
-    backgroundImage: `url(${this.enviorImage})`,
-    backgroundRepeat: 'no-repeat',
-    backgroundPosition: 'center center',
-    backgroundSize: '100% 100%'
-   }
-  }
- },
- methods: {
-  handleControlBtnClick(tab) {
-   this.currentTab = tab;
-  },
-  handleResize() {
-   if (this.myChart) {
-    this.myChart.resize()
-   }
-  },
- }
-}
+    },
+    methods: {
+      handleControlBtnClick(tab) {
+        this.currentTab = tab;
+      },
+      handleResize() {
+        if (this.myChart) {
+          this.myChart.resize();
+        }
+      },
+    },
+  };
 </script>
 
 <style scoped lang="scss">
-.equipment-container {
- width: 100%;
- display: flex;
- flex-direction: column;
- height: calc(100vh - 100px);
- overflow: hidden;
-}
-.top-nav{
-  height: 4vh;
-}
-.bottom-nav{
-  flex: 1;
-}
-.section-title {
- font-size: 18px;
- margin-bottom: 20px;
- color: #fff;
-}
+  .equipment-container {
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    height: calc(100vh - 100px);
+    overflow: hidden;
+  }
+  .top-nav {
+    height: 4vh;
+  }
+  .bottom-nav {
+    flex: 1;
+  }
+  .section-title {
+    font-size: 18px;
+    margin-bottom: 20px;
+    color: #fff;
+  }
 
-.top-section {
- width: 100%;
- height: calc(100% - 80%);
-}
+  .top-section {
+    width: 100%;
+    height: calc(100% - 80%);
+  }
 
-.middle-section {
- width: 100%;
- height: 40%;
-}
+  .middle-section {
+    width: 100%;
+    height: 40%;
+  }
 
-.bottom-section {
- width: 100%;
- height: calc(100% - 20% - 43%);
-}
+  .bottom-section {
+    width: 100%;
+    height: calc(100% - 20% - 43%);
+  }
 
-.stats-grid {
- width: 100%;
- height: 100%;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- padding: 20px 10px;
-}
+  .stats-grid {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    padding: 20px 10px;
+  }
 
-.stat-item {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: 20px 14px;
- height: 52px;
- background: linear-gradient(270deg, rgba(48, 104, 165, 0.1) 2%, #3068A5 100%);
- border-radius: 2px;
-}
+  .stat-item {
+    width: 100%;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    padding: 20px 14px;
+    height: 52px;
+    background: linear-gradient(270deg, rgba(48, 104, 165, 0.1) 2%, #3068a5 100%);
+    border-radius: 2px;
+  }
 
-.env-item {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- padding: 10px 14px;
-}
+  .env-item {
+    width: 100%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    padding: 10px 14px;
+  }
 
-.stat-info {
- display: flex;
- flex-direction: row;
- align-items: left;
-}
+  .stat-info {
+    display: flex;
+    flex-direction: row;
+    align-items: left;
+  }
 
-.env-info {
- 
- width: calc( 100% - 88px);
- height: 100%;
-}
+  .env-info {
+    width: calc(100% - 88px);
+    height: 100%;
+  }
 
-.satalabel {
- font-size: 16px;
- color: #fff;
-}
+  .satalabel {
+    font-size: 16px;
+    color: #fff;
+  }
 
-.label {
- font-size: 12px;
- color: #fff;
-}
+  .label {
+    font-size: 12px;
+    color: #fff;
+  }
 
-.envlabel {
- font-size: 16px;
- color: #C8C8C8;
- display: flex;
- align-items: center;
- justify-content: center;
-}
+  .envlabel {
+    font-size: 16px;
+    color: #c8c8c8;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
 
-.envvalue {
-  text-align: center;
-  font-size: 18px;
-  color: #fff;
-  margin-top: 4px;
-  width: 100%;
-  height: calc(100% - 28px);
-  position: relative;
- .envvalue-text{
-  position: absolute;
-  top: 33%;
-  left: 50%;
-  transform: translate(-50%, -50%);
- }
-}
+  .envvalue {
+    text-align: center;
+    font-size: 18px;
+    color: #fff;
+    margin-top: 4px;
+    width: 100%;
+    height: calc(100% - 28px);
+    position: relative;
+    .envvalue-text {
+      position: absolute;
+      top: 33%;
+      left: 50%;
+      transform: translate(-50%, -50%);
+    }
+  }
 
-.equipment-status {
- padding: 10px 10px;
- height: calc(100% - 5vh);
-}
+  .equipment-status {
+    padding: 10px 10px;
+    height: calc(100% - 5vh);
+    ::v-deep(.el-select) {
+      height: 28px;
+      background: linear-gradient(224deg, #3068a5 0%, #5daeff 100%);
+      border-radius: 2px;
+      width: 100%;
+      .el-input {
+        align-items: center;
+        display: flex;
+        height: 28px;
+        .el-input__inner {
+          height: 28px;
+          font-family: PingFangSC, PingFang SC;
+          font-weight: 400;
+          font-size: 14px;
+          color: #dddddd;
+          line-height: 20px;
+          text-align: left;
+          font-style: normal;
+        }
+        .el-input__suffix {
+          align-items: center;
+          display: flex;
+        }
+      }
+    }
+  }
 
-.status-title {
- font-size: 16px;
- margin-bottom: 20px;
-}
+  .status-title {
+    font-size: 16px;
+    margin-bottom: 20px;
+  }
 
-.status-circles {
- display: flex;
- justify-content: space-around;
- margin: 15px 0;
-}
+  .status-circles {
+    display: flex;
+    justify-content: space-around;
+    margin: 15px 0;
+  }
 
-.progress-circle {
- width: 80px;
- height: 80px;
- border-radius: 50%;
- border: 4px solid #3068A5;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- position: relative;
-}
+  .progress-circle {
+    width: 80px;
+    height: 80px;
+    border-radius: 50%;
+    border: 4px solid #3068a5;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    position: relative;
+  }
 
-.percentage {
- font-size: 12px;
- color: #00ffff;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
-}
+  .percentage {
+    font-size: 12px;
+    color: #00ffff;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+  }
 
-.environment-grid {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- height: calc(100% - 5vh);
-}
+  .environment-grid {
+    display: grid;
+    grid-template-columns: repeat(2, 1fr);
+    height: calc(100% - 5vh);
+  }
 
-.control-buttons {
- display: flex;
- gap: 10px;
- justify-content: center;
-}
+  .control-buttons {
+    display: flex;
+    gap: 10px;
+    justify-content: center;
+  }
 
-.control-btn {
- padding: 8px 16px;
- background: rgba(112, 119, 140, 0.3);
- border-radius: 2px;
- border: 1px solid rgba(112, 124, 140, 0.6);
- color: #C8C8C8;
- cursor: pointer;
-}
+  .control-btn {
+    padding: 8px 16px;
+    background: rgba(112, 119, 140, 0.3);
+    border-radius: 2px;
+    border: 1px solid rgba(112, 124, 140, 0.6);
+    color: #c8c8c8;
+    cursor: pointer;
+  }
 
-.control-btn.active {
- background: rgba(255, 191, 0, 0.2);
- border-radius: 2px;
- border: 1px solid #FFBF00;
- color: #fff;
-}
+  .control-btn.active {
+    background: rgba(255, 191, 0, 0.2);
+    border-radius: 2px;
+    border: 1px solid #ffbf00;
+    color: #fff;
+  }
 
-.divider {
- width: 100%;
- height: 1px;
- background: linear-gradient(270deg, rgba(94, 161, 209, 0.1) 0%, #4886BC 49%, rgba(48, 104, 165, 0.1) 100%);
- margin: 15px 0;
-}
+  .divider {
+    width: 100%;
+    height: 1px;
+    background: linear-gradient(270deg, rgba(94, 161, 209, 0.1) 0%, #4886bc 49%, rgba(48, 104, 165, 0.1) 100%);
+    margin: 15px 0;
+  }
 
+  .bar {
+    width: 100%;
+  }
 
+  .progress {
+    background: rgba(216, 216, 216, 0.1);
+    border: 1px solid rgba(255, 255, 255, 0.2);
+    overflow: hidden;
+  }
 
-.bar {
- width: 100%;
-}
+  .progress-blocks {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    display: flex;
+    gap: 4px;
+    padding: 2px 4px;
+  }
 
-.progress {
- background: rgba(216, 216, 216, 0.1);
- border: 1px solid rgba(255, 255, 255, 0.2);
- overflow: hidden;
-}
+  .block {
+    flex: 1;
+    height: 100%;
+    background: rgba(216, 216, 216, 0.1);
+  }
 
-.progress-blocks {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- display: flex;
- gap: 4px;
- padding: 2px 4px;
-}
+  .block.active {
+    background: linear-gradient(180deg, #ffd500 0%, #ff9b00 100%);
+  }
 
-.block {
- flex: 1;
- height: 100%;
- background: rgba(216, 216, 216, 0.1);
-}
+  .progress-inner {
+    display: none;
+  }
 
-.block.active {
- background: linear-gradient(180deg, #FFD500 0%, #FF9B00 100%);
-}
-
-.progress-inner {
- display: none;
-}
 </style>

--
Gitblit v1.9.3