vue的商城购物车

项目场景:

购物车的总数量和总金额

在商城购物车中,需要经过选择商品操作后,统计选中的商品的总数量和总金额


问题描述

计算金额和计算总数的方法一致时出现问题

选中商品时,正常的金额统计没问题,但是统计商品总数前几个显示为0,选中最后一个商品时才生效,computed内代码:

		totalPrice() {
			let amount = this.list.reduce(function(total, item) {
				if (item.checked) {
					let price = item.sku ? item.sku.price : item.goods.price;
					return total + parseInt(item.cart_nums) * parseFloat(price);
				} else {
					return total;
				}
			}, 0);
			return amount.toFixed(2);
		},
		checkNum() {
			let cnum = this.list.reduce(function(total, item) {
				if (item.checked) {
					let nums = item.nums;
					return  total + nums;
				} else {
					return 0;
				}
			}, 0);
			return cnum;
		},

原因分析:

可能是选中判断时的处理有差异:

计算金额是,所有的价格数字都是固定的,但是计算总数量时,只有选择最后一个才会生效,应该是循环中的判断else {return 0;}返回0导致数据丢失。


解决方案:

去除计算总数量的if判断,添加三目运算:

	totalPrice() {
		let amount = this.list.reduce(function(total, item) {
			if (item.checked) {
				let price = item.sku ? item.sku.price : item.goods.price;
				return total + parseInt(item.cart_nums) * parseFloat(price);
			} else {
				return total;
			}
		}, 0);
		return amount.toFixed(2);
	},
	checkNum() {
		let cnum = this.list.reduce(function(total, item) {
			let nums = item.checked ? item.nums : 0;
			return  total + nums
		}, 0);
		return cnum;
	},。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 2购物车的完整实现包括以下几个关键步骤: 1. 创建Vue实例:使用Vue框架创建一个新的Vue实例,作为整个应用的根组件。 2. 数据管理:在Vue实例中定义数据属性,用于存储购物车中的商品列表、商品数量、总价等信息。 3. 商品列表展示:在页面上展示商品列表,可以使用v-for指令遍历商品数组,并显示每个商品的名称、价格等信息。 4. 添加商品到购物车:为每个商品添加一个“添加到购物车”按钮,并绑定点击事件。在事件处理函数中,将选中的商品添加到购物车数据中,并更新总价。 5. 修改商品数量:为每个商品在购物车中绑定一个输入框,用于修改商品数量。对输入框绑定一个change事件,在事件处理函数中更新对应商品的数量,并计算新的总价。 6. 删除商品:为每个商品在购物车中添加一个“删除”按钮,并绑定点击事件。在事件处理函数中,从购物车数据中移除对应的商品,并更新总价。 7. 结算功能:添加一个“结算”按钮,并绑定点击事件。在事件处理函数中,可以进行一些结算逻辑,例如生成订单、清空购物车等操作。 8. 样式美化:使用CSS样式对购物车页面进行美化,使其更加符合用户体验和界面设计需求。 需要注意的是,上述实现仅是一个基本的购物车功能,你可以根据具体需求进行扩展和优化,例如加入购物车数量限制、价格计算规则、登录验证等功能。同时,也可以通过与后端API进行数据交互,实现购物车数据的持久化和同步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值