Files
orion-visor/orion-visor-ui/src/api/exec/upload-task.ts

192 lines
4.1 KiB
TypeScript
Raw Normal View History

2025-03-20 00:08:23 +08:00
import type { ClearRequest, DataGrid, OrderDirection, Pagination } from '@/types/global';
2025-03-16 00:30:43 +08:00
import type { TableData } from '@arco-design/web-vue';
2024-05-09 00:06:08 +08:00
import axios from 'axios';
import qs from 'query-string';
/**
*
*/
export interface UploadTaskCreateRequest {
remotePath?: string;
description?: string;
2024-05-09 15:43:35 +08:00
hostIdList?: Array<number>;
files?: Array<UploadTaskFileCreateRequest>;
}
/**
*
*/
export interface UploadTaskFileCreateRequest {
fileId?: string;
filePath?: string;
fileSize?: number;
2024-05-09 00:06:08 +08:00
}
/**
*
*/
export interface UploadTaskCreateResponse {
id: number;
token: string;
}
/**
*
*/
2025-03-20 00:08:23 +08:00
export interface UploadTaskQueryRequest extends Pagination, OrderDirection {
2024-05-09 00:06:08 +08:00
id?: number;
userId?: number;
remotePath?: string;
description?: string;
status?: string;
createTimeRange?: string[];
}
/**
*
*/
export interface UploadTaskClearRequest extends UploadTaskQueryRequest, ClearRequest {
2024-05-09 00:06:08 +08:00
}
/**
*
*/
export interface UploadTaskQueryResponse extends TableData {
id: number;
userId: number;
username: string;
remotePath: string;
description: string;
status: string;
extraInfo: string;
2024-05-11 00:16:42 +08:00
fileCount: number;
hostCount: number;
2024-05-09 00:06:08 +08:00
startTime: number;
endTime: number;
createTime: number;
2024-05-10 18:58:48 +08:00
hosts: Array<UploadTaskHost>;
2024-05-09 00:06:08 +08:00
}
/**
2024-05-10 18:58:48 +08:00
*
2024-05-09 00:06:08 +08:00
*/
2024-05-10 18:58:48 +08:00
export interface UploadTaskHost {
id: number;
code: string;
name: string;
address: string;
files: Array<UploadTaskFile>;
}
/**
*
*/
export interface UploadTaskFile {
2024-05-09 00:06:08 +08:00
id: number;
taskId: number;
hostId: number;
fileId: string;
filePath: string;
fileSize: number;
status: string;
errorMessage: string;
2024-05-09 00:06:08 +08:00
startTime: number;
endTime: number;
current: number;
}
2024-05-11 00:16:42 +08:00
/**
*
*/
export interface UploadTaskStatusResponse extends TableData {
id: number;
status: string;
startTime: number;
endTime: number;
files: Array<UploadTaskFile>;
}
2024-05-09 00:06:08 +08:00
/**
*
*/
export function createUploadTask(request: UploadTaskCreateRequest) {
2025-06-25 14:49:36 +08:00
return axios.post<UploadTaskCreateResponse>('/exec/upload-task/create', request);
2024-05-09 00:06:08 +08:00
}
/**
*
*/
2024-05-10 11:23:22 +08:00
export function startUploadTask(id: number) {
2025-06-25 14:49:36 +08:00
return axios.post('/exec/upload-task/start', { id });
2024-05-09 00:06:08 +08:00
}
/**
*
*/
2024-05-10 11:23:22 +08:00
export function cancelUploadTask(id: number, failed: boolean) {
2025-06-25 14:49:36 +08:00
return axios.post('/exec/upload-task/cancel', { id, failed });
2024-05-09 00:06:08 +08:00
}
/**
*
*/
export function getUploadTask(id: number) {
2025-06-25 14:49:36 +08:00
return axios.get<UploadTaskQueryResponse>('/exec/upload-task/get', { params: { id } });
2024-05-09 00:06:08 +08:00
}
/**
*
*/
export function getUploadTaskPage(request: UploadTaskQueryRequest) {
2025-06-25 14:49:36 +08:00
return axios.post<DataGrid<UploadTaskQueryResponse>>('/exec/upload-task/query', request);
2024-05-09 00:06:08 +08:00
}
2024-05-10 13:21:08 +08:00
/**
*
*/
export function getUploadTaskStatus(idList: Array<number>, queryFiles: boolean) {
2025-06-25 14:49:36 +08:00
return axios.get<Array<UploadTaskStatusResponse>>('/exec/upload-task/status', {
2024-05-10 13:21:08 +08:00
params: { idList, queryFiles },
2024-12-03 11:28:58 +08:00
promptBizErrorMessage: false,
promptRequestErrorMessage: false,
2024-05-10 13:21:08 +08:00
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
2025-06-25 14:49:36 +08:00
},
2024-05-10 13:21:08 +08:00
});
}
2024-05-09 00:06:08 +08:00
/**
*
*/
export function deleteUploadTask(id: number) {
2025-06-25 14:49:36 +08:00
return axios.delete('/exec/upload-task/delete', { params: { id } });
2024-05-09 00:06:08 +08:00
}
/**
*
*/
export function batchDeleteUploadTask(idList: Array<number>) {
2025-06-25 14:49:36 +08:00
return axios.delete('/exec/upload-task/batch-delete', {
2024-05-09 00:06:08 +08:00
params: { idList },
paramsSerializer: params => {
return qs.stringify(params, { arrayFormat: 'comma' });
}
});
}
/**
2024-10-15 12:36:11 +08:00
*
2024-05-09 00:06:08 +08:00
*/
export function getUploadTaskCount(request: UploadTaskQueryRequest) {
2025-06-25 14:49:36 +08:00
return axios.post<number>('/exec/upload-task/count', request);
2024-05-09 00:06:08 +08:00
}
/**
2025-06-25 14:49:36 +08:00
*
2024-05-09 00:06:08 +08:00
*/
export function clearUploadTask(request: UploadTaskClearRequest) {
2025-06-25 14:49:36 +08:00
return axios.post<number>('/exec/upload-task/clear', request, {
2025-01-17 09:56:30 +08:00
timeout: 60000,
});
2024-05-09 00:06:08 +08:00
}