From 5e6e726564e5cf1520f95b7f4f13707a39da4bad Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期五, 30 八月 2024 19:43:42 +0800
Subject: [PATCH] fix: 修改bug
---
src/views/sessionManager/components/uploadFile.vue | 120 ++++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 80 insertions(+), 40 deletions(-)
diff --git a/src/views/sessionManager/components/uploadFile.vue b/src/views/sessionManager/components/uploadFile.vue
index ed34dcf..15e9921 100644
--- a/src/views/sessionManager/components/uploadFile.vue
+++ b/src/views/sessionManager/components/uploadFile.vue
@@ -1,10 +1,14 @@
<template>
<div>
<a-upload
+ action="/"
v-model:fileList="fileList"
- :limit="limit"
+ :auto-upload="false"
+ :accept="xlsx"
+ :limit="props.limit"
@change="handleChange"
@before-remove="beforeRemove"
+ @before-upload="beforeUpload"
image-preview
>
<template #upload-button>
@@ -24,13 +28,16 @@
import { computed, ref, onMounted, watch, watchEffect } from 'vue';
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({
limit: {
type: Number,
- default: 3,
+ default: 6,
},
+ typeXLse: Boolean,
sessionId: String,
action: String, // 涓婁紶鐨勬湇鍔″櫒鍦板潃
url: String, //鍥炴樉鐨勬枃浠跺湴鍧�
@@ -44,6 +51,8 @@
]);
const urls = computed(() => props.url);
const fileList = ref([]);
+ const filesData = ref([]);
+ const uploaditemList = ref([]);
watch(
() => [props.url, props.sessionId],
@@ -71,52 +80,83 @@
url: item,
}));
}
+ EventBus.on('queryAgent', (eventData) => {
+ // 鏇存柊缁勪欢鐨勬暟鎹�
+ if (eventData) {
+ if (fileList.value.length == 1) {
+ fileList.value = [];
+ } else {
+ fileList.value.forEach((item) => {
+ if (item.name != eventData.name) {
+ fileList.value = [];
+ fileList.value.push(item);
+ }
+ });
+ }
+ } else {
+ fileList.value = [];
+ }
+ });
});
- // console.log(urls.value, 8988);
const beforeRemove = (file) => {
emit('handleRemove');
fileList.value = [];
};
const handleChange = (fileList) => {
- // emit('update:fileList', fileList);
-
- // const successFiles = fileList.filter((item) => item.status === 'done');
- // if (successFiles.length > 0) {
- // emit(
- // 'success',
- // successFiles.map((item) => item.response.data)
- // );
- // emit(
- // 'selectFileCallback',
- // successFiles.map((item) => item.response.data)
- // );
- const formData = new FormData();
- for (let i = 0; i < fileList.length; i++) {
- formData.append('file', fileList[i].file);
- formData.append('conversation_id', props.sessionId);
- // formData.append('parser_config', '');
- // if (!parser_id.value) {
- // formData.append(
- // 'parser_id',
- // getIconByExtension(successFiles[i].name)
- // );
- // } else {
- // formData.append('parser_id', parser_id.value);
- // }
- }
- uploadAndParse(formData).then((res) => {
- onFileSelectedLoading.value = false;
- if (res.code == 200) {
- cancel();
- // uploaditemList.value = [];
- emit('selectFileCallback', uploaditemList.value);
- Message.success('涓婁紶鎴愬姛');
- } else {
- Message.error('涓婁紶澶辫触');
- }
+ 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, 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,
+ };
+ };
+
+ const typeXLse = computed(() => {
+ return props.type;
+ });
+
+ function beforeUpload(resolve) {
+ if (typeXLse) {
+ return new Promise((resolve) => {
+ resolve(true);
+ });
+ }
+ let name = ['xlsx', 'xls'];
+ let fileName = resolve.name.split('.');
+ let fileExt = fileName[fileName.length - 1];
+ let isTypeOk = name.indexOf(fileExt) >= 0;
+ if (!isTypeOk) {
+ Message.warning('鍙敮鎸佷笂浼狅細xlsx,xls');
+ } else {
+ return new Promise((resolve) => {
+ resolve(true);
+ });
+ }
+ }
</script>
--
Gitblit v1.8.0