From ddb35b10f11ff40279aaf0595c6590a3bc2e0926 Mon Sep 17 00:00:00 2001 From: Zzz1zz Date: Wed, 13 Aug 2025 01:26:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=96=B0=E5=A2=9E/=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/ImageUpload.md | 51 +++++----- src/components/common/ImageUpload.vue | 93 +++++++++++-------- src/types/business.ts | 7 +- .../project/drawer/project-form-drawer.vue | 17 ++-- 4 files changed, 92 insertions(+), 76 deletions(-) diff --git a/src/components/common/ImageUpload.md b/src/components/common/ImageUpload.md index 36f2aea..2eead57 100644 --- a/src/components/common/ImageUpload.md +++ b/src/components/common/ImageUpload.md @@ -9,24 +9,24 @@ - 支持上传进度显示 - 支持图片预览 - 支持多文件上传 -- 上传成功后自动回传URL +- 上传成功后自动回传 URL ## Props -| 参数 | 类型 | 默认值 | 说明 | -|------|------|--------|------| -| modelValue | UploadFile[] | [] | 文件列表,支持v-model | -| uploadType | UploadType | - | 上传类型:1合同模版,2图片 | -| maxSize | number | 10 * 1024 * 1024 | 最大文件大小(字节) | -| maxCount | number | - | 最大上传数量 | +| 参数 | 类型 | 默认值 | 说明 | +| ---------- | ------------ | ---------------- | ---------------------------- | +| modelValue | UploadFile[] | [] | 文件列表,支持 v-model | +| uploadType | UploadType | - | 上传类型:1 合同模版,2 图片 | +| maxSize | number | 10 _ 1024 _ 1024 | 最大文件大小(字节) | +| maxCount | number | - | 最大上传数量 | ## Events -| 事件名 | 参数 | 说明 | -|--------|------|------| -| update:modelValue | (value: UploadFile[]) | 文件列表更新时触发 | -| upload-success | (file: UploadFile, response: UploadResponse) | 上传成功时触发 | -| upload-error | (error: Error) | 上传失败时触发 | +| 事件名 | 参数 | 说明 | +| ----------------- | -------------------------------------------- | ------------------ | +| update:modelValue | (value: UploadFile[]) | 文件列表更新时触发 | +| upload-success | (file: UploadFile, response: UploadResponse) | 上传成功时触发 | +| upload-error | (error: Error) | 上传失败时触发 | ## 类型定义 @@ -42,7 +42,8 @@ interface UploadFile { interface UploadResponse { filename: string; size: number; - url: string; + signedPutURL: string; + objectKey?: string; } type UploadType = 1 | 2; // 1合同模版,2图片 @@ -63,18 +64,18 @@ type UploadType = 1 | 2; // 1合同模版,2图片 ``` @@ -110,6 +111,6 @@ const handleUploadError = (error) => { ## 注意事项 1. 组件会自动处理文件验证,包括文件大小和格式检查 -2. 上传成功后,文件对象会自动更新URL和状态 -3. 支持v-model双向绑定,父组件可以直接操作文件列表 -4. 上传类型必须从父组件传入,用于区分不同的上传场景 \ No newline at end of file +2. 上传成功后,文件对象会自动更新 URL 和状态 +3. 支持 v-model 双向绑定,父组件可以直接操作文件列表 +4. 上传类型必须从父组件传入,用于区分不同的上传场景 diff --git a/src/components/common/ImageUpload.vue b/src/components/common/ImageUpload.vue index cbc5fac..d34a584 100644 --- a/src/components/common/ImageUpload.vue +++ b/src/components/common/ImageUpload.vue @@ -1,7 +1,7 @@