| | |
| | | <script setup> |
| | | import { ref, onMounted } from 'vue' |
| | | import { ref, onMounted, nextTick } from 'vue' |
| | | import dayjs from 'dayjs' |
| | | import UQRCode from 'uqrcodejs' |
| | | import { getLargeScreenData } from '@/utils/request' |
| | |
| | | if (res.data && res.data.allList) { |
| | | contentList.value = res.data.allList.map(item => { |
| | | if (item.optTime) { |
| | | item.optTimeTemp = dayjs.duration(item.optTime).format('HH小时mm分') |
| | | item.optTimeTemp = dayjs(item.optTime).format('HH:mm') |
| | | // item.optTimeTemp = dayjs.duration(Math.abs(new Date().getTime() - item.optTime)).format('HH:mm') |
| | | } |
| | | return item |
| | | }) |
| | |
| | | var qr = new UQRCode() |
| | | // 设置二维码内容 |
| | | qr.data = qrcode.value |
| | | qr.size = 220 |
| | | qr.size = 210 |
| | | // 调用制作二维码方法 |
| | | qr.make() |
| | | var canvas = document.getElementById("qrcode") |
| | |
| | | newDate.value = dayjs().format('YYYY-MM-DD') |
| | | newTime.value = dayjs().format('HH:mm') |
| | | }, 1000) |
| | | |
| | | const isFullscreen = ref(false); |
| | | const handleFull = () => { |
| | | if(!isFullscreen.value){ |
| | | handleFullScreen() |
| | | }else{ |
| | | cancelFullscreen() |
| | | } |
| | | } |
| | | setTimeout(() => { |
| | | handleFull() |
| | | }, 1000) |
| | | const handler = () => { |
| | | isFullscreen.value = document.fullscreenElement !== null; |
| | | if (!isFullscreen) { |
| | | // 退出全屏时候解除监听,不然每次监听都会添加一次绑定 |
| | | document.removeEventListener("fullscreenchange", handler); |
| | | } |
| | | }; |
| | | document.addEventListener("fullscreenchange", handler); |
| | | const handleFullScreen = () => { |
| | | let elem = document.documentElement |
| | | // 尝试启用全屏模式 |
| | | if (elem.requestFullscreen) { |
| | | elem.requestFullscreen() |
| | | } else if (elem.mozRequestFullScreen) { // 兼容 Firefox |
| | | elem.mozRequestFullScreen() |
| | | } else if (elem.webkitRequestFullscreen) { // 兼容 Chrome, Safari 和 Opera |
| | | elem.webkitRequestFullscreen() |
| | | } else if (elem.msRequestFullscreen) { // 兼容 IE/Edge |
| | | elem.msRequestFullscreen() |
| | | } |
| | | } |
| | | function cancelFullscreen() { |
| | | if (document.exitFullscreen) { |
| | | document.exitFullscreen(); |
| | | } else if (document.msExitFullscreen) { |
| | | document.msExitFullscreen(); |
| | | } else if (document.mozCancelFullScreen) { |
| | | document.mozCancelFullScreen(); |
| | | } else if (document.webkitExitFullscreen) { |
| | | document.webkitExitFullscreen(); |
| | | } |
| | | } |
| | | |
| | | </script> |
| | | <template> |
| | | <div class="main_app"> |
| | |
| | | </div> |
| | | <div class="qrcode_wrap"> |
| | | <div class="qrcode"> |
| | | <canvas id="qrcode" width="220" height="220"></canvas> |
| | | <canvas id="qrcode" width="210" height="210"></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=""> |
| | | <img @click="handleFull" src="@/assets/images/call/ic_news@2x.png" class="icon" alt=""> |
| | | <div class="title">请根据队列提示信息,依次等候进场</div> |
| | | <div class="icon"></div> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | div{ |
| | | div { |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .main_app { |
| | | color: #fff; |
| | | position: fixed; |
| | |
| | | overflow: hidden; |
| | | background-color: #092030; |
| | | position: relative; |
| | | z-index: -2; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | |
| | | .main_header { |
| | | width: 100%; |
| | | height: 112px; |
| | |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 0 50px; |
| | | |
| | | z-index: 11; |
| | | .title { |
| | | font-weight: 800; |
| | | font-size: 48px; |
| | |
| | | display: flex; |
| | | padding: 30px 20px; |
| | | position: relative; |
| | | |
| | | .list { |
| | | flex: 5; |
| | | margin-right: 20px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .line { |
| | | display: flex; |
| | | align-items: center; |
| | | flex: 1; |
| | | height: 11.1%; |
| | | |
| | | &:nth-of-type(2n) { |
| | | background: rgba(255, 255, 255, 0); |
| | | } |
| | |
| | | align-items: center; |
| | | flex-direction: column; |
| | | font-weight: 500; |
| | | font-size: 36px; |
| | | font-size: 30px; |
| | | flex: 10; |
| | | height: 100%; |
| | | .time_place{ |
| | | |
| | | .time_place { |
| | | font-weight: 500; |
| | | font-size: 24px; |
| | | font-size: 22px; |
| | | } |
| | | |
| | | .status { |
| | | /* padding: 0 28px; */ |
| | | width: 170px; |
| | |
| | | } |
| | | |
| | | .header { |
| | | font-size: bold; |
| | | font-size: 40px; |
| | | .item { |
| | | font-size: bold; |
| | | font-size: 36px; |
| | | } |
| | | background: linear-gradient(180deg, #00B5D1 0%, #003C57 100%) !important; |
| | | } |
| | | } |
| | |
| | | flex: 2; |
| | | display: flex; |
| | | flex-direction: column; |
| | | border: 1px solid red; |
| | | |
| | | .tip_wrap { |
| | | margin-bottom: 20px; |
| | | width: 100%; |
| | | position: relative; |
| | | /* flex-shrink: 0; */ |
| | | flex: 1; |
| | | |
| | | .current_plat { |
| | | display: flex; |
| | | flex-direction: column; |
| | |
| | | justify-content: center; |
| | | padding: 30px 40px; |
| | | color: #FFA000; |
| | | |
| | | height: 100%; |
| | | .id_card { |
| | | font-weight: bold; |
| | | font-weight: 500; |
| | | font-size: 68px; |
| | | } |
| | | |
| | | .no { |
| | | margin: 10px 0; |
| | | margin: 8px 0; |
| | | font-weight: 500; |
| | | font-size: 52px; |
| | | } |
| | |
| | | |
| | | .plat { |
| | | color: #fff; |
| | | margin: 0 10px; |
| | | margin: 0 6px; |
| | | } |
| | | } |
| | | |
| | | .empty { |
| | | padding: 30px 40px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | font-weight: 500; |
| | | font-size: 30px; |
| | | |
| | | font-size: 26px; |
| | | height: 100%; |
| | | .title { |
| | | text-align: center; |
| | | font-weight: bold; |
| | | font-size: 36px; |
| | | margin-bottom: 20px; |
| | | font-size: 32px; |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | .line { |
| | | margin-bottom: 10px; |
| | | margin-bottom: 8px; |
| | | padding-left: 32px; |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .title { |
| | | margin-top: 20px; |
| | | margin-top: 16px; |
| | | font-weight: bold; |
| | | font-size: 34px; |
| | | font-size: 28px; |
| | | color: #111111; |
| | | } |
| | | } |