今天记录一下购物车案例,实现购物车的全选,单选,数量加一减一,金额总数,以及清空购物车。

<view class="main">
<!-- hasList 列表是否有数据 --><view wx:if="{{hasList}}"><view class="cart-box"><view class="cart-list" wx:for="{{carts}}" wx:key="{{index}}"><!-- 选中图标--><icon wx:if="{{item.selected}}" type="success" color="red" data-index="{{index}}"  class="cart-pro-select" bindtap="selectList"/><icon wx:else type="circle" class="cart-pro-select" data-index="{{index}}" bindtap="selectList"/><navigator url="../details/details?id={{item.id}}"><image class="cart-thumb" src="{{item.image}}"></image></navigator><text class="cart-pro-name">{{item.title}}</text><text class="cart-pro-price">¥{{item.price}}</text><view class="cart-count-box"><text class="cart-count-down" bindtap="minusCount" data-index="{{index}}">-</text><text class="cart-count-num">{{item.num}}</text><text class="cart-count-add" bindtap="addCount" data-index="{{index}}">+</text></view><text class="cart-del" bindtap="deleteList" data-index="{{index}}">×</text></view></view><view class="cart-footer"><!-- 全选图标 --><icon wx:if="{{selectAllStatus}}" type="success_circle" color="#fff" class="total-select" bindtap="selectAll"/><icon wx:else type="circle" color="#fff" class="total-select" bindtap="selectAll"/><navigator url="../orders/orders"><view class="order-icon"></view></navigator><text>全选</text><!-- 总金额 --><text class="cart-toatl-price">¥{{totalPrice}}</text></view></view><view wx:else><view class="cart-no-data">购物车是空的哦~</view></view>
</view>

// page/component/new-pages/cart/cart.js
Page({data: {carts:[],               // 购物车列表hasList:false,          // 列表是否有数据totalPrice:0,           // 总价,初始为0selectAllStatus:true    // 全选状态,默认全选
  },onShow() {this.setData({hasList: true,carts:[{id:1,title:'白菜 半斤',image:'/image/s5.png',num:4,price:0.02,selected:true},{id:2,title:'素米 500g',image:'/image/s6.png',num:1,price:0.05,selected:true}]});this.getTotalPrice();},/*** 当前商品选中事件*/selectList(e) {const index = e.currentTarget.dataset.index;let carts = this.data.carts;const selected = carts[index].selected;carts[index].selected = !selected;this.setData({carts: carts});this.getTotalPrice();},/*** 删除购物车当前商品*/deleteList(e) {const index = e.currentTarget.dataset.index;let carts = this.data.carts;carts.splice(index,1);this.setData({carts: carts});if(!carts.length){this.setData({hasList: false});}else{this.getTotalPrice();}},/*** 购物车全选事件*/selectAll(e) {let selectAllStatus = this.data.selectAllStatus;selectAllStatus = !selectAllStatus;let carts = this.data.carts;for (let i = 0; i < carts.length; i++) {carts[i].selected = selectAllStatus;}this.setData({selectAllStatus: selectAllStatus,carts: carts});this.getTotalPrice();},/*** 绑定加数量事件*/addCount(e) {const index = e.currentTarget.dataset.index;let carts = this.data.carts;let num = carts[index].num;num = num + 1;carts[index].num = num;this.setData({carts: carts});this.getTotalPrice();},/*** 绑定减数量事件*/minusCount(e) {const index = e.currentTarget.dataset.index;let carts = this.data.carts;let num = carts[index].num;if(num <= 1){return false;}num = num - 1;carts[index].num = num;this.setData({carts: carts});this.getTotalPrice();},/*** 计算总价*/getTotalPrice() {let carts = this.data.carts;                  // 获取购物车列表let total = 0;for(let i = 0; i<carts.length; i++) {         // 循环列表得到每个数据if(carts[i].selected) {                     // 判断选中才会计算价格total += carts[i].num * carts[i].price;   // 所有价格加起来
      }}this.setData({                                // 最后赋值到data中渲染到页面
      carts: carts,totalPrice: total.toFixed(2)});}})

转载于:https://www.cnblogs.com/juewuzhe/p/8227799.html

微信小程序(11)--购物车相关推荐

  1. 微信小程序(购物车)--在wxml中设置保留小数位数

    微信小程序(购物车)–在wxml中设置保留小数位数 一.在该页面文件夹下新建一个wxs后缀的文件 var filters = {toFix: function (value) {return valu ...

  2. 微信小程序实战 购物车功能

    代码地址如下: http://www.demodashi.com/demo/12400.html 一.准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.com ...

  3. 微信小程序实现购物车功能,包含完整小程序代码和运行效果截图

    微信小程序实现购物车功能,在商场比较常见,今天刚刚做好,效果不错. 下面从js文件,json文件,wxml文件和wxss文件,分享给大家. 直接上代码: 目录 1.index.js文件内容 2.ind ...

  4. 微信小程序实现购物车页面

    微信小程序实现购物车页面 先来弄清楚购物车的需求. 单选.全选和取消,而且会随着选中的商品计算出总价 单个商品购买数量的增加和减少 删除商品.当购物车为空时,页面会变为空购物车的布局 根据设计图,我们 ...

  5. [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)

    本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类  -- 微信小程序实战商城 ...

  6. 微信小程序之购物车功能

    前言 以往的购物车,基本都是通过大量的 DOM 操作来实现.微信小程序其实跟 vue.js 的用法非常像,接下来就看看小程序可以怎样实现购物车功能. 需求 先来弄清楚购物车的需求. 单选.全选和取消, ...

  7. 小程序判断数组的index是否为空_微信小程序之购物车功能(仅学习)

    购物车,基本都是通过大量的 DOM 操作来实现.微信小程序其实跟 vue.js 的用法非常像,接下来就看看小程序可以怎样实现购物车功能. 需求 先来弄清楚购物车的需求. 单选.全选和取消,而且会随着选 ...

  8. 微信小程序:购物车总结(商品左右联动)

    微信小程序开发之购物车总结 之前开发小程序也是一头雾水,也走了很多的坑今天写出来给大家分享一下开发过程中所走的弯路,加以总结,点滴积累,供大家参考,也希望大佬们指正. 说起购物车那也的有商品列表,列表 ...

  9. 微信小程序商城购物车页 二维数组怎么做

    微信小程序购物车 二维数组 不同商家不同商品版本 需求:电商平台内有众多不同商家,购物车页需要购买的产品以商家的类目作为分类,并满足基本的购物车需求: http://www.kundonghui.co ...

  10. 微信小程序之购物车 —— 微信小程序实战商城系列(5)

    续上一篇的文章:微信小程序之商品属性分类 -- 微信小程序实战商城系列(4) 自从认识某人后,我收获了两个成功.登录成功.付款成功,而且还拥有了自己的一辆车: 购物车 也发现了自己的不足之处: 余额不 ...

最新文章

  1. Jira 6.0.5的详细安装及汉化授权
  2. chapter1:The way of the program
  3. jsp头文件的内容/response.setHeader
  4. 外星人跑深度学习_上海港汇外星人店,51M2020开光追和DLSS2.0畅玩《赛博朋克2077》...
  5. SQLAlchemy create table
  6. kubernetes英语怎么读_英语音标怎么读?如何从零基础英语音标入门英语口语学习...
  7. Docker的mysql镜像_详解docker下的Mysql镜像的使用方法
  8. 山特UPS电源注意事项
  9. linux网络串口工具下载,串口调试工具手机版下载
  10. 南阳oj 括号配对问题
  11. word中正文分栏重新换页问题
  12. 我的世界服务器启动显示非正常,大佬们,HMCL启动提示非正常退出,请帮我看看怎么回事。...
  13. 感谢各位iPhone12机主,苹果又高了
  14. VirtualBox虚拟机使用Vagrant连接win(甲骨文Oracle VM )
  15. 【项目实战】---商品详情页的制作
  16. 互联网公司logo logo制作
  17. 魔百盒九联UNT401H,通刷刷机固件
  18. 242 剪刀包袱锤的方式决定谁请客
  19. java springboot 体育场馆预约小程序源码
  20. 什么是周k线,月K线,年K线?周k线,月K线,年K线是什么意思

热门文章

  1. Java复习-线程之间的通信与同步
  2. php 登录注册api接口代码
  3. php限定时间内同一ip只能访问一次
  4. Javascript笔记02:严格模式的特定要求
  5. C语言-getopt函数
  6. 位置导航---MXCMS Position标签说明
  7. POSIX正则表达式 验证电子邮件地址
  8. javascript 运算+
  9. linux内核kfifo(一)
  10. OpenStack Neutron浅析(三)