|  |  |  | 
|---|
|  |  |  | <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/task/bg@2x.png" class="main_bg" alt="" /> | 
|---|
|  |  |  | <img class="point_icon" src="@/assets/ani/apngb-animated.png" alt=""> | 
|---|
|  |  |  | <div class="main_header"> | 
|---|
|  |  |  | <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" /> | 
|---|
|  |  |  | <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> | 
|---|
|  |  |  | <div class="title">安泰智慧物流园区-作业效能统筹</div> | 
|---|
|  |  |  | <div class="time_wrap"> | 
|---|
|  |  |  | <span class="date">{{ date }}</span> | 
|---|
|  |  |  | 
|---|
|  |  |  | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> | 
|---|
|  |  |  | <div>今日月台完成订单统计</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> | 
|---|
|  |  |  | <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="car_static"> | 
|---|
|  |  |  | <div class="echart_wrap"> | 
|---|
|  |  |  | 
|---|
|  |  |  | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> | 
|---|
|  |  |  | <div>今日月台工作时长趋势</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> | 
|---|
|  |  |  | <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="list one-swiper"> | 
|---|
|  |  |  | <div class="swiper-wrapper"> | 
|---|
|  |  |  | 
|---|
|  |  |  | <div class="separate"></div> | 
|---|
|  |  |  | <div class="tab" :class="{ active: activeTab3 == 0 }" @click="tabClick3(0)">入库</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> | 
|---|
|  |  |  | <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="echart_wrap"> | 
|---|
|  |  |  | <div class="echart2" id="echart2"></div> | 
|---|
|  |  |  | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="two-swiper"> | 
|---|
|  |  |  | <div class="swiper-wrapper"> | 
|---|
|  |  |  | <div @click="platformClick(item)" class="line one-swiper-slide swiper-slide" | 
|---|
|  |  |  | v-for="item, i in dataList5" :key="i"> | 
|---|
|  |  |  | <div @click="platformClick(item)" :class="{ lined: workModalParam.platformId == item.platformId }" | 
|---|
|  |  |  | class="line one-swiper-slide swiper-slide" v-for="item, i in dataList5" :key="i"> | 
|---|
|  |  |  | <img v-if="workModalParam.platformId == item.platformId" class="icon" src="@/assets/ani/2.png" | 
|---|
|  |  |  | alt=""> | 
|---|
|  |  |  | <div>{{ item.platformName }}</div> | 
|---|
|  |  |  | <div>{{ item.carNo || '-' }}</div> | 
|---|
|  |  |  | <div>{{ item.workNum ? item.workNum + '万支' : '-' }}</div> | 
|---|
|  |  |  | 
|---|
|  |  |  | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> | 
|---|
|  |  |  | <div>今日车辆作业情况</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> | 
|---|
|  |  |  | <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="static_wrap"> | 
|---|
|  |  |  | <div class="item"> | 
|---|
|  |  |  | 
|---|
|  |  |  | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> | 
|---|
|  |  |  | <div>实时告警</div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> | 
|---|
|  |  |  | <img src="@/assets/images/task/title@2x.png" class="bg" alt="" /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="list three-swiper"> | 
|---|
|  |  |  | <div class="swiper-wrapper"> | 
|---|
|  |  |  | 
|---|
|  |  |  | <!-- <div class="status">处理中</div> --> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div v-if="data7.length == 0" class="empty_wrap" style="margin-top: 50px;"> | 
|---|
|  |  |  | <img src="@/assets/images/default_empty.png" alt=""> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | 
|---|
|  |  |  | }]), | 
|---|
|  |  |  | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ | 
|---|
|  |  |  | offset: 0, | 
|---|
|  |  |  | color: '#4370f2' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | offset: 1, | 
|---|
|  |  |  | color: '#61d3f9' | 
|---|
|  |  |  | }]), | 
|---|
|  |  |  | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ | 
|---|
|  |  |  | offset: 0, | 
|---|
|  |  |  | color: '#4679f6' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | offset: 1, | 
|---|
|  |  |  | color: '#4674f6' | 
|---|
|  |  |  | }]), | 
|---|
|  |  |  | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ | 
|---|
|  |  |  | offset: 0, | 
|---|
|  |  |  | color: '#4370f2' | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | offset: 1, | 
|---|
|  |  |  | color: '#61d3f9' | 
|---|
|  |  |  | }])] | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | const temp = [] | 
|---|
|  |  |  | temp.push({ name: '签到数', value: data4.value?.signedNum || 0, rate: data4.value?.signedNum ? '100.0' : 0 }) | 
|---|
|  |  |  | temp.push({ name: '已叫号', value: data4.value?.calledNum || 0, rate: data4.value?.signedNum ? (data4.value.calledNum / data4.value?.signedNum * 100).toFixed(1) : 0 }) | 
|---|
|  |  |  | 
|---|
|  |  |  | show: true, | 
|---|
|  |  |  | position: 'outside', | 
|---|
|  |  |  | formatter: (params) => { | 
|---|
|  |  |  | return `{a|${params.data.name} ${params.data.rate}%}` | 
|---|
|  |  |  | const index = params.dataIndex | 
|---|
|  |  |  | return `{color${index}|${params.data.name} ${params.data.rate}%}` | 
|---|
|  |  |  | // return `<div>${params.data.name}</div>` | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | rich: { | 
|---|
|  |  |  | a: { | 
|---|
|  |  |  | color: '#869CC9', | 
|---|
|  |  |  | fontSize: 13 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | color0: { color: 'orange', fontSize: 14 }, | 
|---|
|  |  |  | color1: { color: '#869CC9', fontSize: 13 }, | 
|---|
|  |  |  | color2: { color: '#869CC9', fontSize: 13 }, | 
|---|
|  |  |  | color3: { color: '#869CC9', fontSize: 13 } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | labelLine: { | 
|---|
|  |  |  | 
|---|
|  |  |  | item.rate = ((item.workTotalTime / count) * 30).toFixed(0) | 
|---|
|  |  |  | return item | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | loopFn2() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | i.finishTime = dayjs(i.finishTime).format('HH:mm') | 
|---|
|  |  |  | return i | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | loopFn5() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | item.haveTime = dayjs.duration(new Date().getTime() - new Date(item.createDate).getTime()).format('HH小时mm分钟') | 
|---|
|  |  |  | return item | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | loopFn7() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | const workModalParam = ref({}) | 
|---|
|  |  |  | const platformClick = (val) => { | 
|---|
|  |  |  | workModalParam.value = val | 
|---|
|  |  |  | console.log(val) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | showWorkModal.value = !showWorkModal.value | 
|---|
|  |  |  | } | 
|---|
|  |  |  | const loopFn2 = () => { | 
|---|
|  |  |  | 
|---|
|  |  |  | getData6() | 
|---|
|  |  |  | getData7() | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // initEchart1() | 
|---|
|  |  |  | // initEchart2() | 
|---|
|  |  |  | // initEchart3() | 
|---|
|  |  |  | setInterval(() => { | 
|---|
|  |  |  | getData1() | 
|---|
|  |  |  | getData2() | 
|---|
|  |  |  | getData3() | 
|---|
|  |  |  | getData4() | 
|---|
|  |  |  | getData5() | 
|---|
|  |  |  | getData6() | 
|---|
|  |  |  | getData7() | 
|---|
|  |  |  | }, 1000 * 60) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | loopFn2() | 
|---|
|  |  |  | loopFn5() | 
|---|
|  |  |  | loopFn7() | 
|---|
|  |  |  | }, 12000) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | justify-content: space-evenly; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | height: 218px; | 
|---|
|  |  |  | background: rgba(0, 86, 255, 0.05); | 
|---|
|  |  |  | backdrop-filter: blur(5px); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .echart_wrap { | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .left_box_two { | 
|---|
|  |  |  | margin-bottom: 20px; | 
|---|
|  |  |  | background: rgba(0, 86, 255, 0.05); | 
|---|
|  |  |  | backdrop-filter: blur(5px); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .list { | 
|---|
|  |  |  | padding: 0px 24px 0px; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .left_box_three { | 
|---|
|  |  |  | background: rgba(0, 86, 255, 0.05); | 
|---|
|  |  |  | backdrop-filter: blur(5px); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .echart_wrap { | 
|---|
|  |  |  | width: 450px; | 
|---|
|  |  |  | height: 212px; | 
|---|
|  |  |  | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .no { | 
|---|
|  |  |  | width: 28px; | 
|---|
|  |  |  | height: 28px; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .center_box_two { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | background: rgba(0, 86, 255, 0.05); | 
|---|
|  |  |  | backdrop-filter: blur(5px); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .videos { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | 
|---|
|  |  |  | .line { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | height: 30px; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | cursor: pointer; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | &:nth-of-type(2n + 1) { | 
|---|
|  |  |  | background: rgba(12, 153, 236, 0.2); | 
|---|
|  |  |  | .icon { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | left: 0px; | 
|---|
|  |  |  | top: 0px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | &:nth-of-type(2n) { | 
|---|
|  |  |  | background: rgba(1, 15, 35, 0.61); | 
|---|
|  |  |  | box-shadow: inset 0px 0px 40px 0px rgba(23, 51, 108, 0.66); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | div { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | 
|---|
|  |  |  | font-size: 14px; | 
|---|
|  |  |  | color: #D2E0FF; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .lined { | 
|---|
|  |  |  | background: rgba(0,160,255,0.6) !important; | 
|---|
|  |  |  | font-weight: 600 !important; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .header { | 
|---|
|  |  |  | 
|---|
|  |  |  | width: 450px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .right_box_one { | 
|---|
|  |  |  | background: rgba(0, 86, 255, 0.05); | 
|---|
|  |  |  | backdrop-filter: blur(5px); | 
|---|
|  |  |  | background: rgba(0, 86, 255, 0.05); | 
|---|
|  |  |  | backdrop-filter: blur(5px); | 
|---|
|  |  |  | .static_wrap { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | padding: 20px 0 15px; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .right_box_two { | 
|---|
|  |  |  | padding: 20px 20px 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | margin-top: 20px; | 
|---|
|  |  |  | .list { | 
|---|
|  |  |  | height: 220px; | 
|---|
|  |  |  | overflow: hidden; | 
|---|
|  |  |  | margin-top: 15px; | 
|---|
|  |  |  | scrollbar-width: none; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | background: rgba(0, 86, 255, 0.05); | 
|---|
|  |  |  | backdrop-filter: blur(5px); | 
|---|
|  |  |  | padding-top: 15px; | 
|---|
|  |  |  | .item { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | font-size: 13px; | 
|---|
|  |  |  | 
|---|
|  |  |  | z-index: -2; | 
|---|
|  |  |  | font-size: 14px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .point_icon { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | left: 800px; | 
|---|
|  |  |  | top: 420px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .main_bg { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | left: 0; | 
|---|