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

4.7 KiB
Raw Blame History

文件上传功能集成说明

已完成的修复

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. 进入收款账号管理

  2. 添加收款账号

    • 点击"添加收款账号"按钮
    • 选择账号类型(支付宝/微信/银行卡)
    • 填写必填信息
    • 上传凭证图片(可选):
      • 点击"上传凭证"按钮
      • 选择图片文件
      • 等待上传完成
      • 可以上传最多 3 张图片
      • 点击图片上的删除按钮可以移除
  3. 申请提现

    • 在钱包页面点击"申请提现"
    • 选择收款账号
    • 输入金额
    • 提交申请

📸 支持的图片格式

  • 输入格式JPEG, PNG, WebP
  • 输出格式WebP(自动转换)
  • 最大尺寸5MB
  • 图片处理
    • 自动压缩
    • 保持宽高比
    • 优化文件大小

🔧 技术实现

文件上传流程

1. 用户选择图片
   ↓
2. 验证文件类型和大小
   ↓
3. 调用 optimizeImageForUpload() 优化图片
   ↓
4. 上传到服务器 (/api/files/upload)
   ↓
5. 返回 URL 和元数据
   ↓
6. 保存 URL 到 certificate_urls 数组

API 接口

uploadFile(file: File, scene: string): Promise<UploadedFile>

参数

  • file: File 对象
  • scene: 上传场景标识(使用 'payment-cert'

返回

{
  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. 收款账号凭证上传功能完整实现

用户现在可以:

  • 正常使用提现功能
  • 上传收款账号凭证图片
  • 查看和管理已上传的图片
  • 删除不需要的图片

系统功能完整,可以正常使用!