提交 a361e2e6 作者: 翁进城

fix:

1. 修正无人机视频无法关闭
2. 机库任务创建时窗口被遮挡
3. 新建航线相关逻辑修正
refactor:
1. 事件名称规范重写
上级 da8afec3
......@@ -9,13 +9,13 @@
:scene="scene ? 0 : 1"
:useSTLAirway="useSTLAirway"
@uavChange="dispatchEvent('uavChange', $event)"
@uavStartTask="dispatchEvent('uavStartTask', $event)"
@uavAddTask="dispatchEvent('uavAddTask', $event)"
@uavTaskStart="dispatchEvent('uavTaskStart', $event)"
@uavTaskAdd="dispatchEvent('uavTaskAdd', $event)"
@hangarChange="dispatchEvent('hangarChange', $event)"
@hangarChangeTaskTab="dispatchEvent('hangarChangeTaskTab', $event)"
@hangarStartTask="dispatchEvent('hangarStartTask', $event)"
@hangarAddTask="dispatchEvent('hangarAddTask', $event)"
@hangarDelTask="dispatchEvent('hangarDelTask', $event)"
@hangarTaskTabChange="dispatchEvent('hangarTaskTabChange', $event)"
@hangarTaskStart="dispatchEvent('hangarTaskStart', $event)"
@hangarTaskAdd="dispatchEvent('hangarTaskAdd', $event)"
@hangarTaskDel="dispatchEvent('hangarTaskDel', $event)"
@airwayPageChange="dispatchEvent('airwayPageChange', $event)"
></MMCFlightControlCenter>
</template>
......@@ -127,8 +127,8 @@ export default {
'{"filename":"肇庆航线20240318","line":{"baseSpeed":3},"content":[{"uuid":"1nmI-Fo18IagbcVJsia7Q","latitude":23.178153411812204,"longitude":112.57807281336807,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"9pTbBPlF8iIwbUNqusyHK","latitude":23.17783116525969,"longitude":112.57797543441967,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"s91IhN22wuaeyG-UQs0XR","latitude":23.17786413506686,"longitude":112.57824336604547,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"xS_JIl3wxQrhMPdpcjcSn","latitude":23.17820934975604,"longitude":112.5781357731637,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]}],"baseSpeed":3,"gimbalYaw":0,"gimbalPitch":0,"alt":100}',
},
],
hangarAddTaskCB: null, //机库创建任务回调
uavAddTaskCB: null, //机库创建任务回调
hangarTaskAddCB: null, //机库创建任务回调
uavTaskAddCB: null, //机库创建任务回调
airwayPageChangeCB: null, //航线翻页时回调
};
},
......@@ -243,13 +243,13 @@ export default {
dispatchEvent(event, data) {
// 回调函数不能通过postMessage传递
switch (event) {
case "hangarAddTask":
this.hangarAddTaskCB = data.callback;
case "hangarTaskAdd":
this.hangarTaskAddCB = data.callback;
delete data.callback;
break;
case "uavAddTask":
this.uavAddTaskCB = data.callback;
case "uavTaskAdd":
this.uavTaskAddCB = data.callback;
delete data.callback;
break;
......
......@@ -43,7 +43,7 @@ export default {
components: {
LineList,
},
inject: ["rootNode", 'bus'],
inject: ["rootNode", "bus"],
data() {
return {
// 选择的任务id
......@@ -60,6 +60,7 @@ export default {
};
},
computed: {
...mapState("MMCFlightControlCenter", ["useSTLAirway"]),
...mapState("MMCFlightControlCenter/hangar", [
"hangarRealTimeData",
"hangar",
......@@ -98,16 +99,16 @@ export default {
},
},
created() {
this.rootNode.$emit("hangarChangeTaskTab", {
this.rootNode.$emit("hangarTaskTabChange", {
type: 1,
});
this.updateTaskList();
//todo 通过iframe嵌入时, 不知道为什么无法监听this.$store.state.MMCFlightControlCenter.hangar.taskList的变化, 会导致任务列表不更新, 通过事件方式强制更新
this.bus.$on('updateHangarTaskList', this.updateTaskList);
this.bus.$on("updateHangarTaskList", this.updateTaskList);
},
beforeDestroy() {
this.clearAirwayEntities();
this.bus.$off('updateHangarTaskList', this.updateTaskList);
this.bus.$off("updateHangarTaskList", this.updateTaskList);
},
methods: {
...mapActions("MMCFlightControlCenter", [
......@@ -118,20 +119,22 @@ export default {
* 更新任务列表
*/
updateTaskList() {
console.log('updateTaskList');
console.log("updateTaskList");
this.taskListAll = [
{
id: -1,
name: "选择航线自动生成任务",
},
...this.$store.state.MMCFlightControlCenter.hangar.taskList.normal || [],
...(this.$store.state.MMCFlightControlCenter.hangar.taskList.normal ||
[]),
];
},
/**
* 更改任务事件
*/
async onChangeTask() {
if (this.selectedTask?.airwayId) {
if (this.useSTLAirway) {
if (!this.selectedTask?.airwayId) {
let res = await AirLine.routeDetail({
id: this.selectedTask?.airwayId,
});
......@@ -144,6 +147,12 @@ export default {
id: -1,
};
}
} else {
this.selectedAirway = this.selectedTask?.airway || {
name: "",
id: -1,
};
}
},
/**
* 更改航线事件
......@@ -151,7 +160,7 @@ export default {
onChangeLine(data) {
this.selectedAirway = data;
if (data) {
this.rootNode.$emit("hangarAddTask", {
this.rootNode.$emit("hangarTaskAdd", {
type: 1, //1: 日常任务 2.定时任务 3.周期任务
airway: data, //航线数据
callback: ({ id }) => {
......@@ -179,7 +188,7 @@ export default {
});
// 当前机库状态是否空闲
if ([0, 8].includes(this.hangarRealTimeData.processStatus)) {
this.$store.commit("MMCFlightControlCenter/hangar/state", {
this.$store.commit("MMCFlightControlCenter/hangar/setState", {
key: "airlineData",
value: this.selectedAirway,
});
......@@ -192,7 +201,7 @@ export default {
}
},
});
this.rootNode.$emit("hangarStartTask", {
this.rootNode.$emit("hangarTaskStart", {
type: 1, //1: 日常任务 2:定时任务 3:周期任务
hangar: this.hangar,
task: this.selectedTask,
......
......@@ -17,6 +17,7 @@
end-placeholder="结束日期"
size="mini"
popper-class="mmc"
value-format="yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item label="执行时间" prop="time" required>
......@@ -29,6 +30,7 @@
placeholder="选择时间范围"
size="mini"
popper-class="mmc"
value-format="HH:mm:ss"
></el-time-picker>
</el-form-item>
<el-form-item label="任务名称" required>
......@@ -55,7 +57,7 @@ export default {
return {
form: {
date: [],
time: [],
time: ['00:00:00', '00:00:00'],
normalTaskId: "",
},
};
......@@ -121,7 +123,7 @@ export default {
onConfirm() {
this.$refs["form"].validate((valid) => {
if (valid) {
this.rootNode.$emit("hangarAddTask", {
this.rootNode.$emit("hangarTaskAdd", {
type: 3, //1: 日常任务 2.定时任务 3.周期任务
taskList: [this.form], //任务数据
}); // 根节点发送机库任务新增事件
......
......@@ -52,7 +52,7 @@ import { AirLine } from "../../../../../../../../../../api";
import TaskAdd from "./components/taskAdd";
export default {
name: "hangarTimedTask",
name: "hangarPeriodTask",
components: {
TaskAdd,
},
......@@ -72,7 +72,7 @@ export default {
]),
},
created() {
this.rootNode.$emit("hangarChangeTaskTab", {
this.rootNode.$emit("hangarTaskTabChange", {
type: 3,
});
this.updateTaskList();
......@@ -137,7 +137,7 @@ export default {
customClass: "uav_controlPane",
showClose: false,
});
this.rootNode.$emit("hangarDelTask", {
this.rootNode.$emit("hangarTaskDel", {
task: item,
type: 3, // 1: 日常任务 2: 定时任务 3:周期任务
});
......
......@@ -25,7 +25,7 @@
popper-class="mmc"
@change="onChangeTask(item)"
>
<el-option :label="item.name" :value="item.id" v-for="(item, index) in taskList.normal"></el-option>
<el-option :label="item1.name" :value="item1.id" v-for="(item1, index) in taskList.normal"></el-option>
</el-select>
<el-input class="input" size="mini" :value="item.airway ? item.airway.name : ''" disabled />
<el-tooltip content="删除" placement="top">
......@@ -124,6 +124,10 @@ export default {
async onChangeTask(item) {
let normalTask = this.selectedTask(item.normalTaskId);
item.airwayId = normalTask.airwayId;
let find = this.taskList.normal.find(task => task.airwayId === item.airwayId);
if(find){
item.airway = find.airway;
}
this.getAirway(item);
},
/**
......@@ -145,7 +149,7 @@ export default {
* 确认事件
*/
onConfirm() {
this.rootNode.$emit("hangarAddTask", {
this.rootNode.$emit("hangarTaskAdd", {
type: 2, //1: 日常任务 2.定时任务 3.周期任务
taskList: this.list, //任务数据
}); // 根节点发送机库任务新增事件
......
......@@ -72,7 +72,7 @@ export default {
]),
},
created() {
this.rootNode.$emit("hangarChangeTaskTab", {
this.rootNode.$emit("hangarTaskTabChange", {
type: 2,
});
this.updateTaskList();
......@@ -137,7 +137,7 @@ export default {
customClass: "uav_controlPane",
showClose: false,
});
this.rootNode.$emit("hangarDelTask", {
this.rootNode.$emit("hangarTaskDel", {
task: item,
type: 2, // 1: 日常任务 2: 定时任务 3:周期任务
});
......
......@@ -169,7 +169,7 @@ export default {
}
.control-left {
position: absolute;
z-index: 1;
z-index: 2;
left: 470px;
top: 13%;
transition: 0.3s;
......
......@@ -131,7 +131,7 @@ export default {
*/
onChangeLine(data) {
this.selectedAirway = data;
this.rootNode.$emit("uavAddTask", {
this.rootNode.$emit("uavTaskAdd", {
airway: data,
callback: ({ id }) => {
// 返回新增任务后的任务id
......@@ -174,7 +174,7 @@ export default {
}
},
});
this.rootNode.$emit("uavStartTask", {
this.rootNode.$emit("uavTaskStart", {
uav: this.uav,
selectedTask: this.selectedTask,
selectedAirway: this.selectedAirway,
......
......@@ -725,10 +725,6 @@ export default {
window.addEventListener("resize", this.fullScreenChangeFn);
},
beforeDestroy() {
clearInterval(this.timer);
this.timer = null;
this.ws && this.ws.close();
this.ws = null;
window.removeEventListener("resize", this.fullScreenChangeFn);
},
methods: {
......
......@@ -97,7 +97,7 @@ import { Control_API } from "../../../../../../../../api";
export default {
name: "Item",
inject: ['rootNode'],
inject: ['rootNode', 'bus'],
data() {
return {};
},
......@@ -119,6 +119,7 @@ export default {
]),
...mapState("MMCFlightControlCenter", ["userInfo"]),
},
methods: {
/**
* 接管无人机
......
......@@ -28,6 +28,7 @@ export default {
Player,
ControlPanel,
},
inject: ['bus'],
data() {
return {
pointListFlag: false,
......@@ -324,7 +325,17 @@ export default {
}
},
onPlayerClose(){
this.$store.dispatch("MMCFlightControlCenter/uav/showPlayer", this.uav);
this.$store.commit('MMCFlightControlCenter/uav/setState', {
key: 'uav',
value: {
...this.uav,
showPlayer: false
}
})
this.$store.commit('MMCFlightControlCenter/uav/setState', {
key: 'showPlayer',
value: false
})
}
},
};
......
......@@ -19,7 +19,7 @@ import UavApplications from "./components/uavApplications";
import Hangar from "./components/hangar";
import Vue from "vue";
import SymbolIcon from "../symbol-icon";
import MapSearch from './components/mapSearch';
import MapSearch from "./components/mapSearch";
export default {
name: "MMCFlightControlCenter",
......@@ -28,7 +28,7 @@ export default {
MapImageSwitch,
UavApplications,
Hangar,
MapSearch
MapSearch,
},
props: {
devMode: {
......@@ -113,18 +113,18 @@ export default {
// 外部cesium.viewer对象
cesiumViewer: {
type: Object,
default: null
default: null,
},
// 使用标准航线库
useSTLAirway: {
type: Boolean,
default: true
}
default: true,
},
},
data(){
data() {
return {
bus: new Vue()
}
bus: new Vue(),
};
},
provide() {
return {
......@@ -149,18 +149,18 @@ export default {
key: "taskList",
value: newVal,
});
this.bus.$emit('updateHangarTaskList');
this.bus.$emit("updateHangarTaskList");
},
},
useSTLAirway: {
immediate: true,
handler(newVal){
handler(newVal) {
this.$store.commit("MMCFlightControlCenter/setState", {
key: "useSTLAirway",
value: newVal,
});
}
}
},
},
},
beforeCreate() {
Vue.component("SymbolIcon", SymbolIcon);
......@@ -186,11 +186,11 @@ export default {
value: this.userInfo,
});
if(this.cesiumViewer){
if (this.cesiumViewer) {
this.$store.commit("MMCFlightControlCenter/setState", {
key: "cesiumViewer",
value: this.cesiumViewer
})
value: this.cesiumViewer,
});
window.$mmc.viewer = this.cesiumViewer;
}
},
......@@ -228,11 +228,11 @@ export default {
.el-range-input {
background-color: transparent;
color: #fff;
color: #fff !important;
}
.el-range-separator {
color: #fff;
color: #fff !important;
}
.el-dialog__body {
......@@ -375,9 +375,9 @@ export default {
.el-input__inner {
// height: 32px;
background: #02173d !important;
background: #02173d;
border-radius: 2px;
border: 1px solid #315ec7 !important;
border: 1px solid #315ec7;
font-size: 14px;
font-family: MicrosoftYaHei;
color: #ffffff;
......@@ -388,17 +388,17 @@ export default {
}
.el-scrollbar {
background: #02173d !important;
border: 1px solid #315ec7 !important;
background: #02173d;
border: 1px solid #315ec7;
}
.el-textarea {
border: none !important;
border: none;
}
.el-textarea__inner {
background: #02173d !important;
border: 1px solid #315ec7 !important;
background: #02173d;
border: 1px solid #315ec7;
}
.btn-box1027 {
......@@ -434,16 +434,16 @@ export default {
.mmc {
.popper__arrow::after {
border-bottom-color: #161d2d !important;
border-bottom-color: #161d2d;
}
// 所有下拉选择框样式
&.el-select-dropdown {
border: none !important;
border: none;
//item选项的hover样式
.el-select-dropdown__item.hover,
.el-select-dropdown__item:hover {
background: #34466e !important;
background: #34466e;
}
.option.hover,
......@@ -457,36 +457,36 @@ export default {
font-family: MicrosoftYaHei;
font-size: 12px;
color: #00f5ff;
letter-spacing: 0 !important;
font-weight: 400 !important;
letter-spacing: 0;
font-weight: 400;
}
.el-select-dropdown__item {
color: #00aeff !important;
color: #00aeff;
.selected {
background-color: #606266 !important;
background-color: #606266;
}
}
.option {
font-family: MicrosoftYaHei;
font-size: 12px !important;
color: rgba(146, 217, 255, 0.7) !important;
font-size: 12px;
color: rgba(146, 217, 255, 0.7);
letter-spacing: 0;
font-weight: 400 !important;
font-weight: 400;
}
.el-scrollbar {
overflow: hidden;
position: relative;
background: #0d224f !important;
background: #0d224f;
border: 1px solid #178890;
}
&.is-multiple {
.el-select-dropdown__item.selected {
background-color: #34466e !important;
background-color: #34466e;
}
}
......@@ -497,16 +497,16 @@ export default {
}
&.el-cascader__dropdown {
border: 1px solid #315ec7 !important;
border: 1px solid #315ec7;
.el-cascader-menu__list {
background: rgba(9, 32, 87, 1) !important;
background: rgba(9, 32, 87, 1);
max-height: 300px;
max-width: 327px;
}
.el-cascader-node {
background: rgba(9, 32, 87, 1) !important;
background: rgba(9, 32, 87, 1);
color: #00aeff;
}
}
......@@ -524,20 +524,23 @@ export default {
}
.el-popper {
background: rgba(9, 32, 87, 1) !important;
background: rgba(9, 32, 87, 1);
border: 1px solid #315ec7;
}
// 日期选择器组件
&.el-time-range-picker,
&.el-date-range-picker,
&.el-date-picker {
border: none !important;
border: none;
.el-picker-panel__body-wrapper {
.el-picker-panel__body-wrapper,
.el-time-range-picker__content {
background: #0d224f;
border: 1px solid #00aeff;
color: #fff;
.el-month-table td.current:not(.disabled) .cell {
color: #00aeff !important;
color: #00aeff;
}
.el-input__inner {
......@@ -571,23 +574,24 @@ export default {
}
}
.el-picker-panel__footer {
background-color: #0d224f !important;
.el-picker-panel__footer,
.el-time-panel__footer {
background-color: #0d224f;
}
.popper__arrow {
border-bottom-color: #00aeff !important;
border-top-color: #00aeff !important;
border-bottom-color: #00aeff;
border-top-color: #00aeff;
}
.popper__arrow::after {
border-top-color: #0d224f !important;
border-bottom-color: #0d224f !important;
border-top-color: #0d224f;
border-bottom-color: #0d224f;
}
.el-button.el-button--mini.is-plain,
.el-button.is-disabled.is-plain {
background-color: transparent !important;
background-color: transparent;
border: none;
color: #00aeff;
}
......@@ -603,6 +607,10 @@ export default {
color: #409eff;
}
}
.el-time-spinner__item:hover:not(.disabled):not(.active) {
background-color: #4472d5;
}
}
}
</style>
\ No newline at end of file
......@@ -7,7 +7,9 @@
<el-form-item label="场景">
<el-switch v-model="scene" active-text="无人机" inactive-text="机库"></el-switch>
</el-form-item>
<el-form-item label="使用标准航线库">
<el-switch v-model="useSTLAirway" active-text="启用" inactive-text="关闭"></el-switch>
</el-form-item>
<el-form-item label="账号">
<el-input v-model="account"></el-input>
</el-form-item>
......@@ -30,12 +32,15 @@
:hangarTaskList="hangarTaskList"
:airwayList="airwayList"
:scene="scene ? 0 : 1"
@uavStartTask="onUAVStartTask"
:useSTLAirway="useSTLAirway"
@uavTaskStart="onUAVTaskStart"
@uavTaskAdd="onUAVTaskAdd"
@hangarChange="onHangarChange"
@hangarChangeTaskTab="onHangarChangeTaskTab"
@hangarStartTask="hangarStartTask"
@hangarAddTask="onHangarAddTask"
@hangarDelTask="onHangarDelTask"
@hangarTaskTabChange="onHangarTaskTabChange"
@hangarTaskStart="onHangarTaskStart"
@hangarTaskAdd="onHangarTaskAdd"
@hangarTaskDel="onHangarTaskDel"
@airwayPageChange="onAirwayPageChange"
></MMCFlightControlCenter>
</div>
</div>
......@@ -48,6 +53,7 @@ export default {
name: "fkzx1",
data() {
return {
useSTLAirway: null,
baseUrl: "https://test.tmj.mmcuav.cn",
devMode: false,
scene: false, // 场景类型 true: 无人机 false: 机库
......@@ -170,6 +176,19 @@ export default {
},
async mounted() {},
methods: {
/**
* 无人机通过航线创建任务
*/
onUavTaskAdd({ airway }) {
console.log("无人机通过航线创建任务", airway);
let id = Date.now();
this.uavTaskList.push({
name: "任务1",
id: id,
airwayId: airway.id,
airway,
});
},
onUAVStartTask(uav, selectedTask, selectedAirway) {
console.log("一键任务事件", uav, selectedTask, selectedAirway);
// alert("一键任务事件");
......@@ -225,15 +244,17 @@ export default {
* @param {Function} params.callback 回调,参数为更新后新增的任务id, 仅日常任务有用
* @param {Array} param.taskList 定时与周期任务创建的任务数组
*/
onHangarAddTask({ type, airway, callback, taskList }) {
console.log("onHangarAddTask", type, airway, taskList);
onHangarTaskAdd({ type, airway, callback, taskList }) {
console.log("onHangarTaskAdd", type, airway, taskList);
let hangarTaskList = JSON.parse(JSON.stringify(this.hangarTaskList));
switch (type) {
case 1: {
let id = Date.now();
this.hangarTaskList.normal.push({
hangarTaskList.normal.push({
name: "任务" + id,
id: id,
airwayId: airway.id,
airway,
});
callback(id);
break;
......@@ -246,11 +267,10 @@ export default {
...item,
id: id + String(i),
status: "未执行",
name: "任务" + (this.hangarTaskList.timed.length + 1),
name: "任务" + (hangarTaskList.timed.length + 1),
};
});
this.hangarTaskList.timed =
this.hangarTaskList.timed.concat(_taskList);
hangarTaskList.timed = hangarTaskList.timed.concat(_taskList);
break;
}
......@@ -261,23 +281,23 @@ export default {
...item,
id: id + String(i),
status: "未执行",
name: "任务" + (this.hangarTaskList.period.length + 1),
time: `${item.date[0]} ${item.time[0]} ${item.date[1]} ${item.time[1]}`
name: "任务" + (hangarTaskList.period.length + 1),
time: `${item.date[0]} ${item.time[0]} ${item.date[1]} ${item.time[1]}`,
};
});
this.hangarTaskList.period =
this.hangarTaskList.period.concat(_taskList);
hangarTaskList.period = hangarTaskList.period.concat(_taskList);
break;
}
}
this.hangarTaskList = hangarTaskList;
},
/**
* 机库任务tab更改事件
* @param {object} param
* @param {number} param.type 1: 日常任务 2: 定时任务 3:周期任务
*/
onHangarChangeTaskTab({ type }) {
console.log("onHangarChangeTaskTab", type);
onHangarTaskTabChange({ type }) {
console.log("onHangarTaskTabChange", type);
},
/**
* 机库开始任务
......@@ -286,8 +306,8 @@ export default {
* @param {object} param.task 任务对象
* @param {object} param.airway 航线信息
*/
hangarStartTask({ type, hangar, task, airway }) {
console.log("hangarStartTask", type, hangar, task, airway);
onHangarTaskStart({ type, hangar, task, airway }) {
console.log("onHangarTaskStart", type, hangar, task, airway);
},
/**
* 删除机库任务
......@@ -295,21 +315,47 @@ export default {
* @parma {number} param.type 1: 日常任务 2: 定时任务 3:周期任务
* @param {object} param.task 任务对象
*/
onHangarDelTask({ type, task }) {
console.log("onHangarDelTask", type, task);
onHangarTaskDel({ type, task }) {
console.log("onHangarTaskDel", type, task);
let hangarTaskList = JSON.parse(JSON.stringify(this.hangarTaskList));
switch (type) {
case 2:
this.hangarTaskList.timed = this.hangarTaskList.timed.filter(
hangarTaskList.timed = hangarTaskList.timed.filter(
(item) => item.id !== task.id
);
break;
case 3:
this.hangarTaskList.period = this.hangarTaskList.period.filter(
hangarTaskList.period = hangarTaskList.period.filter(
(item) => item.id !== task.id
);
break;
}
this.hangarTaskList = hangarTaskList;
},
/**
* 航线分页更改
*/
onAirwayPageChange({ page, pageSize, callback }) {
console.log("航线分页更改", page, pageSize);
callback({
current: page, // 当前页码
records: [
{
id: 1,
name: "模拟航线" + `第${page}页`,
organizationName: "机构名",
status: "可用", //空域状态
isSafe: 1, // 安全状态1: 安全 , 0: 待确定,
labelName: "航线标签",
//航线数据
content:
'{"filename":"盐城基地拍照录像","line":{"baseSpeed":6},"content":[{"uuid":"1uamoBnUN8je_2s5O7LAI","latitude":33.326034986025924,"longitude":120.2855868204341,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[{"id":2,"label":"拍照","key":"photo","checked":true,"value":1,"unit":"张"}]},{"uuid":"0V_BPu2m3u-zsCIVKRR7v","latitude":33.32572118330467,"longitude":120.28452270932941,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[{"id":2,"label":"拍照","key":"photo","checked":true,"value":1,"unit":"张"}]},{"uuid":"vXX0IkeE-z0BjMcQEG3f1","latitude":33.32483291531692,"longitude":120.28544172335158,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[{"id":3,"label":"录像","key":"video","checked":true,"value":0,"unit":"s"}]},{"uuid":"L32qDDlAiMtyKjoaySxHW","latitude":33.32576947678917,"longitude":120.28641994886797,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[{"id":3,"label":"录像","key":"video","checked":true,"value":0,"unit":"s"}]},{"uuid":"FYnNBx-i3bHkbEgt3QCWF","latitude":33.326686239734364,"longitude":120.28572577154279,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[{"id":3,"label":"录像","key":"video","checked":true,"value":0,"unit":"s"}]}],"baseSpeed":6,"gimbalYaw":0,"gimbalPitch":0,"alt":100}',
},
],
size: 10, // 当前页记录数
total: 20, // 总记录灵
});
},
async login() {
let formData = new FormData();
......
......@@ -261,32 +261,32 @@ export default {
case "uavChange":
this.onUavChange(data);
break;
case "uavAddTask":
this.onUavAddTask(data);
case "uavTaskAdd":
this.onUavTaskAdd(data);
break;
case "uavStartTask":
this.onUAVStartTask(data);
case "uavTaskStart":
this.onUAVTaskStart(data);
break;
case "hangarChange":
this.onHangarChange(data);
break;
case "hangarChangeTaskTab":
this.onHangarChangeTaskTab(data);
case "hangarTaskTabChange":
this.onHangarTaskTabChange(data);
break;
case "hangarStartTask":
this.onHangarStartTask(data);
case "hangarTaskStart":
this.onHangarTaskStart(data);
break;
case "hangarAddTask":
this.onHangarAddTask(data);
case "hangarTaskAdd":
this.onHangarTaskAdd(data);
break;
case "hangarDelTask":
this.onHangarDelTask(data);
case "hangarTaskDel":
this.onHangarTaskDel(data);
break;
case "log":
......@@ -341,20 +341,21 @@ export default {
/**
* 无人机通过航线创建任务
*/
onUavAddTask({ airway }) {
onUavTaskAdd({ airway }) {
console.log("无人机通过航线创建任务", airway);
let id = Date.now();
this.uavTaskList.push({
name: "任务1",
id: id,
airwayId: airway.id,
airway
});
this.$nextTick(() => {
this.postIframe({
type: "callback",
event: "uavAddTask",
event: "uavTaskAdd",
data: {
id: Date.now(),
id,
},
});
});
......@@ -362,7 +363,7 @@ export default {
/**
* 无人机开始任务
*/
onUAVStartTask({ uav, selectedTask, selectedAirway }) {
onUAVTaskStart({ uav, selectedTask, selectedAirway }) {
console.log("一键任务事件", uav, selectedTask, selectedAirway);
// alert("一键任务事件");
},
......@@ -416,7 +417,7 @@ export default {
* @param {Object} param.airway 航线数据
* @param {Array} param.taskList 定时与周期任务创建的任务数组
*/
onHangarAddTask({ type, airway, taskList }) {
onHangarTaskAdd({ type, airway, taskList }) {
console.log("机库任务添加事件", type, airway, taskList);
switch (type) {
case 1: {
......@@ -425,12 +426,13 @@ export default {
name: "任务" + id,
id: id,
airwayId: airway.id,
airway
});
this.$nextTick(() => {
// 回调,参数为更新后新增的任务id, 仅日常任务有用
this.postIframe({
type: "callback",
event: "hangarAddTask",
event: "hangarTaskAdd",
data: {
id,
},
......@@ -477,7 +479,7 @@ export default {
* @param {object} param
* @param {number} param.type 1: 日常任务 2: 定时任务 3:周期任务
*/
onHangarChangeTaskTab({ type }) {
onHangarTaskTabChange({ type }) {
console.log("机库任务tab更改事件", type);
},
/**
......@@ -487,7 +489,7 @@ export default {
* @param {object} param.task 任务对象
* @param {object} param.airway 航线信息
*/
onHangarStartTask({ type, hangar, task, airway }) {
onHangarTaskStart({ type, hangar, task, airway }) {
console.log("机库开始任务", type, hangar, task, airway);
},
/**
......@@ -496,7 +498,7 @@ export default {
* @parma {number} param.type 1: 日常任务 2: 定时任务 3:周期任务
* @param {object} param.task 任务对象
*/
onHangarDelTask({ type, task }) {
onHangarTaskDel({ type, task }) {
console.log("删除机库任务", type, task);
switch (type) {
case 2:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论