微信小程序upload

<view class="form-part else-part">
    <view class="part-title else-title">
      <view class="img-label">线下病历/处方({{imgList.length}}/{{maxImgList}})</view>
    </view>
    <view class="part-content img-box-wrap">
      <view class="img-box" wx:for="{{imgList}}" wx:key="index">
        <image src="{{ item.url }}" mode="aspectFill" />
        <image class="icon-del" src="{{ icon.del }}" data-index="{{index}}" bind:tap="onImgDel" />
      </view>
      <view class="img-box upload" wx:if="{{imgList.length < maxImgList}}" bind:tap="onImgUpload">
        <image src="{{ icon.upload }}" />
      </view>
    </view>
</view>

import { request, uploadFile, showErrorToast } from '../../utils/util'
data: {
    maxImgList: 4,
    imgList: [],
}
onImgUpload() {
    const { maxImgList, imgList = [] } = this.data
    wx.chooseImage({
      count: maxImgList - imgList.length,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success: (result) => {
        const tempFilePaths = result.tempFilePaths
        this.uploadToCloud(tempFilePaths)
      },
      fail: () => {
        // on cancel
      }
    })
},
uploadToCloud(paths) {
    const { maxImgList, imgList } = this.data
    const uploadTasks = paths.map((path, index) => uploadFile(path))
    Promise.all(uploadTasks)
      .then(data => {
        console.log('upload', data)
        const newImgList = data.map(path => ({ url: path }))
        const mergeList = imgList.concat(newImgList)
        // 防止网速慢导致的图片超出限制,优先删除最早上传~=最快上传文件
        this.setData({ imgList: mergeList.slice(-maxImgList) })
      })
      .catch(e => {
        showErrorToast('上传失败')
        console.log(e)
      })
},
onImgDel(e) {
    const { index } = e.target.dataset
    const { imgList = [] } = this.data
    imgList.splice(index, 1)
    this.setData({ imgList })
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值