// 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
最新资源
- c语言实现的超级玛丽游戏源码.zip
- 计算机网络中TCP与UDP Socket编程的Python实现
- 实验教学资料:深入理解HTTP协议的应用及其各部分组成
- Matlab光纤光栅仿真程序FBG 双FBG
- (基于python的毕业设计)旅游推荐数据分析可视化(源码+部署说明).zip
- c语言实现的汉诺塔演示程序.zip
- c语言实现的象棋源码.zip
- 一款GO语言开发的斗地主游戏
- PHP资产管理系统,适用于IT办公行业固定资产及设备管理源码,基于layuimini开源框架,需要的联系我,标价即实价 可本地安装或局域网联机使用,也可服务器联网使用 需求环境PHP+MYSQL部
- c语言实现非常漂亮祝福烟花效果.zip
- c语言实现类似弹力球效果.zip
- python项目实战之旅游推荐数据分析可视化(源码+部署说明).zip
- c语言实现如果cmd中的ping.zip
- 昆仑通态MCGS与三菱E740变频器通讯可直接拿来实用了,采用器件:三菱FR E740型号变频器,1块昆仑通态MCGS触摸屏 通讯方式:modbus RTU模式,走485方式 功能:用MCGS读取变
- c语言实现数字雨.zip
- cruise纯电动车仿真模型,实现电制动优先的能量回收策略 关于模型:模型是base模型,控制策略是使用c-code编写的,非联合仿真,在没有联合仿真需求时可以使用此模型 相关仿真任务已经建立完成
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈