lixing 4 months ago
parent
commit
fbdfc56393

+ 0 - 1
.eslintrc.js

@@ -1,7 +1,6 @@
 {
   "globals": {
     "EffectScope": true,
-    "ElMessage": true,
     "_mqttMessageCallback": true,
     "acceptHMRUpdate": true,
     "computed": true,

+ 9 - 5
src/components/echart-map-effects/index.vue

@@ -29,9 +29,9 @@ const planePath = 'path://M.6,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.52
 
 
 /**
- * 起始地坐标 广州
+ * 起始地坐标 新乡
  */
-const originaCoord = [113.270793, 23.135308]
+const originaCoord = [113.933349, 35.308973]
 
 
 //图表容器ref
@@ -92,7 +92,11 @@ onMounted(async () => {
 
 let option = {
     tooltip: {
-        trigger: 'item'
+        trigger: 'item',
+        formatter: function (params: any) {
+            // 自定义显示内容
+            return `<div> <div style='color:black;font-size:14px'>${params.name}</div> <div style='color:black;font-size:14px'>设备数量:${params.value[2]}台</div> </div>`;
+        }
     },
     geo: {
         map: props.mapType,
@@ -120,8 +124,8 @@ let option = {
             name: '广州',
             type: 'lines',
             zlevel: 1,
-            textStyle:{
-                color:'red'
+            textStyle: {
+                color: 'red'
             },
             effect: {//发散时 描线的颜色
                 show: true,

+ 773 - 722
src/views/big-screen/single.vue

@@ -6,23 +6,26 @@
     <div class="left">
       <div class="left_top" v-loading="loading">
         <div class="video" ref="myVideoRef" id="video-container" v-if="videoDataState"></div>
-        <div v-if="!videoDataState" style="width: 100%;height: 100%; display: flex;flex-direction: column; justify-content: center;align-items: center;">
+        <div v-if="!videoDataState"
+          style="width: 100%;height: 100%; display: flex;flex-direction: column; justify-content: center;align-items: center;">
           <img style="width: 262px;height: 101px;" src="../../assets/img/video_miss.png" alt="">
           <span style="font-size: 18px;color: #4F80F8;margin-top: 20px;">视频未接入</span>
         </div>
       </div>
       <div class="left_bottom">
-        <span style="margin-left: 45px;color: #C8DEFE;font-size: 18px;font-weight: normal;font-family: Alibaba-PuHuiTi-R;">
+        <span
+          style="margin-left: 45px;color: #C8DEFE;font-size: 18px;font-weight: normal;font-family: Alibaba-PuHuiTi-R;">
           大车机构
         </span>
-        <div style="display: flex;padding:30px 40px;margin-top: 30px;align-items: center;border-bottom: 1px solid #306AF7;justify-content: space-between;">
+        <div
+          style="display: flex;padding:30px 40px;margin-top: 30px;align-items: center;border-bottom: 1px solid #306AF7;justify-content: space-between;">
           <div style="display: flex;flex-direction: column;">
             <span style="font-family: Alibaba-PuHuiTi-R;font-weight: normal;font-size: 16px;color: #ABC0E0;">
               大车行程
             </span>
             <div style="margin-top: 5px;">
               <span style="font-family: Alibaba-PuHuiTi-R;font-size: 36px;color: #4F80F8;">
-                {{ craneStrokeData.value != null ? craneStrokeData.value : 0}}
+                {{ craneStrokeData.value != null ? craneStrokeData.value : 0 }}
               </span>
               <span style="margin-left: -5px;font-family: Alibaba-PuHuiTi-R;font-size: 24px;color: #4F80F8;">
                 m
@@ -35,7 +38,8 @@
                   挡位
                 </span>
               </div>
-              <div style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">        
+              <div
+                style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">
                 <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #FFFFFF;">
                   {{ formatGears(craneGearData) }}
                 </span>
@@ -48,9 +52,10 @@
                   制动器
                 </span>
               </div>
-              <div style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">        
+              <div
+                style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">
                 <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #FFFFFF;">
-                  {{ craneBrakeData.value!=null ? craneBrakeData.value : '未知' }}
+                  {{ craneBrakeData.value != null ? craneBrakeData.value : '未知' }}
                 </span>
               </div>
             </div>
@@ -62,18 +67,19 @@
             </span>
             <div style="margin-top: 5px;">
               <span style="font-family: Alibaba-PuHuiTi-R;font-size: 24px;color: #4F80F8;">
-                {{ craneFrequencyData.value != null ? craneFrequencyData.value : '0.00'}}
+                {{ craneFrequencyData.value != null ? craneFrequencyData.value : '0.00' }}
               </span>
               <span style="margin-left: -5px;font-family: Alibaba-PuHuiTi-R;font-size: 14px;color: #4F80F8;">
                 Hz
               </span>
             </div>
-            <span style="font-family: Alibaba-PuHuiTi-R;font-weight: normal;font-size: 16px;color: #ABC0E0;margin-top: 15px;">
+            <span
+              style="font-family: Alibaba-PuHuiTi-R;font-weight: normal;font-size: 16px;color: #ABC0E0;margin-top: 15px;">
               电流
             </span>
             <div style="margin-top: 5px;">
               <span style="font-family: Alibaba-PuHuiTi-R;font-size: 24px;color: #4F80F8;">
-                {{craneCurrentData.value != null ? craneCurrentData.value : '0.00'}}
+                {{ craneCurrentData.value != null ? craneCurrentData.value : '0.00' }}
               </span>
               <span style="margin-left: -5px;font-family: Alibaba-PuHuiTi-R;font-size: 14px;color: #4F80F8;">
                 A
@@ -84,7 +90,8 @@
         <el-carousel indicator-position="outside" :height="'204px'" :interval="10000" style="margin-top: 30px">
           <el-carousel-item v-for="(group, index) in craneSwitchVariablesData" :key="index">
             <div class="left_bottom_grid">
-              <div v-for="item in group" :key="item.id" :class="['left_bottom_grid_item', item.value ? item.trueLight : item.falseLight]">
+              <div v-for="item in group" :key="item.id"
+                :class="['left_bottom_grid_item', item.value ? item.trueLight : item.falseLight]">
                 <span>{{ formatStr(item.variableName) }}</span>
               </div>
             </div>
@@ -96,7 +103,8 @@
       <div class="middle_top"></div>
       <div class="middle_bottom">
         <div style="width: 100%;display: flex;align-items: center;justify-content: space-between;">
-          <div style="padding-left: 100px;padding-top: 4px;color: white;font-size: 18px;font-family: Alibaba-PuHuiTi-B;font-style: normal;text-transform: none;">
+          <div
+            style="padding-left: 100px;padding-top: 4px;color: white;font-size: 18px;font-family: Alibaba-PuHuiTi-B;font-style: normal;text-transform: none;">
             起升机构
           </div>
         </div>
@@ -104,52 +112,54 @@
           <div style="display: flex;align-items: center;">
             <!-- <img style="width: 41px;height: 234px;" src="../../assets/img/screen_middle_bottom_left.png"> -->
             <div style="display: flex;flex-direction: column;margin-left: 20px;min-width: 130px;">
-            <span style="font-family: Alibaba-PuHuiTi-R;font-weight: normal;font-size: 16px;color: #ABC0E0;">
-              起升高度
-            </span>
-            <div style="margin-top: 5px;">
-              <span style="font-family: Alibaba-PuHuiTi-R;font-size: 36px;color: #4F80F8;">
-                {{ hoistStrokeData.value != null ? hoistStrokeData.value : 0}}
-              </span>
-              <span style="margin-left: -5px;font-family: Alibaba-PuHuiTi-R;font-size: 24px;color: #4F80F8;">
-                m
+              <span style="font-family: Alibaba-PuHuiTi-R;font-weight: normal;font-size: 16px;color: #ABC0E0;">
+                起升高度
               </span>
-            </div>
-            <div style="display: flex;margin-top: 20px;flex-direction: column;">
-              <div style="width: 70px;height: 28px;background-color: #294587;display: flex;align-items: center;">
-                <div style="width: 5px;height: 5px;background-color: #4F80F8;margin: 0px 5px;"></div>
-                <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #ABC0E0;">
-                  挡位
+              <div style="margin-top: 5px;">
+                <span style="font-family: Alibaba-PuHuiTi-R;font-size: 36px;color: #4F80F8;">
+                  {{ hoistStrokeData.value != null ? hoistStrokeData.value : 0 }}
                 </span>
-              </div>
-              <div style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">        
-                <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #FFFFFF;">
-                  {{ formatGears(hoistGearData) }}
+                <span style="margin-left: -5px;font-family: Alibaba-PuHuiTi-R;font-size: 24px;color: #4F80F8;">
+                  m
                 </span>
               </div>
-            </div>
-            <div style="display: flex;margin-top: 10px;flex-direction: column;">
-              <div style="width: 70px;height: 28px;background-color: #294587;display: flex;align-items: center;">
-                <div style="width: 5px;height: 5px;background-color: #4F80F8;margin: 0px 5px;"></div>
-                <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #ABC0E0;">
-                  制动器
-                </span>
+              <div style="display: flex;margin-top: 20px;flex-direction: column;">
+                <div style="width: 70px;height: 28px;background-color: #294587;display: flex;align-items: center;">
+                  <div style="width: 5px;height: 5px;background-color: #4F80F8;margin: 0px 5px;"></div>
+                  <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #ABC0E0;">
+                    挡位
+                  </span>
+                </div>
+                <div
+                  style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">
+                  <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #FFFFFF;">
+                    {{ formatGears(hoistGearData) }}
+                  </span>
+                </div>
               </div>
-              <div style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">        
-                <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #FFFFFF;">
-                  {{ hoistBrakeData.value!=null ? hoistBrakeData.value : '未知' }}
-                </span>
+              <div style="display: flex;margin-top: 10px;flex-direction: column;">
+                <div style="width: 70px;height: 28px;background-color: #294587;display: flex;align-items: center;">
+                  <div style="width: 5px;height: 5px;background-color: #4F80F8;margin: 0px 5px;"></div>
+                  <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #ABC0E0;">
+                    制动器
+                  </span>
+                </div>
+                <div
+                  style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">
+                  <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #FFFFFF;">
+                    {{ hoistBrakeData.value != null ? hoistBrakeData.value : '未知' }}
+                  </span>
+                </div>
               </div>
             </div>
           </div>
-          </div>
           <div class="screen_middle_bottom_middle">
             <div style="color: #ABC0E0;font-family: Alibaba-PuHuiTi-R;font-size: 16px;">
               载荷
             </div>
             <div style="margin-top: 5px;">
               <span style="font-family: Alibaba-PuHuiTi-R;font-size: 36px;color: #4F80F8;">
-                {{ hoistWeightData.value!=null ? hoistWeightData.value : '0.00' }}
+                {{ hoistWeightData.value != null ? hoistWeightData.value : '0.00' }}
               </span>
               <span style="margin-left: -5px;font-family: Alibaba-PuHuiTi-R;font-size: 24px;color: #4F80F8;">
                 t
@@ -159,15 +169,17 @@
           <div style="margin-right: 20px;min-width: 390px;">
             <div style="display: flex">
               <div style="display: flex;">
-                <div style="width: 47px;height: 28px;background-color: #294587;display: flex;align-items: center;justify-content: center;">
+                <div
+                  style="width: 47px;height: 28px;background-color: #294587;display: flex;align-items: center;justify-content: center;">
                   <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #ABC0E0;">
                     频率
                   </span>
                 </div>
-                <div style="width: 126px;height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;">        
+                <div
+                  style="width: 126px;height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;">
                   <div>
                     <span style="font-family: Alibaba-PuHuiTi-B;font-size: 24px;color: #4F80F8;margin-left: 9px;">
-                      {{ hoistFrequencyData.value != null ? hoistFrequencyData.value : '0.00'}}
+                      {{ hoistFrequencyData.value != null ? hoistFrequencyData.value : '0.00' }}
                     </span>
                     <span style="font-family: Alibaba-PuHuiTi-B;font-size: 14px;color: #4F80F8;">
                       Hz
@@ -176,15 +188,17 @@
                 </div>
               </div>
               <div style="display: flex;margin-left: 30px;">
-                <div style="width: 47px;height: 28px;background-color: #294587;display: flex;align-items: center;justify-content: center;">
+                <div
+                  style="width: 47px;height: 28px;background-color: #294587;display: flex;align-items: center;justify-content: center;">
                   <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #ABC0E0;">
                     电流
                   </span>
                 </div>
-                <div style="width: 126px;height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;">        
+                <div
+                  style="width: 126px;height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;">
                   <div>
                     <span style="font-family: Alibaba-PuHuiTi-B;font-size: 24px;color: #4F80F8;margin-left: 9px;">
-                      {{ hoistCurrentData.value != null ? hoistCurrentData.value : '0.00'}}
+                      {{ hoistCurrentData.value != null ? hoistCurrentData.value : '0.00' }}
                     </span>
                     <span style="font-family: Alibaba-PuHuiTi-B;font-size: 14px;color: #4F80F8;">
                       A
@@ -196,7 +210,8 @@
             <el-carousel indicator-position="outside" :height="'180px'" :interval="10000" style="margin-top: 20px">
               <el-carousel-item v-for="(group, index) in hoistSwitchVariablesData" :key="index">
                 <div class="middle_bottom_right_grid">
-                  <div v-for="item in group" :key="item.id" :class="['middle_bottom_right_grid_item', item.value ? item.trueLight : item.falseLight]">
+                  <div v-for="item in group" :key="item.id"
+                    :class="['middle_bottom_right_grid_item', item.value ? item.trueLight : item.falseLight]">
                     <span>{{ formatStr(item.variableName) }}</span>
                   </div>
                 </div>
@@ -209,39 +224,39 @@
     <div class="right">
       <div class="right_top">
 
-          <div style="display: flex;justify-content: space-between;align-items: center;">
-              <div style="display: flex;align-items: center;">
-                <div style="width: 8px;height: 8px;background-color: #02803A;margin-right: 15px;" />
-                <span style="color: white;font-size: 16px;font-family: Alibaba-PuHuiTi-R;">
-                  本次工作
-                </span>
-              </div>
-              <span style="margin-top: 5px;color: #608BF3;font-size: 18px;font-family: Alibaba-PuHuiTi-R;">
-                {{ currentDurationData.value != null ? currentDurationData.value : 0 }}
-              </span>
+        <div style="display: flex;justify-content: space-between;align-items: center;">
+          <div style="display: flex;align-items: center;">
+            <div style="width: 8px;height: 8px;background-color: #02803A;margin-right: 15px;" />
+            <span style="color: white;font-size: 16px;font-family: Alibaba-PuHuiTi-R;">
+              本次工作
+            </span>
           </div>
-          <div style="display: flex;justify-content: space-between;align-items: center;border-top:0.5px solid #152844;">
-              <div style="display: flex;align-items: center;">
-                <div style="width: 8px;height: 8px;background-color: #306AF7;margin-right: 15px;" />
-                <span style="color: white;font-size: 16px;font-family: Alibaba-PuHuiTi-R;">
-                  累计工作
-                </span>
-              </div>
-              <span style="margin-top: 5px;color: #608BF3;font-size: 18px;font-family: Alibaba-PuHuiTi-R;">
-                {{ totalDurationData.value != null ? totalDurationData.value : 0 }}
-              </span>
+          <span style="margin-top: 5px;color: #608BF3;font-size: 18px;font-family: Alibaba-PuHuiTi-R;">
+            {{ currentDurationData.value != null ? currentDurationData.value : 0 }}
+          </span>
+        </div>
+        <div style="display: flex;justify-content: space-between;align-items: center;border-top:0.5px solid #152844;">
+          <div style="display: flex;align-items: center;">
+            <div style="width: 8px;height: 8px;background-color: #306AF7;margin-right: 15px;" />
+            <span style="color: white;font-size: 16px;font-family: Alibaba-PuHuiTi-R;">
+              累计工作
+            </span>
           </div>
-          <div style="display: flex;justify-content: space-between;align-items: center;border-top:0.5px solid #152844;">
-              <div style="display: flex;align-items: center;">
-                <div style="width: 8px;height: 8px;background-color: #306AF7;margin-right: 15px;" />
-                <span style="color: white;font-size: 16px;font-family: Alibaba-PuHuiTi-R;">
-                  工作循环
-                </span>
-              </div>
-              <span style="margin-top: 5px;color: #608BF3;font-size: 18px;font-family: Alibaba-PuHuiTi-R;">
-                {{ totalCountData.value != null ? totalCountData.value+' 次' : 0+' 次' }}
-              </span>
+          <span style="margin-top: 5px;color: #608BF3;font-size: 18px;font-family: Alibaba-PuHuiTi-R;">
+            {{ totalDurationData.value != null ? totalDurationData.value : 0 }}
+          </span>
+        </div>
+        <div style="display: flex;justify-content: space-between;align-items: center;border-top:0.5px solid #152844;">
+          <div style="display: flex;align-items: center;">
+            <div style="width: 8px;height: 8px;background-color: #306AF7;margin-right: 15px;" />
+            <span style="color: white;font-size: 16px;font-family: Alibaba-PuHuiTi-R;">
+              工作循环
+            </span>
           </div>
+          <span style="margin-top: 5px;color: #608BF3;font-size: 18px;font-family: Alibaba-PuHuiTi-R;">
+            {{ totalCountData.value != null ? totalCountData.value + ' 次' : 0 + ' 次' }}
+          </span>
+        </div>
       </div>
       <div class="right_alert">
         <el-carousel height="110px">
@@ -252,12 +267,13 @@
                   报警
                 </div>
                 <div>
-                  <div style="font-size: 15px;color: white;font-family: Alibaba-PuHuiTi-R;font-style: normal;text-transform: none;">
+                  <div
+                    style="font-size: 15px;color: white;font-family: Alibaba-PuHuiTi-R;font-style: normal;text-transform: none;">
                     {{ item.time }}
                   </div>
                   <div style="font-size: 16px;color: white;font-family: Alibaba-PuHuiTi-R;">
                     {{ item.message }}
-                  </div>  
+                  </div>
                 </div>
               </div>
               <div>
@@ -268,28 +284,31 @@
         </el-carousel>
       </div>
       <div class="right_small">
-        <span style="margin-right: 45px;color: #C8DEFE;font-size: 18px;font-weight: normal;font-family: Alibaba-PuHuiTi-R;text-align: right;">
+        <span
+          style="margin-right: 45px;color: #C8DEFE;font-size: 18px;font-weight: normal;font-family: Alibaba-PuHuiTi-R;text-align: right;">
           小车机构
         </span>
-        <div style="display: flex;padding:30px 40px;margin-top: 30px;align-items: center;border-bottom: 1px solid #306AF7;justify-content: space-between">
+        <div
+          style="display: flex;padding:30px 40px;margin-top: 30px;align-items: center;border-bottom: 1px solid #306AF7;justify-content: space-between">
           <div style="height: 100%;display: flex;flex-direction: column;justify-content: flex-end;">
             <span style="font-family: Alibaba-PuHuiTi-R;font-weight: normal;font-size: 16px;color: #ABC0E0;">
               频率
             </span>
             <div style="margin-top: 5px;">
               <span style="font-family: Alibaba-PuHuiTi-R;font-size: 24px;color: #4F80F8;">
-                {{ trolleyFrequencyData.value != null ? trolleyFrequencyData.value : '0.00'}}
+                {{ trolleyFrequencyData.value != null ? trolleyFrequencyData.value : '0.00' }}
               </span>
               <span style="margin-left: -5px;font-family: Alibaba-PuHuiTi-R;font-size: 14px;color: #4F80F8;">
                 Hz
               </span>
             </div>
-            <span style="font-family: Alibaba-PuHuiTi-R;font-weight: normal;font-size: 16px;color: #ABC0E0;margin-top: 15px;">
+            <span
+              style="font-family: Alibaba-PuHuiTi-R;font-weight: normal;font-size: 16px;color: #ABC0E0;margin-top: 15px;">
               电流
             </span>
             <div style="margin-top: 5px;">
               <span style="font-family: Alibaba-PuHuiTi-R;font-size: 24px;color: #4F80F8;">
-                {{trolleyCurrentData.value != null ? trolleyCurrentData.value : '0.00'}}
+                {{ trolleyCurrentData.value != null ? trolleyCurrentData.value : '0.00' }}
               </span>
               <span style="margin-left: -5px;font-family: Alibaba-PuHuiTi-R;font-size: 14px;color: #4F80F8;">
                 A
@@ -303,7 +322,7 @@
             </span>
             <div style="margin-top: 5px;">
               <span style="font-family: Alibaba-PuHuiTi-R;font-size: 36px;color: #4F80F8;">
-                {{ trolleyStrokeData.value != null ? trolleyStrokeData.value : 0}}
+                {{ trolleyStrokeData.value != null ? trolleyStrokeData.value : 0 }}
               </span>
               <span style="margin-left: -5px;font-family: Alibaba-PuHuiTi-R;font-size: 24px;color: #4F80F8;">
                 m
@@ -316,7 +335,8 @@
                   挡位
                 </span>
               </div>
-              <div style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">        
+              <div
+                style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">
                 <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #FFFFFF;">
                   {{ formatGears(trolleyGearData) }}
                 </span>
@@ -329,7 +349,8 @@
                   制动器
                 </span>
               </div>
-              <div style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">
+              <div
+                style="height: 28px;background-color: rgba(41, 69, 135, 0.3);display: flex;align-items: center;justify-content: center;margin-top: 5px;">
                 <span style="font-family: Alibaba-PuHuiTi-R;font-size: 16px;color: #FFFFFF;">
                   {{ trolleyBrakeData.value != null ? trolleyBrakeData.value : '未知' }}
                 </span>
@@ -340,18 +361,21 @@
         <el-carousel indicator-position="outside" :height="'80px'" :interval="10000" style="margin-top: 12px">
           <el-carousel-item v-for="(group, index) in trolleySwitchVariablesData" :key="index">
             <div class="right_small_grid">
-            <div v-for="item in group" :key="item.id" :class="['right_small_grid_item', item.value ? item.trueLight : item.falseLight]">
-              <span>{{ formatStr(item.variableName) }}</span>
+              <div v-for="item in group" :key="item.id"
+                :class="['right_small_grid_item', item.value ? item.trueLight : item.falseLight]">
+                <span>{{ formatStr(item.variableName) }}</span>
+              </div>
             </div>
-          </div>
           </el-carousel-item>
         </el-carousel>
       </div>
       <div class="right_bottom">
-        <el-carousel indicator-position="outside" :height="'80px'" :interval="10000" style="margin-top: 20px;width: 360px">
+        <el-carousel indicator-position="outside" :height="'80px'" :interval="10000"
+          style="margin-top: 20px;width: 360px">
           <el-carousel-item v-for="(group, index) in otherSwitchData" :key="index">
             <div class="right_bottom_grid">
-              <div v-for="item in group" :key="item.id" :class="['right_bottom_grid_item', item.value ? item.trueLight : item.falseLight]">
+              <div v-for="item in group" :key="item.id"
+                :class="['right_bottom_grid_item', item.value ? item.trueLight : item.falseLight]">
                 <span>{{ formatStr(item.variableName) }}</span>
               </div>
             </div>
@@ -362,684 +386,711 @@
   </div>
 </template>
 <script setup lang="ts">
-  import EZUIKit from 'ezuikit-js'
-  import {getRealtime, getAlertRecordsByDevice,getDeviceMonitors} from '@/api/bigScreen';
-  import {formatGears, formatValue, parseGear} from '@/utils/tools';
-  import router from '@/router';
-  const myVideoRef = ref(null)
-  let loading = ref(false)
-  let myVideo: any = ref(null)
-  const deviceId = ref(0)
-  const deviceCode = ref('')
-  const deviceData: any = ref({})
-  //大车变量
-  const craneData: any = ref({})
-  const craneStrokeData: any = ref({})
-  const craneGearData: any = ref({})
-  const craneBrakeData: any = ref({})
-  const craneFrequencyData: any = ref({})
-  const craneCurrentData: any = ref({})
-  const craneSwitchVariablesData: any = ref([])
-  //小车变量
-  const trolleyData: any = ref({})
-  const trolleyStrokeData: any = ref({})
-  const trolleyGearData: any = ref({})
-  const trolleyBrakeData: any = ref({})
-  const trolleyFrequencyData: any = ref({})
-  const trolleyCurrentData: any = ref({})
-  const trolleySwitchVariablesData: any = ref([])
-  //起升变量
-  const hoistData: any = ref({})
-  const hoistStrokeData: any = ref({})
-  const hoistWeightData: any = ref({})
-  const hoistGearData: any = ref({})
-  const hoistBrakeData: any = ref({})
-  const hoistFrequencyData: any = ref({})
-  const hoistCurrentData: any = ref({})
-  const hoistSwitchVariablesData: any = ref([])
-  //总配电变量
-  const otherSwitchData: any = ref([])
+import EZUIKit from 'ezuikit-js'
+import { getRealtime, getAlertRecordsByDevice, getDeviceMonitors } from '@/api/bigScreen';
+import { formatGears, formatValue, parseGear } from '@/utils/tools';
+import router from '@/router';
+import { ElMessage } from 'element-plus';
+const myVideoRef = ref(null)
+let loading = ref(false)
+let myVideo: any = ref(null)
+const deviceId = ref(0)
+const deviceCode = ref('')
+const deviceData: any = ref({})
+//大车变量
+const craneData: any = ref({})
+const craneStrokeData: any = ref({})
+const craneGearData: any = ref({})
+const craneBrakeData: any = ref({})
+const craneFrequencyData: any = ref({})
+const craneCurrentData: any = ref({})
+const craneSwitchVariablesData: any = ref([])
+//小车变量
+const trolleyData: any = ref({})
+const trolleyStrokeData: any = ref({})
+const trolleyGearData: any = ref({})
+const trolleyBrakeData: any = ref({})
+const trolleyFrequencyData: any = ref({})
+const trolleyCurrentData: any = ref({})
+const trolleySwitchVariablesData: any = ref([])
+//起升变量
+const hoistData: any = ref({})
+const hoistStrokeData: any = ref({})
+const hoistWeightData: any = ref({})
+const hoistGearData: any = ref({})
+const hoistBrakeData: any = ref({})
+const hoistFrequencyData: any = ref({})
+const hoistCurrentData: any = ref({})
+const hoistSwitchVariablesData: any = ref([])
+//总配电变量
+const otherSwitchData: any = ref([])
+//本次工作
+const currentDurationData: any = ref({})
+//累计工作
+const totalDurationData: any = ref({})
+//工作循环
+const totalCountData: any = ref({})
+//报警集合
+const alarmRecordArr: any = ref([]);
+let videoDataState = true;
+
+onMounted(async () => {
+  deviceId.value = parseInt(useQuery('id'))
+  deviceCode.value = useQuery('code')
+  init()
+  getData()
+})
+
+onUnmounted(() => {
+
+})
+
+const init = async () => {
+  loading.value = true
+  try {
+    await videoData.getData()
+    if (videoData.data.cameras == null) {
+      videoDataState = false;
+      // ElMessage.error('视频加载失败!');
+      return;
+    }
+    myVideo.value = new EZUIKit.EZUIKitPlayer({
+      id: 'video-container', // 视频容器ID
+      width: 402,
+      height: 236,
+      accessToken: videoData.data.token,
+      url: videoData.data.cameras[0].url,
+      template: 'security',
+      audio: 0,
+      footer: ['hd', 'fullScreen'],
+      handleSuccess: () => {
+        ElMessage.success('连接成功!')
+        loading.value = false
+      },
+      handleError: () => {
+        ElMessage.error('连接失败')
+        loading.value = false
+      }
+    })
+  } finally {
+    loading.value = false
+  }
+}
+const videoData = useRequest(() => getDeviceMonitors({ deviceId: deviceId.value }), false)
+const getData = async () => {
+  const res: any = await getRealtime({ deviceId: deviceId.value })
+  deviceData.value = res
+  //大车数据
+  craneData.value = deviceData.value.crane
+  //大车行程
+  craneStrokeData.value = craneData.value.stroke
+  //大车挡位
+  craneGearData.value = craneData.value.gear
+  //大车制动器
+  if (craneData.value.brake) {
+    craneBrakeData.value = craneData.value.brake
+  }
+  //大车频率
+  if (craneData.value.frequency) {
+    craneFrequencyData.value = craneData.value.frequency
+  }
+  //大车电流
+  if (craneData.value.current) {
+    craneCurrentData.value = craneData.value.current
+  }
+  //大车开关量
+  craneSwitchVariablesData.value = chunkArray(craneData.value.switchVariables, 10)
+  //小车数据
+  trolleyData.value = deviceData.value.trolley
+  //小车行程
+  trolleyStrokeData.value = trolleyData.value.stroke
+  //小车挡位
+  trolleyGearData.value = trolleyData.value.gear
+  //小车制动器
+  if (trolleyData.value.brake) {
+    trolleyBrakeData.value = trolleyData.value.brake
+  }
+  //小车频率
+  if (trolleyData.value.frequency) {
+    trolleyFrequencyData.value = trolleyData.value.frequency
+  }
+  //小车电流
+  if (trolleyData.value.current) {
+    trolleyCurrentData.value = trolleyData.value.current
+  }
+  //小车开关量
+  trolleySwitchVariablesData.value = chunkArray(trolleyData.value.switchVariables, 16)
+  //起升数据
+  hoistData.value = deviceData.value.hoist
+  //起升重量
+  if (hoistData.value.weight) {
+    hoistWeightData.value = hoistData.value.weight
+  }
+  //起升行程
+  hoistStrokeData.value = hoistData.value.stroke
+  //起升挡位
+  hoistGearData.value = hoistData.value.gear
+  //起升制动器
+  if (hoistData.value.brake) {
+    hoistBrakeData.value = hoistData.value.brake
+  }
+  //起升频率
+  if (hoistData.value.frequency) {
+    hoistFrequencyData.value = hoistData.value.frequency
+  }
+  //起升电流
+  if (hoistData.value.current) {
+    hoistCurrentData.value = hoistData.value.current
+  }
+  //起升开关量
+  hoistSwitchVariablesData.value = chunkArray(hoistData.value.switchVariables, 12)
+  //总配电开关量
+  otherSwitchData.value = chunkArray(deviceData.value.otherSwitchData, 6)
   //本次工作
-  const currentDurationData: any = ref({})
+  currentDurationData.value = deviceData.value.dutyCycle.currentDuration
   //累计工作
-  const totalDurationData: any = ref({})
+  totalDurationData.value = deviceData.value.dutyCycle.totalDuration
   //工作循环
-  const totalCountData: any = ref({})
-  //报警集合
-  const alarmRecordArr: any = ref([]);
-  let videoDataState = true;
+  totalCountData.value = deviceData.value.dutyCycle.totalCount
+  //获取报警信息
+  const record = await getAlertRecordsByDevice({ deviceId: deviceId.value, maxCount: 10 })
+  alarmRecordArr.value = record
 
-  onMounted(async () => {
-    deviceId.value = parseInt(useQuery('id'))
-    deviceCode.value = useQuery('code')
-    init()
-    getData()
+  onSubscribe([`Json/${deviceCode.value}`], (topic: string, payload: any) => {
+    const jsonArray = JSON.parse(payload).Items
+    parseMqttData(jsonArray)
   })
+}
+/**
+ * 拆分数组
+ * @param array 数组
+ * @param size 拆分的数量
+ */
+const chunkArray = (array: any, size: number) => {
+  const arr: any = []
+  for (let index = 0; index < array.length; index += size) {
+    arr.push(array.slice(index, index + size));
+  }
+  return arr;
+}
+//解析数据
+const parseMqttData = (jsonArray: any) => {
+  jsonArray.forEach((res: any) => {
+    const { Value, Code } = res
 
-  onUnmounted(() => {
-
-  })
-  
-  const init = async () => {
-    loading.value = true
-    try {
-      await videoData.getData()
-      if(videoData.data.cameras == null){
-        videoDataState = false;
-        ElMessage.error('视频加载失败!');
-        return;
+    //大车档位
+    const craneGear = craneGearData.value
+    if (craneGear) {
+      if (parseGear(craneGear, Code, Value)) {
+        return
       }
-      myVideo.value = new EZUIKit.EZUIKitPlayer({
-        id: 'video-container', // 视频容器ID
-        width: 402,
-        height: 236,
-        accessToken: videoData.data.token,
-        url: videoData.data.cameras[0].url,
-        template: 'security',
-        audio: 0,
-        footer: ['hd', 'fullScreen'],
-        handleSuccess: () => {
-          ElMessage.success('连接成功!')
-          loading.value = false
-        },
-        handleError: () => {
-          ElMessage.error('连接失败')
-          loading.value = false
-        }
-      })
-    }finally {
-      loading.value = false
     }
-  }
-  const videoData = useRequest(() => getDeviceMonitors({ deviceId:deviceId.value }), false)
-  const getData = async () => {
-    const res: any = await getRealtime({ deviceId: deviceId.value })
-    deviceData.value = res
-    //大车数据
-    craneData.value = deviceData.value.crane
     //大车行程
-    craneStrokeData.value = craneData.value.stroke
-    //大车挡位
-    craneGearData.value = craneData.value.gear
+    const craneStroke = craneStrokeData.value
+    if (craneStroke) {
+      if (craneStroke.code == Code) {
+        craneStroke.value = formatValue(Value, craneStroke.translate)
+        return
+      }
+    }
     //大车制动器
-    if(craneData.value.brake){
-      craneBrakeData.value = craneData.value.brake  
+    const craneBrake = craneBrakeData.value
+    if (craneBrake) {
+      if (craneBrake.code == Code) {
+        craneBrake.value = formatValue(Value, craneBrake.translate)
+        return
+      }
     }
     //大车频率
-    if(craneData.value.frequency){
-      craneFrequencyData.value = craneData.value.frequency
+    const craneFrequency = craneFrequencyData.value
+    if (craneFrequency) {
+      if (craneFrequency.code == Code) {
+        craneFrequency.value = formatValue(Value, craneFrequency.translate)
+        return
+      }
     }
     //大车电流
-    if(craneData.value.current){
-      craneCurrentData.value = craneData.value.current
+    const craneCurrent = craneCurrentData.value
+    if (craneCurrent) {
+      if (craneCurrent.code == Code) {
+        craneCurrent.value = formatValue(Value, craneCurrent.translate)
+        return
+      }
     }
     //大车开关量
-    craneSwitchVariablesData.value = chunkArray(craneData.value.switchVariables,10)
-    //小车数据
-    trolleyData.value = deviceData.value.trolley
+    const craneSwitchVariables = craneSwitchVariablesData.value
+    if (craneSwitchVariables) {
+      craneSwitchVariables.forEach((item: any) => {
+        const result = item.find((item: any) => item.code == Code)
+        if (result) {
+          result.value = result.isReverse != Value
+          return
+        }
+      });
+    }
+    //小车档位
+    const trolleyGear = trolleyGearData.value
+    if (trolleyGear) {
+      if (parseGear(trolleyGear, Code, Value)) {
+        return
+      }
+    }
     //小车行程
-    trolleyStrokeData.value = trolleyData.value.stroke
-    //小车挡位
-    trolleyGearData.value = trolleyData.value.gear
+    const trolleyStroke = trolleyStrokeData.value
+    if (trolleyStroke) {
+      if (trolleyStroke.code == Code) {
+        trolleyStroke.value = formatValue(Value, trolleyStroke.translate)
+        return
+      }
+    }
     //小车制动器
-    if(trolleyData.value.brake){
-      trolleyBrakeData.value = trolleyData.value.brake
+    const trolleyBrake = trolleyBrakeData.value
+    if (trolleyBrake) {
+      if (trolleyBrake.code == Code) {
+        trolleyBrake.value = formatValue(Value, trolleyBrake.translate)
+        return
+      }
     }
     //小车频率
-    if(trolleyData.value.frequency){
-      trolleyFrequencyData.value = trolleyData.value.frequency
+    const trolleyFrequency = trolleyFrequencyData.value
+    if (trolleyFrequency) {
+      if (trolleyFrequency.code == Code) {
+        trolleyFrequency.value = formatValue(Value, trolleyFrequency.translate)
+        return
+      }
     }
     //小车电流
-    if(trolleyData.value.current){
-      trolleyCurrentData.value = trolleyData.value.current
+    const trolleyCurrent = trolleyCurrentData.value
+    if (trolleyCurrent) {
+      if (trolleyCurrent.code == Code) {
+        trolleyCurrent.value = formatValue(Value, trolleyCurrent.translate)
+        return
+      }
     }
     //小车开关量
-    trolleySwitchVariablesData.value = chunkArray(trolleyData.value.switchVariables,16)
-    //起升数据
-    hoistData.value = deviceData.value.hoist
+    const trolleySwitchVariables = trolleySwitchVariablesData.value
+    if (trolleySwitchVariables) {
+      trolleySwitchVariables.forEach((item: any) => {
+        const result = item.find((item: any) => item.code == Code)
+        if (result) {
+          result.value = result.isReverse != Value
+          return
+        }
+      });
+    }
+    //起升档位
+    const hoistGear = hoistGearData.value
+    if (hoistGear) {
+      if (parseGear(hoistGear, Code, Value)) {
+        return
+      }
+    }
     //起升重量
-    if(hoistData.value.weight){
-      hoistWeightData.value = hoistData.value.weight
+    const hoistWeight = hoistWeightData.value
+    if (hoistWeight) {
+      if (hoistWeight.code == Code) {
+        hoistWeight.value = formatValue(Value, hoistWeight.translate)
+        return
+      }
     }
     //起升行程
-    hoistStrokeData.value = hoistData.value.stroke
-    //起升挡位
-    hoistGearData.value = hoistData.value.gear
+    const hoistStroke = hoistStrokeData.value
+    if (hoistStroke) {
+      if (hoistStroke.code == Code) {
+        hoistStroke.value = formatValue(Value, hoistStroke.translate)
+        return
+      }
+    }
     //起升制动器
-    if(hoistData.value.brake){
-      hoistBrakeData.value = hoistData.value.brake
+    const hoistBrake = hoistBrakeData.value
+    if (hoistBrake) {
+      if (hoistBrake.code == Code) {
+        hoistBrake.value = formatValue(Value, hoistBrake.translate)
+        return
+      }
     }
     //起升频率
-    if(hoistData.value.frequency){
-      hoistFrequencyData.value = hoistData.value.frequency
+    const hoistFrequency = hoistFrequencyData.value
+    if (hoistFrequency) {
+      if (hoistFrequency.code == Code) {
+        hoistFrequency.value = formatValue(Value, hoistFrequency.translate)
+        return
+      }
     }
     //起升电流
-    if(hoistData.value.current){
-      hoistCurrentData.value = hoistData.value.current
+    const hoistCurrent = hoistCurrentData.value
+    if (hoistCurrent) {
+      if (hoistCurrent.code == Code) {
+        hoistCurrent.value = formatValue(Value, hoistCurrent.translate)
+        return
+      }
     }
     //起升开关量
-    hoistSwitchVariablesData.value = chunkArray(hoistData.value.switchVariables,12)
+    const hoistSwitchVariables = hoistSwitchVariablesData.value
+    if (hoistSwitchVariables) {
+      hoistSwitchVariables.forEach((item: any) => {
+        const result = item.find((item: any) => item.code == Code)
+        if (result) {
+          result.value = result.isReverse != Value
+          return
+        }
+      });
+    }
     //总配电开关量
-    otherSwitchData.value = chunkArray(deviceData.value.otherSwitchData,6)
+    const otherSwitch = otherSwitchData.value
+    if (otherSwitch) {
+      otherSwitch.forEach((item: any) => {
+        const result = item.find((item: any) => item.code == Code)
+        if (result) {
+          result.value = result.isReverse != Value
+          return
+        }
+      });
+    }
     //本次工作
-    currentDurationData.value = deviceData.value.dutyCycle.currentDuration
+    const currentDuration = currentDurationData.value
+    if (currentDuration) {
+      if (currentDuration.code == Code) {
+        let value = formatValue(Value, currentDuration.translate)
+        currentDuration.value = evaluateFormula(value, currentDuration.formula)
+        return
+      }
+    }
     //累计工作
-    totalDurationData.value = deviceData.value.dutyCycle.totalDuration
+    const totalDuration = totalDurationData.value
+    if (totalDuration) {
+      if (totalDuration.code == Code) {
+        let value = formatValue(Value, totalDuration.translate)
+        totalDuration.value = evaluateFormula(value, totalDuration.formula)
+        return
+      }
+    }
     //工作循环
-    totalCountData.value = deviceData.value.dutyCycle.totalCount
-    //获取报警信息
-    const record = await getAlertRecordsByDevice({ deviceId: deviceId.value, maxCount: 10 })
-    alarmRecordArr.value = record
-
-    onSubscribe([`Json/${deviceCode.value}`], (topic: string, payload: any) => {
-        const jsonArray = JSON.parse(payload).Items
-        parseMqttData(jsonArray)
-    })
-  }
-  /**
-   * 拆分数组
-   * @param array 数组
-   * @param size 拆分的数量
-   */
-  const chunkArray = (array: any, size: number) => {
-      const arr: any = []
-      for (let index = 0; index < array.length; index += size) {
-          arr.push(array.slice(index, index + size));
+    const totalCount = totalCountData.value
+    if (totalCount) {
+      if (totalCount.code == Code) {
+        totalCount.value = formatValue(Value, totalCount.translate)
+        return
       }
-      return arr;
-  }
-  //解析数据
-  const parseMqttData = (jsonArray: any) => {
-      jsonArray.forEach((res: any) => {
-          const { Value, Code } = res
-          
-          //大车档位
-          const craneGear = craneGearData.value
-          if (craneGear) {
-              if (parseGear(craneGear, Code, Value)) {
-                  return
-              }
-          }
-          //大车行程
-          const craneStroke = craneStrokeData.value
-          if(craneStroke) {
-            if (craneStroke.code == Code) {
-                craneStroke.value = formatValue(Value, craneStroke.translate)
-                return
-            }
-          }
-          //大车制动器
-          const craneBrake = craneBrakeData.value
-          if(craneBrake) {
-            if (craneBrake.code == Code) {
-                craneBrake.value = formatValue(Value, craneBrake.translate)
-                return
-            }
-          }
-          //大车频率
-          const craneFrequency = craneFrequencyData.value
-          if(craneFrequency) {
-            if (craneFrequency.code == Code) {
-                craneFrequency.value = formatValue(Value, craneFrequency.translate)
-                return
-            }
-          }
-          //大车电流
-          const craneCurrent = craneCurrentData.value
-          if(craneCurrent) {
-            if (craneCurrent.code == Code) {
-              craneCurrent.value = formatValue(Value, craneCurrent.translate)
-                return
-            }
-          }
-          //大车开关量
-          const craneSwitchVariables = craneSwitchVariablesData.value
-          if(craneSwitchVariables){
-            craneSwitchVariables.forEach((item: any) => {
-              const result = item.find((item: any) => item.code == Code)
-              if (result) {
-                  result.value = result.isReverse != Value
-                  return
-              }
-            });
-          }
-          //小车档位
-          const trolleyGear = trolleyGearData.value
-          if (trolleyGear) {
-              if (parseGear(trolleyGear, Code, Value)) {
-                  return
-              }
-          }
-          //小车行程
-          const trolleyStroke = trolleyStrokeData.value
-          if(trolleyStroke) {
-            if (trolleyStroke.code == Code) {
-                trolleyStroke.value = formatValue(Value, trolleyStroke.translate)
-                return
-            }
-          }
-          //小车制动器
-          const trolleyBrake = trolleyBrakeData.value
-          if(trolleyBrake) {
-            if (trolleyBrake.code == Code) {
-                trolleyBrake.value = formatValue(Value, trolleyBrake.translate)
-                return
-            }
-          }
-          //小车频率
-          const trolleyFrequency = trolleyFrequencyData.value
-          if(trolleyFrequency) {
-            if (trolleyFrequency.code == Code) {
-              trolleyFrequency.value = formatValue(Value, trolleyFrequency.translate)
-                return
-            }
-          }
-          //小车电流
-          const trolleyCurrent = trolleyCurrentData.value
-          if(trolleyCurrent) {
-            if (trolleyCurrent.code == Code) {
-                trolleyCurrent.value = formatValue(Value, trolleyCurrent.translate)
-                return
-            }
-          }
-          //小车开关量
-          const trolleySwitchVariables = trolleySwitchVariablesData.value
-          if(trolleySwitchVariables){
-            trolleySwitchVariables.forEach((item: any) => {
-              const result = item.find((item: any) => item.code == Code)
-              if (result) {
-                  result.value = result.isReverse != Value
-                  return
-              }
-            });
-          }
-          //起升档位
-          const hoistGear = hoistGearData.value
-          if (hoistGear) {
-              if (parseGear(hoistGear, Code, Value)) {
-                  return
-              }
-          }
-          //起升重量
-          const hoistWeight = hoistWeightData.value
-          if(hoistWeight) {
-            if (hoistWeight.code == Code) {
-                hoistWeight.value = formatValue(Value, hoistWeight.translate)
-                return
-            }
-          }
-          //起升行程
-          const hoistStroke = hoistStrokeData.value
-          if(hoistStroke) {
-            if (hoistStroke.code == Code) {
-                hoistStroke.value = formatValue(Value, hoistStroke.translate)
-                return
-            }
-          }
-          //起升制动器
-          const hoistBrake = hoistBrakeData.value
-          if(hoistBrake) {
-            if (hoistBrake.code == Code) {
-                hoistBrake.value = formatValue(Value, hoistBrake.translate)
-                return
-            }
-          }
-          //起升频率
-          const hoistFrequency = hoistFrequencyData.value
-          if(hoistFrequency) {
-            if (hoistFrequency.code == Code) {
-              hoistFrequency.value = formatValue(Value, hoistFrequency.translate)
-                return
-            }
-          }
-          //起升电流
-          const hoistCurrent = hoistCurrentData.value
-          if(hoistCurrent) {
-            if (hoistCurrent.code == Code) {
-                hoistCurrent.value = formatValue(Value, hoistCurrent.translate)
-                return
-            }
-          }
-          //起升开关量
-          const hoistSwitchVariables = hoistSwitchVariablesData.value
-          if(hoistSwitchVariables){
-            hoistSwitchVariables.forEach((item: any) => {
-              const result = item.find((item: any) => item.code == Code)
-              if (result) {
-                  result.value = result.isReverse != Value
-                  return
-              }
-            });
-          }
-          //总配电开关量
-          const otherSwitch = otherSwitchData.value
-          if(otherSwitch){
-            otherSwitch.forEach((item: any) => {
-              const result = item.find((item: any) => item.code == Code)
-              if (result) {
-                  result.value = result.isReverse != Value
-                  return
-              }
-            });
-          }
-          //本次工作
-          const currentDuration = currentDurationData.value
-          if(currentDuration){
-            if (currentDuration.code == Code) {
-                let value = formatValue(Value, currentDuration.translate)  
-                currentDuration.value = evaluateFormula(value, currentDuration.formula)
-                return
-            }
-          }
-          //累计工作
-          const totalDuration = totalDurationData.value
-          if(totalDuration){
-            if (totalDuration.code == Code) {
-                let value = formatValue(Value, totalDuration.translate)  
-                totalDuration.value = evaluateFormula(value, totalDuration.formula)
-                return
-            }
-          }
-          //工作循环
-          const totalCount = totalCountData.value
-          if(totalCount){
-            if (totalCount.code == Code) {
-                totalCount.value = formatValue(Value, totalCount.translate)
-                return
-            }
-          }
-      })
-  }
-
-  onUnmounted(() => {
-      onUnsubscribe(`Json/${deviceCode.value}`)
+    }
   })
+}
 
-  const backMainPage = () => {
-    router.go(-1)
-  }
+onUnmounted(() => {
+  onUnsubscribe(`Json/${deviceCode.value}`)
+})
 
-  const evaluateFormula = (value: any, formula: any) => {
-    if (formula == null || formula == undefined || formula === '') {
-      return value
-    }
-    //函数模板
-    const array = formula.split(",")
-    //字符串模本
-    var templete = array[0]
-    const formulaArray = array.slice(1)
-    formulaArray.forEach((item: any, index: number) => {
-      const func = item.replace("{Value}", value)
-      const result = eval(func)
-      templete = templete.replace(`{${index}}`, Math.floor(parseFloat(result)))
-    })
-    return templete
-  }
+const backMainPage = () => {
+  router.go(-1)
+}
 
-  const formatStr = (value:string) => {
-    return value.replace('大车','').replace('副小车','').replace('主起升','').replace('配电','').replace('起升','').replace('小车','')
+const evaluateFormula = (value: any, formula: any) => {
+  if (formula == null || formula == undefined || formula === '') {
+    return value
   }
+  //函数模板
+  const array = formula.split(",")
+  //字符串模本
+  var templete = array[0]
+  const formulaArray = array.slice(1)
+  formulaArray.forEach((item: any, index: number) => {
+    const func = item.replace("{Value}", value)
+    const result = eval(func)
+    templete = templete.replace(`{${index}}`, Math.floor(parseFloat(result)))
+  })
+  return templete
+}
+
+const formatStr = (value: string) => {
+  return value.replace('大车', '').replace('副小车', '').replace('主起升', '').replace('配电', '').replace('起升', '').replace('小车', '')
+}
 </script>
 
 <style lang="less" scoped>
-  .bg {
-    min-height: 1080px;
-    width: 100vw;
-    height: 100vh;
-    background-image: url(../../assets/img/screen_bg.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    position: relative;
-  }
-  .top-bg {
-    width: 100%;
-    height: 77px;
-    background-image: url(../../assets/img/big_screen_top_bg.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    position: absolute;
-    cursor: pointer;
-      .device-name {
-        color: white;
-        font-size: 30px;
-        position: absolute;
-        left: 50%;
-        top: 35%;
-        font-weight: bold;
-        transform: translateX(-50%) translateY(-35%);
-        font-family: Alibaba-PuHuiTi-R;
-        font-style: normal;
-        text-transform: none;
-      }
-  }
-  .left {
-    top: 77px;
-    left: 35px;
-    width: 450px;
-    min-height: 988px;
+.bg {
+  min-height: 1080px;
+  width: 100vw;
+  height: 100vh;
+  background-image: url(../../assets/img/screen_bg.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  position: relative;
+}
+
+.top-bg {
+  width: 100%;
+  height: 77px;
+  background-image: url(../../assets/img/big_screen_top_bg.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  position: absolute;
+  cursor: pointer;
+
+  .device-name {
+    color: white;
+    font-size: 30px;
     position: absolute;
-    display: flex;
-    flex-direction: column;
-    justify-content: space-between;
-  }
-  .left_top {
-    width: 422px;
-    height: 256px;
-    background-image: url(../../assets/img/screen_top_bottom_bg.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    padding: 10px;
-  }
-  .left_bottom {
-    width: 450px;
-    height: 653px;
-    background-image: url(../../assets/img/screen_left_bottom_bg.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    display: flex;
-    flex-direction: column;
-    padding: 10px 39px;
-  }
-  .left_bottom_grid {
-    display: grid;
-    grid-template-rows: 32px 32px 32px 32px 32px;
-    grid-template-columns: 180px 180px;
-    gap: 11px;
-  }
-  .left_bottom_grid_item {
-    border-radius: 5px;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    font-size: 16px;
-    font-family: Alibaba-PuHuiTi-R;
-  }
-  .middle {
-    top: 77px;
     left: 50%;
-    transform: translateX(-50%);
-    width: 950px;
-    min-height: 988px;
-    position: absolute;
-    display: flex;
-    flex-direction: column;
-    justify-content: space-between;
-  }
-  .middle_bottom {
-    width: 100%;
-    height: 356px;
-    background-image: url(../../assets/img/single_middle_bg.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-  }
-  .screen_middle_bottom_middle {
-    width: 204px;
-    height: 204px;
-    background-image: url('../../assets/img/screen_middle_bottom_middle.png');    
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    justify-content: center
-  }
-  .middle_bottom_right_grid {
-    display: grid;
-    grid-template-rows: 32px 32px 32px 32px;
-    grid-template-columns: 120px 120px 120px;
-    gap: 11px;
-  }
-  .middle_bottom_right_grid_item {
-    border-radius: 5px;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    color: #ABC0E0;
-    font-size: 16px;
+    top: 35%;
+    font-weight: bold;
+    transform: translateX(-50%) translateY(-35%);
     font-family: Alibaba-PuHuiTi-R;
+    font-style: normal;
+    text-transform: none;
   }
-  .middle_top {
+}
 
+.left {
+  top: 77px;
+  left: 35px;
+  width: 450px;
+  min-height: 988px;
+  position: absolute;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+}
+
+.left_top {
+  width: 422px;
+  height: 256px;
+  background-image: url(../../assets/img/screen_top_bottom_bg.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  padding: 10px;
+}
+
+.left_bottom {
+  width: 450px;
+  height: 653px;
+  background-image: url(../../assets/img/screen_left_bottom_bg.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  display: flex;
+  flex-direction: column;
+  padding: 10px 39px;
+}
+
+.left_bottom_grid {
+  display: grid;
+  grid-template-rows: 32px 32px 32px 32px 32px;
+  grid-template-columns: 180px 180px;
+  gap: 11px;
+}
+
+.left_bottom_grid_item {
+  border-radius: 5px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 16px;
+  font-family: Alibaba-PuHuiTi-R;
+}
+
+.middle {
+  top: 77px;
+  left: 50%;
+  transform: translateX(-50%);
+  width: 950px;
+  min-height: 988px;
+  position: absolute;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+}
+
+.middle_bottom {
+  width: 100%;
+  height: 356px;
+  background-image: url(../../assets/img/single_middle_bg.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+}
+
+.screen_middle_bottom_middle {
+  width: 204px;
+  height: 204px;
+  background-image: url('../../assets/img/screen_middle_bottom_middle.png');
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center
+}
+
+.middle_bottom_right_grid {
+  display: grid;
+  grid-template-rows: 32px 32px 32px 32px;
+  grid-template-columns: 120px 120px 120px;
+  gap: 11px;
+}
+
+.middle_bottom_right_grid_item {
+  border-radius: 5px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  color: #ABC0E0;
+  font-size: 16px;
+  font-family: Alibaba-PuHuiTi-R;
+}
+
+.middle_top {}
+
+.right {
+  top: 77px;
+  right: 35px;
+  width: 450px;
+  min-height: 988px;
+  position: absolute;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+}
+
+.right_top {
+  width: 100%;
+  height: 194px;
+  background-image: url(../../assets/img/screen_right_top_bg.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  padding: 40px 45px;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+}
+
+.right_alert {
+  width: 100%;
+  height: 130px;
+  padding: 10px 0px;
+}
+
+.right_alert_item {
+  width: 100%;
+  height: 100%;
+  padding: 0px 30px 0px 35px;
+  background-image: url(../../assets/img/screen_right_alert_bg.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.right_small {
+  width: 450px;
+  height: 502px;
+  background-image: url(../../assets/img/screen_right_small_bg.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  display: flex;
+  flex-direction: column;
+  padding: 10px 39px;
+}
+
+.right_small_grid {
+  display: grid;
+  grid-template-rows: 32px 32px;
+  grid-template-columns: 115px 115px 115px;
+  gap: 11px;
+}
+
+.right_small_grid_item {
+  border-radius: 5px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  color: #ABC0E0;
+  font-size: 16px;
+  font-family: Alibaba-PuHuiTi-R;
+}
+
+.right_bottom {
+  width: 450px;
+  height: 151px;
+  background-image: url(../../assets/img/screen_right_bottom_bg.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.right_bottom_grid {
+  height: 70px;
+  display: grid;
+  grid-template-rows: 32px 32px;
+  grid-template-columns: 110px 110px 110px;
+  gap: 11px;
+}
+
+.right_bottom_grid_item {
+  border-radius: 5px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 16px;
+  font-family: Alibaba-PuHuiTi-R;
+}
+
+.middle_bottom_right_top {
+  width: 100px;
+  height: 32px;
+  background-color: #334A6C;
+  border: 1px solid #455A7A;
+  border-radius: 5px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  color: #ABC0E0;
+  font-size: 16px;
+  font-family: Alibaba-PuHuiTi-R;
+}
+
+.middle_bottom_right_top.is-active {
+  background-color: #158E4B;
+}
+
+.red {
+  color: rgb(251, 104, 104);
+  background-color: rgba(125, 32, 32, 0.2);
+  border: 1px solid #FD4142;
+}
+
+.green {
+  color: #26F884;
+  background: rgba(21, 142, 75, 0.2);
+  border: 1px solid #02803A;
+}
+
+.yellow {
+  color: #fba34a;
+  background-color: rgba(240, 128, 15, 0.2);
+  border: 1px solid #fc7e03;
+}
+
+.gray {
+  color: #ABC0E0;
+  background-color: rgba(51, 74, 108, 0.2);
+  border: 1px solid #455A7A;
+}</style>
+<style lang="less">.right_alert {
+  .el-carousel__button {
+    width: 5px;
+    height: 5px;
+    border-radius: 2.5px;
   }
-  .right {
-    top: 77px;
-    right: 35px;
-    width: 450px;
-    min-height: 988px;
-    position: absolute;
-    display: flex;
-    flex-direction: column;
-    justify-content: space-between;
-  }
-  .right_top {
-    width: 100%;
-    height: 194px;
-    background-image: url(../../assets/img/screen_right_top_bg.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    padding: 40px 45px;
-    display: flex;
-    flex-direction: column;
-    justify-content: space-between;
-  }
-  .right_alert {
-    width: 100%;
-    height: 130px;
-    padding: 10px 0px;
-  }
-  .right_alert_item {
-    width: 100%;
-    height: 100%;
-    padding: 0px 30px 0px 35px;
-    background-image: url(../../assets/img/screen_right_alert_bg.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-  }
-  .right_small {
-    width: 450px;
-    height: 502px;
-    background-image: url(../../assets/img/screen_right_small_bg.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    display: flex;
-    flex-direction: column;
-    padding: 10px 39px;
-  }
-  .right_small_grid {
-    display: grid;
-    grid-template-rows: 32px 32px;
-    grid-template-columns: 115px 115px 115px;
-    gap: 11px;
-  }
-  .right_small_grid_item {
-    border-radius: 5px;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    color: #ABC0E0;
-    font-size: 16px;
-    font-family: Alibaba-PuHuiTi-R;
-  }
-  .right_bottom {
-    width: 450px;
-    height: 151px;
-    background-image: url(../../assets/img/screen_right_bottom_bg.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .right_bottom_grid {
-    height: 70px;
-    display: grid;
-    grid-template-rows: 32px 32px;
-    grid-template-columns: 110px 110px 110px;
-    gap: 11px;
-  }
-  .right_bottom_grid_item {
-    border-radius: 5px;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    font-size: 16px;
-    font-family: Alibaba-PuHuiTi-R;
-  }
-  .middle_bottom_right_top {
-    width: 100px;
-    height: 32px;
-    background-color: #334A6C;
-    border: 1px solid #455A7A;
-    border-radius: 5px;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    color: #ABC0E0;
-    font-size: 16px;
-    font-family: Alibaba-PuHuiTi-R;
-  }
-  .middle_bottom_right_top.is-active {
-    background-color: #158E4B;
-  }
-  .red{
-    color:rgb(251, 104, 104);
-    background-color: rgba(125, 32, 32,0.2);
-    border: 1px solid #FD4142;
-  }
-  .green{
-    color: #26F884;
-    background: rgba(21, 142, 75, 0.2);
-    border: 1px solid #02803A;
-  }
-  .yellow{
-    color: #fba34a;
-    background-color: rgba(240, 128, 15, 0.2);
-    border: 1px solid #fc7e03;
-  }
-  .gray{
-    color: #ABC0E0;
-    background-color: rgba(51, 74, 108, 0.2);
-    border: 1px solid #455A7A;
+
+  .el-carousel__indicator.is-active button {
+    width: 14px;
+    height: 5px;
   }
-</style>
-<style lang="less">
-  .right_alert {
-    .el-carousel__button {
-      width: 5px;
-      height: 5px;
-      border-radius: 2.5px;
-    }
-    .el-carousel__indicator.is-active button {
-      width: 14px;
-      height: 5px;
-    }
-    .el-carousel__indicators--horizontal {
-      left: 95px;
-      top: 20px;
-      transform:none
-    }
+
+  .el-carousel__indicators--horizontal {
+    left: 95px;
+    top: 20px;
+    transform: none
   }
-</style>
+}</style>

+ 457 - 409
src/views/big-screen/synthesis.vue

@@ -6,22 +6,22 @@
         <div class="device_count_bg_item">
           <img src="../../assets/img/online.png" />
           <div style="color: #ABC0E0;font-size: 16px;margin: 0px 5px;">在线设备</div>
-          <div class="device_count_text">{{deviceStateData.onlineCount}}</div>
+          <div class="device_count_text">{{ deviceStateData.onlineCount }}</div>
         </div>
         <div class="device_count_bg_item">
           <img src="../../assets/img/alarm.png" />
           <div style="color: #ABC0E0;font-size: 16px;margin: 0px 5px;">故障设备</div>
-          <div class="device_count_text">{{deviceStateData.alarmCount}}</div>
+          <div class="device_count_text">{{ deviceStateData.alarmCount }}</div>
         </div>
         <div class="device_count_bg_item">
           <img src="../../assets/img/offline.png" />
           <div style="color: #ABC0E0;font-size: 16px;margin: 0px 5px;">离线设备</div>
-          <div class="device_count_text">{{deviceStateData.offlineCount}}</div>
+          <div class="device_count_text">{{ deviceStateData.offlineCount }}</div>
         </div>
         <div class="device_count_bg_item">
           <img src="../../assets/img/repair.png" />
           <div style="color: #ABC0E0;font-size: 16px;margin: 0px 5px;">维修设备</div>
-          <div class="device_count_text">{{deviceStateData.repairCount}}</div>
+          <div class="device_count_text">{{ deviceStateData.repairCount }}</div>
         </div>
       </div>
       <div class="right_top">
@@ -32,7 +32,8 @@
             </div>
           </template>
         </div>
-        <div style="background: repeating-linear-gradient(to right,#A0D0FC,#306AF7,#03102E);height: 2px;margin-top: 14px;" />
+        <div
+          style="background: repeating-linear-gradient(to right,#A0D0FC,#306AF7,#03102E);height: 2px;margin-top: 14px;" />
         <div class="alarm_count_contanner">
           <div style="display: flex;flex-direction: column;align-items: center;width: 49%;">
             <div style="font-size: 30px;color: #608BF3;font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;">
@@ -47,17 +48,18 @@
         </div>
       </div>
       <div class="left">
-        <div style="display: flex;justify-content: center;color: white;font-size: 18px;font-weight: bold;font-family:Alibaba-PuHuiTi, Alibaba-PuHuiTi;">
+        <div
+          style="display: flex;justify-content: center;color: white;font-size: 18px;font-weight: bold;font-family:Alibaba-PuHuiTi, Alibaba-PuHuiTi;">
           <span>设备数量监控</span>
         </div>
         <div class="client_list_title">
           <div style="color: #ABC0E0;font-size: 16px;font-weight: normal;width: 70%">客户名称</div>
           <div style="color: #ABC0E0;font-size: 16px;font-weight: normal;width: 30%">设备数量</div>
         </div>
-        <div style="height: 1px;background-color: #417CC4;margin-top: 3px;"/>
+        <div style="height: 1px;background-color: #417CC4;margin-top: 3px;" />
         <div class="client-scroll">
           <Vue3SeamlessScroll class="scrollClass" :list="companyDevicesData" step="0.3" hover="true">
-            <template v-for="(item,index) in companyDevicesData" :key="index">
+            <template v-for="(item, index) in companyDevicesData" :key="index">
               <div class="item" :class="{ 'active': 0 != index }">
                 <div style="display: flex;align-items: center;width: 70%;">
                   <div style="background: #4F80F8;width: 3px;height: 13px;border-radius: 2px;"></div>
@@ -83,38 +85,45 @@
         <div style="display: flex;">
           <div class="order_state_bg">
             <div>
-              <div style="color: white;font-size: 18px;font-weight: bold;font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;">工单状态统计</div>
+              <div style="color: white;font-size: 18px;font-weight: bold;font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;">
+                工单状态统计</div>
             </div>
             <div class="order_state_container" v-if="repairOrderData.waitSend != undefined">
               <div style="display: flex;justify-content: space-between;align-items: center;">
                 <span style="font-size: 16px;color: #ABC0E0">待派单</span>
-                  <span :style="{backgroundColor:'#F57F29',height:'20px',borderRadius:'2px',width:repairOrderData.waitSend*0.7+'px'}" />  
-                <span style="font-size: 18px;color: #608BF3;min-width: 40px;">{{repairOrderData.waitSend}}%</span>
+                <span
+                  :style="{ backgroundColor: '#F57F29', height: '20px', borderRadius: '2px', width: repairOrderData.waitSend * 0.7 + 'px' }" />
+                <span style="font-size: 18px;color: #608BF3;min-width: 40px;">{{ repairOrderData.waitSend }}%</span>
               </div>
               <div style="display: flex;justify-content: space-between;align-items: center;">
                 <span style="font-size: 16px;color: #ABC0E0;">待接单</span>
-                  <span :style="{backgroundColor:'#E6CD40',height:'20px',borderRadius:'2px',width:repairOrderData.waitAccept*0.7+'px'}" />
-                <span style="font-size: 18px;color: #608BF3;min-width: 40px;">{{repairOrderData.waitAccept}}%</span>
+                <span
+                  :style="{ backgroundColor: '#E6CD40', height: '20px', borderRadius: '2px', width: repairOrderData.waitAccept * 0.7 + 'px' }" />
+                <span style="font-size: 18px;color: #608BF3;min-width: 40px;">{{ repairOrderData.waitAccept }}%</span>
               </div>
               <div style="display: flex;justify-content: space-between;align-items: center;">
                 <span style="font-size: 16px;color: #ABC0E0;">维修中</span>
-                <div :style="{backgroundColor:'#95D333',height:'20px',borderRadius:'2px',width:repairOrderData.repairing*0.7+'px'}" />
-                <span style="font-size: 18px;color: #608BF3;min-width: 40px;">{{repairOrderData.repairing}}%</span>
+                <div
+                  :style="{ backgroundColor: '#95D333', height: '20px', borderRadius: '2px', width: repairOrderData.repairing * 0.7 + 'px' }" />
+                <span style="font-size: 18px;color: #608BF3;min-width: 40px;">{{ repairOrderData.repairing }}%</span>
               </div>
               <div style="display: flex;justify-content: space-between;align-items: center;">
                 <span style="font-size: 16px;color: #ABC0E0;">待审核</span>
-                <div :style="{backgroundColor:'#0AC97E',height:'20px',borderRadius:'2px',width:repairOrderData.waitAudit*0.7+'px'}" />
-                <span style="font-size: 18px;color: #608BF3;min-width: 40px;">{{repairOrderData.waitAudit}}%</span>
+                <div
+                  :style="{ backgroundColor: '#0AC97E', height: '20px', borderRadius: '2px', width: repairOrderData.waitAudit * 0.7 + 'px' }" />
+                <span style="font-size: 18px;color: #608BF3;min-width: 40px;">{{ repairOrderData.waitAudit }}%</span>
               </div>
             </div>
           </div>
           <div class="order_state_bg">
             <div>
-              <div style="color: white;font-size: 18px;font-weight: bold;font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;">本月设备接入</div>
+              <div style="color: white;font-size: 18px;font-weight: bold;font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;">
+                本月设备接入</div>
             </div>
             <div class="order_state_container" style="justify-content:space-evenly">
               <echart-gauge unit="%" :value="monthAddDeviceProgressData.growthProgress + ''" title=""
-              style="width: 100%;min-height: 100px;margin-top: 10px;" v-if="monthAddDeviceProgressData.monthGrowth != undefined" />
+                style="width: 100%;min-height: 100px;margin-top: 10px;"
+                v-if="monthAddDeviceProgressData.monthGrowth != undefined" />
               <div style="display: flex;justify-content: space-evenly;margin-top: -25px;"
                 v-if="monthAddDeviceProgressData.monthGrowth != undefined">
                 <div class="column_center">
@@ -139,7 +148,8 @@
       <div class="bottom">
         <div>
           <div class="device_area_bg">
-            <div style="display: flex;justify-content: center;color: white;font-size: 18px;font-weight: bold;font-family:Alibaba-PuHuiTi, Alibaba-PuHuiTi;">
+            <div
+              style="display: flex;justify-content: center;color: white;font-size: 18px;font-weight: bold;font-family:Alibaba-PuHuiTi, Alibaba-PuHuiTi;">
               <span>设备区域统计</span>
             </div>
             <div class="device_area_coatinner">
@@ -149,11 +159,15 @@
                   <div style="color: #4F80F8;font-size: 30px;font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;">{{
                     deviceAreaStatisticsData.deviceCount }}</div>
                   <div style="color: #ABC0E0;font-size: 16px;">设备总数</div>
-                  <div style="color: #4F80F8;font-size: 24px;font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;margin-top: 30px;">{{
+                  <div
+                    style="color: #4F80F8;font-size: 24px;font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;margin-top: 30px;">
+                    {{
                       deviceAreaStatisticsData.monthNewCount }}</div>
                   <div style="display: flex;align-items: flex-end;">
                     <span style="color: #ABC0E0;font-size: 14px;">本月新增</span>
-                    <el-icon style="color: red"><Top /></el-icon>
+                    <el-icon style="color: red">
+                      <Top />
+                    </el-icon>
                   </div>
                 </div>
               </div>
@@ -168,7 +182,8 @@
         </div>
         <div>
           <div class="device_type_bg">
-            <div style="display:flex;justify-content:center;color:white;font-size:18px;font-weight:bold;font-family:Alibaba-PuHuiTi, Alibaba-PuHuiTi;">
+            <div
+              style="display:flex;justify-content:center;color:white;font-size:18px;font-weight:bold;font-family:Alibaba-PuHuiTi, Alibaba-PuHuiTi;">
               <div style="color: white;font-size: 16px;font-weight: bold;">设备类型占比</div>
             </div>
 
@@ -176,44 +191,44 @@
 
               <div class="device_type_left">
                 <div class="column_center" v-if="deviceTypeData.length >= 1">
-                    <div style="color: #608BF3;font-size: 26px;font-family: OPPOSans;">{{ deviceTypeData[0].count
-                    }}</div>
-                    <div class="row_center">
-                      <div style="width: 10px;height: 10px;background: #306AF7;border-radius: 3px;"></div>
-                      <div style="color: #ABC0E0;font-size: 16px;margin-left: 5px;">{{ deviceTypeData[0].categoryName }}
-                      </div>
+                  <div style="color: #608BF3;font-size: 26px;font-family: OPPOSans;">{{ deviceTypeData[0].count
+                  }}</div>
+                  <div class="row_center">
+                    <div style="width: 10px;height: 10px;background: #306AF7;border-radius: 3px;"></div>
+                    <div style="color: #ABC0E0;font-size: 16px;margin-left: 5px;">{{ deviceTypeData[0].categoryName }}
                     </div>
                   </div>
-                  <div class="column_center" v-if="deviceTypeData.length >= 2">
-                    <div style="color: #608BF3;font-size: 26px;font-family: OPPOSans;">{{ deviceTypeData[1].count
-                    }}</div>
-                    <div class="row_center">
-                      <div style="width: 10px;height: 10px;background: #0AC97E;border-radius: 3px;"></div>
-                      <div style="color: #ABC0E0;font-size: 16px;margin-left: 5px;">{{ deviceTypeData[1].categoryName }}
-                      </div>
+                </div>
+                <div class="column_center" v-if="deviceTypeData.length >= 2">
+                  <div style="color: #608BF3;font-size: 26px;font-family: OPPOSans;">{{ deviceTypeData[1].count
+                  }}</div>
+                  <div class="row_center">
+                    <div style="width: 10px;height: 10px;background: #0AC97E;border-radius: 3px;"></div>
+                    <div style="color: #ABC0E0;font-size: 16px;margin-left: 5px;">{{ deviceTypeData[1].categoryName }}
                     </div>
                   </div>
+                </div>
               </div>
               <div class="device_type_chart" ref="deviceTypeChartRef"></div>
               <div class="device_type_right">
-                  <div class="column_center" v-if="deviceTypeData.length >= 3">
-                    <div style="color: #608BF3;font-size: 26px;font-family: OPPOSans;">{{ deviceTypeData[2].count
-                    }}</div>
-                    <div class="row_center">
-                      <div style="width: 10px;height: 10px;background: #F4C766;border-radius: 3px;"></div>
-                      <div style="color: #ABC0E0;font-size: 16px;margin-left: 5px;">{{ deviceTypeData[2].categoryName }}
-                      </div>
+                <div class="column_center" v-if="deviceTypeData.length >= 3">
+                  <div style="color: #608BF3;font-size: 26px;font-family: OPPOSans;">{{ deviceTypeData[2].count
+                  }}</div>
+                  <div class="row_center">
+                    <div style="width: 10px;height: 10px;background: #F4C766;border-radius: 3px;"></div>
+                    <div style="color: #ABC0E0;font-size: 16px;margin-left: 5px;">{{ deviceTypeData[2].categoryName }}
                     </div>
                   </div>
-                  <div class="column_center" v-if="deviceTypeData.length >= 4">
-                    <div style="color: #608BF3;font-size: 26px;font-family: OPPOSans;">{{ deviceTypeData[3].count
-                    }}</div>
-                    <div class="row_center">
-                      <div style="width: 10px;height: 10px;background: #97CB7C;border-radius: 3px;"></div>
-                      <div style="color: #ABC0E0;font-size: 16px;margin-left: 5px;">{{ deviceTypeData[3].categoryName }}
-                      </div>
+                </div>
+                <div class="column_center" v-if="deviceTypeData.length >= 4">
+                  <div style="color: #608BF3;font-size: 26px;font-family: OPPOSans;">{{ deviceTypeData[3].count
+                  }}</div>
+                  <div class="row_center">
+                    <div style="width: 10px;height: 10px;background: #97CB7C;border-radius: 3px;"></div>
+                    <div style="color: #ABC0E0;font-size: 16px;margin-left: 5px;">{{ deviceTypeData[3].categoryName }}
                     </div>
                   </div>
+                </div>
               </div>
             </div>
           </div>
@@ -276,7 +291,7 @@ const mapTypeIndex = ref(0)
 const mapTypeArray = ['china', '广东']
 
 //设备报警、活跃度菜单
-const alarmCountTabs = ['本年', '本月', '本周', '本日']
+const alarmCountTabs = ['本月', '本周', '本日']
 const alarmCountTabsIndex = ref(0)
 const alarmCountTabsIndexChart = ref(0)
 
@@ -309,18 +324,18 @@ onMounted(async () => {
   alarmCountChart.value.setOption(alarmCountOption)
   deviceTypeChart.value = echarts.init(deviceTypeChartRef.value)
   deviceTypeChart.value.setOption(deviceTypeOption)
-  
+
   getData()
   timer.value = setInterval(() => getData(), 1000 * 60 * 30)
   chartTimer.value = setInterval(() => {
     if (deviceActivityAndFaultCurvesData.value != null) {
       let a = alarmCountTabsIndex.value
       let b = a + 1
-      let c = b == 4 ? 0 : b
+      let c = b == 3 ? 0 : b
       alarmCountTabClick(c)
       let e = alarmCountTabsIndexChart.value
       let f = e + 1
-      let g = f == 4 ? 0 : f
+      let g = f == 3 ? 0 : f
       alarmCountTabClickChart(g)
     }
   }, 1000 * 10)
@@ -457,13 +472,13 @@ const getDeviceActivityAndFaultCurvesData = async () => {
   deviceActivityAndFaultCurvesData.value = data
   switch (alarmCountTabsIndex.value) {
     case 0:
-      huoYueDuAlarmData.value = data.yearData
+      huoYueDuAlarmData.value = data.monthData
       break;
     case 1:
-      huoYueDuAlarmData.value = data.monthData
+      huoYueDuAlarmData.value = data.weekData
       break;
     case 2:
-      huoYueDuAlarmData.value = data.weekData
+      huoYueDuAlarmData.value = data.dayData
       break;
     default:
       huoYueDuAlarmData.value = data.dayData
@@ -585,19 +600,16 @@ const alarmCountTabClick = (e: number) => {
   }
   switch (e) {
     case 0:
-      huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.yearData
-      break;
-    case 1:
       huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.monthData
       break;
-    case 2:
+    case 1:
       huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.weekData
       break;
-    case 3:
+    case 2:
       huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.dayData
       break
     default:
-      huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.yearData
+      huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.monthData
       break;
   }
 }
@@ -608,19 +620,16 @@ const alarmCountTabClickChart = (e: number) => {
   }
   switch (e) {
     case 0:
-      huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.yearData
-      break;
-    case 1:
       huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.monthData
       break;
-    case 2:
+    case 1:
       huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.weekData
       break;
-    case 3:
+    case 2:
       huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.dayData
       break
     default:
-      huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.yearData
+      huoYueDuAlarmData.value = deviceActivityAndFaultCurvesData.value.monthData
       break;
   }
   alarmCountOption.xAxis.data = huoYueDuAlarmData.value.keyData
@@ -644,16 +653,16 @@ let deviceAreaOption = {
   textStyle: {
     fontSize: 10
   },
-  graphic:{
+  graphic: {
     elements: [{
-      type:"image",
-      style:{
-        image:synthesis_circular,
-        width:74,
-        height:74
+      type: "image",
+      style: {
+        image: synthesis_circular,
+        width: 74,
+        height: 74
       },
-      left:"center",
-      top:"center",
+      left: "center",
+      top: "center",
     }]
   },
   series: [
@@ -690,16 +699,16 @@ let deviceTypeOption = {
   textStyle: {
     fontSize: 10
   },
-  graphic:{
+  graphic: {
     elements: [{
-      type:"image",
-      style:{
-        image:synthesis_circular,
-        width:74,
-        height:74
+      type: "image",
+      style: {
+        image: synthesis_circular,
+        width: 74,
+        height: 74
       },
-      left:"center",
-      top:"center",
+      left: "center",
+      top: "center",
     }]
   },
   color: ['#FD4142', '#0AC97E', '#F4C766', '#97CB7C'],
@@ -784,7 +793,7 @@ let deviceStateOption = {
         color: '#E23F3B'
       },
       barWidth: 10,
-      barGap:'50%',
+      barGap: '50%',
       data: [12, 12, 12, 12, 12, 12]
     },
     {
@@ -795,10 +804,10 @@ let deviceStateOption = {
       name: '维修中',
       type: 'bar',
       itemStyle: {
-        color:' #A38375'
+        color: ' #A38375'
       },
       barWidth: 10,
-      barGap:'50%',
+      barGap: '50%',
       data: [31, 31, 31, 31, 31, 31]
     },
     {
@@ -812,7 +821,7 @@ let deviceStateOption = {
         color: '#57FDF3'
       },
       barWidth: 10,
-      barGap:'50%',
+      barGap: '50%',
       data: [42, 42, 42, 42, 42, 42]
     },
     {
@@ -823,10 +832,10 @@ let deviceStateOption = {
       name: '部件寿命临期',
       type: 'bar',
       itemStyle: {
-        color:'#3954FD'
+        color: '#3954FD'
       },
       barWidth: 10,
-      barGap:'50%',
+      barGap: '50%',
       data: [20, 20, 20, 20, 20, 20]
     }
   ]
@@ -839,21 +848,21 @@ let alarmCountOption = {
   },
   legend: {
     right: '3%',
-    align:'top',
-    formatter: function(name) {
-        // 返回一个带有 rich 文本样式的字符串
-        return '{a|' + name + '}';
+    align: 'top',
+    formatter: function (name) {
+      // 返回一个带有 rich 文本样式的字符串
+      return '{a|' + name + '}';
     },
     textStyle: {
-        // 定义 rich 文本样式
-        rich: {
-            a: {
-                // 定义样式,比如字体大小、颜色等
-                fontSize: 12,
-                color: '#417CC4',
-                padding:[0,0,-40,-5]
-            }
+      // 定义 rich 文本样式
+      rich: {
+        a: {
+          // 定义样式,比如字体大小、颜色等
+          fontSize: 12,
+          color: '#417CC4',
+          padding: [0, 0, -40, -5]
         }
+      }
     },
   },
   grid: {
@@ -936,327 +945,366 @@ let alarmCountOption = {
 </script>
 
 <style lang="less" scoped>
-  .bg {
-    min-height: 1080px;
-    width: 100vw;
-    height: 100vh;
-    background-image: url(../../assets/img/synthesis_bg.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    position: relative;
-  }
-  .title_bg {
-    position: absolute;
-    left: 50%;
-    transform: translateX(-50%);
-    cursor: pointer;
-  }
-  .content {
-    width: 100%;
-    height: calc(100% - 62px);
-    top: 62px;
-    background: transparent;
-    position: relative;
-    padding: 0px 40px 40px 40px;
-  }
-  .left_top {
-    width: 535px;
-    height: 184px;
-    position: absolute;
-    background-image: url(../../assets/img/synthesis_online_count.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    display: grid;
-    grid-template-columns:  50% 50%;
-    grid-template-rows: 50% 50%;
-    padding: 20px 30px 20px 35px;
-  }
-  .device_count_bg_item {
-    display: flex;
-    align-items:center;
-  }
-  .device_count_text {
-    color: #608BF3;
-    font-weight: bold;
-    font-size: 30px;
-    font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;
-  }
-  .right_top {
-    right: 40px;
-    width: 535px;
-    height: 184px;
-    position: absolute;
-    background-image: url(../../assets/img/synthesis_rigth_top_bg.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
+.bg {
+  min-height: 1080px;
+  width: 100vw;
+  height: 100vh;
+  background-image: url(../../assets/img/synthesis_bg.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  position: relative;
+}
+
+.title_bg {
+  position: absolute;
+  left: 50%;
+  transform: translateX(-50%);
+  cursor: pointer;
+}
+
+.content {
+  width: 100%;
+  height: calc(100% - 62px);
+  top: 62px;
+  background: transparent;
+  position: relative;
+  padding: 0px 40px 40px 40px;
+}
+
+.left_top {
+  width: 535px;
+  height: 184px;
+  position: absolute;
+  background-image: url(../../assets/img/synthesis_online_count.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  display: grid;
+  grid-template-columns: 50% 50%;
+  grid-template-rows: 50% 50%;
+  padding: 20px 30px 20px 35px;
+}
+
+.device_count_bg_item {
+  display: flex;
+  align-items: center;
+}
+
+.device_count_text {
+  color: #608BF3;
+  font-weight: bold;
+  font-size: 30px;
+  font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;
+}
+
+.right_top {
+  right: 40px;
+  width: 535px;
+  height: 184px;
+  position: absolute;
+  background-image: url(../../assets/img/synthesis_rigth_top_bg.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  display: flex;
+  flex-direction: column;
+  padding: 26px 0px 20px 45px;
+}
+
+.tabbar_containner {
+  display: flex;
+  align-items: center;
+  width: 100%;
+  padding-left: 17px;
+
+  .tabbar_item {
     display: flex;
     flex-direction: column;
-    padding: 26px 0px 20px 45px;
-  }
-  .tabbar_containner {
-    display: flex;
     align-items: center;
-    width: 100%;
-    padding-left: 17px;
-    .tabbar_item {
-      display: flex;
-      flex-direction: column;
-      align-items: center;
-      margin-right: 20px;
-      .tabbar_text {
-        color: #ABC0E0;
-        font-size: 16px;
-        font-weight: normal;
-        font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;
-        cursor: pointer;
-        &.active {
-          color: white;
-          font-size: 18px;
-          font-weight: bold;
-        }
+    margin-right: 20px;
+
+    .tabbar_text {
+      color: #ABC0E0;
+      font-size: 16px;
+      font-weight: normal;
+      font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;
+      cursor: pointer;
+
+      &.active {
+        color: white;
+        font-size: 18px;
+        font-weight: bold;
       }
-      .tabbar_indicator {
-        width: 35px;
-        height: 3px;
-        background: transparent;
-        border-radius: 2px;
-        margin-top: 7px;
-        &.active {
-          background: #57FDF3;
-        }
+    }
+
+    .tabbar_indicator {
+      width: 35px;
+      height: 3px;
+      background: transparent;
+      border-radius: 2px;
+      margin-top: 7px;
+
+      &.active {
+        background: #57FDF3;
       }
     }
   }
-  .alarm_count_contanner {
-    display: flex;
-    width: 100%;
-    height: 100%;
-    justify-content: center;
-    align-items: center;
-  }
-  .left {
-    top:184px;
-    width: 470px;
-    height: 465px;
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    background-image: url(../../assets/img/synthesis_client_bg.png);
-    position: absolute;
-    display: flex;
-    flex-direction: column;
-    padding: 28px 35px 25px 35px;
-  }
-  .client_list_title {
-    width: 100%;
-    height: 42px;
-    margin-top: 15px;
-    align-items: center;
-    display: flex;
-  }
-  .client-scroll {
-    width: 100%;
-    overflow: hidden;
-    display: flex;
-    flex-direction: column;
-    flex: 1;
-  }
+}
 
-  .client-scroll .item {
-    height: 40px;
-    display: flex;
-    align-items: center;
-    &.active {
-      border-top: 1px solid rgba(65, 124, 196, 0.4);
-    }
+.alarm_count_contanner {
+  display: flex;
+  width: 100%;
+  height: 100%;
+  justify-content: center;
+  align-items: center;
+}
+
+.left {
+  top: 184px;
+  width: 470px;
+  height: 465px;
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  background-image: url(../../assets/img/synthesis_client_bg.png);
+  position: absolute;
+  display: flex;
+  flex-direction: column;
+  padding: 28px 35px 25px 35px;
+}
+
+.client_list_title {
+  width: 100%;
+  height: 42px;
+  margin-top: 15px;
+  align-items: center;
+  display: flex;
+}
+
+.client-scroll {
+  width: 100%;
+  overflow: hidden;
+  display: flex;
+  flex-direction: column;
+  flex: 1;
+}
+
+.client-scroll .item {
+  height: 40px;
+  display: flex;
+  align-items: center;
+
+  &.active {
+    border-top: 1px solid rgba(65, 124, 196, 0.4);
   }
-  .right {
-    right: 40px;
-    top:184px;
-    width: 470px;
-    height: 465px;
-    position: absolute;
+}
+
+.right {
+  right: 40px;
+  top: 184px;
+  width: 470px;
+  height: 465px;
+  position: absolute;
+  display: flex;
+  flex-direction: column;
+  flex: 1;
+  z-index: 1;
+}
+
+.alarm_count_chart_container {
+  width: 470px;
+  height: 231px;
+  background-image: url(../../assets/img/synthesis_col_1.png);
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  padding: 25px;
+  position: relative;
+}
+
+.tabbar_containner_chart {
+  width: auto;
+  position: absolute;
+  top: 30px;
+  left: 35px;
+  display: flex;
+  align-items: center;
+  z-index: 2;
+
+  .tabbar_item_chart {
     display: flex;
     flex-direction: column;
-    flex: 1;
-    z-index: 1;
-  }
-  .alarm_count_chart_container {
-    width: 470px;
-    height: 231px;
-    background-image: url(../../assets/img/synthesis_col_1.png);
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    padding: 25px;
-    position: relative;
-  }
-  .tabbar_containner_chart {
-    width: auto;
-    position: absolute;
-    top: 30px;
-    left: 35px;
-    display: flex;
     align-items: center;
-    z-index: 2;
-    .tabbar_item_chart {
-      display: flex;
-      flex-direction: column;
-      align-items: center;
-      margin-right: 20px;
-
-      .tabbar_text_chart {
-        color: #ABC0E0;
-        font-size: 16px;
-        font-weight: normal;
-        font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;
-
-        cursor: pointer;
-
-        &.active {
-          color: white;
-          font-size: 18px;
-          font-weight: bold;
-        }
+    margin-right: 20px;
+
+    .tabbar_text_chart {
+      color: #ABC0E0;
+      font-size: 16px;
+      font-weight: normal;
+      font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;
+
+      cursor: pointer;
+
+      &.active {
+        color: white;
+        font-size: 18px;
+        font-weight: bold;
       }
-      .tabbar_indicator {
-        width: 35px;
-        height: 3px;
-        background: transparent;
-        border-radius: 2px;
-        margin-top: 7px;
-
-        &.active {
-          background: #57FDF3;
-        }
+    }
+
+    .tabbar_indicator {
+      width: 35px;
+      height: 3px;
+      background: transparent;
+      border-radius: 2px;
+      margin-top: 7px;
+
+      &.active {
+        background: #57FDF3;
       }
     }
   }
-  .order_state_bg {
-    height: 232px;
-    width: 235px;
-    display: flex;
-    flex-direction: column;
-    flex: 1;
-    align-items: center;
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    background-image: url(../../assets/img/synthesis_order_state_bg.png);
-    padding: 28px 25px;
-  }
-  .order_state_container {
-    margin-top: 15px;
-    width: 100%;
-    height: 100%;
-    display: flex;
-    flex-direction: column;
-    justify-content: space-between;
-    padding: 0px 10px;
-  }
-  .column_center {
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-  }
-  .row_center {
-    display: flex;
-    justify-content: center;
-    align-items: center;
-  }
+}
 
-  .bottom {
-    bottom: 40px;
-    width: calc(100% - 80px);
-    height: 326px;
-    position: absolute;
-    display: flex;
-    justify-content: space-between;
-  }
-  .device_area_bg {
-    width: 470px;
-    height: 100%;
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    background-image: url(../../assets/img/synthesis_device_area_bg.png);
-    display: flex;
-    flex-direction: column;
-    padding: 28px 20px 0px 20px;
-  }
-  .device_area_coatinner {
-    height: 100%;
-    width: 100%;
-    display: flex;
-    align-items: center;
-  }
-  .device_area_chart {
-    width: 65%;
-    height: 100%;
-    display: flex;
-    justify-content: center;
-  }
-  .device_area_right {
-    width: 35%;
-    height: 100%;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .device_state_statistics_container {
-    width: 880px;
-    height: 100%;
-    background-image: url(../../assets/img/statistics_container_bg.png);
-    background-repeat: repeat-x;
-    background-size: 100% 100%;
-    padding: 25px 35px 40px 40px;
-  }
-  .device_type_bg {
-    width: 470px;
-    height: 100%;
-    display: flex;
-    flex-direction: column;
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    background-image: url(../../assets/img/synthesis_device_area_bg.png);
-    padding: 28px 25px;
-  }
-  .device_type_coatinner {
-    width: 100%;
-    height: 100%;
-    display: flex;
-    justify-content: space-between;
-    padding: 20px;
-  }
-  .device_type_chart {
-    width: 50%;
-    height: 100%;
-    display: flex;
-  }
-  .device_type_right {
-    width: 25%;
-    height: 100%;
-    display: flex;
-    flex-direction: column;
-    justify-content: space-between;
-  }
-  .device_type_left {
-    width: 25%;
-    height: 100%;
-    display: flex;
-    flex-direction: column;
-    justify-content: space-between;
-  }
-  .middle {
-    width: calc(100% - 80px);
-    height: 590px;
-    top: 50px;
-    position: absolute;
-    display: flex;
-    justify-content: center;
-  }
-  .map_container {
-    width: 750px;
-    height: 100%;
-  }
-  .map_chart {
-    width: 100%;
-    height: 100%;
-  }
+.order_state_bg {
+  height: 232px;
+  width: 235px;
+  display: flex;
+  flex-direction: column;
+  flex: 1;
+  align-items: center;
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  background-image: url(../../assets/img/synthesis_order_state_bg.png);
+  padding: 28px 25px;
+}
+
+.order_state_container {
+  margin-top: 15px;
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  padding: 0px 10px;
+}
+
+.column_center {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+}
+
+.row_center {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.bottom {
+  bottom: 40px;
+  width: calc(100% - 80px);
+  height: 326px;
+  position: absolute;
+  display: flex;
+  justify-content: space-between;
+}
+
+.device_area_bg {
+  width: 470px;
+  height: 100%;
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  background-image: url(../../assets/img/synthesis_device_area_bg.png);
+  display: flex;
+  flex-direction: column;
+  padding: 28px 20px 0px 20px;
+}
+
+.device_area_coatinner {
+  height: 100%;
+  width: 100%;
+  display: flex;
+  align-items: center;
+}
+
+.device_area_chart {
+  width: 65%;
+  height: 100%;
+  display: flex;
+  justify-content: center;
+}
+
+.device_area_right {
+  width: 35%;
+  height: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.device_state_statistics_container {
+  width: 880px;
+  height: 100%;
+  background-image: url(../../assets/img/statistics_container_bg.png);
+  background-repeat: repeat-x;
+  background-size: 100% 100%;
+  padding: 25px 35px 40px 40px;
+}
+
+.device_type_bg {
+  width: 470px;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  background-image: url(../../assets/img/synthesis_device_area_bg.png);
+  padding: 28px 25px;
+}
+
+.device_type_coatinner {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  justify-content: space-between;
+  padding: 20px;
+}
+
+.device_type_chart {
+  width: 50%;
+  height: 100%;
+  display: flex;
+}
+
+.device_type_right {
+  width: 25%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+}
+
+.device_type_left {
+  width: 25%;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+}
+
+.middle {
+  width: calc(100% - 80px);
+  height: 590px;
+  top: 50px;
+  position: absolute;
+  display: flex;
+  justify-content: center;
+}
+
+.map_container {
+  width: 750px;
+  height: 100%;
+}
+
+.map_chart {
+  width: 100%;
+  height: 100%;
+}
 </style>

+ 4 - 36
src/views/login/index.vue

@@ -73,18 +73,6 @@
         </div>
       </el-form>
     </div>
-    <!-- 选择租户对话框 -->
-    <el-dialog v-model="modal.open" :title="modal.title" width="450px" align-center>
-      <div
-        class="user"
-        @click="onLogin(item.name)"
-        :class="{ 'user-active': tenancyName == item.name }"
-        v-for="item in userList.arr"
-        :key="item.id"
-      >
-        {{ item.name }}
-      </div>
-    </el-dialog>
   </div>
 </template>
 
@@ -104,9 +92,6 @@
     code: string
   }
   const router = useRouter()
-  const modal = useModal('选择租户')
-  // 租户id
-  const tenancyName = ref('')
   const param = reactive<LoginInfo>({
     userNameOrEmailAddressOrPhoneNumber: '',
     password: ''
@@ -119,9 +104,7 @@
   const passwordType = ref('password')
   const submitLoading = ref(false)
 
-  const userList = reactive<any>({
-    arr: []
-  })
+
   const onSuffixClick = (v: boolean) => {
     if (!v) {
       passwordType.value = 'password'
@@ -187,9 +170,9 @@
   const userInfo = useUserInfo()
 
   // 登录
-  const onLogin = async (e: string) => {
+  const onLogin = async () => {
     localStorage.clear()
-    const data: any = await userLogin({ ...param, tenancyName: e, type: 2 })
+    const data: any = await userLogin({ ...param, tenancyName: 'YUZHONG', type: 2 })
     localStorage.setItem('yz-Token', data.accessToken)
     localStorage.setItem('yz-user', JSON.stringify(data))
     userInfo.setUser(data)
@@ -226,22 +209,7 @@
         }
 
         submitLoading.value = true
-        try {
-          const data = await fetchUserTenants({
-            userNameOrEmailAddressOrPhoneNumber: param.userNameOrEmailAddressOrPhoneNumber
-          })
-
-          userList.arr = data
-          if (userList.arr.length == 0) {
-            ElMessage.error('账号不存在!')
-            return
-          }
-          modal.showModal()
-          return
-          router.push('/')
-        } finally {
-          submitLoading.value = false
-        }
+        onLogin()
       }
     })
   }

+ 1 - 1
src/views/overview/index.vue

@@ -140,7 +140,7 @@
       color: '#E3E9F9'
     },
     {
-      value: '0~50',
+      value: '1~50',
       color: '#B4C2EA'
     },
     {