小程序上传、删除、预览图片

图片预览

wxml

<image src="{{baseUrl}}{{imgSrc}}" mode="widthFix" style="width:100%;" data-src="{{baseUrl}}{{imgSrc}}" bindtap='previewImage'></image>

js

previewImage: function (e) {
    console.log(1);
    var current = e.target.dataset.src;   //这里获取到的是一张本地的图片
    wx.previewImage({
      current: current,//需要预览的图片链接列表
      urls: [current]  //当前显示图片的链接
    })
  },

 

以下上传、删除图片

wxml

<!-- 评价 -->
<view class='comment_box flexBetween'>
  <image src='{{baseUrl}}{{orderInfo.thumb_img}}' mode='aspectFill' style='width: 100rpx;height:100rpx;'></image>
  <view style='display:inline-block;margin-left:20rpx;'>
    <view>满意度评价</view>
    <!-- 星星评价-->
    <view class="comment-right">
      <block wx:for="{{[0, 1, 2, 3, 4]}}" wx:key=''>
        <image wx:if="{{ index < starId }}" src="/images/common/comment01.png" bindtap="startTap" id="{{index}}"></image>
        <image wx:else src="/images/common/comment01_hui.png" bindtap="startTap" id="{{index}}"></image>
      </block>
    </view>
  </view>
</view>

<!-- 评价内容 -->
<view class='comment_box'>
  <textarea placeholder='亲! 留下你的评论吧~' placeholder-style='color:#999;' bindinput="bindContent"></textarea>
  <!-- 上传图片 -->
  <view class='chooseImg'>
    <image wx:for="{{imagesList}}" wx:key="index" src='{{item}}' mode='aspectFill' style='width:210rpx;height:210rpx;' data-index="{{index}}" bindlongtap="deleteImage"></image>
    <image wx:if="{{num < maxLength}}" src='/images/common/uploadImg.png' mode='widthFix' style='width:210rpx;' bindtap='uploadImg'></image>
  </view>
</view>

<!-- 提交评论 -->
<view class='btnBox'>
  <view class='submit_btn flexCenter' bindtap="submitComment">发布</view>
</view>

js

const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    baseUrl: app.globalData.baseUrl,
    starId: 0, //星级个数
    imagesList: [],
    content: '', //评论内容
    orderInfo: {}, //存放当前评价的商品信息
    num: 0,//已上传的图片数量
    maxLength: 6//允许上传的最大数量
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    console.log(options);
    var orderInfo = JSON.parse(options.orderInfo);
    this.setData({
      orderInfo: orderInfo,
      shop_id: options.shop_id
    })
  },



  /**
   * 点击星星评分
   */
  startTap: function(e) {
    this.setData({
      starId: parseInt(e.currentTarget.id) + 1
    });
  },

  // 更新评论内容
  bindContent: function(e) {
    this.setData({
      content: e.detail.value
    })
  },
  // 上传图片
  uploadImg: function() {
    var that = this;
    let imagesList = [];
    let maxSize = 1024 * 1024;
    let flag = true;
    wx.chooseImage({
      count: that.data.maxLength - that.data.imagesList.length, //最多可以选择的图片总数
      sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
      success: function(res) {
        wx.showToast({
          title: '正在上传...',
          icon: 'loading',
          mask: true,
          duration: 500
        })
        for (let i = 0; i < res.tempFiles.length; i++) {
          if (res.tempFiles[i].size > maxSize) {
            flag = false;
            console.log(111)
            wx.showModal({
              content: '图片太大,不允许上传',
              showCancel: false,
              success: function(res) {
                if (res.confirm) {
                  console.log('用户点击确定')
                }
              }
            });
          }
        }
        if (res.tempFiles.length > that.data.maxLength) {
          console.log('222');
          wx.showModal({
            content: '最多能上传' + that.data.maxLength + '张图片',
            showCancel: false,
            success: function(res) {
              if (res.confirm) {
                console.log('确定');
              }
            }
          })
        }
        if (flag == true && res.tempFiles.length <= that.data.maxLength) {
          that.setData({
            imagesList: that.data.imagesList.concat(res.tempFilePaths),
            num: that.data.num + res.tempFiles.length
          })
        }
        console.log(res);
      },
      fail: function(res) {
        console.log(res);
      }
    })
  },



  /**删除图片 */
  deleteImage: function (e) {
    var that = this;
    wx.showModal({
      title: '提示',
      content: '确定删除图片吗?',
      success(res) {
        if (res.confirm) {
          var imagesList = that.data.imagesList;
          var index = e.currentTarget.dataset.index;
          imagesList.splice(index, 1);
          var num = that.data.num - 1
          that.setData({
            imagesList: imagesList,
            num: num,
          });
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })
    
  },





  // 提交评论
  submitComment: function() {
    var that = this;
    if (that.data.starId == 0) {
      wx.showToast({
        title: '满意度评价不能为空',
        icon: 'none',
        duration: 2000
      });
      return false;
    }
    if (that.data.content.length <= 0) {
      wx.showToast({
        title: '评价内容不能为空',
        icon: 'none',
        duration: 2000
      });
      return false;
    }
    var url = app.globalData.reqUrl + 'shop_goods_evaluate/goods_evaluate';
    var params = {
      user_id: app.globalData.userId,
      order_number: this.data.orderInfo.shop_order_number,
      goods_id: this.data.orderInfo.goods_id,
      attr: this.data.orderInfo.attr,
      title: this.data.orderInfo.title,
      thumb_img: this.data.orderInfo.thumb_img,
      content: this.data.content,
      grade: this.data.starId,
      shop_id: this.data.shop_id
    }
    app.request.requestPostApi(url, params, this, this.successFun_goComment, this.failFun);
  },
  successFun_goComment: function(res, selfObj) {
    var that = selfObj;
    console.log(res);
    if (res.code == 200) {
      var id = res.id;
      console.log(res);
      wx.showLoading({
        title: '上传中...',
        icon: 'loading'
      })
      for (let i = 0; i < that.data.imagesList.length; i++) {
        wx.uploadFile({
          url: app.globalData.reqUrl + 'shop_goods_evaluate/upload?id=' + id,
          filePath: that.data.imagesList[i],
          name: 'uploadfile_ant',
          header: {
            "Content-Type": "multipart/form-data"
          },
          success: function(data) {
            console.log(data);
            if ((that.data.imagesList.length - 1) == i) {
              wx.hideLoading();
              wx.showToast({
                title: '评价成功',
                icon: 'none',
                duration: 2000
              })

              that.setData({
           starId: 0, //星级个数
            imagesList: [],
            content: '', //评论内容
            orderInfo: {}, //存放当前评价的商品信息
            num: 0,//已上传的图片数量
 }); setTimeout(function() { wx.redirectTo({ url: '/pages/orderList/orderList?status=all', }) }, 2000) } }, fail: function(data) { console.log(data); } }); } }else { wx.showToast({ title: res.message, icon: 'none' }) } }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function() { }, /** * 生命周期函数--监听页面显示 */ onShow: function() { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function() { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function() { }, /** * 用户点击右上角分享 */ onShareAppMessage: function() { } })
posted @ 2019-12-12 17:50  小白&小菜  阅读(1356)  评论(0编辑  收藏  举报
我是一个小菜鸟,飞呀飞呀,快飞高