From ab829060f1a4a8c0adbe95a7f7741c831d2478ac Mon Sep 17 00:00:00 2001 From: theo <971366405@qq.com> Date: Thu, 28 Aug 2025 11:59:15 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20:recycle:=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=BA=86=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=EF=BC=8C=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E8=BF=9B=E5=BA=A6=E6=9D=A1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构了文件上传,解决文件上传不显示进度条的问题,现在多选文件上传时,每个文件有单独的进度条 --- src/api/file-api.ts | 10 ++++- src/components/Upload/FileUpload.vue | 66 ++++++++++++---------------- 2 files changed, 35 insertions(+), 41 deletions(-) diff --git a/src/api/file-api.ts b/src/api/file-api.ts index 826698ef..b899c447 100644 --- a/src/api/file-api.ts +++ b/src/api/file-api.ts @@ -1,13 +1,19 @@ import request from "@/utils/request"; const FileAPI = { - /** 上传文件 */ - upload(formData: FormData) { + /** 上传文件 (传入 FormData,上传进度回调) */ + upload(formData: FormData, onProgress?: (percent: number) => void) { return request({ url: "/api/v1/files", method: "post", data: formData, headers: { "Content-Type": "multipart/form-data" }, + onUploadProgress: (progressEvent) => { + if (progressEvent.total) { + const percent = Math.round((progressEvent.loaded * 100) / progressEvent.total); + onProgress?.(percent); + } + }, }); }, diff --git a/src/components/Upload/FileUpload.vue b/src/components/Upload/FileUpload.vue index 6857acec..baa88a67 100644 --- a/src/components/Upload/FileUpload.vue +++ b/src/components/Upload/FileUpload.vue @@ -6,7 +6,6 @@ :style="props.style" :before-upload="handleBeforeUpload" :http-request="handleUpload" - :on-progress="handleProgress" :on-success="handleSuccess" :on-error="handleError" :accept="props.accept" @@ -20,25 +19,24 @@ - -