From 4ff3eee77b41466d08117970970d01be6e48ffe1 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 28 Mar 2025 19:02:30 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/drone/pilot-h5

---
 src/views/components/ptzControl.vue |  124 ++++++++++++++++++++--------------------
 1 files changed, 62 insertions(+), 62 deletions(-)

diff --git a/src/views/components/ptzControl.vue b/src/views/components/ptzControl.vue
index 916bab6..e8bead5 100644
--- a/src/views/components/ptzControl.vue
+++ b/src/views/components/ptzControl.vue
@@ -1,9 +1,9 @@
 <template>
   <div class="ptz-control">
-    <div class="ptz" :class="isPtz?'actived-blue':''">
-      <img src="@/assets/images/yt.png" @touchstart="ptzClick" />
-    </div>
     <div class="btn-group">
+      <div class="btn-item" :class="isPtz?'actived-blue':''" @touchstart="ptzClick">
+        <img src="@/assets/images/yt.png" />
+      </div>
       <div class="btn-item" @touchstart="onTakeCameraPhoto">
         <img src="@/assets/images/photo.png" />
       </div>
@@ -14,21 +14,21 @@
         <img src="@/assets/images/sx-close.png"/>
       </div>
       <div class="btn-item" @touchstart="onZoom(true)">
-        <img src="@/assets/images/fang.png" />
+        <img src="@/assets/images/fangda.png" />
       </div>
       <div class="btn-item" @touchstart="onZoom(false)">
-        <img src="@/assets/images/suo.png" />
+        <img src="@/assets/images/suoxiao.png" />
       </div>
+      <!-- <div class="btn-item">
+        <img v-if="!isBigVideo" src="@/assets/images/fang.png" @touchstart="changeModelVideo(true)" />
+        <img v-else src="@/assets/images/suo.png" @touchstart="changeModelVideo(false)" />
+      </div> -->
     </div>
     <div class="circle-box" v-show="isPtz">
-      <div class="top" @click="ytClick('up')" @mousedown="onMouseDown(KeyCode.ARROW_UP)" @mouseup="onMouseUp"
-        @touchstart="onMouseDown(KeyCode.ARROW_UP)" @touchend="onMouseUp" @mouseleave="onMouseUp"></div>
-      <div class="left" @click="ytClick('left')" @mousedown="onMouseDown(KeyCode.ARROW_LEFT)" @mouseup="onMouseUp"
-        @touchstart="onMouseDown(KeyCode.ARROW_LEFT)" @touchend="onMouseUp" @mouseleave="onMouseUp"></div>
-      <div class="bottom" @click="ytClick('down')" @mousedown="onMouseDown(KeyCode.ARROW_DOWN)" @mouseup="onMouseUp"
-        @touchstart="onMouseDown(KeyCode.ARROW_DOWN)" @touchend="onMouseUp" @mouseleave="onMouseUp"></div>
-      <div class="right" @click="ytClick('right')" @mousedown="onMouseDown(KeyCode.ARROW_RIGHT)" @mouseup="onMouseUp"
-        @touchstart="onMouseDown(KeyCode.ARROW_RIGHT)" @touchend="onMouseUp" @mouseleave="onMouseUp"></div>
+      <div class="top" @click="ytClick('up')"></div>
+      <div class="left" @click="ytClick('left')"></div>
+      <div class="bottom" @click="ytClick('down')"></div>
+      <div class="right" @click="ytClick('right')"></div>
       <div class="reset-center" @click="onResetGimbal(0)">
         <el-icon><Refresh /></el-icon>
       </div>
@@ -38,7 +38,7 @@
 </template>
 
 <script lang="ts" setup>
-import { ElMessage } from 'element-plus'
+import { showNotify } from 'vant';
 import { Refresh } from '@element-plus/icons-vue';
 import { ControlSource, EModeCode } from '@/types/device'
 import { CameraMode } from '@/types/live-stream'
@@ -47,7 +47,10 @@
 import { switchLivestream } from '@/api/drone'
 import { usePayloadControl } from './use-payload-control'
 import { useDroneControlWsEvent } from '@/utils/websocket/drone-ws-control'
+import cesiumOperation from '@/utils/cesium-tsa.js';
 import { useMyStore } from '@/store'
+
+const { loadLAYER } = cesiumOperation()
 
 const {
   checkPayloadAuth,
@@ -68,8 +71,16 @@
   osdVisible: {
     type: Object,
     required: true,
+  },
+  cesiumViewe: {
+    type: Object,
+    required: true,
   }
 });
+const emitEvents = defineEmits(['changeModelVideo'])
+
+// 放大和缩小
+// let isBigVideo = ref<Boolean>(false)
 
 // 录像
 let isCameraRecording = ref<Boolean>(false)
@@ -89,6 +100,9 @@
 
 // 是否显示云台图标
 let isPtz = ref(false)
+
+// 显示高德地图矢量还是影像(2D/3D)
+// let is2d = ref(true)
 
 let yaw_speed = ref((payloadCameraMode.value == 'wide'? 1 : Math.ceil(zoom_factor.value))*10) // 云台横向角度
 let pitch_speed = ref((payloadCameraMode.value == 'wide'? 1 : Math.ceil(zoom_factor.value))*10) // 云台纵向角度
@@ -148,11 +162,11 @@
   }
 
   if (isActionComplete.value) {
-    ElMessage.warning('当前相机动作暂未完成,请勿点击!!')
+    showNotify({ type: 'warning', message: '当前相机动作暂未完成,请勿点击!' })
     return
   }
   if (payloadSelectInfo.camera?.recording_state) {
-    ElMessage.warning('当前摄像头正在录制视频,请先结束视频录制!!')
+    showNotify({ type: 'warning', message: '当前摄像头正在录制视频,请先结束视频录制' })
     return
   }
 
@@ -176,7 +190,7 @@
 const curTaskCameraPhoto =  (time:any) => {
   isActionComplete.value = true
 
-  ElMessage({
+  showNotify({
     message: '请稍后,正在拍摄中。。。',
     duration: 2000,
   })
@@ -216,27 +230,24 @@
   authPayload(props.osdVisible.dockSn, payloadSelectInfo.payloadIndex).then(
     (payloadRes:any) => {
       if (payloadRes.code !== 0)
-        return ElMessage.error('获得有效载荷控制失败,请稍后重试!!')
+        return showNotify({ type: 'danger', message: '获得有效载荷控制失败,请稍后重试!' })
       payloadControlSource.value = ControlSource.A
-      ElMessage.success('成功获得有效载荷控制')
+      showNotify({ type: 'success', message: '成功获得有效载荷控制' })
     },
   )
 }
 // 开始录像
 const onStartCameraRecording = () => {
-  console.log('设施',payloadSelectInfo.controlSource)
   if (!checkPayloadAuth(payloadSelectInfo.controlSource)) {
     return
   }
   if (isActionComplete.value) {
-    ElMessage.warning('当前相机动作暂未完成,请勿点击!!')
+    showNotify({ type: 'warning', message: '当前相机动作暂未完成,请勿点击!' })
     return
   }
 
   if (payloadSelectInfo.camera?.recording_state) {
-    return ElMessage.warning(
-      '当前摄像头正在录制视频,请勿重复点击!!',
-    )
+    return showNotify({ type: 'warning', message: '当前摄像头正在录制视频,请勿重复点击!' })
   }
 
   if (payloadSelectInfo.camera?.camera_mode !== CameraMode.Video) {
@@ -259,7 +270,7 @@
   const curStartCameraRecording = (time:any) => {
     isActionComplete.value = true
 
-    ElMessage({
+    showNotify({
       message: '请稍后,正在开启视频录制。。。',
       duration: 2000,
     })
@@ -268,8 +279,8 @@
       startCameraRecording(props.osdVisible.dockSn, payloadSelectInfo.payloadIndex)
         .then((res) => {
           if (res.code !== 0)
-            return ElMessage.warning('开始录制失败,请稍后重试!!')
-          ElMessage.success('开始录制成功')
+            return showNotify({ type: 'warning', message: '开始录制失败,请稍后重试!' })
+          showNotify({ type: 'success', message: '开始录制成功!' })
           // 开始录像
           isCameraRecording.value = true
           isActionComplete.value = false
@@ -285,15 +296,15 @@
     return
   }
   if (isActionComplete.value) {
-    ElMessage.warning('当前相机动作暂未完成,请勿点击!!')
+    showNotify({ type: 'warning', message: '当前相机动作暂未完成,请勿点击!' })
     return
   }
   isActionComplete.value = true
   stopCameraRecording(props.osdVisible.dockSn, payloadSelectInfo.payloadIndex)
     .then((res) => {
       if (res.code !== 0)
-        return ElMessage.warning('停止录制失败,请稍后重试!!')
-      ElMessage.success('停止录制成功')
+        return showNotify({ type: 'warning', message: '停止录制失败,请稍后重试!' })
+      showNotify({ type: 'success', message: '停止录制成功' })
       // 停止录像
       isCameraRecording.value = false
       isActionComplete.value = false
@@ -316,7 +327,6 @@
     if (zoom_factor.value <= 2) {
       zoom_factor.value = 2
     }
-    console.log('9999', zoom_factor.value)
   }
   switchLivestream({
     video_id: `${props.osdVisible.dockSn}/${payloadSelectInfo.payloadIndex}/normal-0`,
@@ -331,6 +341,12 @@
       }, value)
   })
 }
+
+// const onChangeD = () => {
+//   is2d.value = !is2d.value
+//   store.commit('SET_MAP_SETTING_MODE', is2d.value?2:3);
+//   loadLAYER();
+// }
 
 // 重置云台角度
 const onResetGimbal = async (resetMode:any) => {
@@ -373,40 +389,20 @@
   } 
 }
 
+// 视频大小的缩放
+// const changeModelVideo = (value:Boolean) => {
+//   isBigVideo.value = value
+//   emitEvents('changeModelVideo', value)
+// }
 
 </script>
 
 <style lang="scss" scoped>
 .ptz-control {
-  .ptz {
-    position: fixed;
-    top: 3rem;
-    right: 0.2rem;
-    width: 2rem;
-    height: 2rem;
-    border-radius: 3px;
-    background-color: rgba(0, 0, 0, 0.5);
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    overflow: hidden;
-    cursor: pointer;
-    margin-bottom: 1rem;
-    pointer-events: all;
-    img {
-      width: 1.6rem;
-      height: 1.6rem;
-    }
-  }
-  .actived-blue {
-    background-image: none;
-    background-color: rgba(23, 124, 198, 0.7);
-  }
   .btn-group {
-    position: fixed;
-    top: 5.8rem;
-    right: 4px;
-    // padding: 4px;
+    position: absolute;
+    right: 0.2rem;
+    bottom: 0rem;
     .btn-item {
       width: 2rem;
       height: 2rem;
@@ -417,12 +413,16 @@
       justify-content: center;
       overflow: hidden;
       cursor: pointer;
-      margin-bottom: 1rem;
+      margin-bottom: 0.5rem;
       pointer-events: all;
       img {
         width: 1.6rem;
         height: 1.6rem;
       }
+    }
+    .actived-blue {
+      background-image: none;
+      background-color: rgba(23, 124, 198, 0.7);
     }
   }
   .circle-box {
@@ -432,8 +432,8 @@
     overflow: hidden;
     background-color: rgba(0, 0, 0, 0.5);
     position: fixed;
-    top: 0;
-    right: 4rem;
+    top: 20%;
+    left: 1%;
 
     .top,
     .left,

--
Gitblit v1.9.3