- {{ activeJob.output_mode === 'asset_retry' ? '资源重试事件' : '生成事件' }}
+ {{
+ activeJob.output_mode === 'asset_retry'
+ ? '资源重试事件'
+ : activeJob.output_mode === 'asset_generation'
+ ? '资源生成事件'
+ : '生成事件'
+ }}
当前步骤:{{ getEventLabel(activeJob.current_step) }}
diff --git a/frontend/src/views/VoiceStudio.vue b/frontend/src/views/VoiceStudio.vue
index 3308481..56972f2 100644
--- a/frontend/src/views/VoiceStudio.vue
+++ b/frontend/src/views/VoiceStudio.vue
@@ -16,6 +16,7 @@ import BaseButton from '../components/ui/BaseButton.vue'
import BaseCard from '../components/ui/BaseCard.vue'
import BaseSelect from '../components/ui/BaseSelect.vue'
import BaseTextarea from '../components/ui/BaseTextarea.vue'
+import GenerationTrace from '../components/GenerationTrace.vue'
import LoadingSpinner from '../components/ui/LoadingSpinner.vue'
import EmptyState from '../components/ui/EmptyState.vue'
import {
@@ -88,6 +89,8 @@ const finalStorySummary = computed(() => {
const value = activeSession.value?.story_state?.final_summary
return typeof value === 'string' ? value : null
})
+const finalStoryId = computed(() => activeSession.value?.final_story_id ?? null)
+const finalStoryHasAssetWork = computed(() => Boolean(finalStoryId.value))
const turnSuccessRateLabel = computed(() => {
if (!voiceAnalytics.value) return '0%'
return `${Math.round(voiceAnalytics.value.turn_success_rate * 100)}%`
@@ -859,6 +862,9 @@ onBeforeUnmount(() => {
摘要:{{ finalStorySummary }}
+
+ 保存后的封面补全与后续资源任务会继续挂到正式故事的生成轨迹里。
+
@@ -1088,6 +1094,13 @@ onBeforeUnmount(() => {
+
+
故事状态快照
{{ JSON.stringify(activeSession.story_state, null, 2) }}