| | |
| | | import { getLargeScreenData } from '@/utils/request' |
| | | import duration from 'dayjs/plugin/duration' |
| | | dayjs.extend(duration) |
| | | import VScaleScreen from 'v-scale-screen' |
| | | |
| | | const qrcode = ref('') |
| | | const contentList = ref([]) |
| | |
| | | var qr = new UQRCode() |
| | | // 设置äºç»´ç å
容 |
| | | qr.data = qrcode.value |
| | | qr.size = 210 |
| | | qr.size = 220 |
| | | // è°ç¨å¶ä½äºç»´ç æ¹æ³ |
| | | qr.make() |
| | | var canvas = document.getElementById("qrcode") |
| | |
| | | newTime.value = dayjs().format('HH:mm') |
| | | }, 1000) |
| | | |
| | | const isFullscreen = ref(false); |
| | | const isFullscreen = ref(false) |
| | | const handleFull = () => { |
| | | if(!isFullscreen.value){ |
| | | if (!isFullscreen.value) { |
| | | handleFullScreen() |
| | | }else{ |
| | | } else { |
| | | cancelFullscreen() |
| | | } |
| | | } |
| | | setTimeout(() => { |
| | | handleFull() |
| | | }, 1000) |
| | | const handler = () => { |
| | | isFullscreen.value = document.fullscreenElement !== null; |
| | | isFullscreen.value = document.fullscreenElement !== null |
| | | if (!isFullscreen) { |
| | | // éåºå
¨å±æ¶åè§£é¤çå¬ï¼ä¸ç¶æ¯æ¬¡çå¬é½ä¼æ·»å 䏿¬¡ç»å® |
| | | document.removeEventListener("fullscreenchange", handler); |
| | | document.removeEventListener("fullscreenchange", handler) |
| | | } |
| | | }; |
| | | document.addEventListener("fullscreenchange", handler); |
| | | } |
| | | document.addEventListener("fullscreenchange", handler) |
| | | const handleFullScreen = () => { |
| | | let elem = document.documentElement |
| | | // å°è¯å¯ç¨å
¨å±æ¨¡å¼ |
| | |
| | | } |
| | | function cancelFullscreen() { |
| | | if (document.exitFullscreen) { |
| | | document.exitFullscreen(); |
| | | document.exitFullscreen() |
| | | } else if (document.msExitFullscreen) { |
| | | document.msExitFullscreen(); |
| | | document.msExitFullscreen() |
| | | } else if (document.mozCancelFullScreen) { |
| | | document.mozCancelFullScreen(); |
| | | document.mozCancelFullScreen() |
| | | } else if (document.webkitExitFullscreen) { |
| | | document.webkitExitFullscreen(); |
| | | document.webkitExitFullscreen() |
| | | } |
| | | } |
| | | |
| | | </script> |
| | | <template> |
| | | <div class="main_app"> |
| | | <div class="main_header"> |
| | | <img class="bg" src="@/assets/images/call/title@2x.png" alt=""> |
| | | <div class="title">宿³°æºæ
§ç©æµååº-车è¾å«å·å¤§å±</div> |
| | | <div class="time_wrap"> |
| | | <div class="left"> |
| | | <div class="week">{{ newWeek }}</div> |
| | | <div class="date">{{ newDate }}</div> |
| | | </div> |
| | | <div class="time">{{ newTime }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <div class="list"> |
| | | <div class="line header"> |
| | | <div class="item no">åºå·</div> |
| | | <div class="item">车çå·</div> |
| | | <div class="item status">ç¶æ</div> |
| | | <div class="item">åé æå°</div> |
| | | <div class="item">æ¶é´</div> |
| | | </div> |
| | | <div class="line" v-for="item in contentTempList" :key="item.id"> |
| | | <div class="item no">{{ item.signNum }}</div> |
| | | <div class="item">{{ item.carCodeFront }}</div> |
| | | <div class="item"> |
| | | <div :class="{ |
| | | call_ed: item.status == 4, |
| | | underway: item.status == 5, |
| | | padding: item.status == 2 || item.status == 3, |
| | | }" class="status">{{ statusMap[item.status] }}</div> |
| | | <v-scale-screen width="1920" height="1080" :fullScreen="true"> |
| | | <div class="main_app"> |
| | | <div class="main_header"> |
| | | <img class="bg" src="@/assets/images/call/title@2x.png" alt=""> |
| | | <div class="title">宿³°æºæ
§ç©æµååº-车è¾å«å·å¤§å±</div> |
| | | <div class="time_wrap" @click="handleFull"> |
| | | <div class="left"> |
| | | <div class="week">{{ newWeek }}</div> |
| | | <div class="date">{{ newDate }}</div> |
| | | </div> |
| | | <div class="item">{{ item.platformName || '-' }}</div> |
| | | <div class="item"> |
| | | <div v-if="item.optTimeTemp" class="time_place">é¢è®¡å®ææ¶é´</div> |
| | | <div>{{ item.optTimeTemp || '-' }}</div> |
| | | </div> |
| | | <div class="time">{{ newTime }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="current"> |
| | | <div class="tip_wrap"> |
| | | <img src="@/assets/images/call/ic_left@2x.png" class="icon icon_l" alt=""> |
| | | <img src="@/assets/images/call/ic_right@2x.png" class="icon icon_r" alt=""> |
| | | <div v-if="callList.length > 0" class="current_plat"> |
| | | <div class="id_card">{{ activeCall.carCodeFront }}</div> |
| | | <div class="no">({{ activeCall.signNum }})</div> |
| | | <div class="place"> |
| | | <span>åå¾</span> |
| | | <span class="plat"> {{ activeCall.platformName }} </span> |
| | | <span>ä½ä¸</span> |
| | | <div class="main_content"> |
| | | <div class="list"> |
| | | <div class="line header"> |
| | | <div class="item no">åºå·</div> |
| | | <div class="item">车çå·</div> |
| | | <div class="item status">ç¶æ</div> |
| | | <div class="item">åé æå°</div> |
| | | <div class="item">æ¶é´</div> |
| | | </div> |
| | | <div class="line" v-for="item in contentTempList" :key="item.id"> |
| | | <div class="item no">{{ item.signNum }}</div> |
| | | <div class="item">{{ item.carCodeFront }}</div> |
| | | <div class="item"> |
| | | <div :class="{ |
| | | call_ed: item.status == 4, |
| | | underway: item.status == 5, |
| | | padding: item.status == 2 || item.status == 3, |
| | | }" class="status">{{ statusMap[item.status] }}</div> |
| | | </div> |
| | | <div class="item">{{ item.platformName || '-' }}</div> |
| | | <div class="item"> |
| | | <div v-if="item.optTimeTemp" class="time_place">é¢è®¡å®ææ¶é´</div> |
| | | <div>{{ item.optTimeTemp || '-' }}</div> |
| | | </div> |
| | | </div> |
| | | <div v-else class="empty"> |
| | | <div class="title">温馨æç¤º</div> |
| | | <div class="line">1ãè¯·å¸æºæ ¹æ®å«å·å±æç¤ºå
¥å</div> |
| | | <div class="line">2ãæªå«å·è½¦è¾è¯·èå¿çå¾
</div> |
| | | <div class="line">3ã请æåºæéå
¥å</div> |
| | | <div class="line">4ãè£
å¸è´§ç»æç¦æ¢å¨ååºéç</div> |
| | | <div class="line">5ã请éµå®ååºå®å
¨è§ç« å¶åº¦</div> |
| | | </div> |
| | | </div> |
| | | <div class="qrcode_wrap"> |
| | | <div class="qrcode"> |
| | | <canvas id="qrcode" width="210" height="210"></canvas> |
| | | <div class="current"> |
| | | <div class="tip_wrap"> |
| | | <img src="@/assets/images/call/ic_left@2x.png" class="icon icon_l" alt=""> |
| | | <img src="@/assets/images/call/ic_right@2x.png" class="icon icon_r" alt=""> |
| | | <div v-if="callList.length > 0" class="current_plat"> |
| | | <div class="id_card">{{ activeCall.carCodeFront }}</div> |
| | | <div class="no">({{ activeCall.signNum }})</div> |
| | | <div class="place"> |
| | | <span>åå¾</span> |
| | | <span class="plat"> {{ activeCall.platformName }} </span> |
| | | <span>ä½ä¸</span> |
| | | </div> |
| | | </div> |
| | | <div v-else class="empty"> |
| | | <div class="title">温馨æç¤º</div> |
| | | <div class="line">1ãè¯·å¸æºæ ¹æ®å«å·å±æç¤ºå
¥å</div> |
| | | <div class="line">2ãæªå«å·è½¦è¾è¯·èå¿çå¾
</div> |
| | | <div class="line">3ã请æåºæéå
¥å</div> |
| | | <div class="line">4ãè£
å¸è´§ç»æç¦æ¢å¨ååºéç</div> |
| | | <div class="line">5ã请éµå®ååºå®å
¨è§ç« å¶åº¦</div> |
| | | </div> |
| | | </div> |
| | | <div class="title">请æ«ç ç¾å°</div> |
| | | <div class="qrcode_wrap"> |
| | | <div class="qrcode"> |
| | | <canvas id="qrcode" width="220" height="220"></canvas> |
| | | </div> |
| | | <div class="title">请æ«ç ç¾å°</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="main_footer"> |
| | | <img src="@/assets/images/call/ic_news@2x.png" class="icon" alt=""> |
| | | <div class="title">è¯·æ ¹æ®éåæç¤ºä¿¡æ¯ï¼ä¾æ¬¡çåè¿åº</div> |
| | | <div class="icon"></div> |
| | | </div> |
| | | </div> |
| | | <div class="main_footer"> |
| | | <img @click="handleFull" src="@/assets/images/call/ic_news@2x.png" class="icon" alt=""> |
| | | <div class="title">è¯·æ ¹æ®éåæç¤ºä¿¡æ¯ï¼ä¾æ¬¡çåè¿åº</div> |
| | | <div class="icon"></div> |
| | | </div> |
| | | </div> |
| | | </v-scale-screen> |
| | | |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | |
| | | |
| | | .main_app { |
| | | color: #fff; |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | height: 100vh; |
| | | width: 1920px; |
| | | height: 1080px; |
| | | overflow: hidden; |
| | | background-color: #092030; |
| | | position: relative; |
| | |
| | | |
| | | .main_header { |
| | | width: 100%; |
| | | height: 112px; |
| | | flex: 10.3; |
| | | position: relative; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 0 50px; |
| | | z-index: 11; |
| | | |
| | | .title { |
| | | font-weight: 800; |
| | | font-size: 48px; |
| | |
| | | } |
| | | |
| | | .main_content { |
| | | flex: 1; |
| | | flex: 82.2; |
| | | display: flex; |
| | | padding: 30px 20px; |
| | | position: relative; |
| | |
| | | font-size: bold; |
| | | font-size: 36px; |
| | | } |
| | | |
| | | background: linear-gradient(180deg, #00B5D1 0%, #003C57 100%) !important; |
| | | } |
| | | } |
| | |
| | | padding: 30px 40px; |
| | | color: #FFA000; |
| | | height: 100%; |
| | | |
| | | .id_card { |
| | | font-weight: 500; |
| | | font-size: 68px; |
| | |
| | | font-weight: 500; |
| | | font-size: 26px; |
| | | height: 100%; |
| | | |
| | | .title { |
| | | text-align: center; |
| | | font-weight: bold; |
| | |
| | | |
| | | .main_footer { |
| | | background-color: #1D8D9E; |
| | | height: 80px; |
| | | flex: 7.4; |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 0 50px; |