提交 62655bd7 作者: 翁进城

fix: 无人机视频操作接管判断

上级 c11855fd
......@@ -2,20 +2,20 @@
<!-- 清流融合 -->
<div id="uavPlayerWrap" class="player" :class="big" v-interact>
<div ref="video" class="video-wrap" @dblclick="screen">
<div class="cpt_video" @click="lensControl" v-if="showPlayer">
<div class="cpt_video" @click.stop="lensControl" v-if="showPlayer">
<Obstacle v-if="!isStatus"></Obstacle>
<div class="video">
<div class="name" v-clipboard:copy="vUrl.vUrl">{{ uav.name }}</div>
<!-- <div class="type" v-if="networkType">{{ networkType }}</div> -->
<!-- <div class="types">{{ streamName }}</div> -->
<div v-show="!isStatus" class="close" @click="close()">关闭</div>
<div v-show="!isStatus" class="close" @click.stop="close()">关闭</div>
</div>
<!-- <videoModelChange
:data="data"
v-if="streamSelect == 'QINGLIU' && !isStatus"
class="cp pa cf modelStyle"
@click="VideoModelChange"
@click.stop="VideoModelChange"
:uavRealTimeData="uavRealTimeData"
:NXdata="NXdata"
></videoModelChange>-->
......@@ -125,7 +125,7 @@
</div>
<div style="display: flex">
<div class="icon-box"></div>
<div class="cf ml20 mr10 c70d cp" @click="showInfo = false">关闭</div>
<div class="cf ml20 mr10 c70d cp" @click.stop="showInfo = false">关闭</div>
</div>
</div>
<div class="content">
......@@ -239,11 +239,11 @@
</div>
</div>
<div class="iconBG" v-if="isStatus">
<div class="infop" @click="getInfo" alt />
<div class="infop" @click.stop="getInfo" alt />
<div
:class="type == 4 ? 'right17' : 'right23'"
class="reset iconfont icon-gengxin"
@click="reset"
@click.stop="reset"
/>
</div>
<div class="bottom-menu">
......@@ -257,13 +257,13 @@
<img
class="menu-item"
src="./assets/images/info.png"
@click="getInfo"
@click.stop="getInfo"
style="transform: scale(1.4)"
alt
/>
</el-tooltip>
<el-tooltip content="是否启动瞄准镜" placement="bottom" v-if="!isStatus">
<img class="menu-item" src="./assets/images/center.png" @click="showCenterFn" alt />
<img class="menu-item" src="./assets/images/center.png" @click.stop="showCenterFn" alt />
</el-tooltip>
<el-tooltip
v-if="!isStatus"
......@@ -301,44 +301,44 @@
></el-option>
</el-select>
</div>
<div class="pointer iconfont icon-gengxin menu-item" @click="reset"></div>
<div class="pointer iconfont icon-gengxin menu-item" @click.stop="reset"></div>
<!-- FPV切换 -->
<el-tooltip content="模式切换" placement="bottom">
<div
v-if="streamSelect.toUpperCase() !== 'QINGLIU'"
class="iconfont icon-moshiqiehuan modelStyle menu-item"
@click="change"
@click.stop="change"
></div>
</el-tooltip>
<div class="pointer iconfont icon-quanping menu-item" @click="screen" v-if="!isStatus"></div>
<div class="pointer iconfont icon-quanping menu-item" @click.stop="screen" v-if="!isStatus"></div>
</div>
</div>
<div class="right-menu">
<template v-if="uav.network === 2">
<el-tooltip content="拍照" placement="bottom">
<div class="menu-item plate" @click="photojz">
<div class="menu-item plate" @click.stop="photojz">
<img src="./assets/images/ai.png" />
</div>
</el-tooltip>
<el-tooltip v-if="!screenRecordingStatus" content="开始录像" placement="bottom">
<div class="record menu-item" @click="getRecord">
<div class="record menu-item" @click.stop="getRecord">
<img src="./assets/images/record.png" />
</div>
</el-tooltip>
<el-tooltip v-else content="停止录像" placement="bottom">
<div class="record menu-item" @click="getRecord">
<div class="record menu-item" @click.stop="getRecord">
<img src="./assets/images/stop.png" />
</div>
</el-tooltip>
</template>
<el-tooltip content="截图" placement="bottom">
<div class="photojz menu-item" @click="photo">
<div class="photojz menu-item" @click.stop="photo">
<img src="./assets/images/photojz.svg" />
</div>
</el-tooltip>
<AiList ref="aiList" @screenShot="onAiScreenShot"></AiList>
<div class="menu-item" @click="startLinePoint" content="航点动作">
<div class="menu-item" @click.stop="startLinePoint" content="航点动作">
<img src="./assets/images/point_small.svg" />
</div>
</div>
......@@ -364,7 +364,7 @@ import { to_moveMount } from "../../../../utils/to_moveMount.js";
import Obstacle from "./components/obstacle";
import PointList from "./components/pointList";
import videoModelChange from "./components/videoModelChange";
import { mapState } from "vuex";
import { mapState, mapActions } from "vuex";
import AiList from "./components/aiList";
export default {
......@@ -655,6 +655,22 @@ export default {
clearInterval(this.aiTimeHandle);
},
methods: {
...mapActions("MMCFlightControlCenter/uav", ["isTakeOver"]),
isTakeOverHangar() {
return this.$store.dispatch("MMCFlightControlCenter/hangar/isTakeOver");
},
async isTake(show=true) {
// 判断是否已接管
let isTakeOver = this.isTakeOver;
if (this.isHangar) {
isTakeOver = this.isTakeOverHangar;
}
if (!(await isTakeOver())) {
show && this.$message.warning("请先接管设备");
return false;
}
return true;
},
startLinePoint() {
let gps = {};
if (this.uavRealTimeData) {
......@@ -755,6 +771,9 @@ export default {
* 录像
*/
async getRecord() {
if (!(await this.isTake())) {
return;
}
if (this.healthData.NX.code !== "0x2110000") {
return this.$message.error("录像失败,NX通信异常!");
}
......@@ -784,6 +803,9 @@ export default {
* 拍照
*/
async photojz() {
if (!(await this.isTake())) {
return;
}
if (this.healthData.NX.code !== "0x2110000") {
return this.$message.error("拍照失败,NX通信异常!");
}
......@@ -799,6 +821,9 @@ export default {
});
},
async photo() {
if (!(await this.isTake())) {
return;
}
let blob = this.$refs.player.screenShot();
if (blob) {
console.log(blob, window.URL.createObjectURL(blob));
......@@ -854,6 +879,9 @@ export default {
* 挂载镜头控制
*/
async lensControl(el) {
if (!(await this.isTake(false))) {
return;
}
// let mountData =this.$store.state.device.move_data
let { mountData } = this;
// if mountStatus =1 代表启用 屏幕指点功能
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论