fix(提示语): 失败提示优先展示后端真实原因,修正 10+ 处误导文案

上架/删除品牌/去重/转换/拆分/撤回/查ASIN/产品风险/跟价/巡店/店铺匹配/视频工作台:
- 解析失败不再只报通用文案,逐条展示后端文件级 errorMessage(上架新增「店铺未找到」专属弹窗)
- 匹配失败不再一律「请检查店铺名」,按 matchStatus 区分 CONFLICT/PENDING
- 去重/转换/拆分全失败弹窗优先列各文件真实原因,取不到才回退猜测文案
- dispatch-guard 新增 fileErrors 选项与 collectDistinctErrors 导出
This commit is contained in:
2026-09-17 23:02:15 +08:00
parent d2d95f0b71
commit 3ce0569c59
14 changed files with 166 additions and 16 deletions
@@ -1015,12 +1015,12 @@ async function waitForImageVideoTask(ticket: ImageVideoAsyncTaskVo): Promise<unk
}
if (task.status === 'SUCCESS') return task.result
if (isTerminalImageVideoTask(task)) {
throw new Error(task.errorMessage || 'Coze task failed')
throw new Error(task.errorMessage || 'Coze 任务执行失败')
}
await sleep(IMAGE_VIDEO_TASK_POLL_DELAY_MS)
task = await getImageVideoAsyncTask(task.taskId)
}
throw new Error('Coze task polling timed out')
throw new Error('Coze 任务查询超时,请稍后重试')
}
async function rewriteScriptFromSource() {
@@ -1296,7 +1296,8 @@ async function pollAssemblyResult(tab: WorkspaceTab, taskId: number) {
if (isTerminalImageVideoTask(task)) {
assembly.polling = false
if (task.status === 'FAILED') {
ElMessage.error('Coze 工作流执行失败')
// 后端 errorMessage 带具体原因(内容违规/超时/额度等),只报「执行失败」用户无从下手
ElMessage.error(task.errorMessage ? `Coze 工作流执行失败:${task.errorMessage}` : 'Coze 工作流执行失败')
} else {
ElMessage.success(videoUrl || assembly.videoUrl ? '视频生成完成' : 'Coze 工作流执行完成,未解析到视频地址')
}