feat: 增加AI回复手动重试

This commit is contained in:
2026-08-03 17:55:02 +08:00
parent 8e6da99dcb
commit 1954f461af
10 changed files with 234 additions and 32 deletions

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import { Bot } from "@lucide/vue";
import { Bot, RotateCcw } from "@lucide/vue";
import MarkdownIt from "markdown-it";
import { computed } from "vue";
@@ -11,6 +11,12 @@ const props = defineProps<{
showReasoning?: boolean;
createdAt: string;
streaming?: boolean;
errorMessage?: string;
canRetry?: boolean;
}>();
const emit = defineEmits<{
retry: [];
}>();
const markdown = new MarkdownIt({ breaks: true, html: false, linkify: true });
@@ -95,6 +101,13 @@ const displayTime = computed(() => {
<span></span><span></span><span></span>
思考中
</div>
<div v-if="errorMessage" class="message-error-state" role="alert">
<span>{{ errorMessage }}</span>
<button v-if="canRetry" type="button" :disabled="streaming" @click="emit('retry')">
<RotateCcw :size="15" aria-hidden="true" />
重新生成
</button>
</div>
</template>
<div v-else class="message-content">{{ renderedContent }}</div>
<time v-if="displayTime" :datetime="createdAt">{{ displayTime }}</time>