feat(data-process): 完善后台生成与失败重试

This commit is contained in:
caoxiaozhu
2026-07-28 10:56:05 +08:00
parent 8a6a6574bb
commit 01d2e6c76a
178 changed files with 4472 additions and 595 deletions

View File

@@ -4,6 +4,7 @@ import { useRouter } from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus'
import DataTablePage from '@/components/DataTablePage.vue'
import { deleteDataProcessTask, getDataProcessTasks } from '@/api/modules/dataProcess'
import { usePolling } from '@/composables/usePolling'
import type { DataProcessTask, DataProcessType } from '@/types/dataProcess'
import { dataProcessDisplayStatus } from '@/utils/dataProcessStatus.js'
@@ -25,6 +26,12 @@ async function loadData(silent = false) {
try {
const response = await getDataProcessTasks({ page: 1, page_size: 200 })
dataList.value = response.items
if (dataList.value.some((item) => (
item.status === 'running'
|| item.preview_status === 'running'
|| item.preview_status === 'queued'
))) startPolling()
else stopPolling()
} catch {
loadError.value = '数据处理任务加载失败,请稍后重试。'
} finally {
@@ -34,8 +41,11 @@ async function loadData(silent = false) {
/** 查看任务详情 */
function viewDetail(row: unknown) {
const taskId = (row as { id: string | number }).id
router.push({ name: 'data-process-detail', params: { id: taskId } })
const task = row as DataProcessTask
const routeName = task.status === 'completed' && task.results_confirmed !== false
? 'data-process-detail'
: 'data-process-workflow'
router.push({ name: routeName, params: { id: task.id } })
}
/** 删除由后端再次校验任务状态以及发布锁。 */
@@ -86,7 +96,13 @@ function generatedCountLabel(task: DataProcessTask) {
return `${safeCount(task.output_count)}`
}
onMounted(loadData)
const { start: startPolling, stop: stopPolling } = usePolling(
() => loadData(true),
3000,
{ immediate: false },
)
onMounted(() => void loadData())
</script>
<template>