From 6e0afaa5762765fad3e47b52f05df5553818b5ea Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Wed, 02 Apr 2025 18:11:18 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/drone/command-center-dashboard

---
 src/views/Home/useUavHome/MapPopUpBox.vue |   80 ++++++++++++++++++++++++++++-----------
 1 files changed, 57 insertions(+), 23 deletions(-)

diff --git a/src/views/Home/useUavHome/MapPopUpBox.vue b/src/views/Home/useUavHome/MapPopUpBox.vue
index 6a89de9..84afddb 100644
--- a/src/views/Home/useUavHome/MapPopUpBox.vue
+++ b/src/views/Home/useUavHome/MapPopUpBox.vue
@@ -3,42 +3,66 @@
     <div class="header">
       <div class="headerLeft">
         <img class="header-image" src="../../../assets/images/home/mapPopUpBox/titleImg.png" alt="" />
-        <div class="header-title">安义县机场</div>
+        <div class="header-title">{{ dataObj.region_name }}</div>
       </div>
       <el-icon class="header-close" @click="props.removeLabel">
         <Close />
       </el-icon>
     </div>
-    <div class="info">
-      <div class="info-item">
-        机巢数:
-        <div class="num">10</div>
+    <div class="loading" v-if="loading">加载中...</div>
+    <div class="content" v-else>
+      <div class="info">
+        <div class="info-item">
+          机巢数:
+          <div class="num">{{ dataObj.device_num }}</div>
+        </div>
+        <div class="info-item">
+          任务数:
+          <div class="num">{{ dataObj.jobNum }}</div>
+        </div>
       </div>
-      <div class="info-item">
-        任务数:
-        <div class="num">32</div>
+      <div class="status-title">机巢状态</div>
+      <div class="status-list">
+        <div v-for="item in list" :key="item.name" class="status-item">
+          <div class="status-value" :style="{ color: item.color }">{{ item.value }}</div>
+          <div class="status-name">{{ item.name }}</div>
+        </div>
       </div>
     </div>
-    <div class="status-title">机巢状态</div>
-    <div class="status-list">
-      <div v-for="item in list" :key="item.name" class="status-item">
-        <div class="status-value" :style="{ color: item.color }">{{ item.value }}</div>
-        <div class="status-name">{{ item.name }}</div>
-      </div>
-    </div>
+
   </div>
 </template>
 <script setup>
 import { Close } from '@element-plus/icons-vue';
-
-const list = [
-  { name: '执行中', value: '1', color: '#FFA768' },
-  { name: '在线', value: '20', color: '#8EFFAC' },
-  { name: '离线', value: '14', color: '#FFFFFF' },
-  { name: '异常', value: '25', color: '#FF6262' },
-];
+import { getDeviceInfoNum } from '@/api/home/machineNest';
+import { getTotalJobNum } from '@/api/home';
 
 const props = defineProps(['data', 'removeLabel']);
+const list = ref([
+  { name: '空闲中', value: 0, color: '#FFA768' },
+  { name: '作业', value: 0, color: '#8EFFAC' },
+  { name: '离线中', value: 0, color: '#FFFFFF' },
+]);
+const loading = ref(true);
+
+const dataObj = ref({
+  device_num: 0,
+  jobNum: 0,
+  region_name: '',
+});
+onMounted(async () => {
+  loading.value = true;
+  const areaCode = props.data.region_code;
+  dataObj.value.region_name = props.data.region_name;
+  const res = await getDeviceInfoNum({ areaCode });
+  const resJob = await getTotalJobNum({ areaCode });
+  dataObj.value.jobNum = resJob.data.data;
+  dataObj.value.device_num = res.data.data.device_num;
+  list.value[0].value = res.data.data.ex_num;
+  list.value[1].value = res.data.data.leisure_num;
+  list.value[2].value = res.data.data.offline_num;
+  loading.value = false;
+});
 </script>
 <style scoped lang="scss">
 .mapPopUpBox {
@@ -46,6 +70,16 @@
   height: 240px;
   background: url('@/assets/images/home/mapPopUpBox/mapPopUpBg.png') no-repeat center / 100% 100%;
   padding-left: 98px;
+
+  .loading{
+    display: flex;
+    height: calc(100% - 51px);
+    justify-content: center;
+    align-items: center;
+    font-size: 20px;
+    color: #ffffff;
+    background: rgb(24,50,101,.5);
+  }
 
   .header {
     padding: 0 12px;
@@ -133,7 +167,7 @@
 
   .status-list {
     display: flex;
-    justify-content: space-between;
+    justify-content: space-evenly;
     align-items: center;
 
     .status-item {

--
Gitblit v1.9.3