| | |
| | | <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 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"/> |
| | | <div>退出</div> |
| | |
| | | <div class="blocks"> |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <script lang="ts"> |
| | | import screenfull from 'screenfull'; |
| | | import { lineApi } from '/@/api/intelligentLine'; |
| | | import {toRefs, reactive, ref, onMounted, onUnmounted, computed, nextTick} 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; |
| | |
| | | const route = useRoute(); |
| | | const state = reactive<stateType>({ |
| | | present: '', |
| | | isScreenfull: false, |
| | | path: '', |
| | | socketData: '', |
| | | socket: null, |
| | |
| | | getLine(state.id) |
| | | getUrl(state.id) |
| | | }); |
| | | onActivated(()=>{ |
| | | onScreenfullClick(); |
| | | }) |
| | | |
| | | const dataList = computed(() => { |
| | | return userInfos.value.dataList; |
| | |
| | | alert('您的浏览器不支持socket'); |
| | | } else { |
| | | // 实例化socket |
| | | // debugger |
| | | let uid = userInfos.value.uid.toString() |
| | | var url = state.path + uid + '*' + id; |
| | | console.log(url,'url',uid,'uid') |
| | |
| | | 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 |
| | | } 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); |
| | | }; |
| | | |
| | | // 返回 |
| | |
| | | }; |
| | | </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 { |
| | |
| | | height: 24px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid rgba(0, 225, 255, 0.6); |
| | | border: 1px solid rgba(0, 114, 255, 0.6); |
| | | top: -12px; |
| | | left: 10px; |
| | | |
| | |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #0072ff; |
| | | border-radius: 50%; |
| | | background-color: #00e1ff; |
| | | background-color: #0072ff; |
| | | z-index: 2; |
| | | } |
| | | .pulse { |
| | |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #00e1ff; |
| | | border: 1px solid #0072ff; |
| | | -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 #0072ff; |
| | | } |
| | | .pulse1 { |
| | | position: absolute; |
| | |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #00e1ff; |
| | | border: 1px solid #0072ff; |
| | | -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 #0072ff; |
| | | } |
| | | } |
| | | & > div { |
| | |
| | | height: 24px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid rgba(0, 225, 255, 0.6); |
| | | border: 1px solid rgba(0, 114, 255, 0.6); |
| | | top: -12px; |
| | | left: 10px; |
| | | |
| | |
| | | top: 5px; |
| | | -webkit-border-radius: 50%; |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #0072ff; |
| | | border: 1px solid #0072FF; |
| | | border-radius: 50%; |
| | | background-color: #00e1ff; |
| | | background-color: #0072FF; |
| | | z-index: 2; |
| | | } |
| | | .pulse { |
| | |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #00e1ff; |
| | | border: 1px solid #0072FF; |
| | | -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 #0072FF; |
| | | } |
| | | .pulse1 { |
| | | position: absolute; |
| | |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #00e1ff; |
| | | border: 1px solid #0072FF; |
| | | -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 #0072FF; |
| | | } |
| | | } |
| | | & > div { |
| | |
| | | height: 24px; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | border: 1px solid rgba(0, 225, 255, 0.6); |
| | | border: 1px solid rgba(0, 114, 255, 0.6); |
| | | top: -12px; |
| | | left: 2px; |
| | | |
| | |
| | | -moz-border-radius: 50%; |
| | | border: 1px solid #0072ff; |
| | | border-radius: 50%; |
| | | background-color: #00e1ff; |
| | | background-color: #0072ff; |
| | | z-index: 2; |
| | | } |
| | | .pulse { |
| | |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #00e1ff; |
| | | border: 1px solid #0072ff; |
| | | -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 #0072ff; |
| | | } |
| | | .pulse1 { |
| | | position: absolute; |
| | |
| | | height: 48px; |
| | | left: -13px; |
| | | top: -13px; |
| | | border: 1px solid #00e1ff; |
| | | border: 1px solid #0072ff; |
| | | -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 #0072ff; |
| | | } |
| | | } |
| | | & > div { |
| | |
| | | width: 100%; |
| | | height: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | justify-content: left; |
| | | align-items: flex-start; |
| | | overflow: hidden; |
| | | overflow-x: auto; |
| | | overflow-y: auto; |
| | | overflow-y: hidden; |
| | | overflow-x: hidden; |
| | | overflow: auto; |
| | | } |
| | | |
| | | .line-map { |
| | |
| | | position: absolute; |
| | | width: calc((100vw - 120px) / 7); |
| | | height: calc((100vw - 120px) / 7); |
| | | z-index: 999999999; |
| | | 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: 100%; |
| | | z-index: 99998; |
| | | left: 0; |
| | | top: 0; |
| | | img { |
| | |
| | | animation: circle 30s linear infinite; |
| | | } |
| | | } |
| | | |
| | | .star { |
| | | position: inherit; |
| | | width: 100%; |
| | | height: 100%; |
| | | z-index: 99999; |
| | | left: 0; |
| | | top: 0; |
| | | img { |