From 2dfc1c068f2c528c93adef1138a7551d3a5d5391 Mon Sep 17 00:00:00 2001 From: JefferyHcool <1063474837@qq.com> Date: Fri, 6 Jun 2025 22:02:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(NoteForm):=20=E5=A2=9E=E5=8A=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8A=E4=BC=A0=E7=8A=B6=E6=80=81=E5=8F=8D=E9=A6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加上传中和上传成功状态的显示- 优化上传逻辑,增加状态控制 - 提升用户体验,明确上传过程 --- .../pages/HomePage/components/NoteForm.tsx | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/BillNote_frontend/src/pages/HomePage/components/NoteForm.tsx b/BillNote_frontend/src/pages/HomePage/components/NoteForm.tsx index d9f21b3..d9cc6bf 100644 --- a/BillNote_frontend/src/pages/HomePage/components/NoteForm.tsx +++ b/BillNote_frontend/src/pages/HomePage/components/NoteForm.tsx @@ -7,7 +7,7 @@ import { FormLabel, FormMessage, } from '@/components/ui/form.tsx' -import { useEffect } from 'react' +import { useEffect,useState } from 'react' import { useForm, useWatch } from 'react-hook-form' import { zodResolver } from '@hookform/resolvers/zod' import { z } from 'zod' @@ -119,6 +119,9 @@ const CheckboxGroup = ({ /* -------------------- 主组件 -------------------- */ const NoteForm = () => { + + const [isUploading, setIsUploading] = useState(false) + const [uploadSuccess, setUploadSuccess] = useState(false) /* ---- 全局状态 ---- */ const { addPendingTask, currentTaskId, setCurrentTask, getCurrentTask, retryTask } = useTaskStore() @@ -185,12 +188,18 @@ const NoteForm = () => { const handleFileUpload = async (file: File, cb: (url: string) => void) => { const formData = new FormData() formData.append('file', file) + setIsUploading(true) + setUploadSuccess(false) + try { - const { data } = await uploadFile(formData) - if (data.code === 0) cb(data.data.url) + const data = await uploadFile(formData) + cb(data.url) + setUploadSuccess(true) } catch (err) { console.error('上传失败:', err) message.error('上传失败,请重试') + } finally { + setIsUploading(false) } } @@ -335,10 +344,16 @@ const NoteForm = () => { input.click() }} > -

- 拖拽文件到这里上传
- 或点击选择文件 -

+ {isUploading ? ( +

上传中,请稍候…

+ ) : uploadSuccess ? ( +

上传成功!

+ ) : ( +

+ 拖拽文件到这里上传
+ 或点击选择文件 +

+ )} )}