小程序多个商品数量之间的增减与总价
wxml:
<view class="container">
<block wx:for="{{carts}}" wx:key="key">
<view class='carts'>
<text class='name'>{{item.title}}</text>
<view class='subadd'>
<text class='sub' data-index="{{index}}" bindtap='sub'>-</text>
<text class='num'>{{item.num}}</text>
<text class='add' data-index="{{index}}" bindtap='add'>+</text>
</view>
<text class='deleted' bindtap="deleteList" data-index="{{index}}">X</text>
</view>
</block>
<view>总价:{{totalPrice}}</view>
</view>
js文件设置一些初始值,模拟从服务器上获取的值,以便进行操作
data: {
carts:[
{
id:1,
title:"新鲜芹菜 半斤1",
num:0,
price:1,
selected:false
},
{
id: 2,
title: "新鲜芹菜 半斤2",
num: 0,
price: 1,
selected: false
},
{
id: 3,
title: "新鲜芹菜 半斤3",
num: 0,
price: 1,
selected: false
},
{
id: 4,
title: "新鲜芹菜 半斤4",
num: 0,
price: 1,
selected: false
},
{
id: 5,
title: "新鲜芹菜 半斤5",
num: 0,
price: 1,
selected: false
},
],
text:"nihao",
selectAllStatus:false,
totalPrice:0
},
商品数量之间的加减操作
sub(e){
const index = e.currentTarget.dataset.index;
let carts = this.data.carts;
let num = carts[index].num;
if(num<=0){
return false;
}
num = num - 1;
carts[index].num = num;
this.setData({
carts:carts
})
this.getTotalPrice()
},
add(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()
},
计算所有商品的总价格
getTotalPrice(e){
let carts = this.data.carts;
let sum = 0;
for(let i=0;i<carts.length;i++){
sum += carts[i].num*carts[i].price;
}
this.setData({
totalPrice:sum.toFixed(2),
carts:carts
})
},
各个商品的删除操作
deleteList(e){
const index = e.currentTarget.dataset.index;
let carts = this.data.carts;
carts.splice(index,1);//splice(2,0)=>添加 splice(2,1)=>删除 splice(2,1,"Toll")=>将下标为2的值修改为Toll
this.setData({
carts:carts
})
},
购物车中全选与全不选功能
selectAll(e){
//设置selectAllStatus的状态,来进行判断选中与不选中之间的差别
let carts = this.data.carts;
let selectAllStatus = this.data.selectAllStatus;
selectAllStatus = !selectAllStatus;
for(let i=0;i<carts.length;i++){
carts[i].selected = selectAllStatus
}
this.setData({
selectAllStatus:selectAllStatus,
carts:carts
})
}

浙公网安备 33010602011771号