微信小程序简单实现购物车功能

devtools/2024/9/18 23:16:11/ 标签: javascript, 微信小程序, 小程序, 前端

小程序>微信小程序简单实现购物车结算和购物车列表展示功能

实现在小程序>微信小程序中对每一个购物车界面的商品订单,进行勾选结算和取消结算的功能,相关界面截图如下:
购物车

具体实现示例代码为:
1、js代码:

javascript">Page({/*** 页面的初始数据*/data: {checked: false,checkAll: false,dataList: [{id: '000',img: 'https://img-blog.csdnimg.cn/img_convert/0e449547f8e5354646f76af0d1b4800a.png',content: '生活百般滋味,编写不易,关注博主,分享更多内容呦',price: 3289,showPrice: '32.89',number: 1},{id: '111',img: 'https://img2.baidu.com/it/u=2681955314,221996905&fm=253&fmt=auto&app=138&f=JPEG?w=450&h=300',content: '努力学习,天天向上,进我主也查看更多内容',price: 2456,showPrice: '24.56',number: 2}, {id: '222',img: 'https://img-blog.csdnimg.cn/img_convert/0e449547f8e5354646f76af0d1b4800a.png',content: '关注博主,分享更多内容,欢迎批评指导',price: 3289,showPrice: '89.89',number: 5},],totalMoney: '0.00',selectDatas: []},// 查看详情detailClick(e) {let data = e.currentTarget.dataset.item;wx.showToast({title: '点击了查看详情',icon: 'none'})console.log('详情数据:', data)},// 单选checkboxChange(e) {let money = 0,str = [];let attr = e.detail.value;let list = this.data.dataList;for (let i = 0; i < list.length; i++) {for (let k = 0; k < attr.length; k++) {if (list[i].id === attr[k]) {money += list[i].price * list[i].number;str.push(list[i]);}}}this.setData({selectDatas: str,totalMoney: (money / 100).toFixed(2),checkAll: (list.length == attr.length && list.length > 0) ? true : false})},// 全选checkboxChangeAll(e) {let money = 0,str = [];let val = e.detail.value;let list = this.data.dataList;if (val.length > 0) {for (let i = 0; i < list.length; i++) {money += list[i].price * list[i].number;str.push(list[i]);}this.setData({checked: true,selectDatas: str,totalMoney: (money / 100).toFixed(2)})} else {this.setData({checked: false,selectDatas: [],totalMoney: '0.00'})}},// 结算totalClick() {let list = this.data.selectDatas;if (list.length < 1) {wx.showToast({title: '无结算订单',icon: 'error'})return false;}wx.showModal({title: '提示',content: '确定结算当前订单吗?',complete: (res) => {if (res.confirm) {wx.showToast({title: '结算完成',})}}})},
})

2、wxml代码:

<view class="bg-color"></view>
<view class="car-box"><checkbox-group bindchange="checkboxChange"><view class="row-data" wx:for="{{dataList}}" wx:for-index="index" wx:key="item"><view class="row-btn"><checkbox value="{{item.id}}" checked="{{checked}}" /></view><view class="row-list" bind:tap="detailClick" data-item="{{item}}"><view class="row-img"><image src="{{item.img}}" mode="aspectFill" /></view><view class="row-info"><view class="row-text">{{item.content}}</view><view class="row-price"><view><text class="row-icon"></text><text class="row-money">{{item.showPrice}}</text></view><view><text class="btn">x{{item.number}}</text></view></view></view></view></view></checkbox-group>
</view>
<!-- 结算 -->
<view class="footer-box"><view><checkbox-group bindchange="checkboxChangeAll"><label class="level"><checkbox value="all" checked="{{checkAll}}" />全选</label></checkbox-group></view><view class="level"><view><text>合计:</text><text class="total-btn row-icon"></text><text class="total-btn row-money">{{totalMoney}}</text></view><view class="total-end" bind:tap="totalClick">结 算</view></view>
</view>

3、wxss代码:

page {font-size: 32rpx;background-color: #f1f1f1;
}.bg-color {background-color: #008B8B;height: 200rpx;width: 100%;
}.car-box {min-height: 300rpx;border-radius: 20rpx;background-color: white;margin: -190rpx 20rpx 20rpx 20rpx;padding: 20rpx 10rpx;
}.row-data {display: flex;flex-direction: row;align-items: center;margin-top: 20rpx;
}.row-btn {width: 10%;text-align: center;
}.row-list {width: 90%;display: flex;flex-direction: row;
}.row-img {width: 30%;background-color: #f1f1f1;
}.row-info {width: 70%;display: flex;flex-direction: column;justify-content: space-between;margin-left: 20rpx;
}.row-img image {width: 100%;height: 200rpx;
}.row-text {display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;text-overflow: ellipsis;overflow: hidden;font-size: 30rpx;
}.row-price {display: flex;flex-direction: row;justify-content: space-between;
}.row-price view:first-child {color: #FA5422;
}.row-icon {font-size: 26rpx;
}.row-money {font-weight: bold;
}.btn {padding: 5rpx 20rpx;font-size: 28rpx;color: gray;
}checkbox {zoom: .8;
}.footer-box {position: fixed;bottom: 0;left: 0;right: 0;z-index: 999;height: 100rpx;display: flex;flex-direction: row;align-items: center;justify-content: space-between;background-color: white;padding: 0 20rpx;
}.level {display: flex;flex-direction: row;align-items: center;
}.total-btn {color: #FA5422;
}.total-end {background-color: #008B8B;margin-left: 20rpx;padding: 15rpx 50rpx;border-radius: 50rpx;font-size: 30rpx;color: white;
}

本示例代码较为简单,适合初学的友友们借鉴,编写不易,关注博主,分享更多实用好用示例代码给大家,谢谢大家的支持和指导。


http://www.ppmy.cn/devtools/19194.html

相关文章

element 分页切换时:current-page无效 页数不会跟着一起切换

问题回溯&#xff1a;使用el-pagination组件 选择切换当前分页 页数为2 问题结果&#xff1a;el-pagination组件 当前页切换失败 一直都是 1&#xff0c;接口传参分页数据是2&#xff0c;打印当前分页也是2 解决方案1&#xff1a;使用 current-page参数 .sync 修饰符 解决方案2…

爬虫中怎么判断一个网页是否包含ajax请求

1、前言 在用爬虫抓取数据的时候&#xff0c;如果一个网页包含ajax请求&#xff0c;由于数据时动态加载的&#xff0c;直接根据网址是不能获取到想要的数据。因此&#xff0c;在爬虫需要首先判断一个网页是否包含ajax请求数据。 2、ajax请求 2.1 什么是ajax请求 AJAX Asynch…

【Day 9】Mybatis CURD + XML 映射 + 动态 SQL

1 Mybatis 基础操作 下面进行&#xff1a;增删改查——C(create)U(update)R(retrieve)D(delete) 1.1 删除&#xff08;删&#xff09; 根据主键 id 进行删除 注意 占位符 #{ } 返回值是删除的记录条数 测试&#xff1a; 可以在日志中看到 mybatis 具体的语句 预编译 SQL 的优…

HTTP基础知识

1. HTTP常见的状态码有哪些&#xff1f; 常见状态码&#xff1a; 200&#xff1a;服务器已成功处理了请求。 通常&#xff0c;这表示服务器提供了请求的网页。 301 &#xff1a; (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时&a…

window-linux文件备份

数据备份方案 数据类型 文件类数据 数据库数据 文件类数据备份方案 文件类方案一般在window的服务器里&#xff0c;所以可以实现window和linux的双向备份和异地备份。将某地服务器的数据文件可以备份到异地的服务器。 采取技术&#xff1a;Rsynccrontab 技术说明&#x…

【我的Java学习笔记-3】

运算符和表达式 运算符&#xff1a; 对字面量或者变量进行操作的符号。 表达式&#xff1a; 用运算符把字面量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。 举例说明&#xff1a; int a10; int b 20; int c a b; …

一文浅谈FRTC8563时钟芯片

FRTC8563是NYFEA徕飞公司推出的一款实时时钟芯片&#xff0c;采用SOP-8封装形式。这种封装形式具有体积小、引脚间距小、便于集成等特点&#xff0c;使得FRTC8563能够方便地应用于各种电子设备中。 FRTC8563芯片基于32.768kHz的晶体振荡器工作&#xff0c;这种频率的晶体振荡器…

LMDeploy高效部署Llama-3-8B,1.8倍vLLM推理效率

Llama 3 近期重磅发布&#xff0c;发布了 8B 和 70B 参数量的模型&#xff0c;LMDeploy 对 Llama 3 部署进行了光速支持&#xff0c;同时对 LMDeploy 推理 Llama 3 进行了测试&#xff0c;在公平比较的条件下推理效率是 vLLM 的 1.8 倍。 书生浦语和机智流社区同学光速投稿了 L…

Java设计模式 _结构型模式_适配器模式

一、适配器模式 **1、适配器模式&#xff08;Adapter Pattern&#xff09;**是一种结构型设计模式。适配器类用来作为两个不兼容的接口之间的桥梁&#xff0c;使得原本不兼容而不能一起工作的那些类可以一起工作。譬如&#xff1a;读卡器就是内存卡和笔记本之间的适配器。您将…

数据中台工具:企业数据管理的核心动力_光点科技

在数字经济时代&#xff0c;数据中台工具已经成为各大企业提升效率、优化决策的核心动力。通过集成、分析和管理企业内外的各种数据&#xff0c;数据中台工具不仅可以帮助企业洞察市场趋势&#xff0c;还能够预测用户行为&#xff0c;推动企业实现精准营销以及产品优化。本文将…

服务案例|服务器批量重启

告警产生 4月16日上午7:30分左右&#xff0c;福州某市医院20多台服务器批量重启&#xff0c;通知现场工程师。 故障分析定位 1、通过批量重启告警信息&#xff0c;发现内网esxi53主机硬件告警&#xff0c;初步判断是X86设备esxi53发生故障&#xff0c;导致esxi53上的虚拟服务…

arcgis js 4.x加载SceneLayer并实现基于属性查询定位及高亮

一、代码 <!DOCTYPE html> <html> <head><meta charset"utf-8" /><meta name"viewport" content"widthdevice-width, initial-scale1,maximum-scale1,user-scalableno"><title></title><link rel…

2024通信会|迈向智慧配电网建设新时代,锐捷网络发布双平面配电通信解决方案

近期,以“加快推进通信数智化,助力构建新型能源体系”为主题的2024年能源网络通信创新应用大会在四川成都圆满结束,会议围绕构建新型能源体系和新型电力系统建设需求,探讨能源网络通信创新应用的最新趋势与成果、“主、配、微”通信网一体化融合、配电通信网、通信数智化转型等…

Apache RocketMQ ACL 2.0 全新升级

作者&#xff1a;徒钟 引言 RocketMQ 作为一款流行的分布式消息中间件&#xff0c;被广泛应用于各种大型分布式系统和微服务中&#xff0c;承担着异步通信、系统解耦、削峰填谷和消息通知等重要的角色。随着技术的演进和业务规模的扩大&#xff0c;安全相关的挑战日益突出&am…

mysql8.0免安装版windows

1.下载 MySQL下载链接 2.解压与新建my.ini文件 解压的路径最好不要有中文路径在\mysql-8.0.36-winx64文件夹下新建my.ini文件&#xff0c;不建data文件夹(会自动生成) [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录(尽量用双斜杠\\,单斜杠\可能会报错) basedirD:\…

react useEffect中window.removeEventListener没生效问题解决

在useEffect中写入window.removeEventListener没有生效&#xff0c;代码如下 useEffect(() > {const handleResize () > {console.log(window.innerWidth, window.innerHeight);};window.addEventListener(resize, handleResize);return () > {window.removeEventLi…

汽车3D数字化展示让全方位看车触手可及

在数字化浪潮的推动下&#xff0c;VR虚拟看车正成为汽车行业的新宠。这一创新的虚拟沉浸式体验&#xff0c;通过线上线下的深度融合&#xff0c;结合大数据与云计算的先进技术&#xff0c;为汽车行业带来了新的零售模式。作为国内领先的互联网平台&#xff0c;我们深耕汽车行业…

目标检测的mAP、PR指标含义

基本概念 什么是一个任务的度量标准。对于目标检测任务来说&#xff0c;它的首要目标是确定目标的位置并判别出目标类别。这里已医学图像为例&#xff0c;我们需要计算出血液红细胞&#xff08;RBC&#xff09;、白细胞&#xff08;WBC&#xff09;和血小板的数量。为了实现这一…

【springMVC】@RequestMapping的作用

1.作用 将指定 URL 的请求绑定到一个特定的方法或类上&#xff0c;从而实现对请求的处理和响应。 RequestMapping注解只能出现在类上或者方法上。 2.value属性 Ant风格的value&#xff08;模糊匹配路径&#xff09;&#xff1a; 1&#xff09;?&#xff0c;代表任意一个字符 …

shell脚本命令简单快捷启动、停止运维java项目

使用脚本快捷启动java项目&#xff0c;参考一下其他大神的思路&#xff0c;进行了一些优化升级&#xff0c;支持多项目部署 参考CSDN文章链接&#xff1a;点击跳转 1. exec.sh脚本 主要修改项目配置】配置处新增项目配置信息&#xff0c;新增项目注意修改数组下标 #!/bin/sh #当…