航线管理页面UI和操作逻辑实现
parent
15fe7ab26b
commit
30c586d9c0
@ -0,0 +1,13 @@
|
|||||||
|
import {Airline, AirlinePoint} from "@/types/entityoptions.ts";
|
||||||
|
|
||||||
|
export function newAirlinePt() {
|
||||||
|
let pt: AirlinePoint = {alt: undefined, ch1: 0, ch2: 0, lat: undefined, lon: undefined, nPt: undefined, speed: 0}
|
||||||
|
return pt
|
||||||
|
}
|
||||||
|
|
||||||
|
export function newAirline() {
|
||||||
|
let flyLine: Airline = {
|
||||||
|
PtNum: undefined, code: undefined, isClose: false, name: "", points: [], totalDistance: undefined
|
||||||
|
}
|
||||||
|
return flyLine
|
||||||
|
}
|
@ -1,27 +0,0 @@
|
|||||||
import axios from "axios";
|
|
||||||
|
|
||||||
function login(username, password)
|
|
||||||
{
|
|
||||||
return axios({
|
|
||||||
method: "POST",
|
|
||||||
url: "/onlinetest/htfp/cac/logIn",
|
|
||||||
headers: {"Content-Type": "application/json"},
|
|
||||||
data: {
|
|
||||||
username: username,
|
|
||||||
password: password,
|
|
||||||
forceLogOutOtherDeviceAccount: false
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function requestAirline(uavID){
|
|
||||||
return axios({
|
|
||||||
method: "POST",
|
|
||||||
url: "/onlinetest/htfp/cac/queryUavBundledRouteList",
|
|
||||||
headers: [{"Content-Type": "application/json"},{"X-Authorization-With": sessionStorage.getItem("token")}],
|
|
||||||
data: {
|
|
||||||
uavId: uavID,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
export {login, requestAirline}
|
|
@ -0,0 +1,38 @@
|
|||||||
|
import {Airline, getUnicode} from "@/types/entityoptions.ts";
|
||||||
|
|
||||||
|
// let route: AirlinePoint = {alt: 0, ch1: 0, ch2: 0, lat: 0, lon: 0, nPt: 0, speed: 0}
|
||||||
|
const route: Airline = {
|
||||||
|
PtNum: 5, code: 1, isClose: false, name: "测试航线1", totalDistance: 12323,
|
||||||
|
unicode:getUnicode(),
|
||||||
|
points: [
|
||||||
|
{ lon: 120.23234234, lat: 30.232323,alt: 550, ch1: 0, ch2: 3, nPt: 1, speed: 0},
|
||||||
|
{ lon: 120.34233234, lat: 30.232312,alt: 550, ch1: 0, ch2: 3, nPt: 2, speed: 0},
|
||||||
|
{ lon: 120.23234324, lat: 30.21223,alt: 550, ch1: 0, ch2: 3, nPt: 3, speed: 0},
|
||||||
|
{ lon: 120.23289964, lat: 30.256323,alt: 550, ch1: 0, ch2: 3, nPt: 4, speed: 0},
|
||||||
|
{ lon: 120.53564234, lat: 30.132323,alt: 550, ch1: 0, ch2: 1, nPt: 5, speed: 0},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
const route2: Airline = {
|
||||||
|
PtNum: 4, code: 2, isClose: true, name: "测试航线2", totalDistance: 2341234,
|
||||||
|
unicode:getUnicode(),
|
||||||
|
points: [
|
||||||
|
{ lon: 120.23234234, lat: 30.232323,alt: 550, ch1: 0, ch2: 3, nPt: 0, speed: 0},
|
||||||
|
{ lon: 120.34233234, lat: 30.232312,alt: 550, ch1: 0, ch2: 3, nPt: 1, speed: 0},
|
||||||
|
{ lon: 120.23234324, lat: 30.21223,alt: 550, ch1: 0, ch2: 3, nPt: 2, speed: 0},
|
||||||
|
{ lon: 120.53564234, lat: 30.132323,alt: 550, ch1: 2, ch2: 1, nPt: 4, speed: 0},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
const route3: Airline = {
|
||||||
|
PtNum: 7, code: 3, isClose: false, name: "测试航线3", totalDistance: 3234134,
|
||||||
|
unicode:getUnicode(),
|
||||||
|
points: [
|
||||||
|
{ lon: 123.23234234, lat: 30.232323,alt: 550, ch1: 0, ch2: 3, nPt: 0, speed: 0},
|
||||||
|
{ lon: 123.34233234, lat: 30.232312,alt: 550, ch1: 0, ch2: 3, nPt: 1, speed: 0},
|
||||||
|
{ lon: 123.23234324, lat: 30.21223,alt: 550, ch1: 0, ch2: 3, nPt: 2, speed: 0},
|
||||||
|
{ lon: 123.23289964, lat: 30.256323,alt: 550, ch1: 0, ch2: 3, nPt: 3, speed: 0},
|
||||||
|
{ lon: 123.53564234, lat: 30.132323,alt: 550, ch1: 0, ch2: 1, nPt: 4, speed: 0},
|
||||||
|
{ lon: 123.53564234, lat: 30.132323,alt: 550, ch1: 0, ch2: 1, nPt: 4, speed: 0},
|
||||||
|
{ lon: 123.53564234, lat: 30.132323,alt: 550, ch1: 0, ch2: 1, nPt: 4, speed: 0},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
export {route,route2,route3}
|
@ -1,54 +0,0 @@
|
|||||||
import { defineAsyncComponent, render, createVNode } from "vue";
|
|
||||||
export class routeDialog {
|
|
||||||
constructor() {
|
|
||||||
this.component = defineAsyncComponent(
|
|
||||||
() => import("@/components/RouteOptions.vue"));
|
|
||||||
this.vnode = null;
|
|
||||||
this.node = null;
|
|
||||||
this.props = {
|
|
||||||
width: "40%",
|
|
||||||
height: "auto",
|
|
||||||
};
|
|
||||||
}
|
|
||||||
installRouteDialog() {
|
|
||||||
if (!this.vnode) {
|
|
||||||
const dialog = createVNode(this.component, this.props);
|
|
||||||
const container = document.createElement('div');
|
|
||||||
render(dialog, container);
|
|
||||||
this.vnode = dialog;
|
|
||||||
this.node = container.childNodes[0];
|
|
||||||
document.body.appendChild(this.node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @returns {Promise<string>}
|
|
||||||
* @param points 经纬度坐标点数组
|
|
||||||
*/
|
|
||||||
show(points) {
|
|
||||||
// 发送信号,显示窗口
|
|
||||||
const event = new CustomEvent('route-dialog-show', { detail:
|
|
||||||
{ show: true, pts: points }
|
|
||||||
});
|
|
||||||
document.dispatchEvent(event);
|
|
||||||
return new Promise((resolve,reject) => {
|
|
||||||
document.addEventListener('route-dialog-confirm', event => {
|
|
||||||
if(event.detail==='cancel'){
|
|
||||||
reject('cancel')
|
|
||||||
}else{
|
|
||||||
resolve(event.detail);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const aDialog = new routeDialog();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 展示一个阻塞式对话框
|
|
||||||
* @returns {Promise<string>}
|
|
||||||
* @param point 经纬度坐标点数组
|
|
||||||
*/
|
|
||||||
export async function showRouteDialog(point) {
|
|
||||||
return aDialog.show(point);
|
|
||||||
}
|
|
Loading…
Reference in New Issue