|  |  | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |           <div class="center_box_bg"> | 
 |  |  |             <img class="point_icon" src="@/assets/ani/apngb-animated.png" alt=""> | 
 |  |  |             <div class="work_modal" @click="showWorkModal = false" v-if="showWorkModal"> | 
 |  |  |             <img v-if="showWorkModal" class="point_icon" :style="{ left: workModalParam.left + 'px', top: workModalParam.top + 'px' }" | 
 |  |  |               src="@/assets/ani/apngb-animated.png" alt=""> | 
 |  |  |             <div class="work_modal" :style="{ left: workModalParam.left2 + 'px', top: workModalParam.top + 'px' }" | 
 |  |  |               @click="showWorkModal = false" v-if="showWorkModal"> | 
 |  |  |               <img class="bg" src="@/assets/images/LogisticsCenter/bg_yuetai@2x.png" alt=""> | 
 |  |  |               <div class="head"> | 
 |  |  |                 <div class="left"> | 
 |  |  | 
 |  |  |                 <div class="val">{{ workModalParam.finishTimeStr }}</div> | 
 |  |  |               </div> | 
 |  |  |             </div> | 
 |  |  |             <div class="modal_bg" v-if="showWorkModal" @click="showWorkModal = false"></div> | 
 |  |  |           </div> | 
 |  |  |           <div class="center_box_two"> | 
 |  |  |             <div v-if="data4.videoIndexCodes && data4.videoIndexCodes.length > 0" class="videos"> | 
 |  |  |               <div class="video" v-for="indexCode in data4.videoIndexCodes"> | 
 |  |  |                 <Video v-if="indexCode" :href="data4.videoPluginUrl" :indexCode="indexCode" /> | 
 |  |  |               </div> | 
 |  |  |             </div> | 
 |  |  |             <!-- <div v-if="data4.videoIndexCodes && data4.videoIndexCodes.length > 0" class="videos"> | 
 |  |  |               <Videos :href="data4.videoPluginUrl" :indexCodes="data4.videoIndexCodes" /> | 
 |  |  |             </div> --> | 
 |  |  |             <div class="list"> | 
 |  |  |               <div class="line header"> | 
 |  |  |                 <div>月台名称</div> | 
 |  |  | 
 |  |  | dayjs.extend(duration) | 
 |  |  | import 'swiper/css/swiper.min.css' | 
 |  |  | import Swiper from 'swiper' | 
 |  |  | import Video from './videoUrl/Video.vue' | 
 |  |  | import Videos from './videoUrl/Videos.vue' | 
 |  |  | import { | 
 |  |  |   cnplatformGroupFinish, | 
 |  |  |   cnplatformDuration, | 
 |  |  | 
 |  |  |   temp.push({ name: '已叫号', value: data4.value?.calledNum || 0, rate: data4.value?.signedNum ? (data4.value.calledNum / data4.value?.signedNum * 100).toFixed(1) : 0 }) | 
 |  |  |   temp.push({ name: '已作业', value: data4.value?.workedNum || 0, rate: data4.value?.signedNum ? (data4.value.workedNum / data4.value?.signedNum * 100).toFixed(1) : 0 }) | 
 |  |  |   temp.push({ name: '已完成', value: data4.value?.doneNum || 0, rate: data4.value?.signedNum ? (data4.value.doneNum / data4.value?.signedNum * 100).toFixed(1) : 0 }) | 
 |  |  |   console.log('temp', temp) | 
 |  |  |  | 
 |  |  |   const option = { | 
 |  |  |     color: colors, | 
 |  |  | 
 |  |  |       i.finishTime = dayjs(i.finishTime).format('HH:mm') | 
 |  |  |       return i | 
 |  |  |     }) | 
 |  |  |     console.log('dataList5', dataList5.value) | 
 |  |  |  | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  |  | 
 |  |  | 
 |  |  | const showWorkModal = ref(false) | 
 |  |  | const workModalParam = ref({}) | 
 |  |  | // point_icon | 
 |  |  | const pointList = ref([ | 
 |  |  |   { left: 230, top: 190 }, | 
 |  |  |   { left: 265, top: 180 }, | 
 |  |  |   { left: 300, top: 170 }, | 
 |  |  |   { left: 335, top: 160 }, | 
 |  |  |   { left: 370, top: 150 }, | 
 |  |  | const pointList = [ | 
 |  |  |   { left: 230, top: 190, left2: 290, top2: 190, name: '出库月台3' }, | 
 |  |  |   { left: 265, top: 180, left2: 325, top2: 190, name: '出库月台2' }, | 
 |  |  |   { left: 300, top: 170, left2: 360, top2: 190, name: '出库月台1' }, | 
 |  |  |   { left: 335, top: 160, left2: 390, top2: 190, name: '整托盘出库2' }, | 
 |  |  |   { left: 370, top: 150, left2: 430, top2: 190, name: '整托盘出库1' }, | 
 |  |  |  | 
 |  |  |   { left: 530, top: 50  }, | 
 |  |  |   { left: 550, top: 65 }, | 
 |  |  |   { left: 570, top: 75 }, | 
 |  |  |   { left: 590, top: 75 }, | 
 |  |  |   { left: 600, top: 80 }, | 
 |  |  |   { left: 850, top: 60 }, | 
 |  |  |   { left: 530, top: 50, left2: 590, top2: 190, name: '入库月台2' }, | 
 |  |  |   { left: 550, top: 65, left2: 610, top2: 190, name: '入库月台1' }, | 
 |  |  |   { left: 570, top: 75, left2: 630, top2: 190, name: '入库月台3' }, | 
 |  |  |   { left: 590, top: 75, left2: 650, top2: 190, name: '1095整托盘入库' }, | 
 |  |  |   { left: 600, top: 80, left2: 660, top2: 190, name: '1099整托盘入库' }, | 
 |  |  |   { left: 850, top: 60, left2: 520, top2: 190, name: '市公司月台' }, | 
 |  |  |  | 
 |  |  | ]) | 
 |  |  | ] | 
 |  |  |  | 
 |  |  | const platformClick = (val) => { | 
 |  |  |   workModalParam.value = val | 
 |  |  |   console.log(val) | 
 |  |  |  | 
 |  |  |   showWorkModal.value = !showWorkModal.value | 
 |  |  |   const index = pointList.findIndex(i => i.name == val.platformName) | 
 |  |  |   workModalParam.value = { ...val, ...pointList[index], index: pointList } | 
 |  |  |   showWorkModal.value = true | 
 |  |  | } | 
 |  |  | const loopFn2 = () => { | 
 |  |  |   var newSwiper1 = new Swiper('.one-swiper', { | 
 |  |  | 
 |  |  |       justify-content: center; | 
 |  |  |       align-items: center; | 
 |  |  |       position: relative; | 
 |  |  |  | 
 |  |  |       .point_icon { | 
 |  |  |         position: absolute; | 
 |  |  |         left: 850px; | 
 |  |  | 
 |  |  |       .work_modal { | 
 |  |  |         width: 314px; | 
 |  |  |         height: 180px; | 
 |  |  |         position: relative; | 
 |  |  |         position: absolute; | 
 |  |  |         padding: 22px 20px; | 
 |  |  |         left: 850px; | 
 |  |  |         top: 60px; | 
 |  |  |  | 
 |  |  |         .head { | 
 |  |  |           display: flex; | 
 |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |       } | 
 |  |  |       .modal_bg{ | 
 |  |  |         position: fixed; | 
 |  |  |         left: 0; | 
 |  |  |         top: 0; | 
 |  |  |         width: 100vw; | 
 |  |  |         height: 100vh; | 
 |  |  |         /* background-color: rgba(0,0,0,.1); */ | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     .center_box_two { | 
 |  |  |       width: 100%; | 
 |  |  |        | 
 |  |  |  | 
 |  |  |       .videos { | 
 |  |  |         width: 100%; | 
 |  |  |         height: 150px; | 
 |  |  |         display: flex; | 
 |  |  |         margin-bottom: 15px; | 
 |  |  |  | 
 |  |  | 
 |  |  |         height: 210px; | 
 |  |  |         overflow-y: auto; | 
 |  |  |         background: rgba(0, 86, 255, 0.05); | 
 |  |  |       backdrop-filter: blur(5px); | 
 |  |  |         backdrop-filter: blur(5px); | 
 |  |  |  | 
 |  |  |         .two-swiper { | 
 |  |  |           height: 180px; | 
 |  |  |           overflow: hidden; |