|  |  |  | 
|---|
|  |  |  | <div class="list one-swiper"> | 
|---|
|  |  |  | <div class="swiper-wrapper"> | 
|---|
|  |  |  | <div class="line one-swiper-slide swiper-slide" v-for="item, i in dataList2" :key="i"> | 
|---|
|  |  |  | <div class="top"><span v-if="i < 3">top</span>{{ i + 1 }}</div> | 
|---|
|  |  |  | <div class="top" :class="{top3: i < 3}"><span v-if="i < 3">top</span>{{ i + 1 }}</div> | 
|---|
|  |  |  | <div class="id_card">{{ item.platformName }}</div> | 
|---|
|  |  |  | <div class="wrap"> | 
|---|
|  |  |  | <ChargeRate :rate="item.rate" /> | 
|---|
|  |  |  | 
|---|
|  |  |  | </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="closeModal"></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> | 
|---|
|  |  |  | <Videos :href="data4.videoPluginUrl" :indexCodes="data4.videoIndexCodes" /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="list"> | 
|---|
|  |  |  | <div class="line header"> | 
|---|
|  |  |  | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | 
|---|
|  |  |  | show: false, | 
|---|
|  |  |  | position: 'center' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | tooltip: { | 
|---|
|  |  |  | trigger: 'none' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | emphasis: { | 
|---|
|  |  |  | // 设置悬浮时样式为空 | 
|---|
|  |  |  | scale: false, // 关闭放大效果 | 
|---|
|  |  |  | itemStyle: { | 
|---|
|  |  |  | shadowBlur: 0, // 阴影模糊度为 0 | 
|---|
|  |  |  | shadowOffsetX: 0, | 
|---|
|  |  |  | shadowColor: 'rgba(0, 0, 0, 0)', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | padAngle: 2, | 
|---|
|  |  |  | itemStyle: { | 
|---|
|  |  |  | borderRadius: 10 | 
|---|
|  |  |  | 
|---|
|  |  |  | const option = { | 
|---|
|  |  |  | grid: { | 
|---|
|  |  |  | top: '32%', | 
|---|
|  |  |  | left: '0%', | 
|---|
|  |  |  | left: '6%', | 
|---|
|  |  |  | right: '7%', | 
|---|
|  |  |  | bottom: '0%', | 
|---|
|  |  |  | bottom: '10%', | 
|---|
|  |  |  | containLabel: true, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | legend: { | 
|---|
|  |  |  | 
|---|
|  |  |  | name: '万支', | 
|---|
|  |  |  | type: 'value', | 
|---|
|  |  |  | axisLabel: { | 
|---|
|  |  |  | show: true, | 
|---|
|  |  |  | color: "#9eaaba", | 
|---|
|  |  |  | color: '#869CC9' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | nameTextStyle: { | 
|---|
|  |  |  | color: '#869CC9', | 
|---|
|  |  |  | padding: [0, 0, 0, 12]    // 四个数字分别为上右下左与原位置距离 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | axisLine: { | 
|---|
|  |  |  | show: true, | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 } | 
|---|
|  |  |  | if(workModalParam.value.workTime){ | 
|---|
|  |  |  | workModalParam.value.workTime = workModalParam.value.workTime.replaceAll('m', '分钟') | 
|---|
|  |  |  | workModalParam.value.workTime = workModalParam.value.workTime.replaceAll('h', '小时') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | showWorkModal.value = true | 
|---|
|  |  |  | } | 
|---|
|  |  |  | const closeModal = () => { | 
|---|
|  |  |  | showWorkModal.value = false | 
|---|
|  |  |  | workModalParam.value = {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  | const loopFn2 = () => { | 
|---|
|  |  |  | var newSwiper1 = new Swiper('.one-swiper', { | 
|---|
|  |  |  | 
|---|
|  |  |  | box-shadow: inset 0px 0px 3px 0px #01D9FE; | 
|---|
|  |  |  | margin-right: 10px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .top3{ | 
|---|
|  |  |  | box-shadow: inset 0px 0px 3px 0px #FEAF01; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .one-swiper-slide { | 
|---|
|  |  |  | height: 40px !important; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | z-index: 99999999; | 
|---|
|  |  |  | .head { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .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; | 
|---|
|  |  |  | 
|---|
|  |  |  | object-fit: cover; | 
|---|
|  |  |  | z-index: -1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|
|  |  |  | </style> | 
|---|