使用了colorUI框架
index.wxml
<view class="cu-bar bg-white margin-top">
<view class="action">
图片上传
</view>
<view class="action">
{{imgList.length}}/9
</view>
</view>
<view class="cu-form-group">
<view class="grid col-3 grid-square flex-sub">
<view class="bg-img" wx:for="{{imgList}}" wx:key="{{index}}" bindtap="ViewImage" data-url="{{imgList[index]}}">
<image src='{{imgList[index]}}' mode='aspectFill'></image>
<view class="cu-tag bg-red" catchtap="DelImg" data-index="{{index}}">
<text class="cuIcon-close"></text>
</view>
</view>
<view class="solids" bindtap="doUpload" wx:if="{{imgList.length<9}}">
<text class="cuIcon-cameraadd"></text>
</view>
</view>
</view>
index.js
// 上传图片
doUpload: function() {
var that = this
// 选择图片
wx.chooseImage({
// 选择图片数量
count: 1,
sizeType: ['compressed'],
sourceType: ['album', 'camera'],
success: function(res) {
wx.showLoading({
title: '上传中',
})
const filePath = res.tempFilePaths[0]
// 上传图片
// 定义图片名,为了避免重复我是用的是上传图片的时间戳
var timestamp = Date.parse(new Date());
const cloudPath = timestamp + filePath.match(/\.[^.]+?$/)[0]
wx.cloud.uploadFile({
cloudPath,
filePath,
success: resa => {
console.log('[上传文件] 成功:', resa)
that.setData({
imgList: that.data.imgList.concat(resa.fileID)
})
that.is_all_ok()
},
fail: e => {
console.error('[上传文件] 失败:', e)
wx.showToast({
icon: 'none',
title: '上传失败',
})
},
complete: () => {
wx.hideLoading()
}
})
},
fail: e => {
console.error(e)
}
})
},