// page/component/new-pages/cart/cart.js
Page({
data: {
carts:[], // 购物车列表
hasList:false, // 列表是否有数据
totalPrice:0, // 总价,初始为0
selectAllStatus:true, // 全选状态,默认全选
obj:{
name:"hello"
}
},
onShow() {
var self = this;
this.setData({
hasList: true,
});
wx.getStorage({
key: 'carts',
success:function(res){
if(!res.data.length){
self.setData({
hasList: false
})
}
self.setData({
carts : res.data
})
self.getTotalPrice();
}
})
},
onHide(){
let carts = this.data.carts;
wx.setStorage({
data: carts,
key: 'carts',
})
},
/**
* 当前商品选中事件
*/
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;
const obj = e.currentTarget.dataset.obj;
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)
});
}
})
小徐博客
- 粉丝: 1975
- 资源: 5413
最新资源
- JAVA语言考试系统的设计与实现源代码.zip
- 基于ssm的高职院校教学中心可视化教学分析系统源码(java毕业设计完整源码).zip
- 西门子1200自动洗车博途仿真 自动洗车博图PLC程序洗车机控制HMI组态 、包含内容:①三种液体博途PLC与HMI仿真工程?(博途V14或以上) 一份;②三种液体配套有IO点表+PLC接线图+主电路
- java在线考试管理系统源代码.zip
- 基于ssm的个人所得税服务系统源码(java毕业设计完整源码).zip
- pl230 22019 2019
- 国民经济行业分类明细对照版2017版 GB/T 4754-2017 2024年最新版本
- java作业管理系统设计源代码.zip
- 基于ssm的杭商院班级人事管理系统源码(java毕业设计完整源码).zip
- 计算机网络-知识点总结(一篇就够)
- 基于龙伯格观测器的永磁同步电机负载转矩估计 1.采用降阶负载转矩观测器简化观测器结构,便于参数设计; 2.将观测到的负载转矩用作前馈补偿,可提高系统抗负载扰动能力; 仿真模型纯手工搭建,不是从网络上复
- 黑苹果系统 macOS Ventura 13.0.1 22A400 Installer for OpenCore 0.8.6 and FirPE
- 基于Java的汽车销售系统源码(java毕业设计完整源码).zip
- 基于字符分割改进的HEVC屏幕视频帧间复制算法
- node脚本自动化合并git分支
- 基于出行链的电动汽车空间负荷预测,MATLAB,有注释,方便初学者理解上手,此程序用来计算节点处电动汽车充电负荷,不是商业区,住宅区等注意区分 有参考文献
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈