feat: 优化错误处理逻辑,避免重复提示并改善用户体验

This commit is contained in:
jxxghp
2026-06-17 12:36:20 +08:00
parent a5bc4e6baf
commit c055740926

View File

@@ -462,8 +462,8 @@ function applyStreamEvent(event: AgentStreamEvent, assistantMessage: AgentChatMe
break
case 'error':
assistantMessage.status = 'error'
streamError.value = event.message || t('agentAssistant.error')
if (!assistantMessage.content) assistantMessage.content = streamError.value
// 后端流式错误已经以 AI 消息展示,避免底部提示条重复且持续占位。
assistantMessage.content ||= event.message || t('agentAssistant.error')
markToolsDone(assistantMessage)
break
case 'start':
@@ -715,7 +715,6 @@ async function streamAgentMessage(
assistantMessage.status = 'error'
assistantMessage.content = error?.message || t('agentAssistant.error')
streamError.value = assistantMessage.content
markToolsDone(assistantMessage)
refreshMessageList()
} finally {
@@ -740,8 +739,8 @@ async function sendMessage() {
const prepared = await prepareAgentAttachments(attachments)
await streamAgentMessage(text, prepared.images, prepared.files, prepared.audioRefs, prepared.userAttachments)
} catch (error: any) {
streamError.value = error?.message || t('agentAssistant.uploadFailed')
addMessage('assistant', streamError.value, 'error')
// 附件准备失败同样落到对话消息里,底部提示条只保留给没有消息承载的本地错误。
addMessage('assistant', error?.message || t('agentAssistant.uploadFailed'), 'error')
} finally {
sending.value = false
}