微信小程序(11)--购物车
今天记录一下购物车案例,实现购物车的全选,单选,数量加一减一,金额总数,以及清空购物车。
<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)--购物车相关推荐
- 微信小程序(购物车)--在wxml中设置保留小数位数
微信小程序(购物车)–在wxml中设置保留小数位数 一.在该页面文件夹下新建一个wxs后缀的文件 var filters = {toFix: function (value) {return valu ...
- 微信小程序实战 购物车功能
代码地址如下: http://www.demodashi.com/demo/12400.html 一.准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.com ...
- 微信小程序实现购物车功能,包含完整小程序代码和运行效果截图
微信小程序实现购物车功能,在商场比较常见,今天刚刚做好,效果不错. 下面从js文件,json文件,wxml文件和wxss文件,分享给大家. 直接上代码: 目录 1.index.js文件内容 2.ind ...
- 微信小程序实现购物车页面
微信小程序实现购物车页面 先来弄清楚购物车的需求. 单选.全选和取消,而且会随着选中的商品计算出总价 单个商品购买数量的增加和减少 删除商品.当购物车为空时,页面会变为空购物车的布局 根据设计图,我们 ...
- [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)
本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类 -- 微信小程序实战商城 ...
- 微信小程序之购物车功能
前言 以往的购物车,基本都是通过大量的 DOM 操作来实现.微信小程序其实跟 vue.js 的用法非常像,接下来就看看小程序可以怎样实现购物车功能. 需求 先来弄清楚购物车的需求. 单选.全选和取消, ...
- 小程序判断数组的index是否为空_微信小程序之购物车功能(仅学习)
购物车,基本都是通过大量的 DOM 操作来实现.微信小程序其实跟 vue.js 的用法非常像,接下来就看看小程序可以怎样实现购物车功能. 需求 先来弄清楚购物车的需求. 单选.全选和取消,而且会随着选 ...
- 微信小程序:购物车总结(商品左右联动)
微信小程序开发之购物车总结 之前开发小程序也是一头雾水,也走了很多的坑今天写出来给大家分享一下开发过程中所走的弯路,加以总结,点滴积累,供大家参考,也希望大佬们指正. 说起购物车那也的有商品列表,列表 ...
- 微信小程序商城购物车页 二维数组怎么做
微信小程序购物车 二维数组 不同商家不同商品版本 需求:电商平台内有众多不同商家,购物车页需要购买的产品以商家的类目作为分类,并满足基本的购物车需求: http://www.kundonghui.co ...
- 微信小程序之购物车 —— 微信小程序实战商城系列(5)
续上一篇的文章:微信小程序之商品属性分类 -- 微信小程序实战商城系列(4) 自从认识某人后,我收获了两个成功.登录成功.付款成功,而且还拥有了自己的一辆车: 购物车 也发现了自己的不足之处: 余额不 ...
最新文章
- Jira 6.0.5的详细安装及汉化授权
- chapter1:The way of the program
- jsp头文件的内容/response.setHeader
- 外星人跑深度学习_上海港汇外星人店,51M2020开光追和DLSS2.0畅玩《赛博朋克2077》...
- SQLAlchemy create table
- kubernetes英语怎么读_英语音标怎么读?如何从零基础英语音标入门英语口语学习...
- Docker的mysql镜像_详解docker下的Mysql镜像的使用方法
- 山特UPS电源注意事项
- linux网络串口工具下载,串口调试工具手机版下载
- 南阳oj 括号配对问题
- word中正文分栏重新换页问题
- 我的世界服务器启动显示非正常,大佬们,HMCL启动提示非正常退出,请帮我看看怎么回事。...
- 感谢各位iPhone12机主,苹果又高了
- VirtualBox虚拟机使用Vagrant连接win(甲骨文Oracle VM )
- 【项目实战】---商品详情页的制作
- 互联网公司logo logo制作
- 魔百盒九联UNT401H,通刷刷机固件
- 242 剪刀包袱锤的方式决定谁请客
- java springboot 体育场馆预约小程序源码
- 什么是周k线,月K线,年K线?周k线,月K线,年K线是什么意思