微信小程序购物车全选反选功能以及合计
微信小程序基于Vant Weapp的购物车功能实现
1、单选
使用微信小程序原生表单组件checkbox和checkbox-group
注意:checkbox原生不支持bind:change事件,checkbox-group支持
<checkbox-group bindchange="handleCheck"><checkbox value="1" checked="{{isCheck1}}"></checkbox><checkbox value="2" checked="{{isCheck2}}"></checkbox><checkbox value="3" checked="{{isCheck3}}"></checkbox>
</checkbox-group>
需要在checkbox-group上绑定bind:change事件,并在checkbox标签上赋值value属性
handleCheck(event) {// 所有选中的商品的valuelet checkedIds = event.detail.value; //['1']},
进行单选操作时,在change事件的参数中可以获取到所有在checkbox-group中被选中的元素的value值组成的数组
2、全选
在实现全选功能时,一般全选只有一个复选框,但是也需要套一个checkbox-group,利用原生的微信小程序封装好的bind:change事件,可以更加方便的实现功能
<checkbox-group bindchange="handleCheckAll"><checkbox checked="{{allCheck}}" value="{{true}}" />
</checkbox-group>
全选框需要帮定一个参数动态存储复选框的状态,并在change事件中修改这个状态,以及控制其他可选框的状态和全选框一致
handleCheckAll(event){this.setData({allCheck: !this.data.allCheck,isCheck1: !this.data.allCheck,isCheck2: !this.data.allCheck,isCheck3: !this.data.allCheck})
},
注意:这里看上去虽然没有用上checkbox-group的参数,但是解决了在复选框上绑定点击事件覆盖原生可选框的功能
3、全选和单选联动
在前面已经完成单选和全选的独立功能了,但是无法实现在选中所有单选的复选框时全选框也选中,
所有的单选框选没有选中时,全选框同时取消
实现思路:一般购物车的数据是根据数据渲染出来的,所以可以获取到所有商品的数量,与单选checkbx-group的回调函数中的参数进行对比,如果选中的数量小于总数,则设置全选框为false,如果选中的数量等于总数,则设置全选框为true。
实例代码:
handleCheck(event) {// 所有选中的商品的valuelet checkedIds = event.detail.value;// 全部商品的数量const length = this.data.shopList.lengthif(checkedIds.length < length){this.setData({allCheck: false})}else if(checkedIds.length == length){this.setData({allCheck: true})}
}
4、总价的计算
对于总价计算,需要在进行单选和全选时都要进行更新total,所以需要封装成一个函数,在进行操作的回调函数中调用,实现总价的实时更新
render() {const priceShop = this.data.shopList.filter(ele => ele.isCheck === true)const total = priceShop.reduce((acc, cur) => {const value = cur.num * parseInt(cur.finVersion[1], 10); // 确保 parseInt 有一个基数,这里使用 10return acc + value;}, 0); // 初始化累加器为 0this.setData({allPrice: total})},
在render函数中先获取所有被选中的单选框,并使用reduce方法将每个数据中的数量和单价相乘并累加,然后使用setData方法更新total值,实现合计的更新
//单选的回调
handleCheckAll(event){...render()
},
//全选的回调
handleCheck(event) {...render()
}
最终效果:

相关文章:
微信小程序购物车全选反选功能以及合计
微信小程序基于Vant Weapp的购物车功能实现 1、单选 使用微信小程序原生表单组件checkbox和checkbox-group 注意:checkbox原生不支持bind:change事件,checkbox-group支持 <checkbox-group bindchange"handleCheck"><checkbox val…...
vue-qr在线生成二维码组件(vue2版本)
在对于二维码生成中有许多组件,下面介绍关于自定义比较高的vue-qr组件,能自定义设置背景颜色、背景图片、背景Gif图、实点和空白区的颜色、中心Logo的图片和边距。 依赖下载 注意: 直接npm下载最新版 有些项目可能运行会抱错 这时候你可以降…...
大语言模型技术相关知识-笔记整理
系列文章目录 这个系列攒了很久。主要是前段之间面试大语言模型方面的实习(被拷打太多次了),然后每天根据面试官的问题进行扩展和补充的这个笔记。内容来源主要来自视频、个人理解以及官方文档中的记录。方便后面的回顾。 文章目录 系列文章…...
SCP命令实现Linux中的文件传输
CP命令的主要作用是实现Linux与Linux系统之间的文件传输。 SCP命令时基于SSH协议,所以两台服务器的sshd服务必须处于开启状态,否则无法完成上传与下载操作。 #1.上传文件 scp linux本地文件路径 远程用户名@linux主机地址:远程路径 #2.下载文件 scp 远程用户名@linux主机地址…...
linux环境中后台运行java程序
在生产环境,我们通常需要让java进程后台运行,并且即使会话关闭,进程也依然存在。 使用的命令: nohup java -jar xxx.jar -> aaa.log 2>&1 & 详细介绍下上面这条命令 (1)nohup:…...
Go学习:变量
目录 1. 变量的命名 2. 变量的声明 3. 变量声明时注意事项 4. 变量的初始化 5. 简单例子 变量主要用来存储数据信息,变量的值可以通过变量名进行访问。 1. 变量的命名 在Go语言中,变量名的命名规则 与其他编程语言一样,都是由字母、数…...
在Unity编辑模式下运行Mono中的方法
[ExecuteAlways] 最简单的方法当然是直接给Mono加上[ExecuteAlways]修饰,这样Mono中的Awake,Update等等都可以在编辑模式下按照原本的时机运行。 [ExecuteAlways] public class TestScript : MonoBehaviour {void TestMethod(){Debug.Log("TestMe…...
Y20030028 JAVA+SSM+MYSQL+LW+基于JAVA的考研监督互助系统的设计与实现 源代码 配置 文档
基于JAVA的考研监督互助系统 1.项目描述2. 课题开发背景及意义3.项目功能4.界面展示5.源码获取 1.项目描述 随着高等教育的普及和就业竞争的加剧,越来越多的学生选择继续深造,参加研究生入学考试。考研人数的不断增加,使得考研过程中的学习监…...
MATLAB期末复习笔记(下)
目录 五、数据和函数的可视化 1.MATLAB的可视化对象 2.二维图形的绘制 3.图形标识 4.多子图绘图 5.直方图的绘制 (1)分类 (2)垂直累计式 (3)垂直分组式 (4)水平分组式 &…...
「Mac畅玩鸿蒙与硬件37」UI互动应用篇14 - 随机颜色变化器
本篇将带你实现一个随机颜色变化器应用。用户点击“随机颜色”按钮后,界面背景会随机变化为淡色系颜色,同时显示当前的颜色代码,页面还会展示一只猫咪图片作为装饰,提升趣味性。 关键词 UI互动应用随机颜色生成状态管理用户交互…...
MySql:理解数据库
目录 一、什么是数据库 第一层理解 第二层理解 第三层理解 二、Linux下的数据库 三、基本认识 登录数据库时, mysql -u root -h 127.0.0.1 -P 3306 -p -h指定MySql服务器所在主机,若在本地则为回环地址。-P表示目标主机上MySql服务端口号 一般简单…...
学习笔记051——SpringBoot学习2
文章目录 Spring Boot 原理1、SpringBootConfiguration2、ConfigurationProperties3、ComponentScan4、EnableAutoConfiguration Spring Boot 原理 Spring Boot 可以自动读取配置文件,将项目所需要的组件全部自动加载到 IoC 容器中,包括两部分 开发者自…...
crush rule 20 type does not match pool
问题 kubectl describe CephObjectStore ceph-objectstoreEvents:Type Reason Age From Message---- ------ ---- ---- -------Warning ReconcileFailed 14m …...
BA是什么?
目录 1.EKF的步骤 一、问题定义与模型建立 二、线性化处理 三、应用卡尔曼滤波 四、迭代与收敛 五、结果评估与优化 注意事项 2.BA问题的步骤 一、问题定义与数据准备 二、构建优化模型 三、选择优化算法 四、执行优化过程 五、结果评估与优化 六、应用与验证 1.…...
通过docker 搭建jenkins环境;
一、官网简介使用安装说明: How to use this image docker run -p 8080:8080 -p 50000:50000 jenkins This will store the workspace in /var/jenkins_home. All Jenkins data lives in there - including plugins and configuration. You will probably want to make that …...
10-高级主题
第10节 高级主题 在这一节中,我们将探讨一些 Python 中的高级主题,包括装饰器、生成器、上下文管理器、元类以及常用的设计模式。这些高级特性能够帮助你编写更强大、更灵活的代码。 10.1 装饰器 装饰器是一种特殊类型的函数,可以修改其他函数…...
harbor常见问题及解决方法分享
harbor常见问题及解决方法分享 参考自《harbor权威指南》。 1. harbor配置文件不生效 问题现象 无论是在生产环境下还是在测试环境下,都会有对配置文件进行修改的场景。很多用户在停掉Harbor容器后,都会修改配置文件然后启动Harbor,发现配…...
行列式与线性方程组解的关系
线性方程组是数学中一个重要的概念,它描述了多个变量之间的线性关系。行列式作为方阵的一个特殊值,对于判断线性方程组解的存在性和唯一性有着重要的作用。本文将探讨行列式与线性方程组解之间的关系,并区分齐次和非齐次方程组的情况。 齐次…...
四、自然语言处理_02RNN基础知识笔记
1、RNN的定义 RNN(Recurrent Neural Network,循环神经网络)是一种专门用于处理序列数据的神经网络架构,它与传统的前馈神经网络(Feedforward Neural Network)不同,主要区别在于它能够处理输入数…...
Spring 容器管理 Bean
Bean是什么 Bean 是指 Java 中的可重用软件组件,容器会根据提供的元数据来创建和管理这些 Bean,也包括它们之间的依赖关系。Spring 容器对 Bean 并没有太多的要求,无须实现特定接口或依赖特定库,只要是最普通的 Java 对象即可,这类对象也被称为 POJO(Plain Old Java Obj…...
2025最权威的降AI率网站实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 有的技术方案,其旨在减低文本人工智能生成特征,这就是降AIGC工具。它…...
赛美特冲刺港股:年营收7亿,刚完成8亿融资,估值73亿
雷递网 雷建平 3月31日赛美特信息集团股份有限公司(简称:“赛美特”)日前更新招股书,准备在港交所上市。赛美特成立以来获得多次融资,其中,2023年4月完成2.33亿元融资,投后估值62.33亿ÿ…...
别再为联合仿真头疼了!手把手教你用Amesim 2019和Matlab 2022b配置S-Function(Win10环境)
从零搭建Amesim与Matlab联合仿真环境:避坑指南与实战技巧 联合仿真技术已成为多物理场系统设计的黄金标准,但配置过程却让无数工程师在深夜的办公室里抓狂——编译器版本冲突、环境变量设置错误、接口编译失败,每一个环节都可能成为项目进度的…...
WSL+VSCode+Jupyter+R配置总结(2026年)
题记:网上相关的资料很多了,现阶段跟随AI也能少走很多弯路,但体验下来依旧有些细节没有被很好的提及,故写本文一方面作为自己的备忘录,一方面希望帮助更多像我一样的新手。 用了上述的配置跑了scanpy一年多了…...
IIS请求筛选规则实战:手把手教你用‘拒绝字符串’精准拦截SQL注入和恶意爬虫
IIS请求筛选规则实战:构建精准防御体系的完整指南 当你的网站遭遇SQL注入攻击时,服务器日志里那些可疑的 OR 11--字符串是否让你夜不能寐?面对每天数十万次的恶意爬虫扫描,是否觉得传统的防火墙规则力不从心?IIS的请求…...
学术场景实战:DeepSeek-OCR-2驱动深求·墨鉴实现论文公式精准提取
学术场景实战:DeepSeek-OCR-2驱动深求墨鉴实现论文公式精准提取 1. 引言:学术研究中的公式提取痛点 如果你是一名理工科的研究生、科研工作者,或者经常需要阅读学术论文,你一定遇到过这样的场景:在PDF论文里看到一个…...
GLM-4v-9b效果展示:直播带货截图→话术分析+转化点提炼
GLM-4v-9b效果展示:直播带货截图→话术分析转化点提炼 1. 模型能力概览 GLM-4v-9b是智谱AI在2024年开源的多模态视觉-语言模型,拥有90亿参数。这个模型最大的特点是能够同时理解图片和文字,支持中英文多轮对话,在11201120高分辨…...
FastAPI日志配置终极指南:10个简单步骤实现生产级日志管理
FastAPI日志配置终极指南:10个简单步骤实现生产级日志管理 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI作为现代…...
10分钟掌握Deep-Live-Cam:从零搭建实时AI换脸系统的完整指南
10分钟掌握Deep-Live-Cam:从零搭建实时AI换脸系统的完整指南 【免费下载链接】Deep-Live-Cam real time face swap and one-click video deepfake with only a single image 项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam Deep-Live-Cam是…...
Comsol 脉冲激光诱导等离子体仿真模型:探索微观世界的奇妙之旅
Comsol脉冲激光诱导等离子体仿真模型 利用脉冲激光作为热源,在氩气环境中诱导产生等离子体,主要体现出等离子体的密度、等离子体温度等参数 可以为激光诱导等离子体提供准确的参考在科研与工程领域,对脉冲激光诱导等离子体的深入研究有着举足…...
