社区团购美团和多多买菜小程序购物车

本文详细描述了在微信小程序中实现购物车功能的demo,包括食物名称、价格、数量的显示,以及点击增加和减少按钮对购物车数量的管理。展示了WXML代码片段和关键函数如`funFoodAdd`和`funFoodReduce`的操作逻辑。
摘要由CSDN通过智能技术生成

概述

微信小程序购物车列表demo

详细

需求

  • 显示食物名称、价格、数量。

  • 点击相应商品增加按钮,购买数量增加1,点击食物减少按钮,购买数量减一

  • 显示购买总数和总金额

  • 查看当前购买的商品

效果图(数据来自本地模拟)

微信截图_20190314191639.png

微信截图_20190314191623.png

目录结构

微信截图_20190315173105.png

实现过程

    主要wxml

<view class='foods'>
    <view class='left-food-menu'>
    <scroll-view class='scroll-view' scroll-y="true" style='height:{{screenHeight-150}}px'>
    <!-- 渲染类别名称 -->
    <view wx:key="id" wx:for="{{AllFoodList}}" data-index='{{index}}' bindtap='changeTypeSelected' class="{{nowFoodTypeSelectIndex==index ? 'food-type-title food-type-title-selected ' : 'food-type-title'}}">
    <view wx:if='{{nowFoodTypeSelectIndex==index}}' class='line'></view>
    <text >{{item.foodTitle}}</text>
    </view>
    </scroll-view>
    </view>
    <!-- 渲染食物列表 -->
    <view wx:key="id" wx:for="{{AllFoodList}}" wx:for-index="idx" data-index='{{idx}}' hidden='{{nowFoodTypeSelectIndex==idx?false:true}}' class='food-list'>
    <scroll-view class="scroll" scroll-y="true">
    <!-- 渲染这个分类下所有食物 -->
    <view wx:key="id" wx:for="{{item.foodList}}" wx:for-index="foodindex">
    <view class="cart_container">
    <image mode='aspectFill' class="item-image" src="{{item.goodPerview}}"></image>
    <view class="column">
    <view class='food-info'>
    <text class="food-title">{{item.goodName}}</text>
    <text class="colmun-margin sales">月销: {{item.goodSales}} 单</text>
    <view class="colmun-margin row">
    <view>
    <text class="sku-price">¥</text>
    <text class="sku-price">{{item.goodPrice}}</text>
    </view>
     
    <view class="{{item.buyNum>0?'add_border':'food-item-add'}}">
    <image bindtap='funFoodReduce' data-type_index='{{idx}}' data-food_index="{{foodindex}}" hidden='{{item.buyNum>0?false:true}}' class='img food-subtract' src='/imgs/ic_food_subtract.png'></image>
    <text hidden='{{item.buyNum>0?false:true}}' class='food-item-number'>{{item.buyNum}}</text>
    <image bindtap='funFoodAdd' data-type_index='{{idx}}' data-food_index="{{foodindex}}" class='img food-addto' src='/imgs/ic_food_item_add.png'></image>
    </view>
    </view>
    </view>
     
    </view>
    </view>
    <view class="separate"></view>
    </view>
    </scroll-view>
    </view>
</view>

点击商品增加按钮

funFoodAdd: function (e) {
    this.calculationMoney;
    var foodIndex = e.currentTarget.dataset.food_index
    var typeIndex = e.currentTarget.dataset.type_index
     
    var nowNum = this.data.AllFoodList[typeIndex].foodList[foodIndex].buyNum
    nowNum = nowNum + 1
    var tempBuyTotal = this.data.buyTotal;
    this.data.AllFoodList[typeIndex].foodList[foodIndex].buyNum = nowNum
    this.setData({
    AllFoodList: this.data.AllFoodList, buyTotal: tempBuyTotal + 1
    })
    this.calculationMoney();
 
},

点击商品减少按钮

//减去食物
funFoodReduce: function (e) {
    var foodIndex = e.currentTarget.dataset.food_index
    var typeIndex = e.currentTarget.dataset.type_index
    var nowNum = this.data.AllFoodList[typeIndex].foodList[foodIndex].buyNum
    if (nowNum == 0) {
    return;
    }
    nowNum = nowNum - 1
    var tempBuyTotal = this.data.buyTotal;
     
    this.data.AllFoodList[typeIndex].foodList[foodIndex].buyNum = nowNum
    this.setData({
    AllFoodList: this.data.AllFoodList, buyTotal: tempBuyTotal - 1
    })
    this.calculationMoney();
},

计算购买商品价格

//计算总价
calculationMoney: function () {
var tempMoney = 0;
var parent = this.data.AllFoodList.length;
for (var i = 0; i < parent; i++) {
for (var j = 0; j < this.data.AllFoodList[i].foodList.length; j++) {
tempMoney = tempMoney + (this.data.AllFoodList[i].foodList[j].buyNum * this.data.AllFoodList[i].foodList[j].goodPrice)
}
 
}
this.setData({
totalMoney: tempMoney
})
 
},
//显示购物车
showCartDialog: function () {
this.setData({
cartVisible: !this.data.cartVisible
})
},
//清空购物车
funCartEmpty: function () {
var temp = this.data.AllFoodList;
for (var i = 0; i < temp.length; i++) {
for (var j = 0; j < temp[i].foodList.length; j++) {
temp[i].foodList[j].buyNum = 0;
}
}
this.calculationMoney();
this.setData({
AllFoodList: temp, buyTotal: 0
})
 
},


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西安未央

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值