forked from drone/command-center-dashboard

罗广辉
2025-04-18 61e6956be147e1e84e7104f16dd47e9f87f20dfd
src/components/CurrentTaskDetails/TaskDetailsLeft.vue
@@ -11,8 +11,8 @@
         {{ item.name }}相机
      </div>
      <div class="multiCol">
         <div @click="faceToCenter">云台回中</div>
         <div @click="faceToDown">云台朝下</div>
         <div @click="ptzResetMode(0)">云台回中</div>
         <div @click="ptzResetMode(1)">云台朝下</div>
      </div>
      <el-select class="qualityChange" v-model="lineQuality" @change="qualityChange">
         <el-option v-for="item in qualityList" :key="item.id" :label="item.name" :value="item.id" />
@@ -22,16 +22,17 @@
         <div @click="recordFun">{{ isRecording ? '录像中...' : '录像' }}</div>
      </div>
      <div class="multiCol">
         <div>喊话</div>
         <div>广播</div>
         <div @click="ElMessage.warning('加急开发中...')">喊话</div>
         <div @click="ElMessage.warning('加急开发中...')">广播</div>
      </div>
      <div class="cameraZoom">
         <el-slider
            v-model="cameraParams.zoom_factor"
            vertical
            :max="cameraParams.camera_type === 'ir' ? 20 : 50"
            @input="sliderChange"
            :min="cameraParams.camera_type === 'ir' ? 2 : 0"
            :max="cameraParams.camera_type === 'ir' ? 200 : 200"
            @change="sliderChange"
         />
      </div>
   </div>
@@ -39,7 +40,7 @@
<script setup>
import EventBus from '@/event-bus'
import { callPhotoAndVideoCmd, cameraParamsChangeApi } from '@/api/payload'
import { callPhotoAndVideoCmd, cameraParamsChangeApi, ptzResetModeApi } from '@/api/payload'
import { ElMessage } from 'element-plus'
import { throttle } from 'lodash'
@@ -65,9 +66,9 @@
   { name: '超清', id: 4 },
]
function faceToCenter() {}
function faceToDown() {}
function ptzResetMode(resetMode) {
   ptzResetModeApi({ sn: dockSn.value, resetMode })
}
// 倍率调整
function sliderChange(val) {
@@ -82,9 +83,11 @@
// 修改相机参数
function cameraParamsChange() {
   const { camera_type, zoom_factor} = cameraParams.value
   cameraParamsChangeApi({
      sn: dockSn.value,
      ...cameraParams.value,
      zoom_factor: camera_type === 'wide' ? undefined : zoom_factor,
   })
}
@@ -97,7 +100,7 @@
      cameraParams.value.zoom_factor = 5
   }
   if (row.key === 'ir') {
      cameraParams.value.zoom_factor = 0
      cameraParams.value.zoom_factor = 2
   }
   cameraParamsChange()
}
@@ -113,7 +116,7 @@
   const msg = isRecording.value ? '停止录像' : '开始录像'
   const emitType = isRecording.value ? 'controlPanel-timeStop' : 'controlPanel-timeStart'
   callPhotoAndVideoCmd(droneSn.value, type).then(res => {
   callPhotoAndVideoCmd(dockSn.value, type).then(res => {
      ElMessage.success(msg)
      EventBus.emit(emitType)
      isRecording.value = !isRecording.value
@@ -123,7 +126,7 @@
// 拍照
function takePictures() {
   // photo拍照,video_start开始录像,video_stop结束录像
   callPhotoAndVideoCmd(droneSn.value, 'photo').then(res => {
   callPhotoAndVideoCmd(dockSn.value, 'photo').then(res => {
      ElMessage.success('拍照成功')
   })
}