guoshilong
2023-11-13 54849757852f6ab40eb17afbd03d1d839b60a38d
src/pages/page-web/projects/task.vue
@@ -51,9 +51,20 @@
            </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;">
@@ -79,7 +90,7 @@
                          }}
                        </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'"
@@ -95,7 +106,7 @@
                                     :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>
@@ -126,7 +137,7 @@
                            </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>
                    <!-- // 机场是否启动 -->
@@ -136,14 +147,14 @@
                        <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'"
@@ -159,8 +170,8 @@
                                     :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"
@@ -171,7 +182,7 @@
                                  <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"
@@ -189,7 +200,7 @@
                            </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>
@@ -252,7 +263,7 @@
                          }}
                        </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'"
@@ -268,7 +279,7 @@
                                     :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>
@@ -299,7 +310,7 @@
                            </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>
                    <!-- // 机场是否启动 -->
@@ -316,7 +327,7 @@
                          }}
                        </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'"
@@ -332,7 +343,7 @@
                                     :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>
@@ -362,7 +373,7 @@
                            </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>
@@ -387,7 +398,8 @@
  EyeInvisibleOutlined,
  EyeOutlined,
  RobotOutlined,
  DoubleRightOutlined
  DoubleRightOutlined,
  FileTextOutlined,
} from '@ant-design/icons-vue'
import { useRoute } from 'vue-router'
import { ERouterName, EHmsLevel } from '/@/types/enums'
@@ -440,6 +452,17 @@
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(() => {
@@ -617,4 +640,26 @@
  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>