From 4b3fa1552c49ca8621deb5e5c0954b2ad05db2b8 Mon Sep 17 00:00:00 2001 From: Peanut Date: Mon, 20 Jul 2026 23:08:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=AC=AC=E4=BA=8C=E8=BD=AE=20loading=20?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=20=E2=80=94=20=E7=94=A8=20filteredR?= =?UTF-8?q?esultMessages=20=E6=9B=BF=E4=BB=A3=E5=87=BD=E6=95=B0=E8=B0=83?= =?UTF-8?q?=E7=94=A8=EF=BC=8C=E9=81=BF=E5=85=8D=20mp-weixin=20=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E4=B8=A2=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mini-program/src/pages/main/ScriptView.vue | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mini-program/src/pages/main/ScriptView.vue b/mini-program/src/pages/main/ScriptView.vue index 11413d3..3bf1a20 100644 --- a/mini-program/src/pages/main/ScriptView.vue +++ b/mini-program/src/pages/main/ScriptView.vue @@ -114,7 +114,7 @@ @@ -945,8 +945,8 @@ const generationCopy = computed(() => { // chat 视图 loading 显示条件:等待首个 assistant 响应期间 // - generationPhase === 'generating':生成流程未完成 // 渲染层过滤:去掉"紧跟在已提交 card 后、内容等于 card.answer"的 user 消息,避免重复气泡 -// 这样 showChatLoading 仍能根据"最后一条是 user"正确判断等待状态 -const visibleResultMessages = computed(() => { +// 注意:showChatLoading 必须用原始 resultMessages 判定(不能用 filteredResultMessages,否则永远 false) +const filteredResultMessages = computed(() => { const list = resultMessages.value if (!list || list.length < 2) return list return list.filter((m, idx) => { @@ -966,10 +966,11 @@ const visibleResultMessages = computed(() => { // - generationStatus !== 'failed':非失败状态 // - 最后一条消息是 user:说明还没收到 assistant 响应(card/outline/novel) +// 注意:使用原始 resultMessages 判定,不能用 filteredResultMessages(会被过滤掉导致永远 false) const showChatLoading = computed(() => { if (generationPhase.value !== 'generating') return false if (generationStatus.value === 'failed') return false - const list = visibleResultMessages.value + const list = resultMessages.value if (!list || !list.length) return false const lastMsg = list[list.length - 1] return lastMsg && lastMsg.role === 'user'