From 308e5293b63bfe8729f31320cd4b6058301948fd Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Sat, 15 Nov 2025 20:28:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/feature/v8.0/8.0.2' into test

---
 .env.development             |    2 
 src/views/device/airport.vue |   61 +++++++++++++++++++++---------
 src/api/device/device.js     |   18 ++++++++
 3 files changed, 61 insertions(+), 20 deletions(-)

diff --git a/.env.development b/.env.development
index b574a32..c452ea6 100644
--- a/.env.development
+++ b/.env.development
@@ -22,7 +22,7 @@
 # 服务地址
 VITE_APP_URL = https://wrj.shuixiongit.com/api
 #VITE_APP_URL= http://192.168.1.168
-#VITE_APP_URL= http://192.168.1.33
+# VITE_APP_URL= http://192.168.1.33
 #VITE_APP_URL= http://192.168.1.204
 #新大屏地址
 VITE_APP_DASHBOARD_URL = 'https://wrj.shuixiongit.com/command-center-dashboard/'
diff --git a/src/api/device/device.js b/src/api/device/device.js
index da62856..84fdf2c 100644
--- a/src/api/device/device.js
+++ b/src/api/device/device.js
@@ -167,4 +167,20 @@
     method: 'post',
     data: param
   })
-}
\ No newline at end of file
+}
+// 初始化机场附近五公
+export const initAirportTerrainHeight = (params) => {
+  return request({
+    url: `/drone-odm/odmTaskInfo/odmTaskInfo/initAirportTerrainHeight`,
+    method: 'get',
+    params: params
+  })
+}
+// 删除机场附近五公里
+export const deleteAirportTerrainHeight = (params) => {
+  return request({
+    url: `/drone-odm/odmTaskInfo/odmTaskInfo/deleteAirportTerrainHeight`,
+    method: 'get',
+    params: params
+  })
+}
diff --git a/src/views/device/airport.vue b/src/views/device/airport.vue
index 31f1282..e64fa9d 100644
--- a/src/views/device/airport.vue
+++ b/src/views/device/airport.vue
@@ -1,10 +1,10 @@
 <template>
   <basic-main-content>
     <avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" ref="crud" @row-del="rowDel"
-      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
-      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
-      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"
-      @tree-load="treeLoad">
+               v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+               @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+               @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"
+               @tree-load="treeLoad">
       <template #menu-left>
         <el-button type="danger" icon="el-icon-delete" plain v-if="permission.device_delete" @click="handleDelete">删 除
         </el-button>
@@ -43,7 +43,7 @@
         <div v-if="row.firmware_status == 4" class="onlineStatus">
           <el-tag effect="dark" class="active-element" @click="updateFirmware(row)">升级中</el-tag>
           <el-progress v-if="row.firmware_progress > 0 && row.firmware_progress < 100"
-            :percentage="row.firmware_progress"></el-progress>
+                       :percentage="row.firmware_progress"></el-progress>
         </div>
       </template>
       <template #domain="{ row }">
@@ -53,31 +53,31 @@
       </template>
       <template #mode_code="{ row }">
         <span class="text" v-if="row.domain == 3 || row.domain == 0"
-          :style="row.mode_code != '-1' ? 'color: #00ee8b' : 'color: #de5e5e'">
+              :style="row.mode_code != '-1' ? 'color: #00ee8b' : 'color: #de5e5e'">
           {{ getModelText(row.mode_code) }}
         </span>
       </template>
       <template #menu="scope">
         <el-dropdown>
           <el-button type="primary" text v-if="permission.oss_set"><el-icon>
-              <MoreFilled />
-            </el-icon>更多</el-button>
+            <MoreFilled />
+          </el-icon>更多</el-button>
           <template #dropdown v-if="scope.row.domain == 3">
             <el-dropdown-menu teleported>
               <el-dropdown-item command="a">
                 <el-button type="primary" text icon="el-icon-paperclip" v-if="permission.oss_set"
-                  @click.stop="handleOpenOssSet(scope.row, scope.index)">存储配置</el-button>
+                           @click.stop="handleOpenOssSet(scope.row, scope.index)">存储配置</el-button>
               </el-dropdown-item>
               <el-dropdown-item command="b">
                 <el-button type="primary" text icon="el-icon-share" v-if="permission.per_share && scope.row.domain == 3"
-                  @click.stop="handleOpenDevicePerShare(scope.row, scope.index)">机场授权</el-button>
+                           @click.stop="handleOpenDevicePerShare(scope.row, scope.index)">机场授权</el-button>
               </el-dropdown-item>
               <el-dropdown-item command="c"> <el-button type="primary" text icon="el-icon-position"
-                  :disabled="!scope.row.status" v-if="permission.rang_con && scope.row.domain == 3"
-                  @click.stop="handleOpenRemoteDebugging(scope.row, scope.index)">远程调试</el-button>
+                                                        :disabled="!scope.row.status" v-if="permission.rang_con && scope.row.domain == 3"
+                                                        @click.stop="handleOpenRemoteDebugging(scope.row, scope.index)">远程调试</el-button>
               </el-dropdown-item>
               <el-dropdown-item command="d"><el-button type="primary" text icon="el-icon-collection"
-                  v-if="permission.fly_device_offline" @click.stop="rollFirmware(scope.row)">固件版本管理</el-button>
+                                                       v-if="permission.fly_device_offline" @click.stop="rollFirmware(scope.row)">固件版本管理</el-button>
               </el-dropdown-item>
               <el-dropdown-item command="d" v-if="!scope.row.status">
                 <el-button type="primary" text icon="el-icon-collection" @click.stop="dockNotLine(scope.row)">
@@ -85,7 +85,15 @@
                 </el-button>
               </el-dropdown-item>
               <el-dropdown-item command="e"><el-button type="primary" text icon="el-icon-document-delete"
-                  v-if="permission.fly_device_offline" @click.stop="handleDeviceOffline(scope.row)">注销</el-button>
+                                                       v-if="permission.fly_device_offline" @click.stop="handleDeviceOffline(scope.row)">注销</el-button>
+              </el-dropdown-item>
+              <el-dropdown-item command="e">
+                <el-button type="primary" text icon="el-icon-document-delete"
+                           v-if="permission.fly_device_offline"
+                           :disabled="scope.row.dem_status === 1"
+                           @click.stop="handleStatus(scope.row)">
+                  {{ scope.row.dem_status === 0 ? '初始化地形' : (scope.row.dem_status === 1 ? '初始化中' : '更新地形') }}
+                </el-button>
               </el-dropdown-item>
             </el-dropdown-menu>
           </template>
@@ -98,7 +106,7 @@
                     <el-button type="primary" text icon="el-icon-key" v-if="permission.operate_password_set" @click.stop="handleOperatePassword(scope.row, scope.index)">操控密码设置</el-button>
                   </el-dropdown-item> -->
               <el-dropdown-item command="d"><el-button type="primary" text icon="el-icon-collection"
-                  @click.stop="rollFirmware(scope.row)">固件版本管理</el-button>
+                                                       @click.stop="rollFirmware(scope.row)">固件版本管理</el-button>
               </el-dropdown-item>
             </el-dropdown-menu>
           </template>
@@ -183,7 +191,7 @@
         固件版本升级/回退:
         <el-select v-model="rollFirmVersion" clearable placeholder="请选择固件版本" style="width: 240px">
           <el-option v-for="item in firmList" :key="item.firmware_version" :label="item.firmware_version"
-            :value="item.firmware_version" />
+                     :value="item.firmware_version" />
         </el-select>
       </div>
       <template #footer>
@@ -195,7 +203,7 @@
     </el-dialog>
 
     <el-drawer class="ztzf-drawer-body-basic-container ztzf-el-card__body" title="机场授权管理" size="60%" append-to-body
-      v-model="devicePerShareVisible" :direction="'rtl'">
+               v-model="devicePerShareVisible" :direction="'rtl'">
       <DevicePerShare ref="devicePerShare" />
     </el-drawer>
 
@@ -222,7 +230,9 @@
   getDevices,
   deviceOffline,
   devicesUpdate,
-  devicesUpAndDown
+  devicesUpAndDown,
+  initAirportTerrainHeight,
+  deleteAirportTerrainHeight
 } from '@/api/device/device'
 import { deleteByOssId, addOrUpdate as addOrUpdateOssBind } from '@/api/device/ossBind'
 import { getListPage as getOssList } from '@/api/resource/oss'
@@ -911,7 +921,22 @@
       this.cancenOperate = true
       this.cancelSNName = row.nickname
       this.cancenOperateRow = row
+    },
 
+    // 设备
+    handleStatus(row) {
+      console.log(row, '8888')
+      // dem_status
+      initAirportTerrainHeight({ dockSn: row.device_sn, centerLon: row.longitude, centerLat: row.latitude,  }).then(res => {
+        ElMessage.success('操作成功')
+      })
+      if (row.dem_status != 0){
+      deleteAirportTerrainHeight({ dockSn: row.device_sn }).then(res => {
+        ElMessage.success('操作成功')
+      })
+      }
+
+      this.init()
     },
 
     cancenOperateDo () {

--
Gitblit v1.9.3