实验批量发布现在会创建持久化后台任务,不再在 HTTP 请求里逐项校验和通知。
This commit is contained in:
@@ -417,16 +417,35 @@ async function publishSelectedProjects() {
|
||||
'批量发布实验项目',
|
||||
{ confirmButtonText: '确认发布', cancelButtonText: '取消', type: 'warning' },
|
||||
)
|
||||
await http.post('/experiments/batch/publish', { projectIds: ids })
|
||||
ElMessage.success(`已发布 ${ids.length} 个实验项目`)
|
||||
const { data } = await http.post('/experiments/batch/publish', { projectIds: ids })
|
||||
ElMessage.success(`已提交 ${ids.length} 个实验项目的后台发布任务`)
|
||||
selectedProjectIds.value = []
|
||||
await load()
|
||||
void pollPublishJob(data.jobId)
|
||||
} catch (error: any) {
|
||||
if (error === 'cancel' || error === 'close') return
|
||||
ElMessage.error(apiErrorMessage(error))
|
||||
}
|
||||
}
|
||||
|
||||
async function pollPublishJob(jobId: string) {
|
||||
try {
|
||||
const { data } = await http.get(`/experiments/batch/publish-jobs/${jobId}`)
|
||||
if (data.status === 'Succeeded') {
|
||||
ElMessage.success('实验项目已完成发布')
|
||||
await load()
|
||||
return
|
||||
}
|
||||
if (data.status === 'Failed') {
|
||||
ElMessage.error(data.errorMessage || '实验项目发布失败')
|
||||
await load()
|
||||
return
|
||||
}
|
||||
window.setTimeout(() => { void pollPublishJob(jobId) }, 1200)
|
||||
} catch (error) {
|
||||
ElMessage.error(apiErrorMessage(error))
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteSelectedProjects() {
|
||||
const ids = draftSelectedProjectIds.value
|
||||
if (!ids.length) return
|
||||
|
||||
Reference in New Issue
Block a user