|
@@ -35,15 +35,18 @@
|
|
|
<!-- 使用 v-html 来渲染 Markdown 文本 -->
|
|
|
<div class="message-content">
|
|
|
<!-- 添加文件预览区域 -->
|
|
|
- <div class="message-files" v-if="message.files && message.files.length > 0">
|
|
|
- <div
|
|
|
- v-for="(file, index) in message.files"
|
|
|
+ <div
|
|
|
+ class="message-files"
|
|
|
+ v-if="message.files && message.files.length > 0"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ v-for="(file, index) in message.files"
|
|
|
:key="index"
|
|
|
class="message-file-item"
|
|
|
>
|
|
|
- <img
|
|
|
- v-if="file.type.startsWith('image/')"
|
|
|
- :src="file.url"
|
|
|
+ <img
|
|
|
+ v-if="file.type.startsWith('image/')"
|
|
|
+ :src="file.url"
|
|
|
class="message-image"
|
|
|
alt="uploaded image"
|
|
|
/>
|
|
@@ -53,7 +56,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div
|
|
|
+ <div
|
|
|
class="message-text"
|
|
|
v-html="renderMarkdown(message.message)"
|
|
|
@click="handleLinkClick"
|
|
@@ -206,6 +209,7 @@ export default {
|
|
|
currentChat_id: "",
|
|
|
uploadFiles: [], // 存储上传的文件
|
|
|
documents: [], // 新增:专门存储文档类型文件的数组
|
|
|
+ currentAudio: null, // 添加当前播放的音频实例
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
@@ -243,11 +247,19 @@ export default {
|
|
|
methods: {
|
|
|
/* 播放音频 */
|
|
|
playAudio(audioBase64) {
|
|
|
- console.log(audioBase64);
|
|
|
- // 创建音频元素
|
|
|
- const audio = new Audio(audioBase64); // 播放音频
|
|
|
+ // 如果有正在播放的音频,先停止它
|
|
|
+ if (this.currentAudio) {
|
|
|
+ this.currentAudio.pause();
|
|
|
+ this.currentAudio = null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 创建新的音频实例并播放
|
|
|
+ const audio = new Audio(audioBase64);
|
|
|
+ this.currentAudio = audio;
|
|
|
+
|
|
|
audio.play().catch((error) => {
|
|
|
console.error("Error playing audio:", error);
|
|
|
+ this.currentAudio = null;
|
|
|
});
|
|
|
},
|
|
|
async handleFileUpload(event) {
|
|
@@ -443,16 +455,16 @@ export default {
|
|
|
|
|
|
// 添加文件信息到消息中
|
|
|
const files = [
|
|
|
- ...this.uploadFiles.map(file => ({
|
|
|
+ ...this.uploadFiles.map((file) => ({
|
|
|
type: file.type,
|
|
|
url: file.url,
|
|
|
- name: file.name
|
|
|
+ name: file.name,
|
|
|
})),
|
|
|
- ...this.documents.map(doc => ({
|
|
|
- type: 'document',
|
|
|
+ ...this.documents.map((doc) => ({
|
|
|
+ type: "document",
|
|
|
url: doc.url,
|
|
|
- name: doc.name
|
|
|
- }))
|
|
|
+ name: doc.name,
|
|
|
+ })),
|
|
|
];
|
|
|
|
|
|
// 添加用户消息
|
|
@@ -462,7 +474,7 @@ export default {
|
|
|
messageType: "TEXT",
|
|
|
user: "user",
|
|
|
done: true,
|
|
|
- files: files // 添加文件数组
|
|
|
+ files: files, // 添加文件数组
|
|
|
});
|
|
|
this.userInput = "";
|
|
|
this.uploadFiles = [];
|
|
@@ -539,7 +551,7 @@ export default {
|
|
|
console.log("Sending to backend:", JSON.stringify(idObject));
|
|
|
|
|
|
const response = await axios.post(
|
|
|
- `${process.env.VUE_APP_BASE_AI_API}/milvus/getMinioURlbyDocid`,///milvus/getMinioURl
|
|
|
+ `${process.env.VUE_APP_BASE_AI_API}/milvus/getMinioURlbyDocid`, ///milvus/getMinioURl
|
|
|
idObject,
|
|
|
{
|
|
|
headers: {
|