Преглед на файлове

修改图片文档展示

yangg преди 6 месеца
родител
ревизия
59067a411c
променени са 5 файла, в които са добавени 83 реда и са изтрити 6 реда
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/css/app.1194fe3e.css
  3. 0 0
      dist/static/js/app.2873d4e8.js
  4. 0 0
      dist/static/js/app.5b8d40a1.js
  5. 83 6
      src/components/ai.vue

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/index.html


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/css/app.1194fe3e.css


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/app.2873d4e8.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/static/js/app.5b8d40a1.js


+ 83 - 6
src/components/ai.vue

@@ -34,7 +34,26 @@
             </div>
             <!-- 使用 v-html 来渲染 Markdown 文本 -->
             <div class="message-content">
-              <div
+              <!-- 添加文件预览区域 -->
+              <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" 
+                    class="message-image"
+                    alt="uploaded image"
+                  />
+                  <div v-else class="message-document">
+                    <i class="el-icon-document"></i>
+                    <span>{{ file.name }}</span>
+                  </div>
+                </div>
+              </div>
+              <div 
                 class="message-text"
                 v-html="renderMarkdown(message.message)"
                 @click="handleLinkClick"
@@ -43,7 +62,7 @@
           </li>
         </ul>
       </div>
-      <!--  <div class="input-container">
+      <!-- <div class="input-container">
         <textarea
           v-model="userInput"
           rows="4"
@@ -279,6 +298,7 @@ export default {
     removeDocument(index) {
       this.documents.splice(index, 1);
     },
+
     /*  */
     checkAIData() {
       const aiData = localStorage.getItem("AIData");
@@ -421,6 +441,20 @@ export default {
       const documentUrls = this.documents.map((doc) => doc.url);
       if (!message) return;
 
+      // 添加文件信息到消息中
+      const files = [
+        ...this.uploadFiles.map(file => ({
+          type: file.type,
+          url: file.url,
+          name: file.name
+        })),
+        ...this.documents.map(doc => ({
+          type: 'document',
+          url: doc.url,
+          name: doc.name
+        }))
+      ];
+
       // 添加用户消息
       this.messages.push({
         time: Date.now(),
@@ -428,6 +462,7 @@ export default {
         messageType: "TEXT",
         user: "user",
         done: true,
+        files: files // 添加文件数组
       });
       this.userInput = "";
       this.uploadFiles = [];
@@ -479,7 +514,6 @@ export default {
             const idObject = { ids: this.idArray };
             await this.getMinioUrls(idObject);
           }
-          // 如果有音频,播放音频
           if (
             response.data.data.audio_info &&
             response.data.data.audio_info.audio
@@ -505,7 +539,7 @@ export default {
         console.log("Sending to backend:", JSON.stringify(idObject));
 
         const response = await axios.post(
-          `${process.env.VUE_APP_BASE_AI_API}/milvus/getMinioURl`,
+          `${process.env.VUE_APP_BASE_API}/milvus/getMinioURl`,
           idObject,
           {
             headers: {
@@ -637,7 +671,7 @@ export default {
 
       const renderedHtml = md.render(rawMarkdown);
 
-      // 使用 setTimeout 确保 DOM 更新后再添加事件监听器
+      // 使用 setTimeout ���确保 DOM 更新后再添加事件监听器
       setTimeout(() => {
         const links = document.querySelectorAll(".custom-link");
         links.forEach((link) => {
@@ -1002,7 +1036,8 @@ export default {
   max-width: 800px; /* 设置最大宽度 */
   display: flex;
   justify-content: space-between;
-  align-items: center;
+  align-items: flex-start;
+  flex-direction: column;
   padding: 10px;
   background: #fdfdfd;
   border-radius: 10px;
@@ -1176,4 +1211,46 @@ textarea {
   text-overflow: ellipsis;
   white-space: nowrap;
 }
+
+.message-files {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 8px;
+  margin-bottom: 8px;
+}
+
+.message-file-item {
+  max-width: 200px;
+  border-radius: 4px;
+  overflow: hidden;
+}
+
+.message-image {
+  width: 100%;
+  height: auto;
+  max-height: 200px;
+  object-fit: cover;
+  border-radius: 4px;
+}
+
+.message-document {
+  display: flex;
+  align-items: center;
+  padding: 8px;
+  background-color: #f5f5f5;
+  border: 1px solid #e0e0e0;
+  border-radius: 4px;
+}
+
+.message-document i {
+  font-size: 20px;
+  color: #666;
+  margin-right: 8px;
+}
+
+.message-document span {
+  font-size: 14px;
+  color: #333;
+  word-break: break-all;
+}
 </style>

Някои файлове не бяха показани, защото твърде много файлове са промени