From 2475c65a3c091cee4fe48f49e0f53697403750df Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期三, 17 八月 2022 19:55:34 +0800 Subject: [PATCH] 冲突 --- src/views/intellectInspect/intelligentLine/index.vue | 1244 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 623 insertions(+), 621 deletions(-) diff --git a/src/views/intellectInspect/intelligentLine/index.vue b/src/views/intellectInspect/intelligentLine/index.vue index 9a7f9f8..0c02976 100644 --- a/src/views/intellectInspect/intelligentLine/index.vue +++ b/src/views/intellectInspect/intelligentLine/index.vue @@ -1,7 +1,7 @@ <template> <div class="container"> <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"> @@ -10,73 +10,75 @@ <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> - <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 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> + <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 ? '正常' : '异常' }}</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 +87,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} from 'vue'; +import {useRoute} from 'vue-router'; import { storeToRefs } from 'pinia'; import { initBackEndControlRoutes } from '/@/router/backEnd'; import { Session } from '/@/utils/storage'; @@ -94,7 +96,6 @@ import { ElTable } from 'element-plus'; import { FormInstance, FormRules, ElMessage } from 'element-plus'; import { useUserInfo } from '/@/stores/userInfo'; -import Cookies from 'js-cookie'; // 定义接口来定义对象的类型 interface stateType { @@ -104,7 +105,7 @@ socket: any; socketData: string; data: Array<any>; - id: string; + id: string } export default { name: 'intelligentLine', @@ -127,10 +128,10 @@ 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) }); const dataList = computed(() => { @@ -139,18 +140,18 @@ // 获取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; + console.log(url,'url',uid,'uid') url = url.replace('https', 'ws').replace('http', 'ws'); console.log(url, '获取地址'); state.socket = new WebSocket(url); @@ -165,7 +166,7 @@ // 监听socket消息 state.socket.onmessage = (msg) => { if (msg.data === '连接成功') return; - console.log(msg.data, 'data'); + console.log(msg.data,'data') userInfos.value.dataList = JSON.parse(msg.data); }; } @@ -175,14 +176,14 @@ 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; @@ -218,11 +219,11 @@ // 页面关闭处理 onUnmounted(() => { // 销毁监听 - nextTick(() => { + nextTick(()=>{ state.socket.onclose = () => { console.log('socket已经关闭'); }; - }); + }) }); return { dataList, @@ -236,600 +237,600 @@ <!-- Add "scoped" attribute to limit CSS to this component 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: 180px; + padding: 10px; + margin-bottom: 40px; + box-sizing: border-box; + + img { + display: block; + width: 100%; + height: 100px; + margin-bottom: 8px; + border-radius: 4px; } - span { - display: inline-block; + p { + font-size: 14px; 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); + color: rgba(255, 255, 255, 0.8); + margin-top: 10px; + 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 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%; + 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 { + 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; + &: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); + } } - .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; + + img { + display: block; + width: 100%; + height: 100px; + margin-bottom: 6px; + 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) / 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; - 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; - } + line-height: 70px; + text-align: center; + font-weight: bolder; } } } - .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; + @media screen and (max-width: 1200px){ + .big-title { + font-size: 20px; + margin: 5px 0 10px; } - - 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: 20px; + top: 40px; + div { + font-size: 12px; + color: #00ffff; } } - & > 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); + .line-item { + width: 20vw; + padding-left: 10px; display: flex; flex-direction: column; - justify-content: center; - - div { + align-items: flex-start; + margin-right: 20px; + flex-wrap: nowrap; + .picbox { 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; + height: 160px; + padding: 10px; + margin-bottom: 30px; + box-sizing: border-box; - &:first-of-type { - text-align: right; - color: rgba(255, 255, 255, 0.8); + 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; } } } } - .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%; + .item { + width: 20vw; + height: calc((100vh - 130px) / 5); + padding: 0 0 20px 30px; + position: relative; + box-sizing: border-box; + border-left: 1px solid #36fcfc; - & > div { + &: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; - position: absolute; - left: 4px; - top: 4px; - background: #0072ff; + border: 1px solid #0072ff; + left: -10px; + top: -35px; 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 { + & > div { + width: 60px; + height: 60px; + position: absolute; + left: 4px; + top: 4px; + background: #0072ff; + border-radius: 50%; + color: #fff; font-size: 12px; - color: rgba(255, 255, 255, 0.8); - margin-top: 6px; - span { - color: #fff; - } + line-height: 60px; + text-align: center; + font-weight: bolder; } } } - .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% { @@ -961,7 +962,7 @@ padding: 10px 40px 35px; box-sizing: border-box; - & > div { + &>div{ width: 100%; height: 100%; display: flex; @@ -978,6 +979,7 @@ align-items: flex-start; .line-item { + .area-head { position: relative; width: 100%; @@ -1109,7 +1111,7 @@ } .fadeLine { width: 100%; - border-top: 1px solid rgba(54, 252, 252, 0.6); + border-top: 1px solid rgba(54,252,252,.6); } } .fadeBorder { -- Gitblit v1.9.2