// 第二步:点击选中当前商品
selectList:function(e){
// 获取当前点击元素的small,并获取父元素的index(也就是当前商品所属店铺的index)并获取list;
var bigindex = e.currentTarget.dataset.bigindex;
var small = e.currentTarget.dataset.small;
var list = this.data.list;
var num = this.data.num;
var storeNum = this.data.storeNum;
var s = 0,t = 0;
var isSelectAll = this.data.isSelectAll;
// 切换当前选中元素的状态
list[bigindex].abuyCarVos[small].isSelect = !list[bigindex].abuyCarVos[small].isSelect;
// 每一次点击的时候都初始化t,如果选中了当前元素t++;如果t==list[bigindex].abuyCarVos.length则选中当前店铺,否则不选中
for(var i in list[bigindex].abuyCarVos){
if(list[bigindex].abuyCarVos[i].isSelect){
t++;
}
}
// console.log(num,list[bigindex].abuyCarVos.length,storeNum)
// t==list[bigindex].length的时候店铺选中
if(t == list[bigindex].abuyCarVos.length){
list[bigindex].isSelectStore = true;
// this.setData({
// list[bigindex]:true
// });
// storeNum++;
}else{
list[bigindex].isSelectStore = false
}
for(var i in list){
if(list[i].isSelectStore){
s++;
}
}
storeNum = s;
// Object.keys(list).length此方法可以获取到对象的长度
// 如果storeNum == Object.keys(list).length,则表示购物车所有商品已经选中,全选按钮也需要选中
if(storeNum == Object.keys(list).length){
isSelectAll=true;
}else{
isSelectAll=false;
}
this.setData({
list:list,
num:num,
storeNum:storeNum,
isSelectAll:isSelectAll
});
// this.gototalPrice()
},
// 第三步 购物车点击全选按钮
selectAll:function(){
// 获取全选按钮之前的状态取反
var isSelectAll = !this.data.isSelectAll;
var isSelectStore = !this.data.isSelectStore;
var isSelect = !this.data.isSelect;
var num = this.data.num;
var list = this.data.list;
// 控制所有的list中的每一项是否选中
for(var i in list){
list[i].isSelectStore = isSelectAll;
for(var t= 0;t<list[i].abuyCarVos.length;t++){
list[i].abuyCarVos[t].isSelect = isSelectAll;
num++;
}
}
if(isSelectAll){
// num = Object.keys(list).length;
}else{
num = 0;
}
// 把数据更新到data中
this.setData({
isSelectAll:isSelectAll,
isSelectStore:isSelectStore,
isSelect:isSelect,
list:list,
num:num
});
// console.log(num)
// this.gototalPrice()
},
小程序购物车点击选中当前商品与全选、全不选,如果本店铺下的所有商品全部被选中则选中本店铺。
最新推荐文章于 2023-09-24 10:00:00 发布