From ea65ac2badeb68a0da5c0d4a69d27a9ba630c3d0 Mon Sep 17 00:00:00 2001 From: zhangxiao <898441624@qq.com> Date: 星期四, 29 八月 2024 21:45:21 +0800 Subject: [PATCH] fix: 修改bug --- src/views/sessionManager/components/uploadFile.vue | 73 +++++++++++++++++++----------------- 1 files changed, 39 insertions(+), 34 deletions(-) diff --git a/src/views/sessionManager/components/uploadFile.vue b/src/views/sessionManager/components/uploadFile.vue index ed34dcf..4005b66 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,12 +28,13 @@ import { computed, ref, onMounted, watch, watchEffect } from 'vue'; import { uploadAndParse } from '@/api/session'; import { useUserStore } from '@/store'; + import { Message } from '@arco-design/web-vue'; const userStore = useUserStore(); const props = defineProps({ limit: { type: Number, - default: 3, + default: 6, }, sessionId: String, action: String, // 涓婁紶鐨勬湇鍔″櫒鍦板潃 @@ -44,6 +49,8 @@ ]); const urls = computed(() => props.url); const fileList = ref([]); + const filesData = ref([]); + const uploaditemList = ref([]); watch( () => [props.url, props.sessionId], @@ -80,43 +87,41 @@ }; 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('涓婁紶澶辫触'); - } + uploaditemList.value = fileList.map((item, index) => { + return { + index: index, + name: item.name, + size: (item.file.size / 1024).toFixed(2) + 'K', + }; }); - // } + filesData.value = fileList; + + emit('selectFileCallback', uploaditemList.value, fileList); }; + + function beforeUpload(resolve) { + 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); + }); + } + // if (form.value.maininformation.length > 4) { + // Message.error('鏂囦欢涓嶈兘瓒呰繃5涓�'); + // } else { + // return new Promise((resolve) => { + // resolve(true); + // }); + // } + } </script> -- Gitblit v1.8.0