fix: chat 视图 loading 在等待首个 assistant 响应期间持续显示

This commit is contained in:
2026-07-20 00:19:19 +08:00
parent 979fcb5897
commit d560f63d70
+14 -1
View File
@@ -174,7 +174,7 @@
</view>
</view>
<view v-if="generating && generationStatus !== 'failed'" class="chat-loading">
<view v-if="showChatLoading" class="chat-loading">
<view class="loading-orbit" :class="{ streaming: generationStatus === 'streaming' }">
<view class="orbit-ring outer"></view>
<view class="orbit-ring inner"></view>
@@ -941,6 +941,19 @@ const generationCopy = computed(() => {
return '正在把你的心愿写成故事'
})
// chat 视图 loading 显示条件:等待首个 assistant 响应期间
// - generationPhase === 'generating':生成流程未完成
// - generationStatus !== 'failed':非失败状态
// - 最后一条消息是 user:说明还没收到 assistant 响应(card/outline/novel
const showChatLoading = computed(() => {
if (generationPhase.value !== 'generating') return false
if (generationStatus.value === 'failed') return false
const list = resultMessages.value
if (!list || !list.length) return false
const lastMsg = list[list.length - 1]
return lastMsg && lastMsg.role === 'user'
})
const generationSubcopy = computed(() => {
if (generationStatus.value === 'verySlow') return '如果网络波动,稍后会给你温和提示,不会丢掉当前心愿。'
if (generationStatus.value === 'slow') return 'AI 还没有吐出第一句话,但请求仍在进行中。'