guoshilong
2023-11-13 54849757852f6ab40eb17afbd03d1d839b60a38d
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,12 +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
}
@@ -94,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
}
@@ -134,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',
    }
@@ -152,3 +199,17 @@
  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
}