From 828a8f023f9956114103d35ecf5202fd79a7e2da Mon Sep 17 00:00:00 2001 From: ddrwode <34234@3来 34> Date: Tue, 3 Mar 2026 10:50:10 +0800 Subject: [PATCH] ha'ha --- src/api/TaskManagement/index.ts | 8 +++ .../components/ViewTheTaskListDetails.vue | 51 ++++++++++++++++++- 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/src/api/TaskManagement/index.ts b/src/api/TaskManagement/index.ts index 7701389..283e046 100644 --- a/src/api/TaskManagement/index.ts +++ b/src/api/TaskManagement/index.ts @@ -38,6 +38,14 @@ export const ApiTasksAdd = (data: any) => { }) } +// 停止任务 +export const ApiTasksCancel = (task_id: string) => { + return request({ + url: `/api/tasks/${task_id}/cancel`, + method: 'post' + }) +} + // // 编辑申请用印 // export const BusinessEditApplication = (data: any) => { // const formData = new FormData() diff --git a/src/views/BoosAccountManagement/components/ViewTheTaskListDetails.vue b/src/views/BoosAccountManagement/components/ViewTheTaskListDetails.vue index c0aa04e..282db38 100644 --- a/src/views/BoosAccountManagement/components/ViewTheTaskListDetails.vue +++ b/src/views/BoosAccountManagement/components/ViewTheTaskListDetails.vue @@ -28,8 +28,13 @@ header-align="center" > @@ -42,6 +47,19 @@ {{ formatISOToDateTime(scope.row?.updated_at || '') }} + + + // 表格数据 -import { ApiTasks } from '@/api/TaskManagement' +import { ApiTasks, ApiTasksCancel } from '@/api/TaskManagement' import { formatISOToDateTime } from '@/utils/auxiliaryFunction' import { createTimer } from '@/utils/TimerManager' @@ -72,6 +90,35 @@ const queryParams = reactive({ pageNum: 1, pageSize: 10 }) + +const cancellableStatuses = new Set(['pending', 'dispatched', 'running']) + +const canCancel = (status: string) => { + return cancellableStatuses.has(String(status || '').toLowerCase()) +} + +const handleCancelTask = (row: any) => { + if (!row?.task_id || !canCancel(row?.status)) { + return + } + + ElMessageBox.confirm('确认停止该任务吗?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then( + () => { + ApiTasksCancel(row.task_id).then((res: any) => { + ElMessage.success(res.msg || '任务已停止') + fetchData() + }) + }, + () => { + ElMessage.info('已取消操作') + } + ) +} + // 获取数据 function fetchData() { ApiTasks(props.bossId, queryParams.pageNum, queryParams.pageSize).then((res: any) => {