fix: 第二轮 loading 不显示 — 用 filteredResultMessages 替代函数调用,避免 mp-weixin 编译丢失
This commit is contained in:
@@ -114,7 +114,7 @@
|
|||||||
|
|
||||||
<view class="conversation compact">
|
<view class="conversation compact">
|
||||||
<view
|
<view
|
||||||
v-for="msg in visibleResultMessages"
|
v-for="(msg, idx) in filteredResultMessages"
|
||||||
:key="msg.id"
|
:key="msg.id"
|
||||||
>
|
>
|
||||||
<view v-if="msg.role === 'user' && msg.kind === 'text'" class="chat-bubble user">
|
<view v-if="msg.role === 'user' && msg.kind === 'text'" class="chat-bubble user">
|
||||||
@@ -945,8 +945,8 @@ const generationCopy = computed(() => {
|
|||||||
// chat 视图 loading 显示条件:等待首个 assistant 响应期间
|
// chat 视图 loading 显示条件:等待首个 assistant 响应期间
|
||||||
// - generationPhase === 'generating':生成流程未完成
|
// - generationPhase === 'generating':生成流程未完成
|
||||||
// 渲染层过滤:去掉"紧跟在已提交 card 后、内容等于 card.answer"的 user 消息,避免重复气泡
|
// 渲染层过滤:去掉"紧跟在已提交 card 后、内容等于 card.answer"的 user 消息,避免重复气泡
|
||||||
// 这样 showChatLoading 仍能根据"最后一条是 user"正确判断等待状态
|
// 注意:showChatLoading 必须用原始 resultMessages 判定(不能用 filteredResultMessages,否则永远 false)
|
||||||
const visibleResultMessages = computed(() => {
|
const filteredResultMessages = computed(() => {
|
||||||
const list = resultMessages.value
|
const list = resultMessages.value
|
||||||
if (!list || list.length < 2) return list
|
if (!list || list.length < 2) return list
|
||||||
return list.filter((m, idx) => {
|
return list.filter((m, idx) => {
|
||||||
@@ -966,10 +966,11 @@ const visibleResultMessages = computed(() => {
|
|||||||
|
|
||||||
// - generationStatus !== 'failed':非失败状态
|
// - generationStatus !== 'failed':非失败状态
|
||||||
// - 最后一条消息是 user:说明还没收到 assistant 响应(card/outline/novel)
|
// - 最后一条消息是 user:说明还没收到 assistant 响应(card/outline/novel)
|
||||||
|
// 注意:使用原始 resultMessages 判定,不能用 filteredResultMessages(会被过滤掉导致永远 false)
|
||||||
const showChatLoading = computed(() => {
|
const showChatLoading = computed(() => {
|
||||||
if (generationPhase.value !== 'generating') return false
|
if (generationPhase.value !== 'generating') return false
|
||||||
if (generationStatus.value === 'failed') return false
|
if (generationStatus.value === 'failed') return false
|
||||||
const list = visibleResultMessages.value
|
const list = resultMessages.value
|
||||||
if (!list || !list.length) return false
|
if (!list || !list.length) return false
|
||||||
const lastMsg = list[list.length - 1]
|
const lastMsg = list[list.length - 1]
|
||||||
return lastMsg && lastMsg.role === 'user'
|
return lastMsg && lastMsg.role === 'user'
|
||||||
|
|||||||
Reference in New Issue
Block a user