提交 a361e2e6 作者: 翁进城

fix:

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