From 06b2f5be922e87d086d1d4e6cdcc2119e7d3a1a4 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 09 七月 2025 14:36:24 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- screen/src/views/FireFighting.vue | 1889 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 986 insertions(+), 903 deletions(-) diff --git a/screen/src/views/FireFighting.vue b/screen/src/views/FireFighting.vue index 79cd732..04190af 100644 --- a/screen/src/views/FireFighting.vue +++ b/screen/src/views/FireFighting.vue @@ -5,7 +5,7 @@ <img src="@/assets/images/SecurityControl/bg@2x_2.png" class="main_bg" alt="" /> <div class="main_header"> <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> - <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-娑堥槻鎬佸娍鐩戞帶</div> + <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-鏅烘収娑堥槻绠℃帶</div> <div class="time_wrap"> <span class="date">{{ date }}</span> <span class="week">{{ week }}</span> @@ -14,190 +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 class="left_box_top"> + + <div class="left_box_top_znz"> + <img src="@/assets/images/ic_compass@2x.png" 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">姝e父</span> + + <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="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 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> - <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="item" v-for="(item, i) in dataList2"> - <div class="head"> - <div class="name">{{ item.name }}</div> - <div class="name">{{ item.num }}娆�</div> - </div> - <FirePercent :color="policeColors[i]" :rate="item.rate" /> - </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">{{ dataList4.onlineDeviceNum || 0 }}</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">{{ dataList4.alarmDeviceNum || 0}}</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">{{ dataList4.shieldDeviceNum || 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 num3">{{ dataList4.errDeviceNum || 0 }}</div> - </div> - </div> - <div class="item"> - <img src="@/assets/images/FireFighting/xiaofang_ic_zhengchang@2x.png" alt=""> - <div class="content"> - <div class="name">姝e父</div> - <div class="num num4">{{ dataList4.onlineDeviceNum || 0 }}</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="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 @click="changeData8(-1)" class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png" - alt=""> - <div class="num">{{ dataIndex8 + 1 }}/{{ dataList8.length }}</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="left_box_bottom"> + <div class="left_box_three"> + <div class="com_header"> <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> + <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> + <div>娑堥槻鎬佸娍鎰熺煡</div> </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> + <img src="@/assets/images/title@2x.png" class="bg" alt="" /> </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 @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"> - <div class="title"> - <img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt=""> - <span>{{ item.name }}</span> - </div> - <div class="watergage_wrap" v-if="item.obj.typeCode == 253958"> - <div class="watergage" :id="'watergage' + i"></div> - <div class="unit">{{ item.obj.value }}</div> - <div class="place">闃堝�� {{ item.level }}</div> - </div> - <div v-if="item.obj.typeCode == 254001" class="liquidlevel_wrap"> - <div class="liquidlevel" :id="'liquidlevel' + i"></div> - <div class="liquidle_te"> - <div class="unit">{{ item.obj.value }}</div> - <div class="placeT">闃堝�納{ item.level }}</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> @@ -209,103 +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"> - <div class="item"> - <div>宸茬淮淇�</div> - <div class="num active">{{ dataList5.protectNum }}</div> + <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="separate"></div> - <div class="item"> - <div>璁″垝缁翠繚</div> - <div class="num acc">{{ dataList5.planProtectTotal }}</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 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 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> - <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>{{ dataList4.dangerTotalNum }}</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">{{ dataList4.dangerDealedNum }}</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 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 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="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> + <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="wrap"> - <div class="title"> - <img class="xf" src="@/assets/images/FireFighting/ic_gaojing_red@2x.png" alt=""> - <span>{{ item.alarmTypeName }}</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="title"> - <img class="addr" src="@/assets/images/FireFighting/xiaofang_ic_weizhi@2x.png" alt=""> - <span>{{ item.regionName }}</span> + <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> - <div v-if="dataList7.length == 0" style="margin-top: 100px;" class="empty_wrap"> - <img src="@/assets/images/default_empty.png" alt=""> + <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> @@ -340,6 +367,7 @@ 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()] @@ -360,6 +388,12 @@ // let maxNum = const option = { barMaxWidth: 3, + mapLocation: { + x: '0', + y: '0', + width: '100%', + height: '100%' + }, polar: { radius: '80%' }, @@ -731,23 +765,25 @@ } const dataList1 = ref([]) -const policeColors = ['#01D9FE', '#FE5501', '#0193FE', '#28F0C4'] +const policeColors = ['#FE5501', '#01D9FE', '#01FE9D', '#FFF306'] const dataList2 = ref([]) -const getData2 = () => { - // let temp = [] - // temp.push({ name: '鐪熷疄鎶ヨ鏁�', num: 10, rate: 20 }) - // temp.push({ name: '璇姤璀︽暟', num: 30, rate: 60 }) - // temp.push({ name: '宸茶В闄�', num: 20, rate: 40 }) - // temp.push({ name: '澶勭悊涓�', num: 8, rate: 16 }) - // dataList2.value = temp - // return +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.realNum, rate: (result.realNum / result.totalNum) * 100 }) + 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 }) - temp.push({ name: '宸茶В闄�', num: result.liftNum, rate: (result.liftNum / result.totalNum) * 100 }) - temp.push({ name: '澶勭悊涓�', num: result.processingNum, rate: (result.processingNum / result.totalNum) * 100 }) dataList2.value = temp }) } @@ -761,12 +797,10 @@ } 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 data4 = dataList3.value.map(i => i.errNum) const months = dataList3.value.map(i => { return i.startDate.substring(5, 7) + '鏈�' }) @@ -774,17 +808,17 @@ const option = { legend: { - x: "center", + x: "right", textStyle: { - color: "#FFFFFF", // 鍥句緥鏂囧瓧璁句负鐧借壊 + color: "#FFFFFF", fontSize: 12 }, icon: 'circle', - top: '6%', - itemWidth: 8, - itemHeight: 8, + top: '0', + itemWidth: 10, + itemHeight: 10, itemGap: 20, - data: ['鍛婅鏁�', '杩涜涓�', '宸插鐞�', '璇姤鏁�'] // 鏇存柊鍥句緥鍚嶇О + data: ['鎶ヨ鏁�', '鏈鐞�', '宸插鐞�'] }, grid: { left: '2%', @@ -812,7 +846,7 @@ }, axisLine: { lineStyle: { - color: '#1E294C' + color: '#D2E0FF' } }, axisTick: { @@ -827,7 +861,7 @@ }, axisLine: { lineStyle: { - color: '#A9AEB2' + color: '#D2E0FF' } }, axisTick: { @@ -845,7 +879,7 @@ }, series: [ { - name: "鍛婅鏁�", + name: "鎶ヨ鏁�", type: "bar", stack: "attendance", data: data1, @@ -862,12 +896,12 @@ barWidth: 6, }, { - name: "杩涜涓�", // 杩熷埌鏁版嵁 + name: "鏈鐞�", // 杩熷埌鏁版嵁 type: "bar", stack: "attendance", data: data2, itemStyle: { - color: '#28F0C4', // 杩熷埌鐨勯鑹� + color: '#FE5501', // 杩熷埌鐨勯鑹� }, label: { show: false, @@ -883,7 +917,7 @@ stack: "attendance", data: data3, itemStyle: { - color: '#0193FE', // 璇峰亣鐨勯鑹� + color: '#01D9FE', // 璇峰亣鐨勯鑹� }, label: { show: false, @@ -892,19 +926,7 @@ emphasis: { focus: "series", }, - }, - { - name: "璇姤鏁�", // 鍗曠嫭鐨勫姞鐝煴瀛� - type: "bar", - data: data4, - barWidth: 6, - itemStyle: { - color: '#FEED01', // 楂樹寒鐨勭传鑹� - }, - emphasis: { - focus: "series", - }, - }, + } ], } myChart.setOption(option) @@ -970,9 +992,10 @@ } }) if (dataList9.value.length > 0) { - dataTotal9.value = Math.ceil(dataList9.value.length / 2) - dataListTemp9.value = dataList9.value.slice(0, 2) + dataTotal9.value = Math.ceil(dataList9.value.length / 4) + dataListTemp9.value = dataList9.value.slice(0, 4) } + console.log(dataListTemp9.value) initEcharts9() }) } @@ -989,13 +1012,13 @@ // return if (dataIndex9.value == dataTotal9.value - 1 && num > 0) { dataIndex9.value = 0 - dataListTemp9.value = dataList9.value.slice(0, 2) + 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 - 2, dataList9.value.length) + 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 * 2, (dataIndex9.value + 1) * 2) + dataListTemp9.value = dataList9.value.slice(dataIndex9.value * 4, (dataIndex9.value + 1) * 4) } initEcharts9() } @@ -1023,6 +1046,13 @@ 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, @@ -1036,52 +1066,99 @@ var newSwiper1 = new Swiper('.two-swiper', { initialSlide: 0, direction: 'vertical', //绔栫洿鏂瑰悜 - slidesPerView: 4, - autoplay: autoplayFlag(dataList7.value, 4, 4000), + slidesPerView: 3, + autoplay: autoplayFlag(dataList7.value, 3, 4000), observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper }) } onMounted(() => { - // getData1() + getDayData() getData2() getData3() getData4() getData5() - // getData6() getData7() getData8() setInterval(() => { getData2() getData3() getData4() - // getData6() 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 { @@ -1089,109 +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; + display: flex; + align-items: start; + position: relative; - .list_wrap { - padding: 10px 0; + .left_box_top_znz { + width: 68px; + height: 68px; + position: absolute; + right: 0; + top: 120px; + img { + width: 100%; + height: 100%; + } + } - .list_content { - height: 170px; - overflow: hidden; + .left_box_top_left { + width: 450px; + flex-shrink: 0; - .line_wrap { - height: 34px !important; + .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; + } + } + } + + .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; + } + } + } + } + } + + } + + } + } + .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 { + display: flex; + + 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%); + } + } + } } } + } + } - .list { - .line { - display: flex; - height: 32px; - align-items: center; - font-size: 14px; + .left_box_bottom { + width: 100%; + display: flex; + flex-direction: column; - .item { - flex: 2; + .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: center; - /* margin: 0 6px; */ - align-items: center; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; + justify-content: space-evenly; - } + .item { + display: flex; + align-items: center; + position: relative; - .name { - flex: 5; - justify-content: flex-start; - } + .place { + position: absolute; + top: 120px; + right: 70px; + z-index: 999; + font-size: 13px; + color: #869CC9; + width: 120px; + text-align: center; + } - .warnning { - color: #FEAF01; - } - } + .icon { + width: 70px; + height: 70px; + margin-right: 10px; + } - .header { - background: rgba(134, 156, 201, 0.1); - font-weight: 500; + .content { + .num { + font-size: 28px; + font-weight: 500; - .item { - border-right: 1px solid rgba(255, 255, 255, 0.2); + span { + font-size: 14px; + font-weight: 400; + } + } - &:nth-last-child(1) { - border: none; + .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; - } } - } - } - .left_box_two { - margin-bottom: 20px; - - .police_wrap { - padding: 15px 20px 0; - height: 225px; - - .item { - margin-bottom: 5px; - - .head { - display: flex; - justify-content: space-between; - align-items: center; - font-size: 16px; - color: #FFFFFF; - margin-bottom: 8px; - } - } - } - } - - .left_box_three { - .dispose_wrap { - height: 210px; - width: 100%; - - .echart2 { - width: 100%; + .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; + } + } + } + } + } + } } } @@ -1203,301 +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, - #eb8131 0%, - #d0a72c 50%, - #e9bf43 100%); - } - - .num4 { - background-image: -webkit-linear-gradient(top, - #fff 0%, - #78db91 50%, - #6de8b0 100%); - } - - .num5 { - background-image: -webkit-linear-gradient(top, - #fff 0%, - #3a83f5 50%, - #3a83f5 100%); - } - } - } - } - } .center_box_two { width: 108%; display: flex; margin: 0 -4%; - - .content_wrap { - flex: 1; - flex-shrink: 0; - 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: 30px; - cursor: pointer; - /* 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; - 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; - } - } - } - } - } - - .list_wrap2 { - display: flex; - align-items: center; - height: 206px; - background-image: url('@/assets/images/FireFighting/bg_wendu@2x.png'); - background-size: cover; - - .item { - width: 50%; - height: 100%; - - .title { - height: 46px; - display: flex; - align-items: center; - color: #D2E0FF; - padding-left: 20px; - - .icon { - width: 16px; - margin-right: 8px; - } - } - - .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; - width: 130px; - margin-bottom: 6px; - margin-top: 2px; - - span { - font-size: 12px; - font-weight: 400; - } - } - - .place { - position: relative; - bottom: 16px; - left: 4px; - width: 130px; - font-size: 13px; - color: #869CC9; - } - } - - .liquidlevel_wrap { - position: relative; - - /* border: 6px solid red; */ - .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; - } - } - - /* .placeT { - position: relative; - bottom: 10px; - left: 4px; - font-size: 74px; - color: #869CC9; - opacity: 0; - } */ - - .liquidlevel { - width: 220px; - height: 400px; - transform: scale(0.27); - color: #fff; - text-align: center; - position: relative; - left: -8px; - top: -143px; - } - } - } - } - } } } @@ -1506,258 +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; - } - - .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; - } - } - } - } - } - } - - .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: 320px; - overflow: hidden; - margin-top: 15px; - scrollbar-width: none; - - .item { - display: flex; - font-size: 13px; - color: #D2E0FF; - height: 80px !important; - - .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: 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; - } + font-size: 16px; + color: #FFFFFF; + margin-bottom: 8px; } } } + } } } -- Gitblit v1.9.3