| | |
| | | </div> |
| | | <div v-else class="fz12" style="color: white;"> |
| | | <div @click="selectOnlineDock(dock)" v-for="dock in onlineDocks.data" :key="dock.sn" |
| | | :style="{cursor:'pointer', background: '#3c3c3c', height: '90px', 'margin-bottom': '10px',border:dock.selected?'2px solid #2b85e4':''}"> |
| | | <div style="border-radius: 2px; height: 100%; width: 100%;" |
| | | class="flex-row flex-justify-between flex-align-center"> |
| | | :style="{cursor:'pointer', background: '#3c3c3c', 'margin-bottom': '10px',border:dock.selected?'2px solid #2b85e4':''}"> |
| | | <!-- :style="{cursor:'pointer', background: '#3c3c3c', height: '130px', 'margin-bottom': '10px',border:dock.selected?'2px solid #2b85e4':''}">--> |
| | | <!-- |
| | | <div class="job-info"> |
| | | <div class="job-status"> |
| | | <FileTextOutlined /> 执行失败 |
| | | </div> |
| | | <div class="job-name"> |
| | | 任务标题 |
| | | </div> |
| | | </div> |
| | | --> |
| | | |
| | | <div style="border-radius: 2px; height: 60%; width: 100%;" class="flex-row flex-justify-between flex-align-center"> |
| | | <div style="float: left; padding: 0px 5px 8px 8px; width: 88%"> |
| | | <!-- // 机场设备标题 --> |
| | | <div style="width: 80%; height: 30px; line-height: 30px; font-size: 16px;"> |
| | |
| | | }} |
| | | </div> |
| | | </div> |
| | | <div class="mr5 flex-align-center flex-row" style="width: 85px; margin-right: 0; height: 18px;"> |
| | | <div class="mr5 flex-align-center flex-row" style="width: 125px; margin-right: 0; height: 18px;"> |
| | | <div v-if="hmsInfo[dock.gateway.sn]" class="flex-align-center flex-row"> |
| | | <div :class="hmsInfo[dock.gateway.sn][0].level === EHmsLevel.CAUTION ? 'caution-blink' : |
| | | hmsInfo[dock.gateway.sn][0].level === EHmsLevel.WARN ? 'warn-blink' : 'notice-blink'" |
| | |
| | | :overlayStyle="{ width: '200px', height: '300px' }"> |
| | | <div :class="hmsInfo[dock.gateway.sn][0].level === EHmsLevel.CAUTION ? 'caution' : |
| | | hmsInfo[dock.gateway.sn][0].level === EHmsLevel.WARN ? 'warn' : 'notice'" |
| | | style="margin-left: 3px; width: 62px; height: 16px;"> |
| | | style="margin-left: 3px; width:107px; height: 16px;"> |
| | | <span class="word-loop">{{ hmsInfo[dock.gateway.sn][0].message_zh }}</span> |
| | | </div> |
| | | <template #content> |
| | |
| | | </template> |
| | | </a-popover> |
| | | </div> |
| | | <div v-else class="width-100" style="height: 90%; background: rgba(0, 0, 0, 0.35)"></div> |
| | | <div v-else class="width-100" style="height: 90%; background: rgba(0, 0, 0, 0.35)">N/A</div> |
| | | </div> |
| | | </div> |
| | | <!-- // 机场是否启动 --> |
| | |
| | | <RocketOutlined/> |
| | | </span> |
| | | <div class="font-bold text-hidden" style="max-width: 80px" |
| | | :style="deviceInfo[dock.sn] && deviceInfo[dock.sn].mode_code !== EModeCode.Disconnected ? 'color: #00ee8b' : 'color: red;'"> |
| | | :style="deviceInfo[dock.sn] && deviceInfo[dock.sn].mode_code !== EModeCode.Disconnected || dockInfo[dock.gateway.sn].basic_osd?.drone_in_dock === 1 ? 'color: #00ee8b' : 'color: red;'"> |
| | | {{ |
| | | deviceInfo[dock.sn] ? EModeText[deviceInfo[dock.sn].mode_code] : |
| | | EModeText[EModeCode.Disconnected] |
| | | dockInfo[dock.gateway.sn].basic_osd?.drone_in_dock === 1 ? '舱内关机' : EModeText[EModeCode.Disconnected] |
| | | }} |
| | | </div> |
| | | </div> |
| | | <div class="mr5 flex-align-center flex-row" style="width: 85px; margin-right: 0; height: 18px;"> |
| | | <div class="mr5 flex-align-center flex-row" style="width: 125px; margin-right: 0; height: 18px;"> |
| | | <div v-if="hmsInfo[dock.sn]" class="flex-align-center flex-row"> |
| | | <div :class="hmsInfo[dock.sn][0].level === EHmsLevel.CAUTION ? 'caution-blink' : |
| | | hmsInfo[dock.sn][0].level === EHmsLevel.WARN ? 'warn-blink' : 'notice-blink'" |
| | |
| | | :overlayStyle="{ width: '200px', height: '300px' }"> |
| | | <div :class="hmsInfo[dock.sn][0].level === EHmsLevel.CAUTION ? 'caution' : |
| | | hmsInfo[dock.sn][0].level === EHmsLevel.WARN ? 'warn' : 'notice'" |
| | | style="margin-left: 3px; width: 62px; height: 16px;"> |
| | | <span class="word-loop">{{ hmsInfo[dock.sn][0].message_en }}</span> |
| | | style="margin-left: 3px; width:107px; height: 16px;"> |
| | | <span class="word-loop">{{ hmsInfo[dock.sn][0].message_zh }}</span> |
| | | </div> |
| | | <template #content> |
| | | <a-collapse style="background: black; height: 300px; overflow-y: auto;" :bordered="false" |
| | |
| | | <template #header="{ isActive }"> |
| | | <div class="flex-row flex-align-center" style="width: 130px;"> |
| | | <div style="width: 110px;"> |
| | | <span class="word-loop">{{ hms.message_en }}</span> |
| | | <span class="word-loop">{{ hms.message_zh }}</span> |
| | | </div> |
| | | <div style="width: 20px; height: 15px; font-size: 10px; z-index: 2 " |
| | | class="flex-row flex-align-center flex-justify-center" |
| | |
| | | </template> |
| | | </a-popover> |
| | | </div> |
| | | <div v-else class="width-100" style="height: 90%; background: rgba(0, 0, 0, 0.35)"></div> |
| | | <div v-else class="width-100" style="height: 90%; background: rgba(0, 0, 0, 0.35)">N/A</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | }} |
| | | </div> |
| | | </div> |
| | | <div class="mr5 flex-align-center flex-row" style="width: 85px; margin-right: 0; height: 18px;"> |
| | | <div class="mr5 flex-align-center flex-row" style="width: 125px; margin-right: 0; height: 18px;"> |
| | | <div v-if="hmsInfo[dock.gateway.sn]" class="flex-align-center flex-row"> |
| | | <div :class="hmsInfo[dock.gateway.sn][0].level === EHmsLevel.CAUTION ? 'caution-blink' : |
| | | hmsInfo[dock.gateway.sn][0].level === EHmsLevel.WARN ? 'warn-blink' : 'notice-blink'" |
| | |
| | | :overlayStyle="{ width: '200px', height: '300px' }"> |
| | | <div :class="hmsInfo[dock.gateway.sn][0].level === EHmsLevel.CAUTION ? 'caution' : |
| | | hmsInfo[dock.gateway.sn][0].level === EHmsLevel.WARN ? 'warn' : 'notice'" |
| | | style="margin-left: 3px; width: 62px; height: 16px;"> |
| | | style="margin-left: 3px; width:107px; height: 16px;"> |
| | | <span class="word-loop">{{ hmsInfo[dock.gateway.sn][0].message_zh }}</span> |
| | | </div> |
| | | <template #content> |
| | |
| | | </template> |
| | | </a-popover> |
| | | </div> |
| | | <div v-else class="width-100" style="height: 90%; background: rgba(0, 0, 0, 0.35)"></div> |
| | | <div v-else class="width-100" style="height: 90%; background: rgba(0, 0, 0, 0.35)">N/A</div> |
| | | </div> |
| | | </div> |
| | | <!-- // 机场是否启动 --> |
| | |
| | | }} |
| | | </div> |
| | | </div> |
| | | <div class="mr5 flex-align-center flex-row" style="width: 85px; margin-right: 0; height: 18px;"> |
| | | <div class="mr5 flex-align-center flex-row" style="width: 125px; margin-right: 0; height: 18px;"> |
| | | <div v-if="hmsInfo[dock.sn]" class="flex-align-center flex-row"> |
| | | <div :class="hmsInfo[dock.sn][0].level === EHmsLevel.CAUTION ? 'caution-blink' : |
| | | hmsInfo[dock.sn][0].level === EHmsLevel.WARN ? 'warn-blink' : 'notice-blink'" |
| | |
| | | :overlayStyle="{ width: '200px', height: '300px' }"> |
| | | <div :class="hmsInfo[dock.sn][0].level === EHmsLevel.CAUTION ? 'caution' : |
| | | hmsInfo[dock.sn][0].level === EHmsLevel.WARN ? 'warn' : 'notice'" |
| | | style="margin-left: 3px; width: 62px; height: 16px;"> |
| | | style="margin-left: 3px; width:107px; height: 16px;"> |
| | | <span class="word-loop">{{ hmsInfo[dock.sn][0].message_en }}</span> |
| | | </div> |
| | | <template #content> |
| | |
| | | </template> |
| | | </a-popover> |
| | | </div> |
| | | <div v-else class="width-100" style="height: 90%; background: rgba(0, 0, 0, 0.35)"></div> |
| | | <div v-else class="width-100" style="height: 90%; background: rgba(0, 0, 0, 0.35)">N/A</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | EyeInvisibleOutlined, |
| | | EyeOutlined, |
| | | RobotOutlined, |
| | | DoubleRightOutlined |
| | | DoubleRightOutlined, |
| | | FileTextOutlined, |
| | | } from '@ant-design/icons-vue' |
| | | import { useRoute } from 'vue-router' |
| | | import { ERouterName, EHmsLevel } from '/@/types/enums' |
| | |
| | | const osdVisible = ref({} as OSDVisible) |
| | | const onlineCheck = ref(false) |
| | | const historyCheck = ref(false) |
| | | |
| | | watch( |
| | | () => onlineCheckArr.data, |
| | | (newVal) => { |
| | | const dockSns = newVal.map(item => item.gateway.sn).join(',') |
| | | // 把机场编号存入store |
| | | store.commit('SET_DOCK_SN', dockSns) |
| | | }, |
| | | { deep: true } |
| | | ) |
| | | |
| | | onMounted(() => { |
| | | getOnlineTopo() |
| | | setTimeout(() => { |
| | |
| | | color: #fff; |
| | | font-size: 16px; |
| | | } |
| | | |
| | | .job-info{ |
| | | height: 30%; |
| | | display: flex; |
| | | align-items: center; |
| | | border-bottom: 1px solid #c1c1c1; |
| | | margin-bottom: 6px; |
| | | |
| | | .job-status{ |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | background: red; |
| | | } |
| | | |
| | | .job-name{ |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | padding-left: 5px; |
| | | } |
| | | } |
| | | </style> |