|
@@ -6,7 +6,7 @@ |
|
@@ -6,7 +6,7 @@ |
|
6
|
<div class="chat-messages" ref="messagesContainer">
|
6
|
<div class="chat-messages" ref="messagesContainer">
|
|
7
|
<div v-for="(message, index) in messages" :key="index" :class="['message', message.type]">
|
7
|
<div v-for="(message, index) in messages" :key="index" :class="['message', message.type]">
|
|
8
|
<div class="message-content">
|
8
|
<div class="message-content">
|
|
9
|
- <div class="message-text" v-html="message.text"></div>
|
9
|
+ <div class="message-text" style="white-space: pre-wrap;" v-html="message.text"></div>
|
|
10
|
<div v-if="message.type === 'assistant' && message.similarity" class="message-meta">
|
10
|
<div v-if="message.type === 'assistant' && message.similarity" class="message-meta">
|
|
11
|
相似度: {{ (message.similarity * 100).toFixed(2) }}%
|
11
|
相似度: {{ (message.similarity * 100).toFixed(2) }}%
|
|
12
|
<div v-if="message.fileBase64">
|
12
|
<div v-if="message.fileBase64">
|
|
@@ -19,7 +19,7 @@ |
|
@@ -19,7 +19,7 @@ |
|
19
|
<!-- 流式响应时显示的临时消息 -->
|
19
|
<!-- 流式响应时显示的临时消息 -->
|
|
20
|
<div v-if="streamingMessage" class="message assistant">
|
20
|
<div v-if="streamingMessage" class="message assistant">
|
|
21
|
<div class="message-content">
|
21
|
<div class="message-content">
|
|
22
|
- <div class="message-text">{{ streamingMessage }}</div>
|
22
|
+ <div class="message-text" style="white-space: pre-wrap;">{{ streamingMessage }}</div>
|
|
23
|
</div>
|
23
|
</div>
|
|
24
|
</div>
|
24
|
</div>
|
|
25
|
<div v-if="loading" class="message assistant">
|
25
|
<div v-if="loading" class="message assistant">
|
|
@@ -50,7 +50,7 @@ |
|
@@ -50,7 +50,7 @@ |
|
50
|
</div>
|
50
|
</div>
|
|
51
|
<div class="preview-content">
|
51
|
<div class="preview-content">
|
|
52
|
<div v-if="previewType === 'txt' || previewType === 'md'" class="text-preview">
|
52
|
<div v-if="previewType === 'txt' || previewType === 'md'" class="text-preview">
|
|
53
|
- <pre>{{ previewContent }}</pre>
|
53
|
+ <pre style="white-space: pre-wrap;">{{ previewContent }}</pre>
|
|
54
|
</div>
|
54
|
</div>
|
|
55
|
<div v-else-if="previewType === 'pdf'" class="pdf-preview" ref="pdfPreview"></div>
|
55
|
<div v-else-if="previewType === 'pdf'" class="pdf-preview" ref="pdfPreview"></div>
|
|
56
|
<div v-else-if="previewType === 'docx'" class="docx-preview" ref="docxPreview"></div>
|
56
|
<div v-else-if="previewType === 'docx'" class="docx-preview" ref="docxPreview"></div>
|
|
@@ -275,6 +275,7 @@ const sendButtonMessage = async (buttonValue: string) => { |
|
@@ -275,6 +275,7 @@ const sendButtonMessage = async (buttonValue: string) => { |
|
275
|
scrollToBottom();
|
275
|
scrollToBottom();
|
|
276
|
}
|
276
|
}
|
|
277
|
};
|
277
|
};
|
|
|
|
278
|
+
|
|
278
|
// 显示文件预览
|
279
|
// 显示文件预览
|
|
279
|
const showPreview = async (message: any) => {
|
280
|
const showPreview = async (message: any) => {
|
|
280
|
try {
|
281
|
try {
|
|
@@ -671,6 +672,7 @@ onBeforeUnmount(() => { |
|
@@ -671,6 +672,7 @@ onBeforeUnmount(() => { |
|
671
|
|
672
|
|
|
672
|
.message-text {
|
673
|
.message-text {
|
|
673
|
font-size: 15px;
|
674
|
font-size: 15px;
|
|
|
|
675
|
+ white-space: pre-wrap;
|
|
674
|
}
|
676
|
}
|
|
675
|
|
677
|
|
|
676
|
.message-meta {
|
678
|
.message-meta {
|