航线管理页面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