You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

141 lines
3.8 KiB

import { commonColor } from '/@/utils/color'
// 任务类型
export enum TaskType {
Immediate = 0, // 立即执行
Timed = 1, // 单次定时任务
}
export const TaskTypeMap = {
[TaskType.Immediate]: 'Immediate',
[TaskType.Timed]: 'Timed',
}
export const TaskTypeOptions = [
{ value: TaskType.Immediate, label: TaskTypeMap[TaskType.Immediate] },
{ value: TaskType.Timed, label: TaskTypeMap[TaskType.Timed] },
]
// 失控动作
export enum OutOfControlAction {
ReturnToHome = 0,
Hover = 1,
Land = 2,
}
export const OutOfControlActionMap = {
[OutOfControlAction.ReturnToHome]: 'Return to Home',
[OutOfControlAction.Hover]: 'Hover',
[OutOfControlAction.Land]: 'Land',
}
export const OutOfControlActionOptions = [
{ value: OutOfControlAction.ReturnToHome, label: OutOfControlActionMap[OutOfControlAction.ReturnToHome] },
{ value: OutOfControlAction.Hover, label: OutOfControlActionMap[OutOfControlAction.Hover] },
{ value: OutOfControlAction.Land, label: OutOfControlActionMap[OutOfControlAction.Land] },
]
// 任务状态
export enum TaskStatus {
Wait = 1, // 待执行
Carrying = 2, // 执行中
Success = 3, // 完成
CanCel = 4, // 取消
Fail = 5, // 失败
Paused = 6, // 暂停
}
export const TaskStatusMap = {
[TaskStatus.Wait]: 'To be performed',
[TaskStatus.Carrying]: 'In progress',
[TaskStatus.Success]: 'Task completed',
[TaskStatus.CanCel]: 'Task canceled',
[TaskStatus.Fail]: 'Task failed',
[TaskStatus.Paused]: 'Paused',
}
export const TaskStatusColor = {
[TaskStatus.Wait]: commonColor.BLUE,
[TaskStatus.Carrying]: commonColor.BLUE,
[TaskStatus.Success]: commonColor.NORMAL,
[TaskStatus.CanCel]: commonColor.FAIL,
[TaskStatus.Fail]: commonColor.FAIL,
[TaskStatus.Paused]: commonColor.BLUE,
}
// 任务执行 ws 消息状态
export enum TaskProgressStatus {
Sent = 'sent', // 已下发
inProgress = 'in_progress', // 执行中
Paused = 'paused', // 暂停
Rejected = 'rejected', // 拒绝
Canceled = 'canceled', // 取消或终止
Timeout = 'timeout', // 超时
Failed = 'failed', // 失败
OK = 'ok', // 上传成功
}
// 任务进度消息
export interface TaskProgressInfo {
bid: string,
output:{
ext: {
current_waypoint_index: number,
media_count: number // 媒体文件
},
progress:{
current_step: number,
percent: number
},
status: TaskProgressStatus
},
result: number,
}
// ws status => log status
export const TaskProgressWsStatusMap = {
[TaskProgressStatus.Sent]: TaskStatus.Carrying,
[TaskProgressStatus.inProgress]: TaskStatus.Carrying,
[TaskProgressStatus.Rejected]: TaskStatus.Fail,
[TaskProgressStatus.OK]: TaskStatus.Success,
[TaskProgressStatus.Failed]: TaskStatus.Fail,
[TaskProgressStatus.Canceled]: TaskStatus.CanCel,
[TaskProgressStatus.Timeout]: TaskStatus.Fail,
[TaskProgressStatus.Paused]: TaskStatus.Paused,
}
// 根据媒体文件上传进度信息,前端自己判断出的状态
export enum MediaStatus { // 媒体上传进度
ToUpload = 1, // 待上传
Uploading = 2, // 上传中
Empty = 3, // 无媒体文件
Success = 4, // 上传成功
}
export const MediaStatusMap = {
[MediaStatus.ToUpload]: 'Waiting to upload',
[MediaStatus.Uploading]: 'Uploading…',
[MediaStatus.Success]: 'Uploaded',
[MediaStatus.Empty]: 'No media files',
}
export const MediaStatusColorMap = {
[MediaStatus.ToUpload]: commonColor.BLUE,
[MediaStatus.Uploading]: commonColor.BLUE,
[MediaStatus.Success]: commonColor.NORMAL,
[MediaStatus.Empty]: commonColor.WARN,
}
// 媒体上传进度消息
export interface MediaStatusProgressInfo {
job_id: string,
media_count: number
uploaded_count: number,
}
// 媒体上传优先级消息
export interface TaskMediaHighestPriorityProgressInfo {
pre_job_id: string,
job_id: string,
}