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