From d50a7bc02d89e14beeab83a28f0d3677dbd9f0ef Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期五, 30 八月 2024 14:31:50 +0800
Subject: [PATCH] fix: 修改bug

---
 src/views/sessionManager/components/uploadFile.vue         |   51 ++++++++++++++++++-------
 src/views/sessionManager/components/seniorAgentSession.vue |   49 ++++++++++++++++--------
 2 files changed, 69 insertions(+), 31 deletions(-)

diff --git a/src/views/sessionManager/components/seniorAgentSession.vue b/src/views/sessionManager/components/seniorAgentSession.vue
index 96e9f32..91014f6 100644
--- a/src/views/sessionManager/components/seniorAgentSession.vue
+++ b/src/views/sessionManager/components/seniorAgentSession.vue
@@ -298,6 +298,7 @@
           v-if="!getAent"
           ref="fileInput"
           :sessionId="activeSessionId"
+          :handleRemove="handleRemove"
           @selectFileCallback="selectFileCallback"
         ></uploadFile>
         <a-button
@@ -349,14 +350,14 @@
         >
           <template #avatar>
             <a-spin
-              :loading="onFileSelectedLoading"
-              v-if="onFileSelectedLoading"
+              :loading="item.onFileSelectedLoading"
+              v-if="item.onFileSelectedLoading"
             >
               <template #icon>
                 <icon-sync />
               </template>
               <template #tip>
-                <div style="font-size: 12px">{{ textName }}</div>
+                <div style="font-size: 12px">{{ item.textName }}</div>
               </template>
             </a-spin>
             <!--                    <a-button type="text" :loading="onFileSelectedLoading" v-if="onFileSelectedLoading"></a-button>-->
@@ -364,6 +365,7 @@
             <!--                      <icon-file style="color: #0960bd" />-->
             <!--                    </a-avatar>-->
             <img :src="getIconByExtension(item.name)" alt="" />
+            <div style="font-size: 12px">{{ item.textName }}</div>
           </template>
         </a-comment>
         <icon-close-circle-fill
@@ -835,29 +837,42 @@
     try {
       const formData = new FormData();
       uploaditemList.value = resData;
+      uploaditemList.value.map((item) => {
+        if (item.name == file[0].file.name) {
+          item.onFileSelectedLoading = true;
+          item.textName = '涓婁紶涓�';
+        }
+        return item;
+      });
       if (!activeSessionId.value) {
         await createSession(resData);
       }
 
-      onFileSelectedLoading.value = true;
-      textName.value = '涓婁紶涓�';
-      //   for (let i = 0; i < file.length; i++) {
-      //     formData.append('files', file[i].file);
-      //     formData.append('conversation_id', activeSessionId.value);
-      //     formData.append('app_id', agentObj.id);
-      //   }
+      // onFileSelectedLoading.value = true;
+      // textName.value = '涓婁紶涓�';
+
       formData.append('files', file[0].file);
       formData.append('conversation_id', activeSessionId.value);
       formData.append('app_id', agentObj.id);
       console.log(formData, 'formData');
       const { data, code } = await agentUploadApi(formData);
       if (code === 200) {
-        onFileSelectedLoading.value = false;
-        textName.value = '涓婁紶鎴愬姛';
+        uploaditemList.value.map((item) => {
+          item.onFileSelectedLoading = false;
+          item.textName = '涓婁紶鎴愬姛';
+          return item;
+        });
+        // onFileSelectedLoading.value = false;
+        // textName.value = '涓婁紶鎴愬姛';
       }
     } catch (err) {
-      onFileSelectedLoading.value = false;
-      textName.value = '涓婁紶澶辫触';
+      uploaditemList.value.map((item) => {
+        item.onFileSelectedLoading = false;
+        item.textName = '涓婁紶澶辫触';
+        return item;
+      });
+      // onFileSelectedLoading.value = false;
+      // textName.value = '涓婁紶澶辫触';
       Message.error('涓婁紶澶辫触');
     }
   };
@@ -875,13 +890,15 @@
     return type;
   };
 
-  let onFileSelectedLoading = ref(true);
-  const textName = ref('涓婁紶鎴愬姛');
+  // let onFileSelectedLoading = ref(true);
+  // const textName = ref('涓婁紶鎴愬姛');
 
   const deleteFile = (item) => {
     console.log(uploaditemList.value);
     uploaditemList.value.splice(item.index, 1);
+    EventBus.emit('queryAgent', item);
   };
+
   const getIconByExtension = computed(() => (extension) => {
     const fileExtension = ref('');
     fileExtension.value = extension.split('.').pop();
diff --git a/src/views/sessionManager/components/uploadFile.vue b/src/views/sessionManager/components/uploadFile.vue
index 4005b66..361acbc 100644
--- a/src/views/sessionManager/components/uploadFile.vue
+++ b/src/views/sessionManager/components/uploadFile.vue
@@ -29,6 +29,7 @@
   import { uploadAndParse } from '@/api/session';
   import { useUserStore } from '@/store';
   import { Message } from '@arco-design/web-vue';
+  import EventBus from '@/utils/EventBus';
 
   const userStore = useUserStore();
   const props = defineProps({
@@ -78,30 +79,57 @@
         url: item,
       }));
     }
+    EventBus.on('queryAgent', (eventData) => {
+      // 鏇存柊缁勪欢鐨勬暟鎹�
+      if (fileList.value.length == 1) {
+        fileList.value = [];
+      } else {
+        fileList.value.forEach((item) => {
+          if (item.name != eventData.name) {
+            fileList.value = [];
+            fileList.value.push(item);
+          }
+        });
+      }
+    });
   });
 
-  // console.log(urls.value, 8988);
   const beforeRemove = (file) => {
     emit('handleRemove');
     fileList.value = [];
   };
 
   const handleChange = (fileList) => {
-    const formData = new FormData();
-    for (let i = 0; i < fileList.length; i++) {
-      formData.append('file', fileList[i].file);
-      formData.append('conversation_id', props.sessionId);
-    }
+    const dataFile = compareArr(uploaditemList.value, fileList).uniqueToSecond;
     uploaditemList.value = fileList.map((item, index) => {
       return {
         index: index,
         name: item.name,
         size: (item.file.size / 1024).toFixed(2) + 'K',
+        onFileSelectedLoading: false,
+        textName: '',
       };
     });
-    filesData.value = fileList;
 
-    emit('selectFileCallback', uploaditemList.value, fileList);
+    filesData.value = fileList;
+    emit('selectFileCallback', uploaditemList.value, dataFile);
+    fileList.value = [];
+  };
+
+  //鏁扮粍姣旇緝
+  const compareArr = (arr1, arr2) => {
+    const uniqueToFirst = arr1.filter(
+      (item1) => !arr2.some((item2) => item1.name == item2.name)
+    );
+
+    const uniqueToSecond = arr2.filter(
+      (item2) => !arr1.some((item1) => item1.name == item2.name)
+    );
+
+    return {
+      uniqueToFirst,
+      uniqueToSecond,
+    };
   };
 
   function beforeUpload(resolve) {
@@ -116,12 +144,5 @@
         resolve(true);
       });
     }
-    // if (form.value.maininformation.length > 4) {
-    //   Message.error('鏂囦欢涓嶈兘瓒呰繃5涓�');
-    // } else {
-    //   return new Promise((resolve) => {
-    //     resolve(true);
-    //   });
-    // }
   }
 </script>

--
Gitblit v1.8.0