提交 307fa50b 作者: 翁进城

fix:

1. 删除无用文件
2. 刷新恢复当前任务航线
3. 挂载录像修正
上级 234bd52c
<!-- 飞控中心电池-->
<template>
<div class="cpt-observe-mspace-dashboard-battery">
<div class="cpt-observe-mspace-dashboard-battery" v-if="isShow">
<div class="battery-inner" v-for="(item,index) in _batteryList" :key="index">
<div class="dec mr9 f12">{{index+1}}</div>
<div class="size-wrap">
......@@ -8,13 +8,13 @@
<div class="size-inner">
<div class="dianchigai"></div>
<div
v-if="item.statusType !=3"
v-if="item.statusType !==3"
class="size-inner-box"
:style="`height: ${item.chargeRemaining || 100}%; ${setColor(item.chargeRemaining || 100)}`"
></div>
</div>
</div>
<span v-if="item.statusType == 3" class="size__text">{{"已关机"}}</span>
<span v-if="item.statusType === 3" class="size__text">{{"已关机"}}</span>
<span v-else class="size__text">{{item.chargeRemaining || 100}}%</span>
</div>
......@@ -53,10 +53,17 @@ export default {
},
},
data() {
return {};
return {
isShow: true,
};
},
computed: {
_batteryList() {
console.log('电池信息', this.batteryList)
this.isShow = false;
this.$nextTick(() => {
this.isShow = true;
})
if (this.batteryList.length > 0) {
return this.batteryList;
} else {
......
......@@ -11,4 +11,22 @@ export default class TaskInfo {
data
});
}
// 获取航线
static getRoute(data) {
return request({
url: `/admin-api/bpm/task-info/getreoute`,
method: "post",
data
});
}
// 获取任务信息
static getTaskInfoRecord(data) {
return request({
url: `/admin-api/bpm/task-info/getTaskInfoRecord`,
method: "post",
data
});
}
}
......@@ -19,7 +19,7 @@
<script>
import { Utils } from "../../../../../../../../../../lib/cesium";
import { mapState, mapActions } from "vuex";
import { Control_API } from "../../../../../../../../../../api";
import { Control_API, TaskInfo } from "../../../../../../../../../../api";
import AirwayEdit from "./components/airwayEdit";
const airwayEntities = []; // 航线实体
......@@ -40,7 +40,7 @@ export default {
},
computed: {
...mapState("MMCFlightControlCenter", ["cesiumViewer", "useSTLAirway"]),
...mapState("MMCFlightControlCenter/uav", ["uav"]),
...mapState("MMCFlightControlCenter/uav", ["uav", "uavRealTimeData"]),
...mapState("MMCFlightControlCenter/hangar", ["hangar"]),
showAirwayEdit: {
get() {
......@@ -129,7 +129,18 @@ export default {
},
});
} */
this.getAirwayList();
await this.getAirwayList();
// 获取正在飞行的航线
console.log('当前飞行状态', this.uavRealTimeData.isFlying);
if (this.uav && this.uavRealTimeData.isFlying) {
let res = await TaskInfo.getTaskInfoRecord({
deviceId: this.uav.deviceId,
});
if (res.code === 0) {
this.selectedAirwayId = res.data.reouteId;
}
}
},
beforeDestroy() {
this.bus.$off("startTask", this.onStartTask);
......@@ -146,19 +157,22 @@ export default {
* 更新任务列表
*/
getAirwayList(id) {
console.log("getAirwayList", this.taskListAll);
this.rootNode.$emit("airwayListGet", {
pageNo: 1,
pageSize: 100,
hangar: this.hangar,
callback: (res) => {
this.airwayList = res?.records || [];
this.$nextTick(() => {
if (id) {
this.selectedAirwayId = id;
}
});
},
return new Promise((resolve) => {
console.log("getAirwayList", this.taskListAll);
this.rootNode.$emit("airwayListGet", {
pageNo: 1,
pageSize: 100,
hangar: this.hangar,
callback: (res) => {
this.airwayList = res?.records || [];
this.$nextTick(() => {
if (id) {
this.selectedAirwayId = id;
}
resolve();
});
},
});
});
},
/**
......
<template>
<div>
<Player ref="player" @close="$emit('close')" :url="selectUrl" :name="name" :label="label" style="height: 200px;" />
<Player
ref="player"
@close="$emit('close')"
:url="selectUrl"
:name="name"
:label="label"
style="height: 200px;"
/>
<el-select v-model="selectUrl" class="select" popper-class="mmc">
<el-option
v-for="item in streamOptions"
......@@ -110,6 +117,20 @@ export default {
}
},
},
selectUrl() {
// 记录用的流是否为清流
if (this.selectUrl.toLowerCase().includes("pzsp://")) {
this.$store.commit("MMCFlightControlCenter/uav/setState", {
key: "isQingLiu",
value: true,
});
} else {
this.$store.commit("MMCFlightControlCenter/uav/setState", {
key: "isQingLiu",
value: false,
});
}
},
},
mounted() {
this.selectUrl = this.streamOptions[0]?.url || "";
......
......@@ -25,7 +25,7 @@
<script>
import { Utils } from "../../../../../../../../lib/cesium";
import { mapState, mapActions } from "vuex";
import { Control_API } from "../../../../../../../../api";
import { Control_API, TaskInfo } from "../../../../../../../../api";
import AirwayEdit from "./components/airwayEdit";
const airwayEntities = []; // 航线实体
......@@ -86,8 +86,8 @@ export default {
},
},
watch: {
showAirwayEdit(newVal){
if(newVal){
showAirwayEdit(newVal) {
if (newVal) {
this.listCollapse = true;
}
},
......@@ -109,42 +109,22 @@ export default {
},
async created() {
this.bus.$on("startTask", this.onStartTask);
/* let res = await Control_API.getUavRouteList({
pageNo: 1,
pageSize: 100,
});
if (res?.code === 0) {
let airwayList = [];
for (let i = 0; i < res.data.list.length; i++) {
let item = res.data.list[i];
let flightCourseJson;
try {
flightCourseJson = JSON.parse(item.flightCourseJson);
} catch (e) {
console.log(e);
}
// 转换成飞控中心能接受的数据协议
let content = flightCourseJson
? await this.$store.dispatch(
"MMCFlightControlCenter/apiPointsToFKZXPoints",
{
list: flightCourseJson?.linePointSaveReqVOS || [],
actionListKey: "pointActionSaveReqVOS",
}
)
: null;
airwayList.push({
name: item.flightName,
id: item.id,
content: content,
});
this.bus.$on("refreshAirway", this.getAirwayList);
await this.getAirwayList();
// 获取正在飞行的航线
console.log("当前飞行状态", this.uavRealTimeData.isFlying);
if (this.uav && this.uavRealTimeData.isFlying) {
let res = await TaskInfo.getTaskInfoRecord({
deviceId: this.uav.deviceId,
});
if (res.code === 0) {
this.selectedAirwayId = res.data.reouteId;
}
this.airwayList = airwayList;
} */
this.getAirwayList();
}
},
beforeDestroy() {
this.bus.$off("startTask", this.onStartTask);
this.bus.$off("refreshAirway", this.getAirwayList);
this.clearAirwayEntities();
},
methods: {
......@@ -158,18 +138,21 @@ export default {
* 更新任务列表
*/
getAirwayList(id) {
console.log("getAirwayList", this.taskListAll);
this.rootNode.$emit("airwayListGet", {
pageNo: 1,
pageSize: 100,
callback: (res) => {
this.airwayList = res?.records || [];
this.$nextTick(() => {
if (id) {
this.selectedAirwayId = id;
}
});
},
return new Promise((resolve) => {
console.log("getAirwayList", this.taskListAll);
this.rootNode.$emit("airwayListGet", {
pageNo: 1,
pageSize: 100,
callback: (res) => {
this.airwayList = res?.records || [];
this.$nextTick(() => {
if (id) {
this.selectedAirwayId = id;
}
resolve();
});
},
});
});
},
/**
......
......@@ -116,9 +116,9 @@ export default {
* 挂载录像
*/
mountRecord(streamData) {
window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "PX4/OBTAIN/" + this.uav.deviceId,
data: streamData,
console.log("挂载录像", streamData);
this.$store.dispatch("MMCFlightControlCenter/uav/videoTranscribe", {
recordControl: streamData.data.data.status || streamData.data.data.recordControl || false,
callback: () => {
if (streamData.data.data.recordControl) {
this.$message.success(`录像开始`);
......
......@@ -17,7 +17,7 @@
<el-table-column label="当前控制单位" align="center" prop="takeUserName"></el-table-column>
<el-table-column label="操作" align="center" prop="name">
<template slot-scope="scope">
<el-button @click="onExit(scope.row)" type="text" size="small" v-if="scope.takeStats">退出接管</el-button>
<el-button @click="onExit(scope.row)" type="text" size="small" v-if="scope.row.takeStats">退出接管</el-button>
</template>
</el-table-column>
</el-table>
......
<template>
<div class="content" v-interact>
<div class="content_head">
<div class="left">
<img src="../../assets/images/mount_head.png" />
<div class="font">车流识别</div>
</div>
<div class="right" @click="() => $emit('close')">关闭</div>
</div>
<div class="content_box">
<div class="items">
<div class="car_item">
<div class="image">
<img :src="baseUrl + trafficData.imagePath" alt="" />
</div>
<div class="info">
<div class="row">
<div class="title">发现车辆:</div>
<div class="props">{{ trafficData.total || "0" }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import data from "./data";
export default {
props:{
trafficData:{
type: Object,
default: () => {}
}
},
data() {
return {
// ...data,
baseUrl: process.env.VUE_APP_IMG_URL,
};
},
methods: {
},
mounted() {
},
};
</script>
<style lang="scss" scoped>
.content {
position: fixed;
z-index: 101;
top: calc(50% - 120px);
left: calc(50% + 80px);
margin-right: 16px;
width: 468px;
max-height: 635px;
margin-bottom: 190px;
background: rgba(0, 39, 121, 0.5);
box-shadow: 0px 2px 8px 0px rgba(1, 162, 255, 0.7),
inset 0px 0px 64px 0px rgba(26, 138, 227, 0.35),
inset 0px 0px 8px 0px #019aff;
backdrop-filter: blur(2px);
border-radius: 10px 10px 0px 0px;
.content_head {
display: flex;
justify-content: space-between;
height: 32px;
background: linear-gradient(
180deg,
#9198ff 0%,
rgba(45, 81, 153, 0.45) 40%,
#05091a 100%
);
box-shadow: inset 0px 0px 10px 2px #3f9dff;
border-radius: 10px 10px 0px 0px;
align-items: center;
padding: 0 16px;
.left {
display: flex;
align-items: center;
.font {
font-size: 20px;
font-family: YouSheBiaoTiHei;
color: #14faff;
line-height: 26px;
text-shadow: 0px 1px 1px rgba(2, 32, 56, 0.2);
background: linear-gradient(
135deg,
#e3aa77 0%,
#f5cda9 38%,
#f9ecd3 58%,
#fcdbb1 79%,
#edb07a 100%
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
}
.right {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #d2dfff;
margin-right: 8px;
cursor: pointer;
}
}
.content_box {
width: 100%;
max-height: 600px;
// padding: 0 16px;
// overflow: auto;
position: relative;
.items {
width: 100%;
height: 100%;
display: flex;
align-content: flex-start;
flex-wrap: wrap;
justify-content: space-between;
.car_item {
margin: 11px auto;
width: 90%;
height: 300px;
border: 1px solid #43deff;
padding: 4px 4px 0 4px;
.image {
position: relative;
width: 100%;
height: 90%;
img {
width: 100%;
height: 100%;
}
.tip {
position: absolute;
bottom: 0;
width: 204px;
height: 16px;
background: #000000;
opacity: 0.8;
font-size: 12px;
font-family: MicrosoftYaHei;
color: #b7bfc8;
text-align: center;
line-height: 16px;
}
}
.info {
width: 204px;
height: 53px;
// border: 1px solid #43deff;
background: url("../../assets/images/info.png");
.row {
margin-left: 9px;
padding-top: 7px;
display: flex;
.title {
font-size: 14px;
font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
font-weight: bold;
color: #b7cae2;
}
.props {
// width: 150px;
// height: 19px;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #b7cae2;
word-wrap: break-word;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
// &:hover {
// background: url("../../assets/images/infos.png");
// }
}
}
}
.detail {
display: flex;
flex-direction: column;
margin-top: 12px;
.image {
position: relative;
width: 436px;
height: 255px;
img {
width: 436px;
height: 255px;
}
.tip {
position: absolute;
bottom: 0;
width: 436px;
height: 31px;
background: #000000;
opacity: 0.8;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #b7bfc8;
text-align: center;
line-height: 31px;
}
}
.info {
// display: flex;
// justify-content: space-between;
// flex-wrap: wrap;
.row {
margin-top: 16px;
display: flex;
justify-content: space-between;
.col {
display: flex;
}
.title {
// flex: 1;
flex-shrink: 0;
font-size: 16px;
font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
font-weight: bold;
color: #ffffff;
line-height: 21px;
}
.props {
font-size: 16px;
font-family: MicrosoftYaHei;
color: #c5ebff;
line-height: 21px;
}
}
}
.btn {
margin: 20px 0;
// position: absolute;
// bottom: 0;
align-self: center;
width: 79px;
height: 32px;
background: rgba(23, 70, 216, 0.2);
box-shadow: 0px 2px 4px 0px rgba(23, 33, 60, 0.5),
inset 0px 0px 16px 0px rgba(33, 137, 255, 0.4),
inset 0px 0px 4px 0px #00a7ff;
border-radius: 6px;
// border: 1px solid;
border-image: linear-gradient(
180deg,
rgba(138, 218, 255, 1),
rgba(82, 179, 255, 0)
)
1 1;
font-size: 12px;
font-family: MicrosoftYaHei;
color: #00ffff;
text-align: center;
line-height: 32px;
}
}
}
}
</style>
export default {
list: [
// {
// userName: '何元高',
// birthday: '1974-01-11',
// occurTime: '2022-02-25 08:44;55',
// address: '江苏省盐城市亭湖区人民北路66号华府景城31幢1605室',
// idCard: '320902197401112539',
// labels: ['省内人员'],
// similarity: '63',
// img: 'http://32.128.10.139:30080/components/osg-default/_/video_face_cropped/20220225-ca5ae89e-000a580ae000af-00000020-00000c10',
// imgs:'http://32.128.6.48/uploads/2022/02/25/b4e2793c-bba1-475d-9702-6a9c3f7a1adf.jpeg',
// show: false
// },
]
}
\ No newline at end of file
<template>
<div class="content" v-interact>
<div class="content_head">
<div class="left">
<img src="../../assets/images/mount_head.png" />
<div class="font">人脸识别</div>
</div>
<div class="right" @click="() => $emit('closeface')">关闭</div>
</div>
<div class="content_box">
<div class="face-item" v-for="item in list" :key="item.name">
<div class="avatar xiangsi" :class="item.similarity >= 80 ? 'cheng' : ''">
<div class="avatar-box left">
<img :src="baseUrl + item.recordImageUrl" />
<!-- <img :src="item.snapImageUrl" /> -->
</div>
<div class="compare-box" @click="infoFn(item)">
<div class="value">{{ Number(item.similarity).toFixed(2) }}%</div>
<div class="label cp">相似度</div>
</div>
<div class="avatar-box right">
<img :src="baseUrl + item.snapImageUrl" />
</div>
</div>
<div class="detail" v-if="item.show">
<div class="image">
<div class="left">
<img :src="baseUrl + item.recordImageUrl" alt />
<div class="tip">比对照片</div>
</div>
<div class="right">
<img :src="baseUrl + item.snapImageUrl" alt />
<div class="tip">抓拍照片</div>
</div>
</div>
<div class="ds">
<div class="row">
<div class="title">姓名:</div>
<div class="props">{{ item.userName || '暂无' }}</div>
</div>
<div class="row">
<div class="title">身份证号:</div>
<div class="props">{{ item.idCard || '暂无' }}</div>
</div>
<div class="row">
<div class="title">出生年份:</div>
<div class="props">{{ item.birthday || '暂无' }}</div>
</div>
<div class="row">
<div class="title">发现时间:</div>
<div class="props">{{ item.occurTime || '暂无' }}</div>
</div>
<div class="row">
<div class="title">发现地点:</div>
<div class="props">{{ item.addr || item.address || '暂无' }}</div>
</div>
<div class="row">
<div class="title">AI识别:</div>
<div
class="props border"
>{{ item.labels && item.labels.length > 0 ? item.labels[0] : '暂无' }}</div>
</div>
</div>
</div>
<div class="down" @click="item.show = !item.show">
<img v-if="!item.show" src="../../assets/images/down.png" alt />
<img v-else src="../../assets/images/up.png" alt />
</div>
</div>
</div>
</div>
</template>
<script>
import data from "./data";
export default {
props: ["uavId"],
data() {
return {
...data,
baseUrl: process.env.VUE_APP_IMG_URL,
};
},
methods: {
async get_face_list() {
if (!this.uavId) {
this.$message.error("请选择无人机");
return;
}
/* let data = {
aiFacePid: this.uavId,
};
let res = await API.AIUSE.getFaceuavvideoMsg(data);
for (let i = 0; i < res.length; i++) {
let item = res[i];
if (res.length == 1) {
item.show = true;
} else {
item.show = false;
}
if (Number(item.longi) && Number(item.lati)) {
let address = await API.MAP.AiRegeo({
location: `${item.longi},${item.lati}`,
});
item.addr =
address.province.value +
address.city.value +
address.dist.value +
address.road.roadname +
address.poi;
}
}
this.list = res || []; */
},
},
mounted() {
this.get_face_list();
},
};
</script>
<style lang="scss" scoped>
.content {
z-index: 101;
position: fixed;
top: 16vh;
left: calc(50%);
margin-left: -234px;
width: 468px;
max-height: 635px;
background: rgba(0, 39, 121, 0.5);
box-shadow: 0px 2px 8px 0px rgba(1, 162, 255, 0.7),
inset 0px 0px 64px 0px rgba(26, 138, 227, 0.35),
inset 0px 0px 8px 0px #019aff;
backdrop-filter: blur(2px);
border-radius: 10px 10px 0px 0px;
.content_head {
display: flex;
justify-content: space-between;
height: 32px;
background: linear-gradient(
180deg,
#9198ff 0%,
rgba(45, 81, 153, 0.45) 40%,
#05091a 100%
);
box-shadow: inset 0px 0px 10px 2px #3f9dff;
border-radius: 10px 10px 0px 0px;
align-items: center;
padding: 0 16px;
.left {
display: flex;
align-items: center;
.font {
font-size: 20px;
font-family: YouSheBiaoTiHei;
color: #14faff;
line-height: 26px;
text-shadow: 0px 1px 1px rgba(2, 32, 56, 0.2);
background: linear-gradient(
135deg,
#e3aa77 0%,
#f5cda9 38%,
#f9ecd3 58%,
#fcdbb1 79%,
#edb07a 100%
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
}
.right {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #d2dfff;
margin-right: 8px;
cursor: pointer;
}
}
.content_box {
width: 436px;
max-height: 600px;
padding: 0 16px;
overflow: auto;
.face-item {
position: relative;
margin-bottom: 15px;
&:last-child {
margin-bottom: 0;
}
.avatar {
display: flex;
justify-content: space-between;
align-items: center;
height: 130px;
position: relative;
margin-bottom: 15px;
.avatar-box {
width: 130px;
height: 130px;
// box-sizing: border-box;
// display: flex;
// align-items: center;
img {
width: 88px;
height: 88px;
margin-top: 21px;
}
&.left {
margin-left: 7px;
}
&.right {
display: flex;
justify-content: flex-end;
margin-right: 6px;
}
}
.compare-box {
width: 74px;
height: 74px;
border-radius: 74px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: absolute;
left: 50%;
transform: translateX(-50%);
cursor: pointer;
.value {
font-size: 24px;
font-family: UniDreamLED;
color: #ffffff;
line-height: 28px;
}
.label {
font-size: 16px;
font-family: MicrosoftYaHei;
color: #c7ebff;
line-height: 21px;
letter-spacing: 1px;
}
}
}
.detail {
width: 404px;
height: 379px;
padding: 16px;
.image {
height: 150px;
display: flex;
justify-content: space-between;
.left,
.right {
position: relative;
width: 198px;
height: 150px;
img {
width: 198px;
height: 150px;
}
.tip {
position: absolute;
bottom: 0;
width: 198px;
height: 27px;
background: #0c1120;
opacity: 0.8;
font-size: 14px;
font-family: MicrosoftYaHeiUI;
color: #aee9ff;
line-height: 27px;
text-align: center;
}
}
}
.ds {
.row {
margin-top: 16px;
display: flex;
.title {
white-space: nowrap;
width: 70px;
font-size: 14px;
font-family: MicrosoftYaHeiUI-Bold, MicrosoftYaHeiUI;
font-weight: bold;
color: #ffffff;
line-height: 18px;
}
.props {
// position: absolute;
margin-left: 30px;
font-size: 16px;
font-family: MicrosoftYaHeiUI;
color: #aee9ff;
line-height: 20px;
}
.border {
width: 70px;
height: 23px;
border-radius: 8px;
border: 1px solid #ff4a4a;
font-size: 14px;
font-family: MicrosoftYaHeiUI;
color: #ff4a4a;
line-height: 23px;
text-align: center;
}
}
}
}
.down {
width: 436px;
height: 20px;
box-shadow: inset 0px 0px 12px 0px #019aff;
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 8px;
.icon {
}
}
}
}
}
.xiangsi {
background-image: url("../../assets/images/lan.png");
background-size: 100% 100%;
}
.cheng {
background-image: url("../../assets/images/cheng.png");
background-size: 100% 100%;
}
</style>
\ No newline at end of file
......@@ -68,8 +68,7 @@
@click="getActive(10,!videoStatus ? 'start' : 'end')"
>
<!-- <div class="num">2/3</div> -->
<div v-if="videoStatus == 0" class="name">开始录像</div>
<div v-if="videoStatus == 2" class="name">结束录像</div>
<div v-if="videoStatus == 0" class="name">停止录像</div>
<div v-if="videoStatus == 1" class="name">录像中</div>
</div>
</div>
......@@ -247,7 +246,7 @@ export default {
});
}
}
console.log(this.aiList, "save");
console.log("save", this.aiList, this.pointList);
},
getPoint() {
let blob = this.$parent.screenShot();
......@@ -421,14 +420,14 @@ export default {
) {
this.pointList[this.pointList.length - 1].actions.push(data);
}
this.videoStatus = 2;
this.videoStatus = 0;
}
},
getDe() {
this.active = 2;
this.aiShow = false;
this.stayShow = false;
console.log(this.aiList, "123");
console.log(this.aiList, "航点动作");
// setTimeout(() => {
if (this.pointInfo && this.pointInfo.aiList) {
......@@ -489,6 +488,16 @@ export default {
});
let time = parseInt(distance / 6);
let aiList = this.aiList
.filter((item) => item.switch)
.map((item) => {
return {
id: item.id,
type: item.type,
isSingle: item.check,
};
});
let waypoints = this.pointList.map((val) => {
return {
altitude: val.alt,
......@@ -500,6 +509,7 @@ export default {
speed: this.speed,
stay: 0,
waypointActions: val.actions,
aiList: aiList,
};
});
let data = {
......@@ -512,6 +522,9 @@ export default {
this.rootNode.$emit("airwayAdd", {
airway: data,
callback: () => {
this.bus.$emit("refreshAirway");
},
});
this.$emit("close");
}, 0);
......
......@@ -350,34 +350,19 @@
@dblclick.native.stop
></PointList>
</div>
<FaceAI v-if="faceAiShow" :uavId="pid" @closeface="faceAiShow = false" />
<CarAI v-if="carAiShow" :uavId="uav.deviceId" :list="carList" @closecar="carAiShow = false" />
<Traffic v-if="trafficShow" :trafficData="trafficData" @close="trafficShow = false" />
<carTraffic
v-if="cartrafficShow"
:trafficData="cartrafficData"
@close="cartrafficShow = false"
/>
</div>
</template>
<script>
import { ViewLibrary } from "../../../../api";
import dayjs from "dayjs";
import FaceAI from "./components/faceai";
import CarAI from "./components/carai";
import Traffic from "./components/traffic";
import carTraffic from "./components/carTraffic";
import LiveNVRPlayer from "./components/livenvr/index.vue";
import QingLiuPlayer from "./components/qingliu";
import SRSPlayer from "./components/srs";
import { saveAs } from "file-saver";
import { to_moveMount } from "../../../../utils/to_moveMount.js";
import { newDate } from "../../../../utils/formatDate";
import Obstacle from "./components/obstacle";
import PointList from "./components/pointList";
import videoModelChange from "./components/videoModelChange";
import fkutils from "./methods/utils";
import videoModelChange from "./components/videoModelChange";;
import { mapState } from "vuex";
import AiList from "./components/aiList";
......@@ -386,10 +371,6 @@ export default {
components: {
QingLiuPlayer,
LiveNVRPlayer,
FaceAI,
CarAI,
Traffic,
carTraffic,
PointList,
Obstacle,
SRSPlayer,
......@@ -411,16 +392,6 @@ export default {
showInfo: false, //清流视频信息展示
infoData: null, //清流信息
raw_msg: 0,
carList: [], //车牌识别结果
aiVisible: false, //打开ai
pid: null,
faceAiShow: false,
carAiShow: false,
trafficShow: false,
cartrafficShow: false,
trafficData: {},
cartrafficData: {},
showPlayer: true, // 显示播放器, 用于刷新播放器
smallFPV: true, // FPV小化显示
isStatus: false,
......@@ -454,10 +425,7 @@ export default {
seven: -15,
},
isInfoShow: false,
openOSD: true, // 是否开启OSD
showFlywayAction: false, //显示航点动作
showContinueFly: false, //显示继续飞行对话框
continueFlyContent: "", //继续飞行对话框内容
};
},
computed: {
......@@ -644,7 +612,6 @@ export default {
window.removeEventListener("resize", this.fullScreenChangeFn);
},
methods: {
...fkutils,
startLinePoint() {
let gps = {};
if (this.uavRealTimeData) {
......
......@@ -1175,7 +1175,11 @@ const actions = {
},
type: 528,
};
if (data.playerFormat.toLocaleLowerCase() == "qingliu") {
let isQingLiu = state.isQingLiu;
if(data.isQingLiu !== undefined){
isQingLiu = data.isQingLiu;
}
if (isQingLiu) {
streamData.data.messageID = 1017;
streamData.data.data.status = data.recordControl;
} else {
......@@ -1241,7 +1245,11 @@ const actions = {
},
type: 528,
};
if (data.isQingLiu) {
let isQingLiu = state.isQingLiu;
if(data.isQingLiu !== undefined){
isQingLiu = data.isQingLiu;
}
if (isQingLiu) {
streamData.data.messageID = 1016;
} else {
streamData.data.messageID = 1007;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论