From 6b9fdb35d1919507680262beedbfc988de36226f Mon Sep 17 00:00:00 2001 From: Deroino <117969239+Deroino@users.noreply.github.com> Date: Thu, 13 Nov 2025 05:40:02 +0800 Subject: [PATCH] feat(frontend): Implement multi-file upload with progress and speed --- sau_frontend/src/api/material.js | 4 +- sau_frontend/src/utils/request.js | 5 +- sau_frontend/src/views/MaterialManagement.vue | 167 +++++++++++++----- 3 files changed, 127 insertions(+), 49 deletions(-) diff --git a/sau_frontend/src/api/material.js b/sau_frontend/src/api/material.js index 04b9c23..898cae1 100644 --- a/sau_frontend/src/api/material.js +++ b/sau_frontend/src/api/material.js @@ -8,9 +8,9 @@ export const materialApi = { }, // 上传素材 - uploadMaterial: (formData) => { + uploadMaterial: (formData, onUploadProgress) => { // 使用http.upload方法,它已经配置了正确的Content-Type - return http.upload('/uploadSave', formData) + return http.upload('/uploadSave', formData, onUploadProgress) }, // 删除素材 diff --git a/sau_frontend/src/utils/request.js b/sau_frontend/src/utils/request.js index 14654ff..73a25e6 100644 --- a/sau_frontend/src/utils/request.js +++ b/sau_frontend/src/utils/request.js @@ -87,11 +87,12 @@ export const http = { return request.delete(url, { params }) }, - upload(url, formData) { + upload(url, formData, onUploadProgress) { return request.post(url, formData, { headers: { 'Content-Type': 'multipart/form-data' - } + }, + onUploadProgress }) } } diff --git a/sau_frontend/src/views/MaterialManagement.vue b/sau_frontend/src/views/MaterialManagement.vue index ca244ce..9173078 100644 --- a/sau_frontend/src/views/MaterialManagement.vue +++ b/sau_frontend/src/views/MaterialManagement.vue @@ -58,7 +58,8 @@ @@ -66,10 +67,11 @@
@@ -77,11 +79,26 @@
+ +
+
+ {{ file.name }} + + {{ uploadProgress[file.uid]?.speed || '' }} + +
+
+