forked from drone/command-center-dashboard

罗广辉
2025-04-03 7635213630830c4cbb9ff6ada69ba9b5c8a35d42
src/views/SignMachineNest/components/MachineRight/MachineStatus.vue
@@ -1,6 +1,6 @@
<!-- 机巢状态 -->
<template>
  <CommonTitle title="机巢状态" />
  <CommonTitle title="机巢状态" @details="detailsFun" />
  <div :style="{ marginLeft: pxToRem(14) }">
    <div class="machine-status">
      <div class="info">
@@ -54,18 +54,19 @@
            <img src="@/assets/images/signMachineNest/machineRight/distance.png" alt="">
            <span class="text">飞行距离</span>
          </div>
          <div class="text-data">98<span class="text">km</span></div>
          <div class="text-data">{{ singleTotal.flight_mileage }}<span class="text">km</span></div>
        </div>
        <div class="card">
          <div>
            <img src="@/assets/images/signMachineNest/machineRight/duration.png" alt="">
            <span class="text">飞行时长</span>
          </div>
          <div class="text-data">188<span class="text">min</span></div>
          <div class="text-data">{{ singleTotal.hour_count }}<span class="text">h</span></div>
        </div>
      </div>
    </div>
  </div>
   <MachineTableDetails v-model:show="isShowDetails"/>
</template>
<script setup>
@@ -74,9 +75,16 @@
import { EModeCode, EDockModeText, EModeText } from '@/utils/staticData/device';
import { getLnglatAltitude } from '@/utils/cesium/mapUtil.js';
import { useStore } from 'vuex';
import MachineTableDetails from '@/views/SignMachineNest/components/MachineRight/components/MachineTableDetails.vue';
const store = useStore();
// 获取机巢信息
let osdVisible = computed(() => store.state.home.osdVisible);
// 单个机巢统计数据
const singleTotal = computed(() => store.state.home.singleTotal);
// 是否展示机机巢状态详情
let isShowDetails = ref(false);
let str = '--';
let drone_charge_state = ref({
  capacity_percent: '--',
@@ -243,6 +251,11 @@
  }
  return theFinheight.toFixed(1);
};
// 详情
const detailsFun = () => {
  isShowDetails.value = true;
};
</script>
<style lang="scss" scoped>
@@ -257,7 +270,7 @@
    );
    opacity: 0.85;
    margin: 2px 0 13 0;
    padding: 8px 0px 20px 18px;
    .info {
      display: flex;
@@ -311,16 +324,16 @@
            color: #FFB26A;
            margin-right: 10px;
          }
          .wb {
          .wb {
            width: 60px;
            height: 20px;
            height: 20px;
            background: rgba(255,106,106,0.2);
            border-radius: 4px 4px 4px 4px;
            border: 1px solid #FF6A6A;
            color: #FF6A6A;
          }
        }
      }
    }
    .status {
@@ -329,7 +342,7 @@
      gap: 10px 20px;
      margin-top: 18px;
      .card {
        width: calc(33.33% - 14px);
        width: calc(33.33% - 14px);
      }
      img {
        width: 16px;
@@ -358,4 +371,4 @@
      }
    }
 }
</style>
</style>