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', }) } })解释这段代码
时间: 2023-06-17 10:05:06 浏览: 251
这段代码是一个小程序中的购物车页面的逻辑代码。主要实现了以下功能:
1. 点击购物车中的商品,可以选择或取消选择该商品,更新购物车列表和全局数据。
2. 点击购物车中的商品,可以跳转到商品详情页面。
3. 点击全选按钮,可以全选或取消全选购物车中的商品,更新购物车列表和全局数据。
4. 计算购物车中选择的商品的合计价格,并将其展示在页面上。
5. 点击结算按钮,将选择的商品放入订单列表中,跳转到订单页面。
值得注意的是,这段代码中的数据绑定使用了小程序中的 setData 方法,用于更新页面数据。同时,还使用了全局数据和缓存数据来保存购物车和订单的信息。
相关问题
onLoad() { let that = this wx.getStorage({ key: 'Userinfo', success(res) { //console.log(res.data) //userinfo } }) //console.log(util.formatTime(new Date())); //this.get_DBinf(); //this.navbarTap(); this.get_Sell_DBinf(); }, wanttobuy: function (e) { var that = this var buyind = e.currentTarget.dataset.buyindex //console.log("buyind:" + buyind); const buypostopenid = e.currentTarget.dataset.buypostopenid
在 `onLoad` 函数中,通过 `wx.getStorage` API 获取本地缓存中的 `Userinfo` 数据。同时调用了 `get_Sell_DBinf` 函数,加载了交易市场的数据。在 `wanttobuy` 函数中,通过点击事件获取了对应的购买信息的索引和卖家的 openid。但是这些代码片段并没有展示展示、点赞、评论功能的实现,您能否提供相关的代码片段供我参考?
tell(event){ let index=event.currentTarget.dataset.index console.log(index) wx.navigateTo({ url: '/pages/me/myOrders/tell/tell?id='+event.currentTarget.dataset.id+'&productname='+event.currentTarget.dataset.name, }) .then(res=>{ console.log(res) if(true){ wx.cloud.database().collection('shop').doc(this.data.orderList[index]._id).update({ data:{ status:3 } }) .then(result=>{ console.log(result) this.getOrderList() }) } }) },解释
这是一段微信小程序的代码,主要实现了用户点击某个订单后跳转到订单详情页面,并且更新该订单在数据库中的状态为3。具体解释如下:
首先,该段代码是一个事件处理函数,当用户点击某个订单时会触发该函数。
然后,通过获取该订单的索引值,可以得到该订单在订单列表中的位置。
接着,使用微信小程序的API `wx.navigateTo()` 跳转到订单详情页面,并且将订单的id和产品名称作为参数传递给该页面。
在跳转到订单详情页面之后,使用 Promise 的方式监听跳转成功后的回调函数,并且判断跳转是否成功,如果成功则执行下一步操作。
下一步操作就是使用云数据库的API `wx.cloud.database().collection().doc().update()` 更新该订单在数据库中的状态为3,表示该订单已完成。
最后,使用 `this.getOrderList()` 方法重新获取订单列表,以便更新界面上的订单状态。
阅读全文