From 307c90f93edc0e356c0ab207c0149218474c95c0 Mon Sep 17 00:00:00 2001 From: sion123 <450702724@qq.com> Date: Sat, 22 Nov 2025 17:17:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/ChatMessageRenderer.vue | 17 ++++++++++++++--- .../AppAiChatConversationController.java | 2 +- .../controller/AppAiChatMessageController.java | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/frontend/app/web-gold/src/components/ChatMessageRenderer.vue b/frontend/app/web-gold/src/components/ChatMessageRenderer.vue index 57afcf98ad..3f4b3fe760 100644 --- a/frontend/app/web-gold/src/components/ChatMessageRenderer.vue +++ b/frontend/app/web-gold/src/components/ChatMessageRenderer.vue @@ -45,7 +45,7 @@ function updateRenderedContent() { /** * 处理内容更新 - * 普通流式渲染:直接显示所有内容,不使用打字机效果 + * 流式渲染:需要拼接增量内容 */ function handleContentUpdate(newContent) { if (!newContent) { @@ -54,8 +54,14 @@ function handleContentUpdate(newContent) { return } - // 更新当前内容 - currentContent.value = newContent + // 流式模式下拼接增量内容 + if (props.isStreaming) { + currentContent.value += newContent + } else { + // 非流式模式下直接替换 + currentContent.value = newContent + } + updateRenderedContent() } @@ -75,6 +81,11 @@ watch(() => props.content, (newContent) => { // 监听 isStreaming 变化 watch(() => props.isStreaming, (newVal, oldVal) => { + // 流式传输开始时,清空之前的内容 + if (newVal && !oldVal) { + currentContent.value = '' + renderedContent.value = '' + } // 流式传输结束时,确保显示完整内容 if (!newVal && oldVal && props.content) { currentContent.value = props.content diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/chat/controller/AppAiChatConversationController.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/chat/controller/AppAiChatConversationController.java index bc7307f3d5..4da109af7e 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/chat/controller/AppAiChatConversationController.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/chat/controller/AppAiChatConversationController.java @@ -26,7 +26,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti @Tag(name = "用户 App - AI 聊天对话") @RestController -@RequestMapping("/api/chat/conversation") +@RequestMapping("/api/ai/chat/conversation") @Validated public class AppAiChatConversationController { diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/chat/controller/AppAiChatMessageController.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/chat/controller/AppAiChatMessageController.java index 07491217dd..aad3fd9c9b 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/chat/controller/AppAiChatMessageController.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/chat/controller/AppAiChatMessageController.java @@ -36,7 +36,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti @Tag(name = "用户 App - 聊天消息") @RestController -@RequestMapping("/api/chat/message") +@RequestMapping("/api/ai/chat/message") @Validated @Slf4j public class AppAiChatMessageController {