| | |
| | | <template> |
| | | <div class="container"> |
| | | <div class="big-title" @click="goBack()">国泰新华智能巡检系统</div> |
| | | <div class="container" id="screenFull"> |
| | | <div class="big-title" @click="goBack()">智能巡检系统</div> |
| | | <div style="height: 20px;font-size: 14px;line-height: 20px; color: #00ffff; margin-top: 4px">{{ present }}</div> |
| | | <div class="btns"> |
| | | <div class="fullbtn" @click="onScreenfullClick"> |
| | | <div class="toFull"> |
| | | <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i> |
| | | </div> |
| | | <div>全屏</div> |
| | | </div> |
| | | <!-- <div class="fullbtn" @click="onScreenfullClick">--> |
| | | <!-- <div class="toFull">--> |
| | | <!-- <i class="iconfont" :title="全屏" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i>--> |
| | | <!-- <el-icon>--> |
| | | <!-- <FullScreen v-if="isScreenfull"/>--> |
| | | <!-- <Close v-else/>--> |
| | | <!-- </el-icon>--> |
| | | <!-- </div>--> |
| | | <!-- <div>全屏</div>--> |
| | | <!-- </div>--> |
| | | <div class="backBtn" @click="goBack()"> |
| | | <img src="../../../assets/loginPage/back-icon.png" /> |
| | | <img src="../../../assets/loginPage/back-icon.png"/> |
| | | <div>退出</div> |
| | | </div> |
| | | </div> |
| | | <div class="blocks"> |
| | | <div> |
| | | <div class="warning-part" ref="draggableElement"> |
| | | <div class="warn-tit">异常警报:</div> |
| | | <div class="warn-msg" v-if="excepOrder && excepOrder.length>0"> |
| | | <div class="warn-item" v-for="(item,index) in excepOrder" :key="index"> |
| | | <div class="i-tit"> |
| | | 编号{{item.pointCode}} 巡检异常! |
| | | </div> |
| | | <div v-if="item.dataReportType == 2 || item.dataReportType == 3"> |
| | | 正常值:<span>{{(item.secondReferenceSign==1?'>':'>=') + item.secondReferenceValue + ',' + (item.thirdReferenceSign==3?'<':'<=') + item.thirdReferenceValue}}</span> |
| | | </div> |
| | | <div> |
| | | 巡检值: |
| | | <span v-if="item.dataReportType == 1">{{ item.firstReferenceResult==1?'正常':item.firstReferenceResult==2?'异常':'备'}}</span> |
| | | <span v-if="item.dataReportType == 2">{{ item.secondReferenceResult}}</span> |
| | | </div> |
| | | <div> |
| | | 已通知负责人:<span>{{item.hiddenDangerHandlerName}}</span> |
| | | </div> |
| | | <div> |
| | | 负责人电话:<span>{{item.hiddenDangerHandlerPhone}}</span> |
| | | </div> |
| | | <div> |
| | | 工单回执状态:<span>{{item.handlerStatus==1?'待响应':item.handlerStatus==2?'标记误报':item.handlerStatus==3?'自查处理中':item.handlerStatus==4?'已移交上报':item.handlerStatus==5?'待验收':'已完成'}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div v-else> |
| | | 暂无异常警报 |
| | | </div> |
| | | </div> |
| | | <div class="star-pic"> |
| | | <dv-decoration-12 scanDur="5" haloDur="4" class="scan"/> |
| | | <div class="star-bg"><img src="../../../assets/loginPage/star-bg.png" /></div> |
| | | <div class="star"><img src="../../../assets/loginPage/device-pic.png" /></div> |
| | | </div> |
| | | <div class="line-map" v-if="dataList && dataList.length > 0"> |
| | | <div class="line-item" v-for="(item, index) in dataList" :key="index"> |
| | | <div class="picbox"> |
| | | <img src="../../../assets/loginPage/equipment.jpg"/> |
| | | <div class="imgbox"> |
| | | <img :src="item.rfidImage==null?defaultImg:item.rfidImage"/> |
| | | </div> |
| | | <p> |
| | | RFID: <span>{{ item.rfid }}</span> |
| | | </p> |
| | |
| | | <span>参数:</span><span class="target">{{ t.secondReferenceResult + t.quotaUnit }}</span> |
| | | </div> |
| | | <div> |
| | | <span>巡检结果:</span><span class="target">{{ t.reportResult == null ? '--' : t.reportResult == 0 ? '正常' : '异常' }}</span> |
| | | <span>巡检结果:</span><span class="target">{{ t.reportResult == null ? '--' : t.reportResult == 0 ? '正常' : t.reportResult == 1 ? '异常' : '备' }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="tip" v-else>抱歉,暂时查询不到巡检路线...</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | <script lang="ts"> |
| | | import screenfull from 'screenfull'; |
| | | import { lineApi } from '/@/api/intelligentLine'; |
| | | import { toRefs, reactive, ref, onMounted, onUnmounted, computed } from 'vue'; |
| | | import {toRefs, reactive, ref, onMounted, onUnmounted, computed, nextTick, onActivated} from 'vue'; |
| | | import {useRoute} from 'vue-router'; |
| | | import { storeToRefs } from 'pinia'; |
| | | import { initBackEndControlRoutes } from '/@/router/backEnd'; |
| | |
| | | // 定义接口来定义对象的类型 |
| | | interface stateType { |
| | | present: string; |
| | | isScreenfull: boolean; |
| | | path: string; |
| | | socket: any; |
| | | socketData: string; |
| | | data: Array<any>; |
| | | id: string |
| | | excepOrder: Array<any>; |
| | | id: string; |
| | | defaultImg: string; |
| | | isDragging:boolean |
| | | initialX:number|null |
| | | initialY:number|null |
| | | xOffset:number|null |
| | | yOffset:number|null |
| | | timer: null | any |
| | | } |
| | | export default { |
| | | name: 'intelligentLine', |
| | |
| | | const route = useRoute(); |
| | | const state = reactive<stateType>({ |
| | | present: '', |
| | | isScreenfull: false, |
| | | path: 'http://192.168.0.29:8008/ws/test/', |
| | | path: '', |
| | | socketData: '', |
| | | socket: null, |
| | | data: [], |
| | | id: '' |
| | | excepOrder: [], |
| | | id: '', |
| | | defaultImg: new URL('../../../assets/default-img.jpg',import.meta.url).href, |
| | | isDragging: false, |
| | | initialX: 0, |
| | | initialY: 0, |
| | | xOffset: 0, |
| | | yOffset: 0, |
| | | timer: null |
| | | }); |
| | | |
| | | onMounted(() => { |
| | | setInterval(() => { |
| | | state.timer = setInterval(() => { |
| | | state.present = new Date().toLocaleString(); |
| | | }, 1000); |
| | | let curId = route.query.id |
| | | state.id = curId.toString() |
| | | console.log(state.id) |
| | | getLine(state.id) |
| | | init(state.id); |
| | | getUrl(state.id) |
| | | draggableElement.value.addEventListener('mousedown', handleMouseDown); |
| | | draggableElement.value.addEventListener('mousemove', handleMouseMove); |
| | | draggableElement.value.addEventListener('mouseup', handleMouseUp); |
| | | }); |
| | | |
| | | onActivated(()=>{ |
| | | onScreenfullClick(); |
| | | }) |
| | | const draggableElement = ref(null); |
| | | const dataList = computed(() => { |
| | | return userInfos.value.dataList; |
| | | }); |
| | | |
| | | // socket获取数据 |
| | | const init = (id:string) => { |
| | | if (typeof window.WebSocket === 'undefined') { |
| | | alert('您的浏览器不支持socket'); |
| | | } else { |
| | | // 实例化socket |
| | | let uid = userInfos.value.uid.toString() |
| | | var url = state.path + uid + '*' + id; |
| | | console.log(url,'url') |
| | | url = url.replace('https', 'ws').replace('http', 'ws'); |
| | | console.log(url, '获取地址'); |
| | | state.socket = new window.WebSocket(url); |
| | | // 监听socket连接 |
| | | state.socket.onopen = () => { |
| | | console.log('socket连接成功'); |
| | | }; |
| | | // 监听socket错误信息 |
| | | state.socket.onerror = () => { |
| | | console.log('socket连接错误'); |
| | | }; |
| | | // 监听socket消息 |
| | | state.socket.onmessage = (msg) => { |
| | | if (msg.data === '连接成功') return; |
| | | userInfos.value.dataList = JSON.parse(msg.data); |
| | | }; |
| | | } |
| | | }; |
| | | // 获取url |
| | | |
| | | const send = () => { |
| | | state.socket.send(params); |
| | | }; |
| | | const getUrl =async (id:string)=>{ |
| | | const res = await lineApi().getUrl(); |
| | | if (res.data.code === '200') { |
| | | state.path = 'http://' + res.data.data.ip + ':' + res.data.data.port + '/ws/test/' |
| | | if (typeof WebSocket === 'undefined') { |
| | | alert('您的浏览器不支持socket'); |
| | | } else { |
| | | // 实例化socket |
| | | let uid = userInfos.value.uid.toString() |
| | | var url = state.path + uid + '*' + id; |
| | | url = url.replace('https', 'ws').replace('http', 'ws'); |
| | | state.socket = new WebSocket(url); |
| | | // 监听socket连接 |
| | | state.socket.onopen = () => { |
| | | console.log('socket连接成功'); |
| | | }; |
| | | // 监听socket错误信息 |
| | | state.socket.onerror = () => { |
| | | console.log('socket连接错误'); |
| | | }; |
| | | // 监听socket消息 |
| | | state.socket.onmessage = (msg) => { |
| | | console.log(msg.data,'msg.data') |
| | | console.log(msg.data.rfidInfos,'rfidInfos') |
| | | if (msg.data === '连接成功') return; |
| | | userInfos.value.dataList = JSON.parse(msg.data).rfidInfos; |
| | | state.excepOrder = JSON.parse(msg.data).excepOrder; |
| | | }; |
| | | } |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // const send = () => { |
| | | // state.socket.send(params); |
| | | // }; |
| | | |
| | | // 接口获取数据 |
| | | const getLine = async (id:string) => { |
| | | let res = await lineApi().getLine({ id: id }); |
| | | if (res.data.code === '200') { |
| | | console.log(res.data.data, '获取巡检点'); |
| | | userInfos.value.dataList = res.data.data; |
| | | userInfos.value.dataList = res.data.data.rfidInfos |
| | | if(res.data.data.excepOrder){ |
| | | state.excepOrder = res.data.data.excepOrder |
| | | }else{ |
| | | state.excepOrder = [] |
| | | } |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | |
| | | |
| | | // 全屏 |
| | | const onScreenfullClick = () => { |
| | | const element = document.getElementById('screenFull') |
| | | if (!screenfull.isEnabled) { |
| | | ElMessage.warning('暂不不支持全屏'); |
| | | return false; |
| | | } |
| | | screenfull.toggle(); |
| | | screenfull.on('change', () => { |
| | | if (screenfull.isFullscreen) { |
| | | state.isScreenfull = true; |
| | | } else { |
| | | state.isScreenfull = false; |
| | | } |
| | | }); |
| | | screenfull.toggle(element); |
| | | }; |
| | | |
| | | // 返回 |
| | |
| | | window.history.go(-1); |
| | | }; |
| | | |
| | | const handleMouseDown = (e) => { |
| | | state.initialX = e.clientX - state.xOffset; |
| | | state.initialY = e.clientY - state.yOffset; |
| | | state.isDragging = true; |
| | | }; |
| | | |
| | | const handleMouseMove = (e) => { |
| | | if (state.isDragging) { |
| | | state.xOffset = e.clientX - state.initialX; |
| | | state.yOffset = e.clientY - state.initialY; |
| | | |
| | | draggableElement.value.style.transform = `translate3d(${state.xOffset}px, ${state.yOffset}px, 0)`; |
| | | } |
| | | }; |
| | | |
| | | const handleMouseUp = () => { |
| | | state.isDragging = false; |
| | | }; |
| | | |
| | | // 页面关闭处理 |
| | | onUnmounted(() => { |
| | | // 销毁监听 |
| | | state.socket.onclose = () => { |
| | | console.log('socket已经关闭'); |
| | | }; |
| | | nextTick(()=>{ |
| | | state.socket.onclose = () => { |
| | | console.log('socket已经关闭'); |
| | | }; |
| | | }) |
| | | clearInterval(state.timer) |
| | | draggableElement.value.removeEventListener('mousedown', handleMouseDown); |
| | | draggableElement.value.removeEventListener('mousemove', handleMouseMove); |
| | | draggableElement.value.removeEventListener('mouseup', handleMouseUp); |
| | | }); |
| | | return { |
| | | dataList, |
| | | draggableElement, |
| | | goBack, |
| | | onScreenfullClick, |
| | | ...toRefs(state) |
| | | }; |
| | | } |
| | | }; |
| | | // export default { |
| | | // name: 'NewForm', |
| | | // props: { |
| | | // |
| | | // }, |
| | | // data(){ |
| | | // return{ |
| | | // present: '', |
| | | // isScreenfull: false, |
| | | // path: "http://192.168.0.29:8008/ws/test/", |
| | | // socket: null, |
| | | // socketData: '', |
| | | // data: [] |
| | | // } |
| | | // }, |
| | | // created() { |
| | | // setInterval(() => { |
| | | // this.present = new Date().toLocaleString() |
| | | // }, 1000) |
| | | // }, |
| | | // mounted () { |
| | | // // 初始化 |
| | | // this.init() |
| | | // // this.getLine() |
| | | // }, |
| | | // methods:{ |
| | | // goBack(){ |
| | | // window.history.go(-1) |
| | | // }, |
| | | // |
| | | // async getLine (){ |
| | | // let res = await lineApi().getLine({ id: '80647416891768832' }); |
| | | // if (res.data.code === '200') { |
| | | // console.log(res.data.data,'获取巡检点') |
| | | // this.data = res.data.data |
| | | // console.log(this.data,'---') |
| | | // } else { |
| | | // ElMessage({ |
| | | // type: 'warning', |
| | | // message: res.data.msg |
| | | // }); |
| | | // } |
| | | // }, |
| | | // |
| | | // // 全屏点击时 |
| | | // onScreenfullClick(){ |
| | | // const t = this |
| | | // if (!screenfull.isEnabled) { |
| | | // ElMessage.warning('暂不不支持全屏'); |
| | | // return false; |
| | | // } |
| | | // screenfull.toggle(); |
| | | // screenfull.on('change', () => { |
| | | // if (screenfull.isFullscreen) { |
| | | // t.isScreenfull = true |
| | | // } |
| | | // else{ |
| | | // t.isScreenfull = false |
| | | // } |
| | | // }); |
| | | // }, |
| | | // |
| | | // // socket获取数据 |
| | | // init: function () { |
| | | // if(typeof(window.WebSocket) === "undefined"){ |
| | | // alert("您的浏览器不支持socket") |
| | | // }else{ |
| | | // // 实例化socket |
| | | // var url = this.path + '80938081556545536' |
| | | // url = url.replace("https","ws").replace("http","ws"); |
| | | // console.log(url,'获取地址') |
| | | // this.socket = new window.WebSocket(url) |
| | | // // 监听socket连接 |
| | | // this.socket.onopen = this.open |
| | | // // 监听socket错误信息 |
| | | // this.socket.onerror = this.error |
| | | // // 监听socket消息 |
| | | // this.socket.onmessage = this.getMessage |
| | | // } |
| | | // }, |
| | | // open: function () { |
| | | // console.log("socket连接成功") |
| | | // }, |
| | | // error: function () { |
| | | // console.log("连接错误") |
| | | // }, |
| | | // getMessage: function (msg) { |
| | | // console.log(typeof msg.data,'type') |
| | | // if(msg.data =='连接成功') return |
| | | // this.socketData = msg.data |
| | | // console.log(JSON.parse(this.socketData),'------------------',) |
| | | // if(typeof JSON.parse(this.socketData) == Array){ |
| | | // this.data = JSON.parse(this.socketData) |
| | | // console.log(this.data) |
| | | // } |
| | | // // console.log(msg,'msg') |
| | | // // console.log(this.data,'data-------') |
| | | // }, |
| | | // send: function () { |
| | | // this.socket.send(params) |
| | | // }, |
| | | // close: function () { |
| | | // console.log("socket已经关闭") |
| | | // } |
| | | // }, |
| | | // destroyed () { |
| | | // // 销毁监听 |
| | | // this.socket.onclose = this.close |
| | | // } |
| | | // } |
| | | </script> |
| | | |
| | | <!-- Add "scoped" attribute to limit CSS to this component only --> |
| | | <!-- Add "scoped" attribute to limit CSS to this components only --> |
| | | <style scoped lang="scss"> |
| | | @keyframes warn { |
| | | 0% { |
| | | transform: scale(0.3); |
| | | -webkit-transform: scale(0.3); |
| | | opacity: 0; |
| | | } |
| | | |
| | | 25% { |
| | | transform: scale(0.3); |
| | | -webkit-transform: scale(0.3); |
| | | opacity: 0.1; |
| | | } |
| | | |
| | | 50% { |
| | | transform: scale(0.5); |
| | | -webkit-transform: scale(0.5); |
| | | opacity: 0.3; |
| | | } |
| | | |
| | | 75% { |
| | | transform: scale(0.8); |
| | | -webkit-transform: scale(0.8); |
| | | opacity: 0.6; |
| | | } |
| | | |
| | | 100% { |
| | | transform: scale(1); |
| | | -webkit-transform: scale(1); |
| | | opacity: 0; |
| | | } |
| | | } |
| | | |
| | | @keyframes warn1 { |
| | | 0% { |
| | | transform: scale(0.3); |
| | | -webkit-transform: scale(0.3); |
| | | opacity: 0; |
| | | } |
| | | |
| | | 25% { |
| | | transform: scale(0.3); |
| | | -webkit-transform: scale(0.3); |
| | | opacity: 0.1; |
| | | } |
| | | |
| | | 50% { |
| | | transform: scale(0.3); |
| | | -webkit-transform: scale(0.3); |
| | | opacity: 0.3; |
| | | } |
| | | |
| | | 75% { |
| | | transform: scale(0.5); |
| | | -webkit-transform: scale(0.5); |
| | | opacity: 0.6; |
| | | } |
| | | |
| | | 100% { |
| | | transform: scale(0.8); |
| | | -webkit-transform: scale(0.8); |
| | | opacity: 0; |
| | | } |
| | | } |
| | | |
| | | @keyframes circle { |
| | | 0% { |
| | | transform: rotate(0); |
| | | -webkit-transform: rotate(0); |
| | | } |
| | | 100% { |
| | | transform: rotate(360deg); |
| | | -webkit-transform: rotate(360deg); |
| | | } |
| | | } |
| | | @keyframes run { |
| | | to { |
| | | transform: translateX(calc((100vw - 180px) / 6 - 80px)); |
| | | } |
| | | } |
| | | .container { |
| | | width: 100%; |
| | | height: 100%; |
| | | position: relative; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | background: url('../../../assets/loginPage/map-bg.jpg') no-repeat center; |
| | | background-size: 100% 100%; |
| | | .big-title { |
| | | height: 40px; |
| | | line-height: 40px; |
| | | font-size: 28px; |
| | | font-weight: bold; |
| | | margin: 10px 0 20px; |
| | | text-align: center; |
| | | color: #fff; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .btns { |
| | | position: absolute; |
| | | z-index: 99999; |
| | | right: 60px; |
| | | top: 40px; |
| | | display: flex; |
| | | align-items: center; |
| | | .fullbtn { |
| | | cursor: pointer; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-right: 20px; |
| | | .toFull { |
| | | font-weight: bolder; |
| | | color: #00ffff; |
| | | margin-right: 10px; |
| | | } |
| | | @media screen and (min-width: 1366px) { |
| | | .big-title { |
| | | font-size: 28px; |
| | | margin: 10px 0 20px; |
| | | } |
| | | .btns { |
| | | position: absolute; |
| | | z-index: 99999; |
| | | right: 60px; |
| | | top: 40px; |
| | | div { |
| | | font-size: 16px; |
| | | color: #00ffff; |
| | | } |
| | | } |
| | | |
| | | .backBtn { |
| | | cursor: pointer; |
| | | .line-item { |
| | | width: calc((100vw - 40px) / 6); |
| | | padding-left: 20px; |
| | | display: flex; |
| | | align-items: center; |
| | | img { |
| | | width: 14px; |
| | | height: 14px; |
| | | margin-right: 10px; |
| | | } |
| | | div { |
| | | font-size: 16px; |
| | | color: #00ffff; |
| | | } |
| | | } |
| | | } |
| | | .blocks { |
| | | width: 100%; |
| | | height: calc(100% - 90px); |
| | | padding: 20px 40px 30px; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: flex-start; |
| | | overflow: hidden; |
| | | overflow-x: auto; |
| | | overflow-y: auto; |
| | | |
| | | .line-map { |
| | | display: flex; |
| | | justify-content: center; |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | margin-right: 20px; |
| | | flex-wrap: nowrap; |
| | | |
| | | .line-item { |
| | | width: calc((100vw - 180px) / 6); |
| | | padding-left: 20px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | margin-right: 20px; |
| | | flex-wrap: nowrap; |
| | | |
| | | .picbox { |
| | | .picbox { |
| | | width: 100%; |
| | | height: 200px; |
| | | padding: 10px; |
| | | margin-bottom: 20px; |
| | | box-sizing: border-box; |
| | | .imgbox{ |
| | | width: 100%; |
| | | height: calc((100vh - 130px) / 5); |
| | | padding: 10px; |
| | | margin-bottom: 40px; |
| | | box-sizing: border-box; |
| | | |
| | | height: 120px; |
| | | position: relative; |
| | | margin-bottom: 10px; |
| | | border-radius: 4px; |
| | | overflow: hidden; |
| | | img { |
| | | display: block; |
| | | width: 100%; |
| | | height: 100px; |
| | | margin-bottom: 10px; |
| | | border-radius: 4px; |
| | | height: auto; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | bottom: 0; |
| | | right: 0; |
| | | margin: auto; |
| | | } |
| | | p { |
| | | font-size: 14px; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | margin-top: 10px; |
| | | span { |
| | | color: #fff; |
| | | } |
| | | |
| | | p { |
| | | font-size: 14px; |
| | | white-space: nowrap; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | margin-bottom: 4px; |
| | | span { |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .item { |
| | | width: calc((100vw - 40px) / 6); |
| | | height: calc((100vh - 130px) / 5); |
| | | padding: 0 40px 20px 50px; |
| | | position: relative; |
| | | box-sizing: border-box; |
| | | border-left: 1px solid #36fcfc; |
| | | |
| | | &:last-of-type { |
| | | border: none; |
| | | } |
| | | |
| | | section { |
| | | width: 24px; |
| | | height: 24px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid rgba(0, 114, 255, 0.6); |
| | | top: -12px; |
| | | left: 10px; |
| | | |
| | | .dot { |
| | | position: absolute; |
| | | width: 12px; |
| | | height: 12px; |
| | | left: 5px; |
| | | top: 5px; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #0072ff; |
| | | border-radius: 50%; |
| | | background-color: #0072ff; |
| | | z-index: 2; |
| | | } |
| | | .pulse { |
| | | position: absolute; |
| | | width: 48px; |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #0072ff; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border-radius: 50%; |
| | | z-index: 1; |
| | | opacity: 0; |
| | | -webkit-animation: warn 2s ease-out; |
| | | -moz-animation: warn 2s ease-out; |
| | | animation: warn 2s ease-out; |
| | | -webkit-animation-iteration-count: infinite; |
| | | -moz-animation-iteration-count: infinite; |
| | | animation-iteration-count: infinite; |
| | | box-shadow: 1px 1px 30px #0072ff; |
| | | } |
| | | .pulse1 { |
| | | position: absolute; |
| | | width: 48px; |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #0072ff; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border-radius: 50%; |
| | | z-index: 1; |
| | | opacity: 0; |
| | | -webkit-animation: warn1 2s ease-out; |
| | | -moz-animation: warn1 2s ease-out; |
| | | animation: warn1 2s ease-out; |
| | | -webkit-animation-iteration-count: infinite; |
| | | -moz-animation-iteration-count: infinite; |
| | | animation-iteration-count: infinite; |
| | | box-shadow: 1px 1px 30px #0072ff; |
| | | } |
| | | } |
| | | & > div { |
| | | padding: 10px 0; |
| | | transform: translateY(-14px); |
| | | border-radius: 8px; |
| | | background-image: linear-gradient(to right, rgba(8, 109, 209, 0.4), rgba(11, 255, 255, 0.2)); |
| | | border: 1px solid rgba(54, 252, 252, 1); |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | |
| | | div { |
| | | margin-bottom: 5px; |
| | | display: flex; |
| | | align-items: flex-start; |
| | | &:last-of-type { |
| | | margin-bottom: 0; |
| | | } |
| | | span { |
| | | width: 50%; |
| | | font-size: 13px; |
| | | color: #fff; |
| | | text-align: left; |
| | | word-break: break-all; |
| | | |
| | | &:first-of-type { |
| | | text-align: right; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | } |
| | | } |
| | | } |
| | | .area-head { |
| | | } |
| | | .noBorder{ |
| | | border: 1px solid rgba(54, 252, 252, 0.1); |
| | | } |
| | | .redBorder{ |
| | | border: 1px solid #ff0000; |
| | | } |
| | | p { |
| | | width: 140px; |
| | | height: 50px; |
| | | font-size: 18px; |
| | | line-height: 48px; |
| | | text-align: center; |
| | | color: #fff; |
| | | border-radius: 8px; |
| | | background-image: linear-gradient(to right, rgba(11, 255, 255, 0.2), rgba(8, 109, 209, 0.4)); |
| | | border: 1px solid rgba(54, 252, 252, 0.6); |
| | | } |
| | | } |
| | | .finish-point { |
| | | position: absolute; |
| | | width: 90px; |
| | | height: 90px; |
| | | border: 2px solid #0072ff; |
| | | left: -30px; |
| | | top: -45px; |
| | | border-radius: 50%; |
| | | |
| | | & > div { |
| | | width: 80px; |
| | | height: 80px; |
| | | position: absolute; |
| | | left: 3px; |
| | | top: 3px; |
| | | background: #0072ff; |
| | | border-radius: 50%; |
| | | color: #fff; |
| | | font-size: 16px; |
| | | line-height: 80px; |
| | | text-align: center; |
| | | font-weight: bolder; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1200px) and (max-width: 1366px){ |
| | | .big-title { |
| | | font-size: 28px; |
| | | margin: 10px 0 20px; |
| | | } |
| | | .btns { |
| | | position: absolute; |
| | | z-index: 99999; |
| | | right: 40px; |
| | | top: 40px; |
| | | div { |
| | | font-size: 14px; |
| | | color: #00ffff; |
| | | } |
| | | } |
| | | .line-item { |
| | | width: calc((100vw - 40px) / 5); |
| | | padding-left: 20px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | margin-right: 20px; |
| | | flex-wrap: nowrap; |
| | | .picbox { |
| | | width: 100%; |
| | | height: 180px; |
| | | padding: 10px; |
| | | margin-bottom: 40px; |
| | | box-sizing: border-box; |
| | | .imgbox{ |
| | | width: 100%; |
| | | height: 100px; |
| | | position: relative; |
| | | margin-bottom: 6px; |
| | | border-radius: 4px; |
| | | overflow: hidden; |
| | | img { |
| | | display: block; |
| | | width: 100%; |
| | | height: auto; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | bottom: 0; |
| | | right: 0; |
| | | margin: auto; |
| | | } |
| | | } |
| | | p { |
| | | font-size: 14px; |
| | | white-space: nowrap; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | margin-top: 10px; |
| | | span { |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .item { |
| | | width: calc((100vw - 40px) / 5); |
| | | height: calc((100vh - 130px) / 5); |
| | | padding: 0 20px 20px 40px; |
| | | position: relative; |
| | | box-sizing: border-box; |
| | | border-left: 1px solid #36fcfc; |
| | | |
| | | &:last-of-type { |
| | | border: none; |
| | | } |
| | | |
| | | section { |
| | | width: 24px; |
| | | height: 24px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid rgba(0, 114, 255, 0.6); |
| | | top: -12px; |
| | | left: 10px; |
| | | |
| | | .dot { |
| | | position: absolute; |
| | | width: 12px; |
| | | height: 12px; |
| | | left: 5px; |
| | | top: 5px; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #0072FF; |
| | | border-radius: 50%; |
| | | background-color: #0072FF; |
| | | z-index: 2; |
| | | } |
| | | .pulse { |
| | | position: absolute; |
| | | width: 48px; |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #0072FF; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border-radius: 50%; |
| | | z-index: 1; |
| | | opacity: 0; |
| | | -webkit-animation: warn 2s ease-out; |
| | | -moz-animation: warn 2s ease-out; |
| | | animation: warn 2s ease-out; |
| | | -webkit-animation-iteration-count: infinite; |
| | | -moz-animation-iteration-count: infinite; |
| | | animation-iteration-count: infinite; |
| | | box-shadow: 1px 1px 30px #0072FF; |
| | | } |
| | | .pulse1 { |
| | | position: absolute; |
| | | width: 48px; |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #0072FF; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border-radius: 50%; |
| | | z-index: 1; |
| | | opacity: 0; |
| | | -webkit-animation: warn1 2s ease-out; |
| | | -moz-animation: warn1 2s ease-out; |
| | | animation: warn1 2s ease-out; |
| | | -webkit-animation-iteration-count: infinite; |
| | | -moz-animation-iteration-count: infinite; |
| | | animation-iteration-count: infinite; |
| | | box-shadow: 1px 1px 30px #0072FF; |
| | | } |
| | | } |
| | | & > div { |
| | | width: 90%; |
| | | padding: 10px 0; |
| | | transform: translateY(-14px); |
| | | border-radius: 8px; |
| | | background-image: linear-gradient(to right, rgba(8, 109, 209, 0.4), rgba(11, 255, 255, 0.2)); |
| | | border: 1px solid rgba(54, 252, 252, 1); |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | |
| | | div { |
| | | width: 100%; |
| | | margin-bottom: 5px; |
| | | display: flex; |
| | | align-items: flex-start; |
| | | &:last-of-type { |
| | | margin-bottom: 0; |
| | | } |
| | | span { |
| | | width: 50%; |
| | | font-size: 13px; |
| | | color: #fff; |
| | | text-align: left; |
| | | word-break: break-all; |
| | | |
| | | &:first-of-type { |
| | | text-align: right; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .noBorder{ |
| | | border: 1px solid rgba(54, 252, 252, 0.1); |
| | | } |
| | | .redBorder{ |
| | | border: 1px solid #ff0000; |
| | | } |
| | | p { |
| | | width: 140px; |
| | | height: 50px; |
| | | font-size: 18px; |
| | | line-height: 48px; |
| | | text-align: center; |
| | | color: #fff; |
| | | border-radius: 8px; |
| | | background-image: linear-gradient(to right, rgba(11, 255, 255, 0.2), rgba(8, 109, 209, 0.4)); |
| | | border: 1px solid rgba(54, 252, 252, 0.6); |
| | | } |
| | | } |
| | | .finish-point { |
| | | position: absolute; |
| | | width: 80px; |
| | | height: 80px; |
| | | border: 1px solid #0072ff; |
| | | left: -20px; |
| | | top: -40px; |
| | | border-radius: 50%; |
| | | |
| | | & > div { |
| | | width: 70px; |
| | | height: 70px; |
| | | position: absolute; |
| | | left: 4px; |
| | | top: 4px; |
| | | background: #0072ff; |
| | | border-radius: 50%; |
| | | color: #fff; |
| | | font-size: 14px; |
| | | line-height: 70px; |
| | | text-align: center; |
| | | font-weight: bolder; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 1200px){ |
| | | .big-title { |
| | | font-size: 20px; |
| | | margin: 5px 0 10px; |
| | | } |
| | | .btns { |
| | | position: absolute; |
| | | z-index: 99999; |
| | | right: 20px; |
| | | top: 40px; |
| | | div { |
| | | font-size: 12px; |
| | | color: #00ffff; |
| | | } |
| | | } |
| | | .line-item { |
| | | width: 20vw; |
| | | padding-left: 10px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | margin-right: 20px; |
| | | flex-wrap: nowrap; |
| | | .picbox { |
| | | width: 100%; |
| | | height: 160px; |
| | | padding: 10px; |
| | | margin-bottom: 30px; |
| | | box-sizing: border-box; |
| | | .imgbox{ |
| | | width: 100%; |
| | | height: 80px; |
| | | padding-left: 38px; |
| | | border-left: 1px solid #36fcfc; |
| | | |
| | | .indicator { |
| | | width: 36px; |
| | | height: 36px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid #00ff66; |
| | | top: -18px; |
| | | left: -18px; |
| | | |
| | | .indi-dot { |
| | | position: absolute; |
| | | width: 20px; |
| | | height: 20px; |
| | | left: 7px; |
| | | top: 7px; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #00ff66; |
| | | border-radius: 50%; |
| | | background-color: #00ff66; |
| | | z-index: 2; |
| | | } |
| | | .indi-pulse { |
| | | position: absolute; |
| | | width: 56px; |
| | | height: 56px; |
| | | left: -11px; |
| | | top: -11px; |
| | | border: 1px solid #00ff66; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border-radius: 50%; |
| | | z-index: 1; |
| | | opacity: 0; |
| | | -webkit-animation: warn 2s ease-out; |
| | | -moz-animation: warn 2s ease-out; |
| | | animation: warn 2s ease-out; |
| | | -webkit-animation-iteration-count: infinite; |
| | | -moz-animation-iteration-count: infinite; |
| | | animation-iteration-count: infinite; |
| | | box-shadow: 1px 1px 30px #00ff66; |
| | | } |
| | | .indi-pulse1 { |
| | | position: absolute; |
| | | width: 56px; |
| | | height: 56px; |
| | | left: -11px; |
| | | top: -11px; |
| | | border: 1px solid #3399ff; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border-radius: 50%; |
| | | z-index: 1; |
| | | opacity: 0; |
| | | -webkit-animation: warn1 2s ease-out; |
| | | -moz-animation: warn1 2s ease-out; |
| | | animation: warn1 2s ease-out; |
| | | -webkit-animation-iteration-count: infinite; |
| | | -moz-animation-iteration-count: infinite; |
| | | animation-iteration-count: infinite; |
| | | box-shadow: 1px 1px 30px #3399ff; |
| | | } |
| | | } |
| | | .someUndone { |
| | | width: 36px; |
| | | height: 36px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid #ccc; |
| | | top: -18px; |
| | | left: -18px; |
| | | |
| | | .indi-dot { |
| | | position: absolute; |
| | | width: 20px; |
| | | height: 20px; |
| | | left: 7px; |
| | | top: 7px; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #ccc; |
| | | border-radius: 50%; |
| | | background-color: #ccc; |
| | | z-index: 2; |
| | | } |
| | | } |
| | | .somewarning { |
| | | width: 36px; |
| | | height: 36px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid #ff0000; |
| | | top: -18px; |
| | | left: -18px; |
| | | |
| | | .indi-dot { |
| | | position: absolute; |
| | | width: 20px; |
| | | height: 20px; |
| | | left: 7px; |
| | | top: 7px; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #ff0000; |
| | | border-radius: 50%; |
| | | background-color: #ff0000; |
| | | z-index: 2; |
| | | } |
| | | } |
| | | .arrow { |
| | | position: absolute; |
| | | width: 58px; |
| | | height: 20px; |
| | | left: 38px; |
| | | top: -10px; |
| | | background: url('../../../assets/loginPage/arrow-r.png') 0 / cover no-repeat; |
| | | animation: run 2s steps(4) 0s infinite; |
| | | } |
| | | .top-line { |
| | | position: relative; |
| | | margin-bottom: 10px; |
| | | border-radius: 4px; |
| | | overflow: hidden; |
| | | img { |
| | | display: block; |
| | | width: 100%; |
| | | border-top: 2px solid #36fcfc; |
| | | } |
| | | .fadeLine { |
| | | width: 100%; |
| | | border-top: 1px solid rgba(54,252,252,.6); |
| | | height: auto; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | bottom: 0; |
| | | right: 0; |
| | | margin: auto; |
| | | } |
| | | } |
| | | .fadeBorder { |
| | | border-left: 1px solid #ccc; |
| | | p { |
| | | font-size: 12px; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | margin-top: 6px; |
| | | span { |
| | | color: #fff; |
| | | } |
| | | } |
| | | .more-info { |
| | | } |
| | | } |
| | | .item { |
| | | width: 20vw; |
| | | height: calc((100vh - 130px) / 5); |
| | | padding: 0 0 20px 30px; |
| | | position: relative; |
| | | box-sizing: border-box; |
| | | border-left: 1px solid #36fcfc; |
| | | |
| | | &:last-of-type { |
| | | border: none; |
| | | } |
| | | |
| | | section { |
| | | width: 24px; |
| | | height: 24px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid rgba(0, 114, 255, 0.6); |
| | | top: -12px; |
| | | left: 2px; |
| | | |
| | | .dot { |
| | | position: absolute; |
| | | width: 12px; |
| | | height: 12px; |
| | | left: 5px; |
| | | top: 5px; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #0072ff; |
| | | border-radius: 50%; |
| | | background-color: #0072ff; |
| | | z-index: 2; |
| | | } |
| | | .pulse { |
| | | position: absolute; |
| | | width: 48px; |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #0072ff; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border-radius: 50%; |
| | | z-index: 1; |
| | | opacity: 0; |
| | | -webkit-animation: warn 2s ease-out; |
| | | -moz-animation: warn 2s ease-out; |
| | | animation: warn 2s ease-out; |
| | | -webkit-animation-iteration-count: infinite; |
| | | -moz-animation-iteration-count: infinite; |
| | | animation-iteration-count: infinite; |
| | | box-shadow: 1px 1px 30px #0072ff; |
| | | } |
| | | .pulse1 { |
| | | position: absolute; |
| | | width: 48px; |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #0072ff; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border-radius: 50%; |
| | | z-index: 1; |
| | | opacity: 0; |
| | | -webkit-animation: warn1 2s ease-out; |
| | | -moz-animation: warn1 2s ease-out; |
| | | animation: warn1 2s ease-out; |
| | | -webkit-animation-iteration-count: infinite; |
| | | -moz-animation-iteration-count: infinite; |
| | | animation-iteration-count: infinite; |
| | | box-shadow: 1px 1px 30px #0072ff; |
| | | } |
| | | } |
| | | & > div { |
| | | width: 80%; |
| | | padding: 4px 0; |
| | | transform: translateY(-14px); |
| | | border-radius: 8px; |
| | | background-image: linear-gradient(to right, rgba(8, 109, 209, 0.4), rgba(11, 255, 255, 0.2)); |
| | | border: 1px solid rgba(54, 252, 252, 1); |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | |
| | | div { |
| | | width: 100%; |
| | | margin-bottom: 2px; |
| | | display: flex; |
| | | align-items: flex-start; |
| | | &:last-of-type { |
| | | margin-bottom: 0; |
| | | } |
| | | span { |
| | | width: 50%; |
| | | font-size: 12px; |
| | | color: #fff; |
| | | text-align: left; |
| | | word-break: break-all; |
| | | |
| | | .item { |
| | | width: calc((100vw - 120px) / 6); |
| | | height: calc((100vh - 130px) / 5); |
| | | padding: 0 50px 20px; |
| | | &:first-of-type { |
| | | text-align: right; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .noBorder{ |
| | | border: 1px solid rgba(54, 252, 252, 0.1); |
| | | } |
| | | .redBorder{ |
| | | border: 1px solid #ff0000; |
| | | } |
| | | p { |
| | | width: 140px; |
| | | height: 50px; |
| | | font-size: 18px; |
| | | line-height: 48px; |
| | | text-align: center; |
| | | color: #fff; |
| | | border-radius: 8px; |
| | | background-image: linear-gradient(to right, rgba(11, 255, 255, 0.2), rgba(8, 109, 209, 0.4)); |
| | | border: 1px solid rgba(54, 252, 252, 0.6); |
| | | } |
| | | } |
| | | .finish-point { |
| | | position: absolute; |
| | | width: 70px; |
| | | height: 70px; |
| | | border: 1px solid #0072ff; |
| | | left: -10px; |
| | | top: -35px; |
| | | border-radius: 50%; |
| | | |
| | | & > div { |
| | | width: 60px; |
| | | height: 60px; |
| | | position: absolute; |
| | | left: 4px; |
| | | top: 4px; |
| | | background: #0072ff; |
| | | border-radius: 50%; |
| | | color: #fff; |
| | | font-size: 12px; |
| | | line-height: 60px; |
| | | text-align: center; |
| | | font-weight: bolder; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @keyframes warn { |
| | | 0% { |
| | | transform: scale(0.3); |
| | | -webkit-transform: scale(0.3); |
| | | opacity: 0; |
| | | } |
| | | |
| | | 25% { |
| | | transform: scale(0.3); |
| | | -webkit-transform: scale(0.3); |
| | | opacity: 0.1; |
| | | } |
| | | |
| | | 50% { |
| | | transform: scale(0.5); |
| | | -webkit-transform: scale(0.5); |
| | | opacity: 0.3; |
| | | } |
| | | |
| | | 75% { |
| | | transform: scale(0.8); |
| | | -webkit-transform: scale(0.8); |
| | | opacity: 0.6; |
| | | } |
| | | |
| | | 100% { |
| | | transform: scale(1); |
| | | -webkit-transform: scale(1); |
| | | opacity: 0; |
| | | } |
| | | } |
| | | |
| | | @keyframes warn1 { |
| | | 0% { |
| | | transform: scale(0.3); |
| | | -webkit-transform: scale(0.3); |
| | | opacity: 0; |
| | | } |
| | | |
| | | 25% { |
| | | transform: scale(0.3); |
| | | -webkit-transform: scale(0.3); |
| | | opacity: 0.1; |
| | | } |
| | | |
| | | 50% { |
| | | transform: scale(0.3); |
| | | -webkit-transform: scale(0.3); |
| | | opacity: 0.3; |
| | | } |
| | | |
| | | 75% { |
| | | transform: scale(0.5); |
| | | -webkit-transform: scale(0.5); |
| | | opacity: 0.6; |
| | | } |
| | | |
| | | 100% { |
| | | transform: scale(0.8); |
| | | -webkit-transform: scale(0.8); |
| | | opacity: 0; |
| | | } |
| | | } |
| | | |
| | | @keyframes circle { |
| | | 0% { |
| | | transform: rotate(0); |
| | | -webkit-transform: rotate(0); |
| | | } |
| | | 100% { |
| | | transform: rotate(360deg); |
| | | -webkit-transform: rotate(360deg); |
| | | } |
| | | } |
| | | @keyframes run { |
| | | to { |
| | | transform: translateX(calc((100vw - 180px) / 6 - 80px)); |
| | | } |
| | | } |
| | | .container { |
| | | width: 100%; |
| | | height: 100%; |
| | | position: relative; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | background: url('../../../assets/loginPage/map-bg.jpg') no-repeat center; |
| | | background-size: 100% 100%; |
| | | .big-title { |
| | | height: 40px; |
| | | line-height: 40px; |
| | | font-weight: bold; |
| | | text-align: center; |
| | | color: #fff; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .btns { |
| | | display: flex; |
| | | align-items: center; |
| | | .fullbtn { |
| | | cursor: pointer; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-right: 20px; |
| | | .toFull { |
| | | font-weight: bolder; |
| | | color: #00ffff; |
| | | margin-right: 10px; |
| | | } |
| | | } |
| | | |
| | | .backBtn { |
| | | cursor: pointer; |
| | | display: flex; |
| | | align-items: center; |
| | | img { |
| | | width: 14px; |
| | | height: 14px; |
| | | margin-right: 10px; |
| | | } |
| | | } |
| | | } |
| | | .blocks { |
| | | width: 100%; |
| | | height: calc(100% - 90px); |
| | | padding: 10px 40px 35px; |
| | | box-sizing: border-box; |
| | | |
| | | &>div{ |
| | | width: 100%; |
| | | height: 100%; |
| | | display: flex; |
| | | justify-content: left; |
| | | align-items: flex-start; |
| | | overflow-y: hidden; |
| | | overflow-x: hidden; |
| | | overflow: auto; |
| | | } |
| | | |
| | | .line-map { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: flex-start; |
| | | |
| | | .line-item { |
| | | |
| | | .area-head { |
| | | position: relative; |
| | | box-sizing: border-box; |
| | | width: 100%; |
| | | height: 80px; |
| | | padding-left: 38px; |
| | | border-left: 1px solid #36fcfc; |
| | | |
| | | &:last-of-type { |
| | | border: none; |
| | | } |
| | | |
| | | section { |
| | | width: 24px; |
| | | height: 24px; |
| | | .indicator { |
| | | width: 36px; |
| | | height: 36px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid rgba(0, 225, 255, 0.6); |
| | | top: -12px; |
| | | left: 10px; |
| | | border: 1px solid #00ff66; |
| | | top: -18px; |
| | | left: -18px; |
| | | |
| | | .dot { |
| | | .indi-dot { |
| | | position: absolute; |
| | | width: 12px; |
| | | height: 12px; |
| | | left: 5px; |
| | | top: 5px; |
| | | width: 20px; |
| | | height: 20px; |
| | | left: 7px; |
| | | top: 7px; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #0072ff; |
| | | border: 1px solid #00ff66; |
| | | border-radius: 50%; |
| | | background-color: #00e1ff; |
| | | background-color: #00ff66; |
| | | z-index: 2; |
| | | } |
| | | .pulse { |
| | | .indi-pulse { |
| | | position: absolute; |
| | | width: 48px; |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #00e1ff; |
| | | width: 56px; |
| | | height: 56px; |
| | | left: -11px; |
| | | top: -11px; |
| | | border: 1px solid #00ff66; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border-radius: 50%; |
| | |
| | | -webkit-animation-iteration-count: infinite; |
| | | -moz-animation-iteration-count: infinite; |
| | | animation-iteration-count: infinite; |
| | | box-shadow: 1px 1px 30px #00e1ff; |
| | | box-shadow: 1px 1px 30px #00ff66; |
| | | } |
| | | .pulse1 { |
| | | .indi-pulse1 { |
| | | position: absolute; |
| | | width: 48px; |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #00e1ff; |
| | | width: 56px; |
| | | height: 56px; |
| | | left: -11px; |
| | | top: -11px; |
| | | border: 1px solid #3399ff; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border-radius: 50%; |
| | |
| | | -webkit-animation-iteration-count: infinite; |
| | | -moz-animation-iteration-count: infinite; |
| | | animation-iteration-count: infinite; |
| | | box-shadow: 1px 1px 30px #00e1ff; |
| | | box-shadow: 1px 1px 30px #3399ff; |
| | | } |
| | | } |
| | | & > div { |
| | | padding: 10px 0; |
| | | transform: translateY(-14px); |
| | | border-radius: 8px; |
| | | background-image: linear-gradient(to right, rgba(8, 109, 209, 0.4), rgba(11, 255, 255, 0.2)); |
| | | border: 1px solid rgba(54, 252, 252, 1); |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | .someUndone { |
| | | width: 36px; |
| | | height: 36px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid #ccc; |
| | | top: -18px; |
| | | left: -18px; |
| | | |
| | | div { |
| | | margin-bottom: 5px; |
| | | &:last-of-type { |
| | | margin-bottom: none; |
| | | .indi-dot { |
| | | position: absolute; |
| | | width: 20px; |
| | | height: 20px; |
| | | left: 7px; |
| | | top: 7px; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #ccc; |
| | | border-radius: 50%; |
| | | background-color: #ccc; |
| | | z-index: 2; |
| | | } |
| | | } |
| | | .somewarning { |
| | | width: 36px; |
| | | height: 36px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid #ff0000; |
| | | top: -18px; |
| | | left: -18px; |
| | | |
| | | .indi-dot { |
| | | position: absolute; |
| | | width: 20px; |
| | | height: 20px; |
| | | left: 7px; |
| | | top: 7px; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #ff0000; |
| | | border-radius: 50%; |
| | | background-color: #ff0000; |
| | | z-index: 2; |
| | | } |
| | | } |
| | | .arrow { |
| | | position: absolute; |
| | | width: 58px; |
| | | height: 20px; |
| | | left: 38px; |
| | | top: -10px; |
| | | background: url('../../../assets/loginPage/arrow-r.png') 0 / cover no-repeat; |
| | | animation: run 2s steps(4) 0s infinite; |
| | | } |
| | | .top-line { |
| | | width: 100%; |
| | | border-top: 2px solid #36fcfc; |
| | | } |
| | | .fadeLine { |
| | | width: 100%; |
| | | border-top: 1px solid rgba(54,252,252,.6); |
| | | } |
| | | } |
| | | .fadeBorder { |
| | | border-left: 1px solid #ccc; |
| | | } |
| | | .more-info { |
| | | width: 100%; |
| | | |
| | | .warning { |
| | | & > section { |
| | | border: 1px solid #ff0000; |
| | | |
| | | .dot { |
| | | border: 1px solid #ff0000; |
| | | background: #ff0000; |
| | | } |
| | | span { |
| | | display: inline-block; |
| | | width: 50%; |
| | | font-size: 13px; |
| | | color: #fff; |
| | | text-align: left; |
| | | .pulse { |
| | | border: 1px solid #ff0000; |
| | | box-shadow: 1px 1px 30px #ff0000; |
| | | } |
| | | .pulse1 { |
| | | border: 1px solid #ff0000; |
| | | box-shadow: 1px 1px 30px #ff0000; |
| | | } |
| | | } |
| | | |
| | | &:first-of-type { |
| | | text-align: right; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | & > div { |
| | | div { |
| | | span.target { |
| | | color: #ff2929; |
| | | font-weight: bolder; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .noBorder{ |
| | | border: 1px solid rgba(54, 252, 252, 0.1); |
| | | } |
| | | .redBorder{ |
| | | border: 1px solid #ff0000; |
| | | } |
| | | p { |
| | | width: 140px; |
| | | height: 50px; |
| | | font-size: 18px; |
| | | line-height: 48px; |
| | | text-align: center; |
| | | color: #fff; |
| | | border-radius: 8px; |
| | | background-image: linear-gradient(to right, rgba(11, 255, 255, 0.2), rgba(8, 109, 209, 0.4)); |
| | | border: 1px solid rgba(54, 252, 252, 0.6); |
| | | } |
| | | } |
| | | .warning { |
| | | & > section { |
| | | border: 1px solid #ff0000; |
| | | .undone { |
| | | & > section { |
| | | border: 1px solid #ccc; |
| | | |
| | | .dot { |
| | | border: 1px solid #ff0000; |
| | | background: #ff0000; |
| | | } |
| | | .pulse { |
| | | border: 1px solid #ff0000; |
| | | box-shadow: 1px 1px 30px #ff0000; |
| | | } |
| | | .pulse1 { |
| | | border: 1px solid #ff0000; |
| | | box-shadow: 1px 1px 30px #ff0000; |
| | | } |
| | | } |
| | | |
| | | & > div { |
| | | div { |
| | | span.target { |
| | | color: #ff2929; |
| | | font-weight: bolder; |
| | | .dot { |
| | | border: 1px solid #ccc; |
| | | background: #ccc; |
| | | } |
| | | .pulse { |
| | | display: none; |
| | | } |
| | | .pulse1 { |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .undone { |
| | | & > section { |
| | | border: 1px solid #ccc; |
| | | |
| | | .dot { |
| | | border: 1px solid #ccc; |
| | | background: #ccc; |
| | | } |
| | | .pulse { |
| | | display: none; |
| | | } |
| | | .pulse1 { |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | | .finish { |
| | | .area-head { |
| | | position: relative; |
| | | width: 100%; |
| | | height: 80px; |
| | | border-left: none; |
| | | } |
| | | } |
| | | } |
| | | .finish { |
| | | .area-head { |
| | | position: relative; |
| | | width: 100%; |
| | | height: 80px; |
| | | border-left: none; |
| | | .finish-point { |
| | | position: absolute; |
| | | width: 90px; |
| | | .pic-tit { |
| | | display: flex; |
| | | width: calc((100vw - 120px) / 7); |
| | | height: 160px; |
| | | padding: 20px; |
| | | transform: translate(-20px, -40%); |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | |
| | | img { |
| | | width: calc((100vw - 120px) / 7 - 40px); |
| | | height: 90px; |
| | | border: 2px solid #0072ff; |
| | | left: -30px; |
| | | top: -45px; |
| | | border-radius: 50%; |
| | | margin-bottom: 10px; |
| | | border-radius: 4px; |
| | | } |
| | | p { |
| | | font-size: 16px; |
| | | color: #00ffff; |
| | | font-weight: bold; |
| | | } |
| | | } |
| | | |
| | | & > div { |
| | | width: 80px; |
| | | height: 80px; |
| | | position: absolute; |
| | | left: 3px; |
| | | top: 3px; |
| | | background: #0072ff; |
| | | border-radius: 50%; |
| | | color: #fff; |
| | | font-size: 16px; |
| | | line-height: 80px; |
| | | text-align: center; |
| | | font-weight: bolder; |
| | | } |
| | | .water { |
| | | transform: none; |
| | | } |
| | | .start { |
| | | padding: 40px 0; |
| | | p { |
| | | margin-top: -21px; |
| | | margin-left: 20px; |
| | | } |
| | | span { |
| | | width: 1px; |
| | | height: 50px; |
| | | background: #36fcfc; |
| | | position: absolute; |
| | | top: -10px; |
| | | left: 0; |
| | | } |
| | | section { |
| | | position: absolute; |
| | | top: 30px; |
| | | left: -14px; |
| | | } |
| | | } |
| | | } |
| | | .pic-tit { |
| | | display: flex; |
| | | width: calc((100vw - 120px) / 7); |
| | | height: 160px; |
| | | padding: 20px; |
| | | transform: translate(-20px, -40%); |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | |
| | | img { |
| | | width: calc((100vw - 120px) / 7 - 40px); |
| | | height: 90px; |
| | | margin-bottom: 10px; |
| | | border-radius: 4px; |
| | | } |
| | | p { |
| | | font-size: 16px; |
| | | color: #00ffff; |
| | | font-weight: bold; |
| | | } |
| | | .tip { |
| | | width: 100%; |
| | | font-size: 30px; |
| | | text-align: center; |
| | | margin-top: 100px; |
| | | color: #fff; |
| | | font-weight: bolder; |
| | | } |
| | | |
| | | .water { |
| | | transform: none; |
| | | } |
| | | .start { |
| | | padding: 40px 0; |
| | | p { |
| | | margin-top: -21px; |
| | | margin-left: 20px; |
| | | } |
| | | span { |
| | | width: 1px; |
| | | height: 50px; |
| | | background: #36fcfc; |
| | | position: absolute; |
| | | top: -10px; |
| | | left: 0; |
| | | } |
| | | section { |
| | | position: absolute; |
| | | top: 30px; |
| | | left: -14px; |
| | | } |
| | | } |
| | | } |
| | | .tip { |
| | | width: 100%; |
| | | font-size: 30px; |
| | | text-align: center; |
| | | margin-top: 100px; |
| | | color: #fff; |
| | | font-weight: bolder; |
| | | } |
| | | .current-task { |
| | | position: absolute; |
| | | width: calc((500vw - 600px) / 7); |
| | | z-index: 999999; |
| | | top: 0; |
| | | right: 0; |
| | | padding: 0 60px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | .task-des { |
| | | padding: 10px 20px; |
| | | .current-task { |
| | | position: absolute; |
| | | width: calc((500vw - 600px) / 7); |
| | | z-index: 999999; |
| | | top: 0; |
| | | right: 0; |
| | | padding: 0 60px; |
| | | display: flex; |
| | | align-items: center; |
| | | border: 1px solid #36fcfc; |
| | | justify-content: space-between; |
| | | |
| | | .task-des-l { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | font-size: 20px; |
| | | color: #36fcfc; |
| | | border-right: 1px solid #36fcfc; |
| | | padding-right: 20px; |
| | | img { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | .task-des-r { |
| | | width: calc((200vw - 240px) / 7); |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | font-size: 20px; |
| | | line-height: 28px; |
| | | color: #fcfc36; |
| | | padding-left: 20px; |
| | | } |
| | | } |
| | | .current-data { |
| | | width: 267px; |
| | | height: 138px; |
| | | padding: 20px 30px; |
| | | box-sizing: border-box; |
| | | background: url('../../../assets/loginPage/xj-bg.png') no-repeat center; |
| | | background-size: 100% 100%; |
| | | |
| | | .data-area { |
| | | .task-des { |
| | | padding: 10px 20px; |
| | | display: flex; |
| | | align-items: center; |
| | | border-bottom: 1px solid #040c3b; |
| | | font-weight: bold; |
| | | padding-bottom: 10px; |
| | | box-sizing: border-box; |
| | | border: 1px solid #36fcfc; |
| | | |
| | | img { |
| | | width: 30px; |
| | | height: 30px; |
| | | margin-right: 10px; |
| | | animation: circle 1s ease-in-out infinite; |
| | | } |
| | | |
| | | div { |
| | | font-size: 15px; |
| | | color: rgba(4, 12, 59, 0.8); |
| | | |
| | | span { |
| | | color: #040c3b; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .data-spot { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | margin-top: 10px; |
| | | |
| | | & > div { |
| | | .task-des-l { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | width: 50%; |
| | | font-size: 14px; |
| | | color: rgba(4, 12, 59, 0.8); |
| | | font-size: 20px; |
| | | color: #36fcfc; |
| | | border-right: 1px solid #36fcfc; |
| | | padding-right: 20px; |
| | | img { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | .task-des-r { |
| | | width: calc((200vw - 240px) / 7); |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | font-size: 20px; |
| | | line-height: 28px; |
| | | color: #fcfc36; |
| | | padding-left: 20px; |
| | | } |
| | | } |
| | | .current-data { |
| | | width: 267px; |
| | | height: 138px; |
| | | padding: 20px 30px; |
| | | box-sizing: border-box; |
| | | background: url('../../../assets/loginPage/xj-bg.png') no-repeat center; |
| | | background-size: 100% 100%; |
| | | |
| | | p { |
| | | margin-top: 6px; |
| | | color: #040c3b; |
| | | .data-area { |
| | | display: flex; |
| | | align-items: center; |
| | | border-bottom: 1px solid #040c3b; |
| | | font-weight: bold; |
| | | padding-bottom: 10px; |
| | | box-sizing: border-box; |
| | | |
| | | img { |
| | | width: 30px; |
| | | height: 30px; |
| | | margin-right: 10px; |
| | | animation: circle 1s ease-in-out infinite; |
| | | } |
| | | |
| | | &:first-of-type { |
| | | border-right: 1px solid #040c3b; |
| | | div { |
| | | font-size: 15px; |
| | | color: rgba(4, 12, 59, 0.8); |
| | | |
| | | span { |
| | | color: #040c3b; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .data-spot { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | margin-top: 10px; |
| | | |
| | | & > div { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | width: 50%; |
| | | font-size: 14px; |
| | | color: rgba(4, 12, 59, 0.8); |
| | | |
| | | p { |
| | | margin-top: 6px; |
| | | color: #040c3b; |
| | | } |
| | | |
| | | &:first-of-type { |
| | | border-right: 1px solid #040c3b; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .star-pic { |
| | | position: absolute; |
| | | width: calc((100vw - 120px) / 7); |
| | | height: calc((100vw - 120px) / 7); |
| | | z-index: 999999999; |
| | | bottom: 40px; |
| | | right: 40px; |
| | | padding: 20px; |
| | | .warning-part{ |
| | | position: absolute; |
| | | width: calc((100vw - 120px) / 7); |
| | | height: calc((100vw - 120px) / 7); |
| | | background-image: linear-gradient(to right, rgba(8, 109, 209, 0.4), rgba(11, 255, 255, 0.2)); |
| | | border: 1px solid #36fcfc; |
| | | z-index: 99999; |
| | | top: 100px; |
| | | right: 60px; |
| | | padding: 10px; |
| | | color: rgb(0, 255, 255); |
| | | backdrop-filter: blur(5px); |
| | | |
| | | .star-bg { |
| | | position: inherit; |
| | | .warn-tit{ |
| | | height: 26px; |
| | | padding-bottom: 5px; |
| | | font-weight: bolder; |
| | | border-bottom: 1px solid rgb(0, 255, 255); |
| | | } |
| | | .warn-msg{ |
| | | width: 100%; |
| | | height: 100%; |
| | | left: 0; |
| | | top: 0; |
| | | img { |
| | | width: 100%; |
| | | height: auto; |
| | | animation: circle 30s linear infinite; |
| | | margin-top: 10px; |
| | | height: calc(100% - 36px); |
| | | overflow: hidden; |
| | | overflow-y: scroll; |
| | | scrollbar-width: none; /* firefox */ |
| | | -ms-overflow-style: none; /* IE 10+ */ |
| | | |
| | | &::-webkit-scrollbar { |
| | | display: none; /* Chrome Safari */ |
| | | } |
| | | } |
| | | .warn-item{ |
| | | padding: 0 0 10px; |
| | | margin-bottom: 10px; |
| | | border-bottom: 1px solid rgb(0, 255, 255); |
| | | |
| | | .star { |
| | | position: inherit; |
| | | width: 100%; |
| | | height: 100%; |
| | | left: 0; |
| | | top: 0; |
| | | img { |
| | | &:last-of-type{ |
| | | border-bottom: none; |
| | | margin-bottom: 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .star-pic { |
| | | position: absolute; |
| | | width: calc((100vw - 120px) / 7); |
| | | height: calc((100vw - 120px) / 7); |
| | | z-index: 9999; |
| | | bottom: 40px; |
| | | right: 40px; |
| | | padding: 20px; |
| | | |
| | | .scan{ |
| | | position: inherit; |
| | | width: 65%; |
| | | height: 65%; |
| | | z-index: 99997; |
| | | left: 0; |
| | | top: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | margin: auto; |
| | | } |
| | | |
| | | .star-bg { |
| | | position: inherit; |
| | | width: 100%; |
| | | height: auto; |
| | | height: 100%; |
| | | z-index: 99998; |
| | | left: 0; |
| | | top: 0; |
| | | img { |
| | | width: 100%; |
| | | height: auto; |
| | | animation: circle 30s linear infinite; |
| | | } |
| | | } |
| | | .star { |
| | | position: inherit; |
| | | width: 100%; |
| | | height: 100%; |
| | | z-index: 99999; |
| | | left: 0; |
| | | top: 0; |
| | | img { |
| | | width: 100%; |
| | | height: auto; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |