feat: 七月迭代公共状态与异步任务交互
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m59s
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m59s
This commit is contained in:
28
src/types/api/asyncTask.ts
Normal file
28
src/types/api/asyncTask.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
export enum AsyncTaskStatus {
|
||||
PENDING = 1,
|
||||
PROCESSING = 2,
|
||||
COMPLETED = 3,
|
||||
FAILED = 4,
|
||||
CANCELED = 5
|
||||
}
|
||||
|
||||
export interface AsyncTaskProgress {
|
||||
task_id?: number
|
||||
status: number
|
||||
status_name?: string
|
||||
total_count?: number
|
||||
success_count?: number
|
||||
failed_count?: number
|
||||
failure_details?: unknown[] | null
|
||||
error_code?: string
|
||||
error_summary?: string
|
||||
updated_at?: string
|
||||
}
|
||||
|
||||
export const isAsyncTaskActive = (status?: AsyncTaskStatus) =>
|
||||
status === AsyncTaskStatus.PENDING || status === AsyncTaskStatus.PROCESSING
|
||||
|
||||
export const isAsyncTaskTerminal = (status?: AsyncTaskStatus) =>
|
||||
status === AsyncTaskStatus.COMPLETED ||
|
||||
status === AsyncTaskStatus.FAILED ||
|
||||
status === AsyncTaskStatus.CANCELED
|
||||
@@ -21,23 +21,30 @@ export interface ExportTaskQueryParams extends PaginationParams {
|
||||
|
||||
export interface ExportTaskItem {
|
||||
id: number
|
||||
task_id?: number
|
||||
task_no: string
|
||||
scene: ExportTaskScene
|
||||
status: ExportTaskStatus
|
||||
status_name: string
|
||||
progress: number
|
||||
status_name?: string
|
||||
progress?: number
|
||||
format: ExportTaskFormat
|
||||
total_rows: number
|
||||
processed_rows: number
|
||||
total_shards: number
|
||||
success_shards: number
|
||||
failed_shards: number
|
||||
file_key: string
|
||||
error_message: string
|
||||
cancel_requested: boolean
|
||||
total_rows?: number
|
||||
processed_rows?: number
|
||||
total_shards?: number
|
||||
success_shards?: number
|
||||
failed_shards?: number
|
||||
file_key?: string
|
||||
error_message?: string
|
||||
cancel_requested?: boolean
|
||||
total_count?: number
|
||||
success_count?: number
|
||||
failed_count?: number
|
||||
error_code?: string
|
||||
error_summary?: string
|
||||
updated_at?: string
|
||||
created_at: string
|
||||
started_at: string
|
||||
completed_at: string
|
||||
started_at?: string
|
||||
completed_at?: string
|
||||
}
|
||||
|
||||
export interface ExportTaskListResponse {
|
||||
|
||||
@@ -111,5 +111,8 @@ export * from './pollingMonitor'
|
||||
// 导出任务相关
|
||||
export * from './exportTask'
|
||||
|
||||
// 通用异步任务相关
|
||||
export * from './asyncTask'
|
||||
|
||||
// 订单套餐批量作废任务相关
|
||||
export * from './orderPackageInvalidateTask'
|
||||
|
||||
6
src/types/components.d.ts
vendored
6
src/types/components.d.ts
vendored
@@ -87,8 +87,10 @@ declare module 'vue' {
|
||||
ElAlert: typeof import('element-plus/es')['ElAlert']
|
||||
ElAvatar: typeof import('element-plus/es')['ElAvatar']
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElCalendar: typeof import('element-plus/es')['ElCalendar']
|
||||
ElCard: typeof import('element-plus/es')['ElCard']
|
||||
ElCascader: typeof import('element-plus/es')['ElCascader']
|
||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
||||
ElCol: typeof import('element-plus/es')['ElCol']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
@@ -111,7 +113,9 @@ declare module 'vue' {
|
||||
ElOption: typeof import('element-plus/es')['ElOption']
|
||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||
ElPopover: typeof import('element-plus/es')['ElPopover']
|
||||
ElProgress: typeof import('element-plus/es')['ElProgress']
|
||||
ElRadio: typeof import('element-plus/es')['ElRadio']
|
||||
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
|
||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||
ElRow: typeof import('element-plus/es')['ElRow']
|
||||
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
||||
@@ -123,6 +127,8 @@ declare module 'vue' {
|
||||
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
||||
ElTabs: typeof import('element-plus/es')['ElTabs']
|
||||
ElTag: typeof import('element-plus/es')['ElTag']
|
||||
ElTimeline: typeof import('element-plus/es')['ElTimeline']
|
||||
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
|
||||
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
|
||||
ElUpload: typeof import('element-plus/es')['ElUpload']
|
||||
|
||||
Reference in New Issue
Block a user