//商家点击发货 send(event){ let index = event.currentTarget.dataset.index let that = this wx.showModal({ title: '提示', content: '是否确认发货', complete: (res) => { if (res.cancel) { wx.showToast({ icon:'error', title: '取消失败', }) } if (res.confirm) { //取消成功后 将该订单状态转换到 status = -2 吧 并不显示到待支付页面 db.collection('shop_order').doc(that.data.orderList[index]._id) .update({ data:{ status:1 } }) .then(res=>{ wx.showToast({ icon:'success', title: '发货成功成功', }) this.getOrderList() //这里要有一个退款函数 需要将商业执照办理 }) .catch(res=>{ console.log("更新失败",res) }) //取消成功后需要刷新数据 } } }) }, 显示更新成功 但updated:0,数据库没有改变
时间: 2024-02-20 09:58:55 浏览: 64
根据你提供的代码,我发现你在更新数据时将 status 更改为了 1,而不是 -2,这可能是导致更新失败的原因之一。你需要将该订单状态转换到 status = -2,而不是 status = 1。此外,如果你需要更改数据库中的数据,你需要在更新数据的时候传入新的数据对象,而你的代码中并没有这样做。因此,你需要将代码修改为以下内容:
```
db.collection('shop_order').doc(that.data.orderList[index]._id)
.update({
data: {
status: -2
}
})
.then(res => {
wx.showToast({
icon: 'success',
title: '发货成功成功',
})
this.getOrderList() //这里要有一个退款函数 需要将商业执照办理
})
.catch(res => {
console.log("更新失败", res)
})
```
这样应该可以成功更新数据库并将状态更改为 -2。
相关问题
chooseGood(event){ console.log(event.currentTarget.dataset.index) let index = event.currentTarget.dataset.index //做非的操作,点击一下就是未选择状态 this.data.cartList[index].choose = !this.data.cartList[index].choose //做数据绑定 this.setData({ cartList: this.data.cartList }) //更新全局里和缓存里的的购物车列表数据 app.globalData.cartList = this.data.cartList wx.setStorageSync('cartList', this.data.cartList) //计算合计 this.total() }, //在购物车点击商品跳入商品详情页面 toGoodDetail(event){ console.log(event.currentTarget.dataset.id) let id = event.currentTarget.dataset.id wx.navigateTo({ url: '/pages/goodDetail/goodDetail?id=' + id , }) }, //全选 chooseAll(){ this.setData({ allChoose:!this.data.allChoose }) if(this.data.allChoose == true){ for(let index in this.data.cartList){ this.data.cartList[index].choose = true } }else{ for(let index in this.data.cartList){ this.data.cartList[index].choose = false } } this.setData({ cartList:this.data.cartList }) //更新全局里和缓存里的的购物车列表数据 app.globalData.cartList = this.data.cartList wx.setStorageSync('cartList', this.data.cartList) //计算合计 this.total() }, //计算合计价格 total(){ let sum = 0; for(let index in this.data.cartList){ if(this.data.cartList[index].choose == true){ sum = sum + this.data.cartList[index].price * this.data.cartList[index].number } } this.setData({ sum: sum.toFixed(2)//合计价格四舍五入 小数点后两位 }) }, //跳入订单页面 toOrder(){ // 把选择的商品放到订单列表 let orderList = [] for(let index in this.data.cartList){ if(this.data.cartList[index].choose == true){ orderList.push(this.data.cartList[index]) } } app.globalData.orderList = orderList //把订单列表放到全局 if(app.globalData.orderList.length == 0){ wx.showToast({ icon:'error', title: '请选择商品', }) return } wx.navigateTo({ url: '/pages/order/order', }) } })解释这段代码
这段代码是一个小程序中的购物车页面的逻辑代码。主要实现了以下功能:
1. 点击购物车中的商品,可以选择或取消选择该商品,更新购物车列表和全局数据。
2. 点击购物车中的商品,可以跳转到商品详情页面。
3. 点击全选按钮,可以全选或取消全选购物车中的商品,更新购物车列表和全局数据。
4. 计算购物车中选择的商品的合计价格,并将其展示在页面上。
5. 点击结算按钮,将选择的商品放入订单列表中,跳转到订单页面。
值得注意的是,这段代码中的数据绑定使用了小程序中的 setData 方法,用于更新页面数据。同时,还使用了全局数据和缓存数据来保存购物车和订单的信息。
up(event){ console.log(event.currentTarget.dataset.index) let index=event.currentTarget.dataset.index wx.cloud.database().collection('product').doc(this.data.product[index]._id).update({ data:{ status:true } }).then(res=>{ wx.showToast({ title: '已上架', }) this.productList() }) },解释
这是一段微信小程序中的 JavaScript 代码,主要功能是在用户点击某个元素的时候,更新云数据库中的某个数据,然后重新加载产品列表并显示一个提示框。
具体解释如下:
1. 当用户点击某个元素时,会触发一个事件,该事件的参数会被传递到一个名为 `up` 的方法中。
2. 这个方法首先通过 `event.currentTarget.dataset.index` 获取当前元素的索引,然后通过这个索引找到对应的产品 ID。
3. 接着,使用 `wx.cloud.database().collection('product').doc(this.data.product[index]._id).update()` 方法更新数据库中的数据,将该产品的 `status` 字段设为 `true`,表示已上架。
4. 如果更新成功,在页面上显示一个提示框,提示用户该产品已上架。
5. 最后调用 `this.productList()` 方法重新加载产品列表,以便用户能够看到更新后的状态。
阅读全文