// data-index='{{index}}' 把索引传递过去
<view class='btn pay_now' data-index='{{index}}' data-orderid='{{item.order_id}}' bindtap='orderTakeDelivery'> 确认收货 </view>
//确认收货 orderTakeDelivery: function (e) { const that = this; let order_id = e.currentTarget.dataset.orderid; let idx = e.currentTarget.dataset.index; // 在这里拿到传递过来的索引 let postData = { order_id: order_id, }; let datainfo = requestSign.requestSign(postData); header.sign = datainfo; wx.request({ url: api.get_orderTakeDelivery, data: postData, header: header, method: 'POST', dataType: 'json', responseType: 'text', success: (res) => { if (res.data.code == 1) { wx.showToast({ title: res.data.message, icon: 'none' }) // 全部 只有在order_status == -999全部的状态下点击确认收货按钮 if (that.order_status == -999) { //order_status = 4 把状态改为已收货状态 (根据索引idx找到当前这一项) that.data.orderList[idx].order_status = 4 // 这个地方是赋值 是真正的同步页面数据 that.setData({ ["orderList[" + idx + "]"]: that.data.orderList[idx] }) // 转为完成状态 } else { // 因为只有全部 和 待收货状态下有确认收货按钮 所以在else里面 就是待收货状态 把当前这一项从数组里面删除 that.data.orderList.splice(idx, 1) // =>根据索引删除当前这一项 // 同时同步页面页数 that.setData({ orderList: that.data.orderList }) } that.getChannelOrderDetailList(); } else { wx.showToast({ title: res.data.message, icon: 'none' }) } } }) },