From 7298d5354963a88643a543b51b90192dc9fc934c Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 11 九月 2025 18:43:14 +0800
Subject: [PATCH] 最新版本541200007

---
 screen/src/views/FireFighting.vue | 2233 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 1,352 insertions(+), 881 deletions(-)

diff --git a/screen/src/views/FireFighting.vue b/screen/src/views/FireFighting.vue
index 864f2c5..04190af 100644
--- a/screen/src/views/FireFighting.vue
+++ b/screen/src/views/FireFighting.vue
@@ -1,10 +1,11 @@
 <template>
   <v-scale-screen width="1920" height="960">
     <div class="main_app">
-      <img src="@/assets/images/FireFighting/bg@2x.png" class="main_bg" alt="" />
+      <!-- <img src="@/assets/images/FireFighting/bg@2x.png" class="main_bg" alt="" /> -->
+      <img src="@/assets/images/SecurityControl/bg@2x_2.png" class="main_bg" alt="" />
       <div class="main_header">
-        <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" />
-        <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-娑堥槻鎬佸娍鐩戞帶</div>
+        <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
+        <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-鏅烘収娑堥槻绠℃帶</div>
         <div class="time_wrap">
           <span class="date">{{ date }}</span>
           <span class="week">{{ week }}</span>
@@ -13,175 +14,228 @@
       </div>
       <div class="main_content">
         <div class="left_box">
-          <div class="left_box_one">
-            <div class="com_header">
-              <div class="title">
-                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-                <div>浠婃棩鍚勭郴缁熻澶囩姸鎬佸強鍛婅鏁�</div>
-              </div>
-              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-            </div>
-            <div class="list_wrap">
-              <div class="list">
-                <div class="header line">
-                  <span class="item name">璁惧绫诲瀷</span>
-                  <span class="item">鎬绘暟</span>
-                  <span class="item">鎶ヨ</span>
-                  <span class="item">灞忚斀</span>
-                  <span class="item">鏁呴殰</span>
-                  <span class="item">绂荤嚎</span>
-                </div>
-                <template v-for="i in 5">
-                  <div class="line">
-                    <span class="item name">鐏伓鎶ヨ绯荤粺</span>
-                    <span class="item">11</span>
-                    <span class="item">11</span>
-                    <span class="item">11</span>
-                    <span class="item">11</span>
-                    <span class="item">11</span>
-                  </div>
-                  <div class="separate"></div>
-                </template>
-              </div>
-            </div>
-          </div>
-          <div class="left_box_two">
-            <div class="com_header">
-              <div class="title">
-                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-                <div>鎶ヨ淇℃伅</div>
-              </div>
-              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-            </div>
-            <div class="police_wrap">
-              <div class="echart1" id="echart1"></div>
-            </div>
-          </div>
-          <div class="left_box_three">
-            <div class="com_header">
-              <div class="title">
-                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-                <div>鍛婅澶勭悊鍒嗘瀽</div>
-              </div>
-              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-            </div>
-            <div class="dispose_wrap">
-              <div class="echart2" id="echart2"></div>
-            </div>
-          </div>
-        </div>
-        <div class="center_box">
-          <div class="center_box_one">
-            <div class="static_wrap">
-              <div class="item">
-                <img src="@/assets/images/FireFighting/xiaofang_ic_zaixian@2x.png" alt="">
-                <div class="content">
-                  <div class="name">鍦ㄧ嚎</div>
-                  <div class="num">1000</div>
-                </div>
-              </div>
-              <div class="item">
-                <img src="@/assets/images/FireFighting/xiaofang_ic_baojing@2x.png" alt="">
-                <div class="content">
-                  <div class="name">鎶ヨ</div>
-                  <div class="num num2">12</div>
-                </div>
-              </div>
-              <div class="item">
-                <img src="@/assets/images/FireFighting/xiaofang_ic_guzhang@2x.png" alt="">
-                <div class="content">
-                  <div class="name">鏁呴殰</div>
-                  <div class="num num3">12</div>
-                </div>
-              </div>
-              <div class="item">
-                <img src="@/assets/images/FireFighting/xiaofang_ic_lixian@2x.png" alt="">
-                <div class="content">
-                  <div class="name">绂荤嚎</div>
-                  <div class="num num4">12</div>
-                </div>
-              </div>
-              <div class="item">
-                <img src="@/assets/images/FireFighting/xiaofang_ic_pingbi@2x.png" alt="">
-                <div class="content">
-                  <div class="name">灞忚斀</div>
-                  <div class="num num5">12</div>
-                </div>
-              </div>
-            </div>
-          </div>
-          <div class="center_box_two">
-            <div class="content_wrap">
-              <div class="header">
-                <div class="left">
-                  <img class="icon" src="@/assets/images/FireFighting/468@2x.png" alt="">
-                  <span>娓╁害/婀垮害浼犳劅鍣�</span>
-                </div>
-                <div class="right">
-                  <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png" alt="">
-                  <div class="num">1/5</div>
-                  <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png" alt="">
-                </div>
-              </div>
-              <div class="list_wrap">
-                <div class="title">
-                  <img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt="">
-                  <span>鍗歌揣鍖�1</span>
-                </div>
-                <div class="list">
-                  <div class="item">
-                    <img class="icon" src="@/assets/images/FireFighting/ic_wendu@2x.png" alt="">
-                    <div class="content">
-                      <div class="num">23<span>掳C</span></div>
-                      <div class="la">闃堝�� 0锝�100掳C</div>
-                    </div>
-                  </div>
-                  <div class="item">
-                    <img class="icon" src="@/assets/images/FireFighting/ic_shidu@2x.png" alt="">
-                    <div class="content">
-                      <div class="num">23<span>%</span></div>
-                      <div class="la">闃堝�� 0锝�100%</div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-            <div class="content_wrap">
-              <div class="header">
-                <div class="left">
-                  <img class="icon" src="@/assets/images/FireFighting/468@2x.png" alt="">
-                  <span>瀹炴椂浼犳劅鍣ㄦ娴�</span>
-                </div>
-                <div class="right">
-                  <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png" alt="">
-                  <div class="num">1/5</div>
-                  <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png" alt="">
-                </div>
-              </div>
-              <div class="list_wrap">
-                <div class="title_wrap">
-                  <div class="title">
-                    <img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt="">
-                    <span>1璺�/姘村帇</span>
-                  </div>
-                  <div class="title">
-                    <img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt="">
-                    <span>2璺�/娑蹭綅</span>
-                  </div>
-                </div>
-                <div class="list">
-                  <div class="watergage_wrap">
-                    <div class="watergage" id="watergage"></div>
-                    <div class="unit">2.50 <span>Mpa</span></div>
-                    <div class="place">闃堝�� 0锝�2.5Mpa</div>
-                  </div>
-                  <div class="item">
-                    <div class="liquidlevel_wrap">
-                      <div class="liquidlevel" id="liquidlevel"></div>
-                      <div class="unit">3.45 <span>M</span></div>
-                      <div class="place">闃堝�� 0锝�4.50M</div>
-                    </div>
+          <div class="left_box_top">
 
+            <div class="left_box_top_znz">
+              <img src="@/assets/images/ic_compass@2x.png" alt="" />
+            </div>
+
+            <div class="left_box_top_left">
+              <div class="left_box_one">
+                <div class="com_header">
+                  <div class="title">
+                    <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                    <div>娑堥槻璁惧/璁炬柦绠$悊</div>
+                  </div>
+                  <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+                </div>
+                <div class="left_content">
+                  <div class="tips">
+                    <div class="tips_title">
+                      <img src="@/assets/images/SecurityControl/ic_title_green@2x.png" alt="">
+                      <span>鏈勾娑堥槻璁惧/璁炬柦缁翠繚鎯呭喌</span>
+                    </div>
+                  </div>
+
+                  <div class="content_wrap">
+                    <div class="list">
+                      <div class="item">
+                        <div>宸茬淮淇�</div>
+                        <div class="num active">{{ dataList5.protectNum || 0 }}</div>
+                      </div>
+                      <div class="separate"></div>
+                      <div class="item">
+                        <div>璁″垝缁翠繚</div>
+                        <div class="num acc">{{ dataList5.planProtectTotal || 0 }}</div>
+                      </div>
+                      <div class="separate"></div>
+                      <div class="item">
+                        <div>缁翠繚鐜�</div>
+                        <div v-if="dataList5.protectNum && dataList5.planProtectTotal" class="acc num">{{
+                          ((dataList5.protectNum / dataList5.planProtectTotal) * 100).toFixed(0) }}%</div>
+                        <div v-else class="acc num">0%</div>
+                      </div>
+                    </div>
+                    <div class="footer">
+                      <img src="@/assets/images/FireFighting/ic_weixiu@2x.png" class="icon" alt="">
+                      <div class="content">
+                        <div>鏈湀鏂板缁翠繚</div>
+                        <div class="num">{{ dataList5.monthAddNum }} <span>涓�</span></div>
+                      </div>
+                    </div>
+                  </div>
+
+                  <div class="tips">
+                    <div class="tips_title">
+                      <img src="@/assets/images/SecurityControl/ic_title_green@2x.png" alt="">
+                      <span>绯荤粺璁惧鐘舵��</span>
+                    </div>
+                  </div>
+
+                  <div class="list_wrap">
+                    <div class="list">
+                      <div class="header line">
+                        <span class="item name" style="color: #FFFFFF;">璁惧鍚嶇О</span>
+                        <span class="item">鎬绘暟</span>
+                        <span class="item">鎶ヨ</span>
+                        <span class="item">灞忚斀</span>
+                        <span class="item">鏁呴殰</span>
+                        <span class="item">姝e父</span>
+                      </div>
+                      <div class="one-swiper list_content">
+                        <div class="swiper-wrapper">
+                          <div class="line_wrap one-swiper-slide swiper-slide" v-for="(item, i) in dataList1">
+                            <div class="line">
+                              <span class="item name">{{ item.typeName }}</span>
+                              <span class="item">{{ item.totalDeviceNum || 0 }}</span>
+                              <span class="item" style="color: #FEAF01;">{{ item.alarmDeviceNum || 0 }}</span>
+                              <span class="item">{{ item.shieldDeviceNum || 0 }}</span>
+                              <span class="item">{{ item.errDeviceNum || 0 }}</span>
+                              <span class="item">{{ item.onlineDeviceNum || 0 }}</span>
+                            </div>
+                            <div class="separate"></div>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                    <div class="list_wrap_footer" v-if="dataList1.length > 0">
+                      <div class="wrap_footer_item name" style="color: #fff;">鎬昏</div>
+                      <div class="wrap_footer_item">{{sum(dataList1, 'totalDeviceNum')}}</div>
+                      <div class="wrap_footer_item">{{sum(dataList1, 'alarmDeviceNum')}}</div>
+                      <div class="wrap_footer_item">{{sum(dataList1, 'shieldDeviceNum')}}</div>
+                      <div class="wrap_footer_item">{{sum(dataList1, 'errDeviceNum')}}</div>
+                      <div class="wrap_footer_item">{{sum(dataList1, 'onlineDeviceNum')}}</div>
+                      <div class="separate"></div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div class="left_box_top_right">
+              <div class="center_box_one">
+                <div class="static_wrap">
+                  <div class="item">
+                    <img src="@/assets/images/FireFighting/xiaofang_ic_baojing@2x.png" alt="">
+                    <div class="content">
+                      <div class="name">鎶ヨ鎬绘暟</div>
+                      <div class="num">{{ dayData.totalNum || 0 }}</div>
+                    </div>
+                  </div>
+                  <div class="item">
+                    <img src="@/assets/images/FireFighting/xiaofang_ic_guzhang@2x.png" alt="">
+                    <div class="content">
+                      <div class="name">鏈鐞�</div>
+                      <div class="num num2">{{ dayData.processingNum || 0 }}</div>
+                    </div>
+                  </div>
+                  <div class="item">
+                    <img src="@/assets/images/FireFighting/xiaofang_ic_zhengchang@2x.png" alt="">
+                    <div class="content">
+                      <div class="name">宸插鐞�</div>
+                      <div class="num num5">{{ dayData.liftNum || 0 }}</div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="left_box_bottom">
+            <div class="left_box_three">
+              <div class="com_header">
+                <div class="title">
+                  <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                  <div>娑堥槻鎬佸娍鎰熺煡</div>
+                </div>
+                <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+              </div>
+
+              <div class="bottom_content">
+
+                <div class="bottom_content_left" v-if="dataList8 && dataList8.length > 0">
+
+                  <div class="tips">
+                    <div class="tips_title">
+                      <img src="@/assets/images/SecurityControl/ic_title_green@2x.png" alt="">
+                      <span>閲嶇偣鍖哄煙娓╁害鐩戞祴</span>
+                    </div>
+                    <div class="right">
+                      <img @click="changeData8(-1)" class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png"
+                           alt="">
+                      <div class="num">{{ dataList8[dataIndex8].humidityData.name }}</div>
+                      <img @click="changeData8(1)" class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png"
+                           alt="">
+                    </div>
+                  </div>
+
+                  <div class="list_wrap">
+<!--                    <div class="title">-->
+<!--                      <img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt="">-->
+<!--                      <span v-if="dataList8 && dataList8.length > 0">{{ dataList8[dataIndex8].humidityData.name }}</span>-->
+<!--                    </div>-->
+                    <div class="list" v-if="dataList8 && dataList8.length > 0">
+                      <div class="item">
+                        <img class="icon" src="@/assets/images/FireFighting/ic_wendu@2x.png" alt="">
+                        <div class="content">
+                          <div class="num"
+                               v-if="dataList8[dataIndex8].temperatureData && dataList8[dataIndex8].temperatureData.latestValue">
+                            {{ Number(dataList8[dataIndex8].temperatureData.latestValue).toFixed(1) }}<span>掳C</span></div>
+                          <div class="la">闃堝�� {{ dataList8[dataIndex8].temperatureData?.alarmLow }}锝瀧{
+                            dataList8[dataIndex8].temperatureData?.alarmHigh }}掳C</div>
+                        </div>
+                      </div>
+                      <div class="item">
+                        <img class="icon" src="@/assets/images/FireFighting/ic_shidu@2x.png" alt="">
+                        <div class="content">
+                          <div class="num"
+                               v-if="dataList8[dataIndex8].humidityData && dataList8[dataIndex8].humidityData.latestValue">{{
+                            Number(dataList8[dataIndex8].humidityData.latestValue).toFixed(1) }}<span>%</span></div>
+                          <div class="la">闃堝�� {{ dataList8[dataIndex8].humidityData?.alarmLow }}锝瀧{
+                            dataList8[dataIndex8].humidityData?.alarmHigh }}%</div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+
+                </div>
+                <div class="bottom_content_right">
+
+                  <div class="tips">
+                    <div class="tips_title">
+                      <img src="@/assets/images/SecurityControl/ic_title_green@2x.png" alt="">
+                      <span>姘村帇姘翠綅鐩戞祴</span>
+                    </div>
+                    <div class="right">
+                      <img @click="changeData9(-1)" class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png"
+                           alt="">
+                      <div class="num">{{ dataIndex9 + 1 }}/{{ dataTotal9 }}</div>
+                      <img @click="changeData9(1)" class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png"
+                           alt="">
+                    </div>
+                  </div>
+
+                  <div class="list_wrap2">
+                    <div class="item" v-for="(item, i) in dataListTemp9" :key="i">
+                      <div class="watergage_wrap" v-if="item.obj.typeCode == 253958">
+                        <div class="watergage" :id="'watergage' + i"></div>
+                      </div>
+                      <div v-if="item.obj.typeCode == 254001" class="liquidlevel_wrap">
+                        <img src="@/assets/images/size.png" alt="" class="size" />
+                        <div class="liquidlevel" :id="'liquidlevel' + i"></div>
+                      </div>
+                      <div class="list_wrap2_info">
+                        <div class="title">
+                          <img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt="">
+                          <span>{{ item.name }}</span>
+                        </div>
+                        <div class="unit">
+                          <span>{{ item.obj.value.substring(0, item.obj.value.indexOf('M')) }}</span>
+                          <span>{{ item.obj.value.substring(item.obj.value.indexOf('M'), item.obj.value.length) }}</span>
+                        </div>
+                        <div class="place">闃堝�� {{ item.level }}</div>
+                      </div>
+                    </div>
+                    <div class="item1"></div>
+                    <div class="item1"></div>
                   </div>
                 </div>
               </div>
@@ -193,88 +247,92 @@
             <div class="com_header">
               <div class="title">
                 <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-                <div>鏈勾娑堥槻璁惧/璁炬柦缁翠繚鎯呭喌</div>
+                <div>娑堥槻鎶ヨ闂幆绠$悊</div>
               </div>
               <img src="@/assets/images/title@2x.png" class="bg" alt="" />
             </div>
-            <div class="content_wrap">
-              <div class="list">
-                <template v-for="i in 3">
-                  <div class="item">
-                    <div>宸茬淮淇�</div>
-                    <div class="num active">500</div>
-                  </div>
-                  <div v-if="i < 3" class="separate"></div>
-                </template>
+            <div class="right_content">
+              <div class="tips">
+                <div class="tips_title">
+                  <img src="@/assets/images/SecurityControl/ic_title_green@2x.png" alt="">
+                  <span>
+                    <template v-if="dateType === '1'">鏈湀</template>
+                    <template v-else-if="dateType === '2'">鏈勾</template>
+                    <template v-else>浠婃棩</template>鎶ヨ
+                  </span>
+                </div>
+                <div class="tips_cates">
+                  <div :class="!dateType ? 'tips_cates_row active' : 'tips_cates_row'" @click="getData2('')">浠婃棩</div>
+                  <div class="tips_cates_x">|</div>
+                  <div :class="dateType === '1' ? 'tips_cates_row active' : 'tips_cates_row'" @click="getData2('1')">鏈湀</div>
+                  <div class="tips_cates_x">|</div>
+                  <div :class="dateType === '2' ? 'tips_cates_row active' : 'tips_cates_row'" @click="getData2('2')">鏈勾</div>
+                </div>
+              </div>
 
-              </div>
-              <div class="footer">
-                <img src="@/assets/images/FireFighting/ic_weixiu@2x.png" class="icon" alt="">
-                <div class="content">
-                  <div>鏈湀鏂板缁翠繚</div>
-                  <div class="num">40 <span>涓�</span></div>
-                </div>
-              </div>
-            </div>
-          </div>
-          <div class="right_box_two">
-            <div class="com_header">
-              <div class="title">
-                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-                <div>浠婃棩闅愭偅/鍛婅</div>
-              </div>
-              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-            </div>
-            <div class="su_title">
-              <img class="icon" src="@/assets/images/FireFighting/ic_title_green@2x.png" alt="">
-              <div class="name">闅愭偅闅忔墜鎷�</div>
-            </div>
-            <div class="static_wrap">
-              <div class="item">
-                <img src="@/assets/images/FireFighting/ic_tibao@2x.png" alt="">
-                <div class="content">
-                  <div class="name">鎻愭姤闅愭偅鏁�</div>
-                  <div class="num"><span>10</span>涓�</div>
-                </div>
-              </div>
-              <div class="item">
-                <img src="@/assets/images/FireFighting/ic_chuli@2x.png" alt="">
-                <div class="content">
-                  <div class="name">澶勭悊闅愭偅鏁�</div>
-                  <div class="num"><span class="today">3</span>涓�</div>
-                </div>
-              </div>
-            </div>
-            <div class="su_title">
-              <img class="icon" src="@/assets/images/FireFighting/ic_title_green@2x.png" alt="">
-              <div class="name">鍛婅淇℃伅</div>
-            </div>
-            <div class="list">
-              <div class="item" v-for="i in 5">
-                <div class="icon">
-                  <div class="circle"></div>
-                  <div class="line"></div>
-                </div>
-                <div class="content">
-                  <div class="header">
-                    <div class="time">
-                      <span>123</span>
-                      <span class="status">澶勭悊涓�</span>
-                    </div>
-                    <div class="have_time">宸茬粡鍙戠敓<span>1</span>鍒嗛挓</div>
+              <div class="police_wrap">
+                <div class="item" v-for="(item, i) in dataList2">
+                  <div class="head">
+                    <div class="name">{{ item.name }}</div>
+                    <div class="name">{{ item.num }}娆�</div>
                   </div>
-                  <div class="wrap">
-                    <div class="title">
-                      <img class="xf" src="@/assets/images/FireFighting/ic_gaojing_red@2x.png" alt="">
-                      <span>娑堥槻璀﹀憡</span>
+                  <FirePercent :color="policeColors[i]" :rate="item.rate" />
+                </div>
+              </div>
+
+              <div class="dispose_wrap">
+                <div class="tips">
+                  <div class="tips_title">
+                    <img src="@/assets/images/SecurityControl/ic_title_green@2x.png" alt="">
+                    <span>鎶ヨ瓒嬪娍</span>
+                  </div>
+                </div>
+                <div class="echart2" id="echart2"></div>
+              </div>
+
+              <div class="tips">
+                <div class="tips_title">
+                  <img src="@/assets/images/SecurityControl/ic_title_green@2x.png" alt="">
+                  <span>鎶ヨ鏄庣粏</span>
+                </div>
+              </div>
+
+              <div class="list two-swiper">
+                <div class="swiper-wrapper">
+                  <div class="item two-swiper-slide swiper-slide" v-for="(item, i) in dataList7" :key="i">
+                    <div class="icon">
+                      <div class="circle"></div>
+                      <div class="line"></div>
                     </div>
-                    <div class="title">
-                      <img class="addr" src="@/assets/images/FireFighting/xiaofang_ic_weizhi@2x.png" alt="">
-                      <span>address</span>
+                    <div class="content">
+                      <div class="header">
+                        <div class="time">
+                          <span>{{ item.alarmTime }}</span>
+                          <span class="status" v-if="item.handleStatus == 1">宸叉牳瀹�</span>
+                          <span class="status" v-else-if="item.handleStatus == 2">鏈牳瀹�</span>
+                          <span class="status" v-else-if="item.handleStatus == 3">鏍稿疄涓�</span>
+                          <span v-else class="status">鏈牳瀹�</span>
+                        </div>
+                        <div class="have_time">宸插彂鐢焮{ item.haveTime }}</div>
+                      </div>
+                      <div class="wrap">
+                        <div class="title">
+                          <img class="xf" src="@/assets/images/FireFighting/ic_gaojing_red@2x.png" alt="">
+                          <span>{{ item.alarmTypeName }}</span>
+                        </div>
+                        <div class="title">
+                          <img class="addr" src="@/assets/images/FireFighting/xiaofang_ic_weizhi@2x.png" alt="">
+                          <span>{{ item.regionName }}</span>
+                        </div>
+                      </div>
                     </div>
+                  </div>
+                  <div v-if="dataList7.length == 0" style="margin-top: 50px;" class="empty_wrap">
+                    <img src="@/assets/images/default_empty.png" alt="">
                   </div>
                 </div>
               </div>
+
             </div>
           </div>
         </div>
@@ -284,17 +342,32 @@
 </template>
 
 <script setup>
-import { ref, onMounted } from 'vue'
+import { ref, onMounted, nextTick } from 'vue'
 import VScaleScreen from 'v-scale-screen'
-import Percent from '@/components/percent.vue'
+import FirePercent from '@/components/FirePercent.vue'
 import dayjs from 'dayjs'
-
+import duration from 'dayjs/plugin/duration'
+dayjs.extend(duration)
 import * as echarts from 'echarts'
+import 'swiper/css/swiper.min.css'
+import Swiper from 'swiper'
+import {
+  getFightingalarmData,
+  getFightingHandle,
+  getFightingcenterData,
+  getFightingDeAlarm,
+  getFightingDeviceY,
+  getFighalarmDataList,
+  getTemperatureHumidityData,
+  monitorDataListP
+} from '@/api'
+
 const colors = ['#FEAF01', '#01ABFE', '#51F9E4']
 const weekMap = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�',]
 const date = ref(dayjs().format('YYYY.MM.DD'))
 const week = ref(weekMap[new Date().getDay()])
 const time = ref(dayjs().format('HH:mm:ss'))
+var dateType = ref('')
 setInterval(() => {
   date.value = dayjs().format('YYYY-MM-DD')
   week.value = weekMap[new Date().getDay()]
@@ -302,105 +375,25 @@
 
 }, 1000)
 
-const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a']
-const initEnergy = () => {
-  var myChart = echarts.init(document.querySelector('.energyRef'))
-  // 缁樺埗鍥捐〃
-  const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a']
-  myChart.setOption({
-    grid: {
-      top: '20%',
-      left: '2%',
-      right: '2%',
-      bottom: '4%',
-      containLabel: true
-    },
-    tooltip: {
-      trigger: 'axis',
-      axisPointer: {
-        type: 'line'
-      },
-    },
-    xAxis: {
-      type: 'category',
-      data: [1, 2, 3, 4, 4, 5]
-    },
-    yAxis: {
-      type: 'value',
-      name: 'kw路h',
-      nameTextStyle: {
-        padding: [0, 0, 4, -30]    // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
-      },
-      splitLine: {
-        show: true,
-        lineStyle: {
-          //杩欓噷杈撳叆绾挎潯鐨勬牱寮�
-          color: 'rgba(255,255,255,0.14)',
-        }
-      }
-    },
-    series: [
-      {
-        data: [1, 2, 3, 4, 5],
-        type: 'bar',
-        barWidth: 10,
-        itemStyle: {
-          normal: {
-            color: new echarts.graphic.LinearGradient(
-              0, 0, 0, 1,
-              [
-                { offset: 0, color: arr[1] },
-                { offset: 1, color: '#080807' }
-              ]
-            ),
-            barBorderRadius: [10, 10, 0, 0]
-          }
-        }
-      }
-    ]
-  })
-  window.addEventListener('resize', function () {//鎵ц
-    myChart.resize()
-  })
-}
-const initEchart1 = () => {
-  const myChart = echarts.init(document.getElementById('echart1'))
-  const option = {
-    series: [
 
-      {
-        type: 'pie',
-        radius: ['86%', '100%'],
-        label: {
-          show: false,
-          position: 'center'
-        },
-        padAngle: 5,
-        itemStyle: {
-          borderRadius: 10
-        },
-        color: colors,
-        labelLine: {
-          show: false
-        },
-        data: [
-          { value: 1048, name: 'Search Engine' },
-          { value: 735, name: 'Direct' },
-          { value: 580, name: 'Email' }
-        ]
-      }
-    ]
-  }
-  myChart.setOption(option)
-  window.addEventListener('resize', function () { // 鎵ц
-    myChart.resize()
-  })
-}
-const initWatergage = () => {
-  const myChart = echarts.init(document.getElementById('watergage'))
-  var data_value = 2
+const initWatergage = (id, item) => {
+  const myChart = echarts.init(document.getElementById(id))
+  var data_value = item.obj.value.replaceAll('Mpa', '')
+  // const startI = item.level.indexOf('-')
+  // const endI = item.level.indexOf('Mpa')
+  // let maxNum = item.level.slice(startI + 1, endI)
+  // let minNum = item.level.slice(0, startI)
+  let maxNum = item.max
+  let minNum = item.min
+  // let maxNum =
   const option = {
     barMaxWidth: 3,
+    mapLocation: {
+      x: '0',
+      y: '0',
+      width: '100%',
+      height: '100%'
+    },
     polar: {
       radius: '80%'
     },
@@ -425,8 +418,8 @@
     series: [
       {
         type: 'gauge',
-        min: 0,
-        max: 2.50,
+        min: minNum,
+        max: maxNum,
         splitNumber: 5,
         radius: '100%',
         center: ['50%', '50%'],
@@ -558,9 +551,19 @@
     myChart.resize()
   })
 }
-const initLiquidlevel = () => {
-  const myChart = echarts.init(document.getElementById('liquidlevel'))
-  var data = 65
+const initLiquidlevel = (id, item) => {
+  const myChart = echarts.init(document.getElementById(id))
+  // const startI = item.level.indexOf('-')
+  // const endI = item.level.indexOf('M')
+  // let maxNum = item.level.slice(startI + 1, endI)
+  // let minNum = item.level.slice(0, startI)
+  let maxNum = item.max
+  let minNum = item.min
+  let conNum = maxNum
+  let acNum = item.obj.value.replaceAll('M', '')
+  var data = (((acNum - minNum) / conNum) * 100).toFixed(0)
+  console.log('data', data)
+
   const option = {
     tooltip: {
       trigger: 'none',
@@ -598,7 +601,7 @@
       {
         name: '鏈�涓婂眰绔嬩綋鍦�',
         type: 'pictorialBar',
-        symbolSize: [260, 40],
+        symbolSize: [182, 40],
         symbolOffset: [0, -20],
         z: 12,
         itemStyle: {
@@ -616,7 +619,7 @@
       {
         name: '涓棿绔嬩綋鍦�',
         type: 'pictorialBar',
-        symbolSize: [260, 40],
+        symbolSize: [182, 40],
         symbolOffset: [0, -20],
         z: 12,
         itemStyle: {
@@ -649,7 +652,7 @@
       {
         name: '鏈�搴曢儴绔嬩綋鍦�',
         type: 'pictorialBar',
-        symbolSize: [260, 40],
+        symbolSize: [182, 40],
         symbolOffset: [0, 20],
         z: 12,
         itemStyle: {
@@ -698,9 +701,9 @@
         label: {
           distance: 15,
           show: true,
-          position: data > 58 ? 'inside' : 'top',
+          position: data > 52 ? 'inside' : 'top',
           formatter: '{c}' + '%',
-          fontSize: 80,
+          fontSize: 72,
           color: '#1AFCFF',
           textShadowColor: '#03C7F9',
           textShadowBlur: 30,
@@ -761,19 +764,401 @@
   })
 }
 
+const dataList1 = ref([])
+const policeColors = ['#FE5501', '#01D9FE', '#01FE9D', '#FFF306']
+const dataList2 = ref([])
+let dayData = ref([])
+
+const getDayData = () => {
+  getFightingalarmData().then(res => {
+    dayData.value = res.data || {}
+  })
+}
+
+const getData2 = (type) => {
+  dateType.value = type
+  getFightingalarmData({ type: dateType.value }).then(res => {
+    const result = res.data || {}
+    let temp = []
+    temp.push({ name: '宸插鐞�', num: result.liftNum, rate: (result.liftNum / result.totalNum) * 100 })
+    temp.push({ name: '鏈鐞�', num: result.processingNum, rate: (result.processingNum / result.totalNum) * 100 })
+    temp.push({ name: '姝f姤璀︽暟', num: result.liftNum - result.errNum, rate: ((result.liftNum - result.errNum) / result.totalNum) * 100 })
+    temp.push({ name: '璇姤璀︽暟', num: result.errNum, rate: (result.errNum / result.totalNum) * 100 })
+    dataList2.value = temp
+  })
+}
+
+const dataList3 = ref([])
+const getData3 = () => {
+  getFightingHandle({ type: 0 }).then(res => {
+    dataList3.value = res.data || []
+    initEchart2()
+  })
+}
+const initEchart2 = () => {
+  var myChart = echarts.init(document.querySelector('.echart2'))
+  // 绀轰緥鏁版嵁
+  const data1 = dataList3.value.map(i => i.realNum)
+  const data2 = dataList3.value.map(i => i.processingNum)
+  const data3 = dataList3.value.map(i => i.liftNum)
+  const months = dataList3.value.map(i => {
+    return i.startDate.substring(5, 7) + '鏈�'
+  })
+
+
+  const option = {
+    legend: {
+      x: "right",
+      textStyle: {
+        color: "#FFFFFF",
+        fontSize: 12
+      },
+      icon: 'circle',
+      top: '0',
+      itemWidth: 10,
+      itemHeight: 10,
+      itemGap: 20,
+      data: ['鎶ヨ鏁�', '鏈鐞�', '宸插鐞�']
+    },
+    grid: {
+      left: '2%',
+      right: '0%',
+      top: '20%',
+      bottom: '10%',
+      containLabel: true,
+    },
+    tooltip: {
+      trigger: "axis",
+      axisPointer: {
+        type: "shadow"
+      },
+      textStyle: {
+        color: "rgba(255, 255, 255, 1)"
+      },
+      backgroundColor: "rgba(0,0,0,0.8)",
+      borderColor: "rgba(219, 230, 255, 0.8)",
+    },
+    xAxis: {
+      data: months,
+      axisLabel: {
+        color: "#FFFFFF", // X 杞存枃瀛楄涓虹櫧鑹�
+        fontSize: 13,
+      },
+      axisLine: {
+        lineStyle: {
+          color: '#D2E0FF'
+        }
+      },
+      axisTick: {
+        show: false
+      }
+    },
+    yAxis: {
+      show: true,
+      axisLabel: {
+        color: "#FFFFFF", // Y 杞存枃瀛楄涓虹櫧鑹�
+        fontSize: 12,
+      },
+      axisLine: {
+        lineStyle: {
+          color: '#D2E0FF'
+        }
+      },
+      axisTick: {
+        lineStyle: {
+          color: '#A9AEB2'
+        }
+      },
+      splitLine: {
+        show: true,
+        lineStyle: {
+          color: ["#0f1d27"],
+          width: 1
+        },
+      },
+    },
+    series: [
+      {
+        name: "鎶ヨ鏁�",
+        type: "bar",
+        stack: "attendance",
+        data: data1,
+        itemStyle: {
+          color: '#FEAF01',
+        },
+        label: {
+          show: false,
+          color: "#FFFFFF",
+        },
+        emphasis: {
+          focus: "series",
+        },
+        barWidth: 6,
+      },
+      {
+        name: "鏈鐞�", // 杩熷埌鏁版嵁
+        type: "bar",
+        stack: "attendance",
+        data: data2,
+        itemStyle: {
+          color: '#FE5501', // 杩熷埌鐨勯鑹�
+        },
+        label: {
+          show: false,
+          color: "#FFFFFF",
+        },
+        emphasis: {
+          focus: "series",
+        },
+      },
+      {
+        name: "宸插鐞�", // 璇峰亣鏁版嵁
+        type: "bar",
+        stack: "attendance",
+        data: data3,
+        itemStyle: {
+          color: '#01D9FE', // 璇峰亣鐨勯鑹�
+        },
+        label: {
+          show: false,
+          color: "#FFFFFF",
+        },
+        emphasis: {
+          focus: "series",
+        },
+      }
+    ],
+  }
+  myChart.setOption(option)
+  window.addEventListener('resize', function () {//鎵ц
+    myChart.resize()
+  })
+}
+
+const dataList4 = ref({})
+const getData4 = () => {
+  getFightingcenterData().then(res => {
+    dataList4.value = res.data || {}
+    dataList1.value = res.data.deviceTypeList
+  })
+}
+const dataList5 = ref({}) // 缁翠繚
+const getData5 = () => {
+  getFightingDeviceY().then(res => {
+    dataList5.value = res.data || {}
+  })
+}
+const dataList6 = ref([])
+const getData6 = () => {
+  getFightingHandle({ type: 1 }).then(res => {
+    dataList6.value = res.data
+  })
+}
+const dataList7 = ref([])
+const getData7 = () => {
+  getFighalarmDataList().then(res => {
+    dataList7.value = res.data || []
+    dataList7.value = dataList7.value.map(item => {
+      let times = new Date().getTime() - new Date(item.alarmTime).getTime()
+      if (times > 86400000) {
+        item.haveTime = dayjs.duration(times).format('D澶〩灏忔椂m鍒嗛挓')
+      } else if (times > 3600000) {
+        item.haveTime = dayjs.duration(times).format('H灏忔椂m鍒嗛挓')
+      } else {
+        item.haveTime = dayjs.duration(times).format('m鍒嗛挓')
+      }
+      return item
+    })
+  })
+}
+
+const dataList8 = ref([])
+const dataIndex8 = ref(0)
+
+const dataList9 = ref([])
+const dataListTemp9 = ref([])
+const dataIndex9 = ref(0)
+const dataTotal9 = ref(0)
+
+const getData8 = () => {
+  getTemperatureHumidityData().then(res => {
+    dataList8.value = res.data || []
+  })
+  monitorDataListP().then(res => {
+    dataList9.value = res.data || []
+    dataList9.value.forEach(item => {
+      if (item.dataList && item.dataList.length > 0) {
+        item.obj = item.dataList[0]
+      }
+    })
+    if (dataList9.value.length > 0) {
+      dataTotal9.value = Math.ceil(dataList9.value.length / 4)
+      dataListTemp9.value = dataList9.value.slice(0, 4)
+    }
+    console.log(dataListTemp9.value)
+    initEcharts9()
+  })
+}
+const changeData8 = (num) => {
+  if (dataIndex8.value == dataList8.value.length - 1 && num > 0) {
+    dataIndex8.value = 0
+  } else if (dataIndex8.value == 0 && num < 0) {
+    dataIndex8.value = dataList8.value.length - 1
+  } else {
+    dataIndex8.value = dataIndex8.value + num
+  }
+}
+const changeData9 = (num) => {
+  // return
+  if (dataIndex9.value == dataTotal9.value - 1 && num > 0) {
+    dataIndex9.value = 0
+    dataListTemp9.value = dataList9.value.slice(0, 4)
+  } else if (dataIndex9.value == 0 && num < 0) {
+    dataIndex9.value = dataTotal9.value - 1
+    dataListTemp9.value = dataList9.value.slice(dataList9.value.length - 4, dataList9.value.length)
+  } else {
+    dataIndex9.value = dataIndex9.value + num
+    dataListTemp9.value = dataList9.value.slice(dataIndex9.value * 4, (dataIndex9.value + 1) * 4)
+  }
+  initEcharts9()
+}
+const initEcharts9 = () => {
+  dataListTemp9.value.forEach((item, i) => {
+
+    if (item.obj && item.obj.typeCode == 253958) {
+      nextTick(() => {
+        initWatergage('watergage' + i, item)
+      })
+    }
+    if (item.obj && item.obj.typeCode == 254001) {
+      nextTick(() => {
+        initLiquidlevel('liquidlevel' + i, item)
+      })
+    }
+  })
+}
+
+
+const autoplayFlag = (list = [], leng = 4, time = 2000) => {
+  if (list.length > leng) {
+    return { delay: time, disableOnInteraction: false }
+  } else {
+    return false
+  }
+}
+
+const sum = (array, field) => {
+  return array.reduce((accumulator, currentValue) => {
+    return accumulator + currentValue[field];
+  }, 0);
+}
+
+const loopFn1 = () => {
+  var newSwiper1 = new Swiper('.one-swiper', {
+    initialSlide: 0,
+    direction: 'vertical', //绔栫洿鏂瑰悜
+    slidesPerView: 5,
+    autoplay: autoplayFlag(dataList1.value, 5, 4000),
+    observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
+  })
+}
+const loopFn2 = () => {
+  var newSwiper1 = new Swiper('.two-swiper', {
+    initialSlide: 0,
+    direction: 'vertical', //绔栫洿鏂瑰悜
+    slidesPerView: 3,
+    autoplay: autoplayFlag(dataList7.value, 3, 4000),
+    observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
+  })
+}
+
 onMounted(() => {
-  // initEnergy()
-  // initEchart1()
-  initWatergage()
-  initLiquidlevel()
+  getDayData()
+  getData2()
+  getData3()
+  getData4()
+  getData5()
+  getData7()
+  getData8()
+  setInterval(() => {
+    getData2()
+    getData3()
+    getData4()
+    getData7()
+  }, 60 * 1000)
+  setInterval(() => {
+    getData5()
+    getData8()
+  }, 60 * 60 * 1000)
+  setInterval(() => {
+    changeData8(1)
+    changeData9(1)
+  }, 1000 * 5)
+  setTimeout(() => {
+    loopFn1()
+    loopFn2()
+  }, 12000)
 })
-
-
 </script>
 
 <style lang="scss" scoped>
 div {
   box-sizing: border-box;
+}
+.tips {
+  width: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  .tips_title {
+    flex-shrink: 0;
+    display: flex;
+    align-items: center;
+    margin-right: 30px;
+    img {
+      width: 17px;
+      height: 17px;
+      margin-right: 7px;
+    }
+    span {
+      font-weight: 500;
+      font-size: 16px;
+      color: #FFFFFF;
+    }
+  }
+  .tips_cates {
+    display: flex;
+    align-items: center;
+    .tips_cates_row {
+      font-weight: 600;
+      font-size: 14px;
+      color: #D2E0FF;
+      cursor: pointer;
+    }
+    .tips_cates_x {
+      margin: 0 8px;
+      font-weight: 600;
+      font-size: 14px;
+      color: #D2E0FF;
+    }
+    .active {
+      color: #0094EB !important;
+    }
+  }
+  .right {
+    display: flex;
+    align-items: center;
+
+    .num {
+      margin: 0 5px;
+    }
+
+    .icon {
+      width: 30px;
+      cursor: pointer;
+      /* height: 16px; */
+    }
+  }
 }
 
 .main_content {
@@ -781,94 +1166,482 @@
   padding: 20px 25px 0;
 
   .left_box {
-    width: 450px;
+    /*width: 450px;*/
+    flex: 1;
+    margin-right: 20px;
 
-    .left_box_one {
+    .left_box_top {
       width: 100%;
-      margin-bottom: 20px;
-      border: 1px solid;
+      display: flex;
+      align-items: start;
+      position: relative;
 
-      .list_wrap {
-        padding: 10px 0;
-        height: 227px;
-        overflow: auto;
+      .left_box_top_znz {
+        width: 68px;
+        height: 68px;
+        position: absolute;
+        right: 0;
+        top: 120px;
+        img {
+          width: 100%;
+          height: 100%;
+        }
+      }
 
-        .list {
-          .line {
-            display: flex;
-            height: 32px;
-            align-items: center;
-            font-size: 14px;
+      .left_box_top_left {
+        width: 450px;
+        flex-shrink: 0;
 
-            .item {
-              flex: 1;
-              display: flex;
-              justify-content: center;
-              align-items: center;
-              white-space: nowrap;
-              overflow: hidden;
-              text-overflow: ellipsis;
+        .left_box_one {
+          width: 100%;
+          margin-bottom: 20px;
+
+          .left_content {
+            width: 100%;
+            height: 549px;
+            padding: 20px;
+            box-sizing: border-box;
+            background: rgba(255,255,255,0.03);
+
+            .list_wrap {
+              padding: 10px 0;
+
+              .list_wrap_footer {
+                width: 100%;
+                height: 40px;
+                display: flex;
+                align-items: center;
+                position: relative;
+                .separate {
+                  position: absolute;
+                  bottom: 0;
+                  left: 0;
+                  width: 100%;
+                  height: 2px;
+                  background-color: rgba(255, 255, 255, 0.2);
+                  /* background-color: red; */
+                  border-right: 4px solid #00F2F3;
+                  border-left: 4px solid #00F2F3;
+                }
+                .wrap_footer_item {
+                  display: flex;
+                  align-items: center;
+                  justify-content: center;
+                  flex: 2;
+                  white-space: nowrap;
+                  overflow: hidden;
+                  text-overflow: ellipsis;
+                }
+                .name {
+                  flex: 5;
+                  color: #00F2F3;
+                }
+              }
+
+              .list_content {
+                height: 204px;
+                overflow: hidden;
+
+                .line_wrap {
+                  height: 40px !important;
+                }
+              }
+
+              .list {
+                .line {
+                  display: flex;
+                  height: 40px;
+                  align-items: center;
+                  font-size: 14px;
+
+                  .item {
+                    flex: 2;
+                    display: flex;
+                    justify-content: center;
+                    /* margin: 0 6px; */
+                    align-items: center;
+                    white-space: nowrap;
+                    overflow: hidden;
+                    text-overflow: ellipsis;
+
+                  }
+
+                  .name {
+                    flex: 5;
+                    color: #00F2F3;
+                  }
+
+                  .warnning {
+                    color: #FEAF01;
+                  }
+                }
+
+                .header {
+                  background: rgba(134, 156, 201, 0.1);
+                  font-weight: 500;
+
+                  .item {
+                    border-right: 1px solid rgba(255, 255, 255, 0.2);
+
+                    &:nth-last-child(1) {
+                      border: none;
+                    }
+                  }
+                }
+
+                .separate {
+                  width: 100%;
+                  height: 2px;
+                  background-color: rgba(255, 255, 255, 0.2);
+                  /* background-color: red; */
+                  border-right: 4px solid #00F2F3;
+                  border-left: 4px solid #00F2F3;
+                }
+              }
             }
 
-            .name {
-              flex: 2;
+            .content_wrap {
+              height: 176px;
+
+              .list {
+                display: flex;
+                align-items: center;
+
+                .item {
+                  height: 116px;
+                  flex: 1;
+                  display: flex;
+                  flex-direction: column;
+                  justify-content: center;
+                  align-items: center;
+
+                  .num {
+                    margin-top: 12px;
+                    font-weight: bold;
+                    font-size: 32px;
+
+                  }
+
+                  .acc {
+                    background-image: -webkit-linear-gradient(top,
+                            #ffffff 0%,
+                            #c8ddff 66%,
+                            #95eefc 72%,
+                            #95eefc 100%);
+                    -webkit-background-clip: text;
+                    -webkit-text-fill-color: transparent;
+                  }
+
+                  .active {
+                    color: #00F2F3;
+                  }
+                }
+
+                .separate {
+                  width: 1px;
+                  height: 50px;
+                  background-color: rgba(255, 255, 255, 0.21);
+                }
+              }
+
+              .footer {
+                display: flex;
+
+                .icon {
+                  width: 40px;
+                  height: 41px;
+                  margin-right: 2px;
+                }
+
+                .content {
+                  flex: 1;
+                  font-size: 16px;
+                  height: 40px;
+                  display: flex;
+                  justify-content: space-between;
+                  align-items: center;
+                  padding: 0 20px;
+                  background: linear-gradient(270deg, rgba(1, 217, 254, 0) 0%, rgba(1, 217, 254, 0.19) 100%);
+                  border: 1px solid;
+                  border-image: linear-gradient(270deg, rgba(1, 217, 254, 0), rgba(1, 217, 254, 0.6)) 1 1;
+
+                  .num {
+                    font-size: 20px;
+                    font-weight: bold;
+
+                    span {
+                      font-size: 13px;
+                      color: #869CC9;
+                    }
+                  }
+                }
+              }
             }
 
-            .warnning {
-              color: #FEAF01;
-            }
           }
 
-          .header {
-            background: rgba(134, 156, 201, 0.1);
-            font-weight: 500;
+        }
+      }
+      .left_box_top_right {
+        flex: 1;
+
+        .center_box_one {
+          width: 100%;
+          padding: 0 120px;
+          box-sizing: border-box;
+          .static_wrap {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            margin: 30px 0 54px;
 
             .item {
-              border-right: 1px solid rgba(255, 255, 255, 0.2);
+              display: flex;
 
-              &:nth-last-child(1) {
-                border: none;
+              img {
+                width: 61px;
+                height: 63px;
+                margin-right: 15px;
+              }
+
+              .content {
+                font-size: 15px;
+                .num {
+                  font-weight: bold;
+                  font-size: 30px;
+                  margin-right: 5px;
+                  background-image: -webkit-linear-gradient(top,
+                    rgba(254, 113, 1, 1) 0%,
+                    rgba(239, 202, 16, 1) 100%);
+                  -webkit-background-clip: text;
+                  -webkit-text-fill-color: transparent;
+                }
+                .num2 {
+                  background-image: -webkit-linear-gradient(top,
+                          #fff 0%,
+                          #dd4c26 50%,
+                          #e43724 100%);
+                }
+                .num5 {
+                  background-image: -webkit-linear-gradient(top,
+                          rgba(1, 217, 254, 1) 0%,
+                          rgba(1, 254, 242, 1) 100%);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+
+    .left_box_bottom {
+      width: 100%;
+      display: flex;
+      flex-direction: column;
+
+      .bottom_content {
+        width: 100%;
+        height: 168px;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        background: rgba(255,255,255,0.03);
+
+        .bottom_content_left {
+          width: 435px;
+          height: 100%;
+          padding: 20px;
+          box-sizing: border-box;
+
+          .list_wrap {
+            width: 100%;
+            height: 64px;
+            margin-top: 20px;
+
+            .list {
+              height: 100%;
+              display: flex;
+              justify-content: space-evenly;
+
+              .item {
+                display: flex;
+                align-items: center;
+                position: relative;
+
+                .place {
+                  position: absolute;
+                  top: 120px;
+                  right: 70px;
+                  z-index: 999;
+                  font-size: 13px;
+                  color: #869CC9;
+                  width: 120px;
+                  text-align: center;
+                }
+
+                .icon {
+                  width: 70px;
+                  height: 70px;
+                  margin-right: 10px;
+                }
+
+                .content {
+                  .num {
+                    font-size: 28px;
+                    font-weight: 500;
+
+                    span {
+                      font-size: 14px;
+                      font-weight: 400;
+                    }
+                  }
+
+                  .la {
+                    font-size: 13px;
+                    color: #869CC9;
+                  }
+                }
               }
             }
           }
 
-          .separate {
-            width: 100%;
-            height: 2px;
-            background-color: rgba(255, 255, 255, 0.2);
-            /* background-color: red; */
-            border-right: 4px solid #00F2F3;
-            border-left: 4px solid #00F2F3;
+        }
+
+        .bottom_content_right {
+          flex: 1;
+          height: 100%;
+          padding: 20px;
+          box-sizing: border-box;
+
+          .list_wrap2 {
+            display: flex;
+            align-items: center;
+            height: 85px;
+
+            .item1 {
+              width: 50%;
+              height: 0;
+            }
+            .item {
+              width: 50%;
+              height: 100%;
+              display: flex;
+              align-items: center;
+              position: relative;
+
+              .list_wrap2_info {
+                flex: 1;
+                height: 100%;
+                display: flex;
+                flex-direction: column;
+                justify-content: space-between;
+                .title {
+                  display: flex;
+                  align-items: start;
+                  color: #D2E0FF;
+
+                  .icon {
+                    width: 16px;
+                    margin-right: 8px;
+                  }
+
+                  span {
+                    font-weight: 400;
+                    font-size: 14px;
+                    color: #D2E0FF;
+                  }
+                }
+
+                .unit {
+                  bottom: 16px;
+                  left: 4px;
+                  width: 130px;
+                  margin-bottom: 6px;
+                  margin-top: 2px;
+
+                  span {
+                    font-weight: 500;
+                    color: #FFFFFF;
+
+                    &:nth-child(1) {
+                      font-size: 20px;
+                    }
+                    &:nth-child(2) {
+                      font-size: 13px;
+                    }
+                    /*font-size: 12px;*/
+                    /*font-weight: 400;*/
+                  }
+                }
+
+                .place {
+                  bottom: 16px;
+                  left: 4px;
+                  width: 130px;
+                  font-size: 13px;
+                  color: #869CC9;
+                }
+              }
+              .watergage_wrap {
+                flex-shrink: 0;
+                width: 100px;
+                height: 85px;
+                text-align: center;
+                position: relative;
+
+                .watergage {
+                  width: 100px;
+                  height: 85px;
+                }
+
+
+              }
+              .liquidlevel_wrap {
+                width: 100px;
+                height: 85px;
+                position: relative;
+
+                .size {
+                  width: 13px;
+                  height: 84px;
+                  position: absolute;
+                  top: 3px;
+                  right: 20px;
+                }
+
+                .liquidle_te {
+                  font-weight: 500;
+                  font-size: 18px;
+                  position: absolute;
+                  top: 99px;
+                  left: 0;
+                  width: 206px;
+                  display: flex;
+                  flex-direction: column;
+                  align-items: center;
+
+                  .placeT {
+                    font-size: 12px;
+                    color: #869CC9;
+                    margin-top: 6px;
+                  }
+                }
+
+                .liquidlevel {
+                  width: 220px;
+                  height: 400px;
+                  color: #fff;
+                  transform: scale(0.24);
+                  text-align: center;
+                  left: -70px;
+                  top: -154px;
+                }
+              }
+            }
           }
+
         }
-      }
-    }
 
-    .left_box_two {
-      margin-bottom: 20px;
-
-      .police_wrap {
-        height: 225px;
-
-        border: 1px solid;
-
-        .echart1 {
-          width: 100%;
-          height: 100%;
-        }
-      }
-    }
-
-    .left_box_three {
-      .dispose_wrap {
-        border: 1px solid;
-        height: 210px;
-        width: 100%;
-
-        .echart2 {
-          width: 100%;
-          height: 100%;
-        }
       }
     }
   }
@@ -880,248 +1653,12 @@
     flex-direction: column;
     justify-content: space-between;
 
-    .center_box_one {
-      .static_wrap {
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        margin: 30px 0 54px;
 
-        .item {
-          display: flex;
-
-          img {
-            width: 61px;
-            height: 63px;
-            margin-right: 15px;
-          }
-
-          .content {
-            font-size: 15px;
-
-            .num {
-              font-size: 12px;
-              color: #D2E0FF;
-
-              font-weight: bold;
-              font-size: 30px;
-              margin-right: 5px;
-              font-weight: 600;
-              background-image: -webkit-linear-gradient(top,
-                  #01D9FE 0%,
-                  #01D9FE 60%,
-                  #fff 100%);
-              -webkit-background-clip: text;
-              -webkit-text-fill-color: transparent;
-            }
-
-            .num2 {
-              background-image: -webkit-linear-gradient(top,
-                  #fff 0%,
-                  #dd4c26 50%,
-                  #e43724 100%);
-            }
-            .num3 {
-              background-image: -webkit-linear-gradient(top,
-                  #fff 0%,
-                  #e9bf43 50%,
-                  #eb8131 100%);
-            }
-            .num4 {
-              background-image: -webkit-linear-gradient(top,
-                  #fff 0%,
-                  #9e9e9e 50%,
-                  #9e9e9e 100%);
-            }
-
-            .num5 {
-              background-image: -webkit-linear-gradient(top,
-                  #fff 0%,
-                  #3a83f5 50%,
-                  #3a83f5 100%);
-            }
-          }
-        }
-      }
-    }
 
     .center_box_two {
-      width: 100%;
+      width: 108%;
       display: flex;
-
-      .content_wrap {
-        flex: 1;
-        margin-right: 20px;
-
-        .title_wrap {
-          display: flex;
-
-          .title {
-            flex: 1;
-          }
-        }
-
-        &:nth-last-child(1) {
-          margin-right: 0;
-        }
-
-        .header {
-          display: flex;
-          justify-content: space-between;
-          align-items: center;
-          font-weight: bold;
-          font-size: 16px;
-          text-shadow: 0px 2px 8px #01ABFE;
-          margin-bottom: 20px;
-
-          .left {
-            display: flex;
-            align-items: center;
-
-            .icon {
-              width: 14px;
-              height: 28px;
-              margin-right: 10px;
-            }
-          }
-
-          .right {
-            display: flex;
-            align-items: center;
-
-            .num {
-              margin: 0 40px;
-            }
-
-            .icon {
-              width: 13px;
-              height: 16px;
-            }
-          }
-        }
-
-        .list_wrap {
-          height: 206px;
-          background-image: url('@/assets/images/FireFighting/bg_wendu@2x.png');
-          background-size: cover;
-
-          .title {
-            height: 46px;
-            display: flex;
-            align-items: center;
-            color: #D2E0FF;
-            padding-left: 20px;
-
-            .icon {
-              width: 16px;
-              margin-right: 8px;
-            }
-          }
-
-          .list {
-            height: 160px;
-            display: flex;
-            justify-content: space-evenly;
-
-            .item {
-              display: flex;
-              align-items: center;
-
-              .icon {
-                width: 70px;
-                height: 70px;
-                margin-right: 10px;
-              }
-
-              .content {
-                .num {
-                  font-size: 28px;
-                  font-weight: 500;
-
-                  span {
-                    font-style: 14px;
-                    font-weight: 400;
-                  }
-                }
-
-                .la {
-                  font-size: 13px;
-                  color: #869CC9;
-                }
-              }
-            }
-          }
-
-          .watergage_wrap {
-            text-align: center;
-            position: relative;
-            left: 30px;
-            .watergage {
-              width: 130px;
-              height: 112px;
-            }
-
-            .unit {
-              font-weight: 500;
-              font-size: 18px;
-              position: relative;
-              bottom: 16px;
-              left: 4px;
-
-              span {
-                font-size: 12px;
-                font-weight: 400;
-              }
-            }
-
-            .place {
-              position: relative;
-              bottom: 16px;
-              left: 4px;
-              font-size: 13px;
-              color: #869CC9;
-            }
-          }
-
-          .liquidlevel_wrap {
-            transform: scale(0.24);
-            color: #fff;
-            text-align: center;
-            position: relative;
-            left: 20px;
-            bottom: 10px;
-
-            .unit {
-              font-weight: 500;
-              font-size: 80px;
-              position: relative;
-              bottom: 24px;
-              left: 4px;
-
-              span {
-                font-size: 52px;
-                font-weight: 400;
-              }
-            }
-
-            .place {
-              position: relative;
-              bottom: 10px;
-              left: 4px;
-              font-size: 44px;
-              color: #869CC9;
-            }
-
-            .liquidlevel {
-              width: 320px;
-              height: 420px;
-
-            }
-          }
-
-
-        }
-      }
+      margin: 0 -4%;
 
     }
   }
@@ -1130,246 +1667,180 @@
     width: 450px;
 
     .right_box_one {
-      .content_wrap {
-        height: 176px;
+      width: 100%;
+
+      .right_content {
+        width: 100%;
+        height: 775px;
+        padding: 20px;
+        box-sizing: border-box;
+        background: rgba(255,255,255,0.03);
 
         .list {
-          display: flex;
-          align-items: center;
+          height: 240px;
+          overflow: hidden;
+          margin-top: 15px;
+          scrollbar-width: none;
 
           .item {
-            height: 116px;
-            flex: 1;
             display: flex;
-            flex-direction: column;
-            justify-content: center;
-            align-items: center;
+            font-size: 13px;
+            color: #D2E0FF;
+            height: 68px !important;
 
-            .num {
-              margin-top: 12px;
-              font-weight: bold;
-              font-size: 32px;
-            }
+            .icon {
+              width: 40px;
+              display: flex;
+              flex-direction: column;
+              align-items: center;
+              padding-top: 10px;
 
-            .active {
-              color: #00F2F3;
-            }
-          }
-
-          .separate {
-            width: 1px;
-            height: 50px;
-            background-color: rgba(255, 255, 255, 0.21);
-          }
-        }
-
-        .footer {
-          display: flex;
-
-          .icon {
-            width: 40px;
-            height: 41px;
-            margin-right: 2px;
-          }
-
-          .content {
-            flex: 1;
-            font-size: 16px;
-            height: 40px;
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
-            padding: 0 20px;
-            background: linear-gradient(270deg, rgba(1, 217, 254, 0) 0%, rgba(1, 217, 254, 0.19) 100%);
-            border: 1px solid;
-            border-image: linear-gradient(270deg, rgba(1, 217, 254, 0), rgba(1, 217, 254, 0.6)) 1 1;
-
-            .num {
-              font-size: 20px;
-              font-weight: bold;
-
-              span {
-                font-size: 13px;
-                color: #869CC9;
-              }
-            }
-          }
-        }
-      }
-    }
-
-    .right_box_two {
-      .su_title {
-        display: flex;
-        align-items: center;
-        font-weight: 500;
-        font-size: 16px;
-        margin: 20px;
-
-        .icon {
-          width: 17px;
-          height: 17px;
-          margin-right: 7px;
-        }
-      }
-
-      .static_wrap {
-        display: flex;
-        justify-content: space-evenly;
-        align-items: center;
-        height: 110px;
-
-        .item {
-          display: flex;
-          align-items: center;
-
-          img {
-            width: 80px;
-            height: 80px;
-            margin-right: 8px;
-          }
-
-          .content {
-            font-size: 14px;
-
-            .num {
-              font-size: 12px;
-              color: #D2E0FF;
-              margin-top: 8px;
-
-              span {
-                font-weight: bold;
-                font-size: 24px;
-                margin-right: 4px;
-                font-weight: 600;
-                background-image: -webkit-linear-gradient(top,
-                    #01D9FE 0%,
-                    #01D9FE 60%,
-                    #fff 100%);
-                -webkit-background-clip: text;
-                -webkit-text-fill-color: transparent;
+              .circle {
+                width: 7px;
+                height: 7px;
+                border-radius: 50%;
+                background: #01D9FE;
+                box-shadow: 0px 0px 1px 4px #34788f;
+                /* opacity: 0.52; */
               }
 
-              .today {
-                background-image: -webkit-linear-gradient(top,
-                    #fff 0%,
-                    #FFB120 50%,
-                    #FFB120 100%);
+              .line {
+                margin-top: 3px;
+                width: 1px;
+                flex: 1;
+                background-color: #153947;
               }
             }
-          }
-        }
-      }
 
-      .list {
-        height: 330px;
-        overflow: auto;
-        margin-top: 15px;
-        scrollbar-width: none;
-
-        .item {
-          display: flex;
-          font-size: 13px;
-          color: #D2E0FF;
-
-          .icon {
-            width: 40px;
-            display: flex;
-            flex-direction: column;
-            align-items: center;
-            padding-top: 10px;
-
-            .circle {
-              width: 7px;
-              height: 7px;
-              border-radius: 50%;
-              background: #01D9FE;
-              box-shadow: 0px 0px 1px 4px #34788f;
-              /* opacity: 0.52; */
-            }
-
-            .line {
-              margin-top: 3px;
-              width: 1px;
+            .content {
               flex: 1;
-              background-color: #153947;
+
+              .header {
+                display: flex;
+                justify-content: space-between;
+                align-items: center;
+
+                .time {
+                  display: flex;
+                  align-items: center;
+
+                  .status {
+                    height: 18px;
+                    line-height: 18px;
+                    border-radius: 2px;
+                    padding: 2px 4px;
+                    border: 1px solid #869CC9;
+                    font-size: 12px;
+                    margin-left: 8px;
+                  }
+                }
+
+                .have_time {
+                  font-size: 12px;
+                  color: #D2E0FF;
+
+                  span {
+                    color: #FEAF01;
+                  }
+                }
+              }
+
+              .wrap {
+                height: 34px;
+                background: linear-gradient(270deg, rgba(254, 85, 1, 0) 0%, rgba(254, 85, 1, 0.19) 100%);
+                border-radius: 2px 0px 0px 2px;
+                display: flex;
+                align-items: center;
+                border: 1px solid;
+                margin-bottom: 20px;
+                margin-top: 8px;
+                padding: 0 10px;
+                border-image: linear-gradient(270deg, rgba(254, 85, 1, 0), rgba(254, 85, 1, 0.6)) 1 1;
+
+                .title {
+                  flex: 4;
+                  font-weight: bold;
+                  font-size: 15px;
+                  color: #FFFFFF;
+                  display: flex;
+                  align-items: center;
+
+                  span {
+                    margin-left: 4px;
+                  }
+
+                  .xf {
+                    width: 14px;
+                    height: 14px;
+                  }
+
+                  .addr {
+                    width: 12px;
+                    height: 12px;
+                  }
+                }
+
+                .address {
+                  flex: 6;
+                }
+              }
+            }
+          }
+        }
+
+        .dispose_wrap {
+          height: 210px;
+          width: 100%;
+          position: relative;
+
+          .tips {
+            width: 100%;
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            position: absolute;
+            top: 0;
+            left: 0;
+            .tips_title {
+              display: flex;
+              align-items: center;
+              img {
+                width: 17px;
+                height: 17px;
+                margin-right: 7px;
+              }
+              span {
+                font-weight: 500;
+                font-size: 16px;
+                color: #FFFFFF;
+              }
             }
           }
 
-          .content {
-            flex: 1;
+          .echart2 {
+            width: 100%;
+            height: 100%;
+          }
+        }
 
-            .header {
+        .police_wrap {
+          padding: 15px 0;
+          height: 225px;
+
+          .item {
+            margin-bottom: 5px;
+
+            .head {
               display: flex;
               justify-content: space-between;
               align-items: center;
-
-              .time {
-                display: flex;
-                align-items: center;
-
-                .status {
-                  height: 18px;
-                  line-height: 18px;
-                  border-radius: 2px;
-                  padding: 2px 4px;
-                  border: 1px solid #869CC9;
-                  font-size: 12px;
-                  margin-left: 8px;
-                }
-              }
-
-              .have_time {
-                font-size: 12px;
-                color: #D2E0FF;
-
-                span {
-                  color: #FEAF01;
-                }
-              }
-            }
-
-            .wrap {
-              height: 40px;
-              background: linear-gradient(270deg, rgba(254, 85, 1, 0) 0%, rgba(254, 85, 1, 0.19) 100%);
-              border-radius: 2px 0px 0px 2px;
-              display: flex;
-              align-items: center;
-              border: 1px solid;
-              margin-bottom: 20px;
-              margin-top: 8px;
-              padding: 0 10px;
-              border-image: linear-gradient(270deg, rgba(254, 85, 1, 0), rgba(254, 85, 1, 0.6)) 1 1;
-
-              .title {
-                flex: 4;
-                font-weight: bold;
-                font-size: 15px;
-                color: #FFFFFF;
-                display: flex;
-                align-items: center;
-
-                span {
-                  margin-left: 4px;
-                }
-
-                .xf {
-                  width: 14px;
-                  height: 14px;
-                }
-
-                .addr {
-                  width: 12px;
-                  height: 12px;
-                }
-              }
-
-              .address {
-                flex: 6;
-              }
+              font-size: 16px;
+              color: #FFFFFF;
+              margin-bottom: 8px;
             }
           }
         }
+
       }
     }
   }
@@ -1509,4 +1980,4 @@
   object-fit: cover;
   z-index: -1;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3