From a8ef7c1a4b2ab6acd91a0520e6258bd753d17f20 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期三, 16 八月 2023 15:58:20 +0800
Subject: [PATCH] 人员证书类型
---
src/views/intellectInspect/intelligentLine/index.vue | 2447 +++++++++++++++++++++++++++++++---------------------------
1 files changed, 1,308 insertions(+), 1,139 deletions(-)
diff --git a/src/views/intellectInspect/intelligentLine/index.vue b/src/views/intellectInspect/intelligentLine/index.vue
index 9a7f9f8..bacc19e 100644
--- a/src/views/intellectInspect/intelligentLine/index.vue
+++ b/src/views/intellectInspect/intelligentLine/index.vue
@@ -1,82 +1,119 @@
<template>
- <div class="container">
+ <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 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="star-pic">
- <div class="star-bg"><img src="../../../assets/loginPage/star-bg.png" /></div>
- <div class="star"><img src="../../../assets/loginPage/device-pic.png" /></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 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" />
- <p>
- RFID: <span>{{ item.rfid }}</span>
- </p>
- <p>
- 位置: <span>{{ item.region.toString() }}</span>
- </p>
+ </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">
+ <div class="imgbox">
+ <img :src="item.rfidImage==null?defaultImg:item.rfidImage"/>
</div>
- <div class="area-head">
- <div class="indicator" :class="item.points.some((e) => e.reportResult == 1) ? 'somewarning' : item.points.some((e) => e.reportResult == null) ? 'someUndone' : ''">
- <div class="indi-dot"></div>
- <!-- <div class="indi-pulse"></div>-->
- <!-- <div class="indi-pulse1"></div>-->
- </div>
- <div class="arrow" v-if="item.points.some((e) => e.reportResult != null)"></div>
- <div class="top-line" :class="item.points.some((e) => e.reportResult !== null) ? '' : 'fadeLine'"></div>
+ <p>
+ RFID: <span>{{ item.rfid }}</span>
+ </p>
+ <p>
+ 位置: <span>{{ item.region.toString() }}</span>
+ </p>
+ </div>
+ <div class="area-head">
+ <div class="indicator" :class="item.points.some((e) => e.reportResult == 1) ? 'somewarning' : (item.points.some((e) => e.reportResult == null) ? 'someUndone' : '')">
+ <div class="indi-dot"></div>
+ <!-- <div class="indi-pulse"></div>-->
+ <!-- <div class="indi-pulse1"></div>-->
</div>
- <div class="more-info">
- <div class="item" v-for="(t, i) in item.points" :key="i" :class="t.reportResult == null ? 'undone' : t.reportResult == 1 ? 'warning' : ''">
- <section>
- <div class="dot"></div>
- <div class="pulse"></div>
- <div class="pulse1"></div>
- </section>
- <div :class="t.reportResult == null ? 'noBorder' : t.reportResult == 1 ? 'redBorder' : ''">
- <div>
- <span>巡检点:</span><span>{{ t.point }}</span>
- </div>
- <div>
- <span>巡检状态:</span><span>{{ t.pointCheckStatus == 1 ? '未完成' : '已完成' }}</span>
- </div>
- <div v-if="t.reportResult != null">
- <span>巡检指标:</span><span>{{ t.quotaContent }}</span>
- </div>
- <div v-if="(t.dataReportType == 2 || t.dataReportType == 3) && t.secondReferenceResult">
- <span>参数:</span><span class="target">{{ t.secondReferenceResult + t.quotaUnit }}</span>
- </div>
- <div>
- <span>巡检结果:</span><span class="target">{{ t.reportResult == null ? '--' : t.reportResult == 0 ? '正常' : '异常' }}</span>
- </div>
+ <div class="arrow" v-if="item.points.some((e) => e.reportResult != null)"></div>
+ <div class="top-line" :class="item.points.some((e) => e.reportResult !== null) ? '' : 'fadeLine'"></div>
+ </div>
+ <div class="more-info">
+ <div class="item" v-for="(t, i) in item.points" :key="i" :class="t.reportResult == null ? 'undone' : t.reportResult == 1 ? 'warning' : ''">
+ <section>
+ <div class="dot"></div>
+ <div class="pulse"></div>
+ <div class="pulse1"></div>
+ </section>
+ <div :class="t.reportResult == null ? 'noBorder' : t.reportResult == 1 ? 'redBorder' : ''">
+ <div>
+ <span>巡检点:</span><span>{{ t.point }}</span>
+ </div>
+ <div>
+ <span>巡检状态:</span><span>{{ t.pointCheckStatus == 1 ? '未完成' : '已完成' }}</span>
+ </div>
+ <div v-if="t.reportResult != null">
+ <span>巡检指标:</span><span>{{ t.quotaContent }}</span>
+ </div>
+ <div v-if="(t.dataReportType == 2 || t.dataReportType == 3) && t.secondReferenceResult">
+ <span>参数:</span><span class="target">{{ t.secondReferenceResult + t.quotaUnit }}</span>
+ </div>
+ <div>
+ <span>巡检结果:</span><span class="target">{{ t.reportResult == null ? '--' : t.reportResult == 0 ? '正常' : t.reportResult == 1 ? '异常' : '备' }}</span>
</div>
</div>
</div>
</div>
- <div class="line-item finish">
- <div class="picbox"></div>
- <div class="area-head">
- <div class="finish-point">
- <div>完成巡检</div>
- </div>
+ </div>
+ <div class="line-item finish">
+ <div class="picbox"></div>
+ <div class="area-head">
+ <div class="finish-point">
+ <div>完成巡检</div>
</div>
</div>
</div>
- <div class="tip" v-else>抱歉,暂时查询不到巡检路线...</div>
+ </div>
+ <div class="tip" v-else>抱歉,暂时查询不到巡检路线...</div>
</div>
</div>
</div>
@@ -85,8 +122,8 @@
<script lang="ts">
import screenfull from 'screenfull';
import { lineApi } from '/@/api/intelligentLine';
-import { toRefs, reactive, ref, onMounted, onUnmounted, computed, nextTick } from 'vue';
-import { useRoute } from 'vue-router';
+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';
import { Session } from '/@/utils/storage';
@@ -94,17 +131,22 @@
import { ElTable } from 'element-plus';
import { FormInstance, FormRules, ElMessage } from 'element-plus';
import { useUserInfo } from '/@/stores/userInfo';
-import Cookies from 'js-cookie';
// 定义接口来定义对象的类型
interface stateType {
present: string;
- isScreenfull: boolean;
path: string;
socket: any;
socketData: string;
data: Array<any>;
+ excepOrder: Array<any>;
id: string;
+ defaultImg: string;
+ isDragging:boolean
+ initialX:number|null
+ initialY:number|null
+ xOffset:number|null
+ yOffset:number|null
}
export default {
name: 'intelligentLine',
@@ -115,44 +157,53 @@
const route = useRoute();
const state = reactive<stateType>({
present: '',
- isScreenfull: false,
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
});
onMounted(() => {
setInterval(() => {
state.present = new Date().toLocaleString();
}, 1000);
- let curId = route.query.id;
- state.id = curId.toString();
- getLine(state.id);
- getUrl(state.id);
+ let curId = route.query.id
+ state.id = curId.toString()
+ getLine(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;
});
// 获取url
- const getUrl = async (id: string) => {
+ 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/';
+ state.path = 'http://' + res.data.data.ip + ':' + res.data.data.port + '/ws/test/'
if (typeof WebSocket === 'undefined') {
alert('您的浏览器不支持socket');
} else {
// 实例化socket
- // debugger
- let uid = userInfos.value.uid.toString();
- var url = state.path + Cookies.get('uid') + '*' + id;
- console.log(url, 'url', uid, 'uid');
+ let uid = userInfos.value.uid.toString()
+ var url = state.path + uid + '*' + id;
url = url.replace('https', 'ws').replace('http', 'ws');
- console.log(url, '获取地址');
state.socket = new WebSocket(url);
// 监听socket连接
state.socket.onopen = () => {
@@ -164,9 +215,11 @@
};
// 监听socket消息
state.socket.onmessage = (msg) => {
+ console.log(msg.data,'msg.data')
+ console.log(msg.data.rfidInfos,'rfidInfos')
if (msg.data === '连接成功') return;
- console.log(msg.data, 'data');
- userInfos.value.dataList = JSON.parse(msg.data);
+ userInfos.value.dataList = JSON.parse(msg.data).rfidInfos;
+ state.excepOrder = JSON.parse(msg.data).excepOrder;
};
}
} else {
@@ -175,17 +228,22 @@
message: res.data.msg
});
}
- };
+ }
// const send = () => {
// state.socket.send(params);
// };
// 接口获取数据
- const getLine = async (id: string) => {
+ const getLine = async (id:string) => {
let res = await lineApi().getLine({ id: id });
if (res.data.code === '200') {
- 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',
@@ -196,18 +254,12 @@
// 全屏
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);
};
// 返回
@@ -215,17 +267,40 @@
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(() => {
// 销毁监听
- nextTick(() => {
+ nextTick(()=>{
state.socket.onclose = () => {
console.log('socket已经关闭');
};
- });
+ })
+ draggableElement.value.removeEventListener('mousedown', handleMouseDown);
+ draggableElement.value.removeEventListener('mousemove', handleMouseMove);
+ draggableElement.value.removeEventListener('mouseup', handleMouseUp);
});
return {
dataList,
+ draggableElement,
goBack,
onScreenfullClick,
...toRefs(state)
@@ -234,1129 +309,1223 @@
};
</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">
-@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;
+ @media screen and (min-width: 1366px) {
+ .big-title {
+ font-size: 28px;
+ margin: 10px 0 20px;
}
- }
- .line-item {
- width: calc((100vw - 40px) / 6);
- 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;
-
- img {
- display: block;
- width: 100%;
- height: 100px;
- margin-bottom: 8px;
- border-radius: 4px;
- }
- 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) / 6);
- height: calc((100vh - 130px) / 5);
- padding: 0 20px 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%;
+ .btns {
position: absolute;
- border: 1px solid rgba(0, 225, 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: #00e1ff;
- z-index: 2;
- }
- .pulse {
- position: absolute;
- width: 48px;
- height: 48px;
- left: -13px;
- top: -13px;
- border: 1px solid #00e1ff;
- -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 #00e1ff;
- }
- .pulse1 {
- position: absolute;
- width: 48px;
- height: 48px;
- left: -13px;
- top: -13px;
- border: 1px solid #00e1ff;
- -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 #00e1ff;
+ z-index: 99999;
+ right: 60px;
+ top: 40px;
+ div {
+ font-size: 16px;
+ color: #00ffff;
}
}
- & > 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);
+ .line-item {
+ width: calc((100vw - 40px) / 6);
+ padding-left: 20px;
display: flex;
flex-direction: column;
- justify-content: center;
+ align-items: flex-start;
+ margin-right: 20px;
+ flex-wrap: nowrap;
- div {
- margin-bottom: 5px;
- &:last-of-type {
- margin-bottom: 0;
+ .picbox {
+ width: 100%;
+ height: 200px;
+ padding: 10px;
+ margin-bottom: 20px;
+ box-sizing: border-box;
+ .imgbox{
+ width: 100%;
+ height: 120px;
+ position: relative;
+ margin-bottom: 10px;
+ border-radius: 4px;
+ overflow: hidden;
+ img {
+ display: block;
+ width: 100%;
+ height: auto;
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ margin: auto;
+ }
}
- span {
- display: inline-block;
- white-space: nowrap;
- width: 50%;
- font-size: 13px;
- color: #fff;
- text-align: left;
- &:first-of-type {
- text-align: right;
- color: rgba(255, 255, 255, 0.8);
+ p {
+ font-size: 14px;
+ white-space: nowrap;
+ color: rgba(255, 255, 255, 0.8);
+ margin-bottom: 4px;
+ span {
+ color: #fff;
}
}
}
}
- .noBorder {
- border: 1px solid rgba(54, 252, 252, 0.1);
+ .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);
+ }
+ }
+ }
+ }
+ .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);
+ }
}
- .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;
+ }
}
}
- .finish-point {
- position: absolute;
- width: 90px;
- height: 90px;
- border: 2px solid #0072ff;
- left: -30px;
- top: -45px;
- border-radius: 50%;
- & > div {
+ @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;
- position: absolute;
- left: 3px;
- top: 3px;
- background: #0072ff;
+ border: 1px solid #0072ff;
+ left: -20px;
+ top: -40px;
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;
-
- img {
- display: block;
- width: 100%;
- height: 100px;
- margin-bottom: 6px;
- border-radius: 4px;
- }
- p {
+ & > div {
+ width: 70px;
+ height: 70px;
+ position: absolute;
+ left: 4px;
+ top: 4px;
+ background: #0072ff;
+ border-radius: 50%;
+ color: #fff;
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, 225, 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: #00e1ff;
- z-index: 2;
- }
- .pulse {
- position: absolute;
- width: 48px;
- height: 48px;
- left: -13px;
- top: -13px;
- border: 1px solid #00e1ff;
- -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 #00e1ff;
- }
- .pulse1 {
- position: absolute;
- width: 48px;
- height: 48px;
- left: -13px;
- top: -13px;
- border: 1px solid #00e1ff;
- -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 #00e1ff;
- }
- }
- & > 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;
- &:last-of-type {
- margin-bottom: 0;
- }
- span {
- display: inline-block;
- white-space: nowrap;
- width: 50%;
- font-size: 13px;
- color: #fff;
- text-align: left;
-
- &: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;
-
- img {
- display: block;
- width: 100%;
- height: 80px;
- margin-bottom: 10px;
- border-radius: 4px;
- }
- p {
- font-size: 12px;
- color: rgba(255, 255, 255, 0.8);
- margin-top: 6px;
- span {
- color: #fff;
- }
- }
- }
- }
- .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, 225, 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: #00e1ff;
- z-index: 2;
- }
- .pulse {
- position: absolute;
- width: 48px;
- height: 48px;
- left: -13px;
- top: -13px;
- border: 1px solid #00e1ff;
- -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 #00e1ff;
- }
- .pulse1 {
- position: absolute;
- width: 48px;
- height: 48px;
- left: -13px;
- top: -13px;
- border: 1px solid #00e1ff;
- -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 #00e1ff;
- }
- }
- & > 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;
- &:last-of-type {
- margin-bottom: 0;
- }
- span {
- width: 50%;
- display: inline-block;
- white-space: nowrap;
- font-size: 12px;
- color: #fff;
- text-align: left;
-
- &: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 {
+ line-height: 70px;
+ text-align: center;
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: center;
- align-items: flex-start;
- overflow: hidden;
- overflow-x: auto;
- overflow-y: auto;
+ @media screen and (max-width: 1200px){
+ .big-title {
+ font-size: 20px;
+ margin: 5px 0 10px;
}
-
- .line-map {
+ .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;
- justify-content: center;
+ flex-direction: column;
align-items: flex-start;
-
- .line-item {
- .area-head {
- position: relative;
+ 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, 0.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;
- .warning {
- & > section {
- border: 1px solid #ff0000;
+ &: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%;
- .dot {
- border: 1px solid #ff0000;
- background: #ff0000;
+ & > 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;
+ 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;
}
- .pulse {
- border: 1px solid #ff0000;
- box-shadow: 1px 1px 30px #ff0000;
+ .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;
}
- .pulse1 {
- border: 1px solid #ff0000;
- box-shadow: 1px 1px 30px #ff0000;
+ .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;
- & > div {
- div {
- span.target {
- color: #ff2929;
- font-weight: bolder;
+ .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;
+ }
+ .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;
+ }
+ }
+ }
+ }
+ .undone {
+ & > section {
+ border: 1px solid #ccc;
+
+ .dot {
+ border: 1px solid #ccc;
+ background: #ccc;
+ }
+ .pulse {
+ display: none;
+ }
+ .pulse1 {
+ display: none;
}
}
}
}
- .undone {
- & > section {
- border: 1px solid #ccc;
+ }
+ .finish {
+ .area-head {
+ position: relative;
+ width: 100%;
+ height: 80px;
+ border-left: none;
+ }
+ }
+ .pic-tit {
+ display: flex;
+ width: calc((100vw - 120px) / 7);
+ height: 160px;
+ padding: 20px;
+ transform: translate(-20px, -40%);
+ flex-direction: column;
+ align-items: flex-start;
- .dot {
- border: 1px solid #ccc;
- background: #ccc;
- }
- .pulse {
- display: none;
- }
- .pulse1 {
- display: none;
- }
- }
+ img {
+ width: calc((100vw - 120px) / 7 - 40px);
+ height: 90px;
+ margin-bottom: 10px;
+ border-radius: 4px;
+ }
+ p {
+ font-size: 16px;
+ color: #00ffff;
+ font-weight: bold;
+ }
+ }
+
+ .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;
}
}
}
- .finish {
- .area-head {
- position: relative;
- width: 100%;
- height: 80px;
- border-left: none;
- }
+ .tip {
+ width: 100%;
+ font-size: 30px;
+ text-align: center;
+ margin-top: 100px;
+ color: #fff;
+ font-weight: bolder;
}
- .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;
- }
- }
-
- .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>
--
Gitblit v1.9.2