forked from drone/command-center-dashboard

罗广辉
2025-04-14 ba2f8eae0dfd804ca422915981874c0d91965b42
src/views/SignMachineNest/MachineRight/MachineStatus/MachineStatus.vue
@@ -13,7 +13,9 @@
            <span class="right">{{ detailInfo.longitude }},{{ detailInfo.latitude }}</span>
          </div>
          <div class="close-wb">
            <div class="close">{{ AircraftStatus ? AircraftStatus : '舱内关机' }}</div>
            <div class="close" :class="AircraftStatus == undefined ? '' : 'other'">
              {{ AircraftStatus == undefined ? '舱内关机' : AircraftStatus }}
            </div>
            <!-- <div class="wb">需要维保</div> -->
          </div>
        </div>
@@ -80,7 +82,7 @@
const store = useStore();
// 获取机巢信息
let osdVisible = computed(() => store.state.home.osdVisible);
let osdVisible = ref({});//computed(() => store.state.home.osdVisible);
const singleUavHome = computed(() => store.state.home.singleUavHome);
// 单个机巢统计数据
const singleTotal = computed(() => store.state.home.singleTotal);
@@ -137,6 +139,10 @@
});
let mode_code = ref('已断开连接');
watch(() => store.state.home.osdVisible, (newValue) => {
  osdVisible.value = newValue;
});
// 监听实时信息
watch(
  () => store.state.home.wsMessage,
@@ -145,9 +151,8 @@
    if (Object.keys(newValue).length === 0) return
    detailInfo.value.longitude = newValue?.longitude.toFixed(6) || '--';
      detailInfo.value.latitude = newValue?.latitude.toFixed(6) || '--';
    console.log(window.$viewer)
    getLnglatAltitude(Number(detailInfo.value.longitude), Number(detailInfo.value.latitude),window.$viewer).then((res) => {
      // console.log('333333333', res);
      const height = newValue?.height - res?.height;
      //针对西安实时高度进行降低
      const wId = localStorage.getItem('bs_workspace_id');
@@ -167,7 +172,6 @@
);
// 获取最新机场状态
watch(store.state.home.deviceState, (newValue) => {
    // if (data.currentSn !== osdVisible.gateway_sn) return;
    if (newValue.currentType === EDeviceTypeName.Dock && newValue?.dockInfo[newValue.currentSn]) {
      // 机场状态
      mode_code.value = EDockModeText[newValue?.dockInfo[newValue.currentSn]?.basic_osd?.mode_code];
@@ -180,7 +184,7 @@
          ]?.mode_code
        ];
      // 舱内关机时显示的电量
      let child_sn = newValue?.dockInfo[newValue.currentSn].basic_osd.sub_device.device_sn;
      let child_sn = newValue?.dockInfo[newValue.currentSn].basic_osd.sub_device?.device_sn;
      // 飞机在线时取飞机中的电量
      if(newValue.deviceInfo[child_sn]) {
        drone_charge_state.value = {
@@ -193,21 +197,21 @@
          drone_charge_state.value = newValue.drone_charge_state_new;
        }
      }
      if (osdVisible.visible && osdVisible.is_dock && osdVisible.gateway_sn !== '') {
        deviceInfo.value.dock = newValue.dockInfo[osdVisible.gateway_sn];
      if (osdVisible.value.visible && osdVisible.value.is_dock && osdVisible.value.gateway_sn !== '') {
        deviceInfo.value.dock = newValue.dockInfo[osdVisible.value.gateway_sn];
        deviceInfo.value.device =
        newValue.deviceInfo[deviceInfo.value.dock.basic_osd?.sub_device?.device_sn ??
            osdVisible.sn
        osdVisible.value.sn
          ];
        // 设备关机即不显示信息
        // 兼容遥控器 关闭无人机 mode_code返回的是14 不是undefined
        if (
          newValue.deviceInfo[
            deviceInfo.value.dock.basic_osd?.sub_device?.device_sn ??
            osdVisible.sn
            osdVisible.value.sn
          ]?.mode_code === undefined || newValue.deviceInfo[
            deviceInfo.value.dock.basic_osd?.sub_device?.device_sn ??
            osdVisible.sn
            osdVisible.value  .sn
          ]?.mode_code == 14
        ) {
          detailInfo.value = {
@@ -327,12 +331,17 @@
          .close {
            width: 60px;
            height: 20px;
            line-height: 20px;
            background: rgba(255,178,106,0.2);
            border-radius: 4px 4px 4px 4px;
            border: 1px solid #FFB26A;
            color: #FFB26A;
            margin-right: 10px;
          }
          .other {
            border: 1px solid #8EFFAC;
            color: #8EFFAC;
          }
          .wb {
            width: 60px;
            height: 20px;