From c3aaf28f7316cce12eec007a9f85a96cbcddeec2 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 07 五月 2025 10:34:20 +0800 Subject: [PATCH] 最新版本541200007 --- screen/src/views/SecurityControl.vue | 70 +++++++++++++++++++++++------------ 1 files changed, 46 insertions(+), 24 deletions(-) diff --git a/screen/src/views/SecurityControl.vue b/screen/src/views/SecurityControl.vue index 1496439..48985ac 100644 --- a/screen/src/views/SecurityControl.vue +++ b/screen/src/views/SecurityControl.vue @@ -4,7 +4,7 @@ <img src="@/assets/images/SecurityControl/bg@2x.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> @@ -111,7 +111,8 @@ <div v-show="showJk" class="jiankong"> <img class="jk_bg" src="@/assets/images/SecurityControl/jiankong_bg@2x.png" alt=""> <div class="content"> - <Video v-if="showJk && activeMenu && activeMenu.indexCode" :href="data.videoPluginUrl" :indexCode="activeMenu.indexCode" /> + <Video v-if="showJk && activeMenu && activeMenu.indexCode" :href="data.videoPluginUrl" + :indexCode="activeMenu.indexCode" /> <!-- <div class="player_bg" style="width: 100%;height: 100%;" id="playWnd"> </div> --> </div> <div class="right_wrap"> @@ -163,7 +164,7 @@ <img src="@/assets/images/SecurityControl/title_short@2x.png" class="bg" alt=""> </div> <div class="num_wrap"> - <div class="num">{{ data.internalCarTotal }}</div> + <div class="num">{{ data.inParkCarTotal || 0 }}</div> <img src="@/assets/images/SecurityControl/anfang_ic_data@2x.png" class="bg" alt=""> </div> </div> @@ -219,8 +220,8 @@ <div class="content"> <div class="name">闀挎湡鐩稿叧鏂�</div> <div class="num today"><span>{{ data.relatedTotal || 0 - }}</span> | {{ data.inParkTotal ? ((data.relatedTotal / data.inParkTotal) * 100).toFixed(1) : 0 - }}%</div> + }}</span> | {{ data.inParkTotal ? ((data.relatedTotal / data.inParkTotal) * 100).toFixed(1) : 0 + }}%</div> </div> </div> <div class="item"> @@ -248,7 +249,7 @@ </div> <div class="spacing"></div> <div class="item"> - <div class="name">宸茬櫥璁�</div> + <div class="name">宸茶闂�</div> <div class="num_wrap"> <span class="num">{{ data4.registerVisitNum }}</span> <span>浜�</span> @@ -311,6 +312,7 @@ </div> </div> --> <div class="safe_warning"> + <Loading v-if="loading1" /> <div class="com_header"> <div class="title"> <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> @@ -373,7 +375,6 @@ </div> </div> </div> - </div> </div> @@ -422,7 +423,7 @@ </div> <div class="list two-swiper"> <div class="swiper-wrapper"> - <template v-for="item, i in dataList2"> + <template v-for="item, i in dataList2.filter(i => i.totalNum > 0)"> <div class="item two-swiper-slide swiper-slide"> <div class="line"> <div class="driver">{{ item.deviceType }}</div> @@ -452,7 +453,7 @@ <div class="line header"> <div>濮撳悕</div> <div class="dept">鎷滆閮ㄩ棬</div> - <div class="dept">瓒呮椂鏃堕暱</div> + <div class="time">瓒呮椂鏃堕暱</div> </div> <div v-if="dataList3.length > 0" class="three-swiper list"> <div class="swiper-wrapper"> @@ -460,7 +461,7 @@ <div class="line"> <div>{{ item.name }}</div> <div class="dept">{{ item.companyName }}</div> - <div class="dept">{{ item.timeOutMinuteT }}</div> + <div class="time">{{ item.timeOutMinuteT }}</div> </div> <div class="separate"></div> </div> @@ -487,6 +488,7 @@ import 'swiper/css/swiper.min.css' import Swiper from 'swiper' import Video from './videoUrl/Video.vue' +import Loading from '@/components/Loading.vue' import { getEnergyCenterData, afgetCarmeraPreviemUrl, @@ -610,7 +612,7 @@ }) } -const colors = ['#FEAF01', '#01ABFE', '#51F9E4'] +const colors = ['#01ABFE', '#FEAF01', '#51F9E4'] const initEchart2 = () => { const myChart = echarts.init(document.getElementById('echart2')) const option = { @@ -673,10 +675,20 @@ }]), ] const data = [] - data.push({ name: '寰呰闂�', value: data4.value.waitVisitNum, rate: (data4.value.waitVisitNum / data4.value.total).toFixed(1) }) - data.push({ name: '宸茬櫥璁�', value: data4.value.registerVisitNum, rate: (data4.value.registerVisitNum / data4.value.total).toFixed(1) }) - data.push({ name: '宸茬寮�', value: data4.value.levelNum, rate: (data4.value.levelNum / data4.value.total).toFixed(1) }) - data.push({ name: '婊炵暀', value: data4.value.retentionNum, rate: (data4.value.retentionNum / data4.value.total).toFixed(1) }) + if (data4.value.total) { + data.push({ name: '寰呰闂�', value: data4.value.waitVisitNum, rate: (data4.value.waitVisitNum / data4.value.total).toFixed(3) }) + data.push({ name: '宸茶闂�', value: data4.value.registerVisitNum, rate: (data4.value.registerVisitNum / data4.value.total).toFixed(3) }) + data.push({ name: '宸茬寮�', value: data4.value.levelNum, rate: (data4.value.levelNum / data4.value.total).toFixed(3) }) + data.push({ name: '婊炵暀', value: data4.value.retentionNum, rate: (data4.value.retentionNum / data4.value.total).toFixed(3) }) + } else { + data.push({ name: '寰呰闂�', value: data4.value.waitVisitNum, rate: 0 }) + data.push({ name: '宸茶闂�', value: data4.value.registerVisitNum, rate: 0 }) + data.push({ name: '宸茬寮�', value: data4.value.levelNum, rate: 0 }) + data.push({ name: '婊炵暀', value: data4.value.retentionNum, rate: 0 }) + } + data.sort((a, b) => (b.value - a.value)) + // console.log('data', data); + const option = { color: colors, tooltip: { @@ -742,7 +754,7 @@ position: 'outside', formatter: (params) => { const index = params.dataIndex - return `{color${index}|${params.data.name} ${params.data.rate}%}` + return `{color${index}|${params.data.name} ${(params.data.rate * 100).toFixed(1)}%}` // return `<div>${params.data.name}</div>` }, rich: { @@ -816,6 +828,8 @@ } return item }) + console.log('dataList2', dataList2.value) + data2.value = total if (online >= outline) { temp.push({ name: '鍦ㄧ嚎', value: online, rate: ((online / (online + outline)) * 100).toFixed(1) }) @@ -839,6 +853,7 @@ data4.value = res.data || {} let obj = data4.value data4.value.total = obj.levelNum + obj.retentionNum + obj.registerVisitNum + obj.waitVisitNum + const result = res.data?.visitRetentionDataList || [] dataList3.value = result.map(i => { if (i.timeOutMinute) { @@ -849,7 +864,7 @@ } else if (i.timeOutMinute > 60) { i.timeOutMinuteT = dayjs.duration(i.timeOutMinute * 60 * 1000).format('H鏃秏鍒�') } else { - i.timeOutMinuteT = item.timeOutMinuteT + '鍒�' + i.timeOutMinuteT = i.timeOutMinute + '鍒�' } return i @@ -858,11 +873,14 @@ }) } +const loading1 = ref(false) const warningTab = ref('0') const warningNum = ref(0) const warningList = ref([]) const getWarning = () => { + loading1.value = true afwarningEventData({ type: warningTab.value }).then(res => { + loading1.value = false if (!res.data) return const result = res.data.list || [] warningNum.value = res.data.total @@ -885,6 +903,8 @@ }) warningList.value = temp // console.log('temp', warningList.value); + }, () => { + loading1.value = false }) } const tasClick = (val) => { @@ -910,7 +930,7 @@ } const changeMon = () => { showJk.value = !showJk.value - if(!showJk.value){ + if (!showJk.value) { activeJkIndex.value = -1 activeMenu.value = {} } @@ -948,7 +968,7 @@ initialSlide: 0, direction: 'vertical', //绔栫洿鏂瑰悜 slidesPerView: 3, - autoplay: autoplayFlag(dataList2.value, 3, 4000), + autoplay: autoplayFlag(dataList2.value.filter(i => i.totalNum > 0), 3, 4000), observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper }) } @@ -1581,6 +1601,7 @@ .safe_warning { width: 786px; margin-right: 20px; + position: relative; /* one-swiper */ .one_swiper_wrap { @@ -1688,7 +1709,8 @@ display: flex; justify-content: center; align-items: center; - padding: 16px 24px; + padding-top: 16px; + padding-left: 24px; .echart_wrap { position: relative; @@ -1724,7 +1746,7 @@ } .list { - margin-left: 36px; + margin-left: 32px; flex: 1; display: flex; flex-direction: column; @@ -1912,11 +1934,11 @@ } .dept { - flex: 5; + flex: 8; } .time { - flex: 4; + flex: 5; } } @@ -2009,4 +2031,4 @@ object-fit: cover; z-index: -1; } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3