From aec00ecc093be803860c8675cbe1c4c776a7cb4e Mon Sep 17 00:00:00 2001
From: GuLiMmo <2820890765@qq.com>
Date: Tue, 19 Mar 2024 17:49:21 +0800
Subject: [PATCH] update: 新建航线、事件编辑、kmz文件问题修改

---
 src/api/wayline.ts |  102 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 89 insertions(+), 13 deletions(-)

diff --git a/src/api/wayline.ts b/src/api/wayline.ts
index cb685db..7d92683 100644
--- a/src/api/wayline.ts
+++ b/src/api/wayline.ts
@@ -3,12 +3,12 @@
 import { TaskType, TaskStatus, OutOfControlAction } from '/@/types/task'
 import { WaylineType } from '/@/types/wayline'
 
-const HTTP_PREFIX = '/api/drone'
+const HTTP_PREFIX = '/wayline/api/v1'
 
 // Get Wayline Files
-export const getWaylineFiles = async function (params:any): Promise<IWorkspaceResponse<any>> {
-  const url = `${HTTP_PREFIX}/waylineFile/getList`
-  const result = await request.get(url, { params })
+export const getWaylineFiles = async function (wid: string, body: {}): Promise<IWorkspaceResponse<any>> {
+  const url = `${HTTP_PREFIX}/workspaces/${wid}/waylines?order_by=${body.order_by}&page=${body.page}&page_size=${body.page_size}`
+  const result = await request.get(url)
   return result.data
 }
 
@@ -27,6 +27,12 @@
   } else {
     return result.data
   }
+}
+// get Wayline File
+export const getWayLineFile = async function (workspaceId: string, waylineId: string) {
+  const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/waylines/${waylineId}/urlData`
+  const result = await request.get(url)
+  return result.data
 }
 
 // Delete Wayline File
@@ -59,10 +65,39 @@
   finishAction: number
   breakContinue: number
 }
+export interface CreatePlan {
+  name: string,
+  file_id: string,
+  dock_sn: string,
+  task_type: TaskType, // 任务类型
+  wayline_type: WaylineType, // 航线类型
+  task_days?: number[] // 执行任务的日期(秒)
+  task_periods?: number[][] // 执行任务的时间点(秒)
+  rth_altitude: number // 相对机场返航高度 20 - 500
+  out_of_control_action: OutOfControlAction // 失控动作
 
+  // 重复频率类型
+  rep_fre_type?:number
+  // 重复频率值
+  rep_fre_val?:number
+  // 重复规则值
+  rep_rule_val?:[]
+  rep_rule_type?:number
+
+  min_battery_capacity?:number
+  // 执行开始时间
+  execute_start_time_arr:number[][]
+}
 // 新增计划
-export const createPlan = async function (plan:any): Promise<IWorkspaceResponse<any>> {
-  const url = `${HTTP_PREFIX}/waylineJob/add`
+export const createPlan = async function (workspaceId: string, plan: CreatePlan): Promise<IWorkspaceResponse<any>> {
+  const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/flight-tasks`
+  const result = await request.post(url, plan)
+  return result.data
+}
+
+// 新增计划,重复定时和连续执行走这个逻辑
+export const createPlanCondition = async function (workspaceId: string, plan: CreatePlan): Promise<IWorkspaceResponse<any>> {
+  const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/flight-tasks-condition`
   const result = await request.post(url, plan)
   return result.data
 }
@@ -92,10 +127,27 @@
   uploaded_count: number // 已上传媒体数量
 }
 
+export interface TaskQueryParam{
+  dockSn?:string
+  taskType?:any
+  status?:any
+  name?:string
+  startTime?:string
+  endTime?:string
+  parentId?:string
+}
+
 // 获取计划列表(分页)
-export const getWaylineJobs = async function (workspaceId: string, page: IPage): Promise<IListWorkspaceResponse<Task>> {
-  const url = `${HTTP_PREFIX}/waylineJob/getPage`
-  const result = await request.get(url, { params: { workspaceId } })
+export const getWaylineJobs = async function (workspaceId: string, page: IPage, params:TaskQueryParam): Promise<IListWorkspaceResponse<Task>> {
+  const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/jobs?page=${page.page}&page_size=${page.page_size}`
+  const result = await request.get(url, { params })
+  return result.data
+}
+
+// 获取子数据
+export const getWaylineChildrenJobs = async function (workspaceId: string, params:TaskQueryParam): Promise<IListWorkspaceResponse<Task>> {
+  const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/getChildrenJobs`
+  const result = await request.get(url, { params })
   return result.data
 }
 
@@ -132,11 +184,8 @@
 
 // Upload Wayline file
 export const importKmzFile = async function (workspaceId: string, file: {}): Promise<IWorkspaceResponse<any>> {
-  const url = `${HTTP_PREFIX}/waylineFile/upload`
+  const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/waylines/file/upload`
   const result = await request.post(url, file, {
-    params: {
-      projectId: workspaceId
-    },
     headers: {
       'Content-Type': 'multipart/form-data',
     }
@@ -150,3 +199,30 @@
   const result = await request.post(url)
   return result.data
 }
+
+// 历史轨迹记录
+export const getHistoryTrack = async function (workspaceId: string, page: number, page_size :number): Promise<IWorkspaceResponse<any>> {
+  const url = `/log/droneFlightLog/page?page=${page}&page_sie=${page_size}&workspaceId=${workspaceId}`
+  const result = await request.get(url)
+  return result.data
+}
+
+// 历史轨迹详情
+export const getHistoryDetail = async function (id: string): Promise<IWorkspaceResponse<any>> {
+  const url = `/log/droneFlightLog/infoListByFid?flightId=${id}`
+  const result = await request.get(url)
+  return result.data
+}
+
+export interface Point{
+  lon:number,
+  lat:number,
+  height?:number,
+  distance?:number
+}
+
+export const flyByArea = async function (sn:string, dockPoint:Point, jsonPath:any, radius:number, deviceSn:string, payloadIndex:string): Promise<IWorkspaceResponse<any>> {
+  const url = `${HTTP_PREFIX}/workspaces/${sn}/jobs/${deviceSn}/flyByArea`
+  const result = await request.post(url, { dockPoint: dockPoint, jsonPath: jsonPath, radius: radius, payloadIndex: payloadIndex })
+  return result.data
+}

--
Gitblit v1.9.3