Files
hfb_sys/docs/文件上传功能集成说明.md
T

216 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 文件上传功能集成说明
## ✅ 已完成的修复
### 1. 钱包页面提现按钮(已修复)
**文件**`frontend/src/features/wallet/views/WalletView.vue`
**修复内容**
- ✅ 移除了 `disabled` 属性
- ✅ 添加了路由跳转功能
- ✅ 移除了"待开发"标签
- ✅ 改为 `type="primary"` 样式
**现在的功能**
- 点击"申请提现"按钮会跳转到 `/wallet/withdrawal` 页面
---
### 2. 收款账号凭证上传(已集成)
**文件**`frontend/src/features/wallet/components/PaymentAccountDialog.vue`
**集成内容**
- ✅ 导入文件上传 API (`uploadFile`)
- ✅ 添加上传处理函数 (`handleUpload`)
- ✅ 添加删除图片函数 (`removeImage`)
- ✅ 更新模板,支持图片预览和删除
- ✅ 添加完整样式
**功能特性**
1. **图片预览** - 已上传的图片显示缩略图
2. **删除功能** - 鼠标悬停显示删除按钮
3. **数量限制** - 最多上传 3 张图片
4. **文件验证**
- 只能上传图片文件
- 最大 5MB
5. **上传状态** - 显示上传进度和 loading 图标
6. **图片优化** - 自动压缩和优化图片(使用 WebP 格式)
**使用场景**
- 支付宝/微信收款码截图
- 银行卡照片
- 其他支付凭证
---
## 🎯 使用说明
### 用户端操作流程
1. **进入收款账号管理**
- 访问:http://localhost:5173/wallet/payment-accounts
- 或从钱包页面点击"管理收款账号"
2. **添加收款账号**
- 点击"添加收款账号"按钮
- 选择账号类型(支付宝/微信/银行卡)
- 填写必填信息
- 上传凭证图片(可选):
- 点击"上传凭证"按钮
- 选择图片文件
- 等待上传完成
- 可以上传最多 3 张图片
- 点击图片上的删除按钮可以移除
3. **申请提现**
- 在钱包页面点击"申请提现"
- 选择收款账号
- 输入金额
- 提交申请
---
## 📸 支持的图片格式
- **输入格式**JPEG, PNG, WebP
- **输出格式**:WebP(自动转换)
- **最大尺寸**5MB
- **图片处理**
- 自动压缩
- 保持宽高比
- 优化文件大小
---
## 🔧 技术实现
### 文件上传流程
```
1. 用户选择图片
2. 验证文件类型和大小
3. 调用 optimizeImageForUpload() 优化图片
4. 上传到服务器 (/api/files/upload)
5. 返回 URL 和元数据
6. 保存 URL 到 certificate_urls 数组
```
### API 接口
```typescript
uploadFile(file: File, scene: string): Promise<UploadedFile>
```
**参数**
- `file`: File 对象
- `scene`: 上传场景标识(使用 `'payment-cert'`
**返回**
```typescript
{
object_key: string
url: string
thumbnail_url?: string
medium_url?: string
filename: string
content_type: string
size: number
}
```
---
## 🎨 UI 设计
### 上传区域
```
┌─────────┬─────────┬─────────┐
│ 图片1 │ 图片2 │ + 上传 │
│ [删除] │ [删除] │ 凭证 │
└─────────┴─────────┴─────────┘
```
### 交互效果
- ✅ 鼠标悬停显示删除按钮
- ✅ 上传时显示 loading 图标
- ✅ 上传按钮有 hover 效果
- ✅ 图片预览(100x100px
- ✅ 响应式布局
---
## 🔒 安全说明
1. **文件验证**
- 前端验证文件类型
- 前端验证文件大小
- 后端也会进行二次验证
2. **图片处理**
- 自动压缩减小文件大小
- 统一转换为 WebP 格式
- 限制图片尺寸
3. **存储**
- URL 存储在数据库
- 图片存储在 MinIO/OSS
- 支持私有访问控制
---
## 📋 测试建议
### 功能测试
- [ ] 上传 JPEG 图片
- [ ] 上传 PNG 图片
- [ ] 上传 WebP 图片
- [ ] 上传超过 5MB 的图片(应该失败)
- [ ] 上传非图片文件(应该失败)
- [ ] 上传 3 张图片(达到上限)
- [ ] 删除已上传的图片
- [ ] 重新上传删除的图片
### UI 测试
- [ ] 图片预览显示正常
- [ ] 删除按钮悬停显示
- [ ] 上传中显示 loading
- [ ] 上传成功提示
- [ ] 上传失败提示
- [ ] 布局响应式
---
## 🐛 已知限制
1. **当前版本**
- 只支持图片上传
- 最多 3 张图片
- 单个文件最大 5MB
2. **未来优化**
- 支持 PDF 文件
- 批量上传
- 拖拽上传
- 图片裁剪
---
## 🎉 总结
**文件上传功能已完全集成**
两个主要修复:
1. ✅ 钱包页面"申请提现"按钮可点击
2. ✅ 收款账号凭证上传功能完整实现
用户现在可以:
- 正常使用提现功能
- 上传收款账号凭证图片
- 查看和管理已上传的图片
- 删除不需要的图片
系统功能完整,可以正常使用!