design.md 1.0 KB

Context

uni-file-picker 组件会立即显示本地预览,无法控制上传失败时不显示。需要使用原生 API 手动控制。

Goals / Non-Goals

Goals:

  • 图片上传成功后才显示在界面上
  • 上传失败时不显示任何预览

Non-Goals:

  • 不实现复杂的进度条
  • 不处理图片压缩

Decisions

Decision 1: 替换为自定义上传按钮

使用 uni.chooseImage + 手动上传,精确控制显示时机。

选择

<!-- 上传按钮 -->
<view @tap="chooseImage">选择图片</view>

<!-- 手动渲染预览列表 -->
<view v-for="(item, index) in fileList" :key="index">
  <image :src="item.url"></image>
  <view @tap="deleteImage(index)">删除</view>
</view>

Implementation Steps

  1. 替换模板中的 uni-file-picker 为自定义按钮和预览列表
  2. 添加 chooseImage 方法:调用 uni.chooseImage 选择图片,然后逐一上传
  3. afterRead 只负责单个文件上传,成功后推入 fileList
  4. 删除方法复用现有的 deleteImage