feat(data-process): 完善后台生成与失败重试
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user