主流程

This commit is contained in:
2026-06-10 17:53:09 +08:00
parent c6f239f424
commit b20435c027
66 changed files with 2779 additions and 1181 deletions
@@ -62,6 +62,18 @@
in {{ message.prompt_tokens }} · out {{ message.completion_tokens ?? 0 }}
<span v-if="message.thinking_tokens"> · think {{ message.thinking_tokens }}</span>
</div>
<div
v-if="canSave"
class="mt-2"
>
<NButton
size="tiny"
secondary
@click="emit('save', message.id)"
>
保存为产物
</NButton>
</div>
</div>
</div>
</template>
@@ -74,7 +86,15 @@ import MarkdownIt from 'markdown-it'
import type { ChatMessage } from '@/api/chat'
const md = new MarkdownIt({ html: false, breaks: true, linkify: true })
const props = defineProps<{ message: ChatMessage }>()
const emit = defineEmits<{ retry: [id: number] }>()
// savable:仅需求阶段对话面板传 true,对成功的 assistant 回复显示「保存为产物」。
const props = defineProps<{ message: ChatMessage; savable?: boolean }>()
const emit = defineEmits<{ retry: [id: number]; save: [id: number] }>()
const rendered = computed(() => md.render(props.message.content))
const canSave = computed(
() =>
props.savable === true &&
props.message.role === 'assistant' &&
props.message.status === 'ok' &&
props.message.content.trim() !== '',
)
</script>