vue实现购物车功能

article/2025/10/12 0:50:03

         随着时代发展,网购成了人们必不可少的一部分,所以我们常常遇到要实现购物车功能,如下图,我们来分析一下 下图所示页面:

        首先,我们通过ElementUI中的<el-table>标签来实现页面的呈现。

        其次,我们可以看到“价格”列和“总价”是由"¥"+价格 组成,并且价格要保留两位小数

        第三,“购买数量” 点击‘-’号按钮时不能小于1

        第四,当所有商品都被移除时,显示‘购物车为空’

购物车有数据时:

 购物车无数据时:

 

         在代码中,我们利用了过滤器来实现“价格”和‘总价’的拼接,通过toFixed()方法实现保留两位小数,通过disabled属性来实现当数量小于等于1时,不再进行数量减法,通过计算属性computed来实现总价的计算,通过splice()方法来实现移除功能。下面让我们上代码:

<template><div><h1>购物车</h1><div v-if="tableData.length"><el-table :data="tableData" style="width: 100%"><el-table-column type="index" width="50" align="center" header-                align="center"></el-table-column><el-table-column prop="name" label="书籍名称" width="180" align="center" header-align="center"></el-table-column><el-table-column prop="press" label="出版社" width="180" align="center" header-align="center"></el-table-column><el-table-column prop="price" label="价格" width="180" align="center" header-align="center"><template slot-scope="scope"><div>{{ scope.row.price | showPrice}}</div></template></el-table-column><el-table-column prop="count" label="购买数量" width="180" align="center" header-align="center"><template slot-scope="scope"><div style="display: flex;align-items: center;justify-content: center;"><el-button size="small" @click="decrement(scope.$index)" :disabled="scope.row.count <= 1">-</el-button><div style="width: 50px;">{{scope.row.count}}</div><el-button size="small" type="primary" @click="increment(scope.$index)">+</el-button></div></template></el-table-column><el-table-column label="操作" width="120" align="center" header- align="center"><template slot-scope="scope"><el-button type="danger" size="small" @click="removeHandle(scope.$index)">移除</el-button></template></el-table-column></el-table><h2>总计:{{totalPrice | showPrice}}</h2></div><div v-else>购物车为空</div>  </div>
</template><script>export default {data() {return {tableData: [{name:'《C Primer Plus》',press:'人民邮电出版社',price:155.00,count:1},{name:'《计算机系统基础》',press:'机械工业出版社',price:100.00,count:1},{name:'《深入浅出Vue.js》',press:'人民邮电出版社',price:200.00,count:1},{name:'《算法》',press:'人民邮电出版社',price:250.00,count:1}],}},computed: {totalPrice() { //计算总价let total = 0;for(let i in this.tableData){total += this.tableData[i].price * this.tableData[i].count;}return total}},filters:{ //过滤器// 拼接价格/总价  showPrice(price){return '¥'+ price.toFixed(2);}},methods: {increment(index){//加this.tableData[index].count++},decrement(index){//减this.tableData[index].count--},removeHandle(index){//移除this.tableData.splice(index,1);}}}
</script>


http://chatgpt.dhexx.cn/article/0FHh8cI1.shtml

相关文章

css实现轮播图

轮播图&#xff1a;就是多张图片按照一定的时间和顺序依次从某个窗口来向用户展示图片 轮播图的实现代码&#xff1a; 1&#xff09;创建一个容器来进行轮播图的展示 这里的容器就是最外部的盒子 注意最外部盒子设置宽高时要与我们进行展示的图片的宽高保持一致&#xff0c…

RabbitMQ实现延迟队列的方式

1.背景 最近在做类似拍卖系统的上架功能&#xff0c;卖家上架物品以后&#xff0c;例如到期时间24小时或者48小时&#xff0c;如果无竞拍者或者购买者&#xff0c;则物品自动下架到用户的邮件中。诸如电商用户下单&#xff0c;30分钟未支付&#xff0c;则自动取消订单&#xff…

接口的实现详解

接口 接口就是定义的规则&#xff0c;规范。 声明类时需要使用的关键字时class&#xff0c;声明接口的关键字时interface&#xff1b; 接口本身就是抽象的&#xff0c;需要一个实现类去实现接口中定义的内容。 接口当中不能定义方法&#xff1a; 接口本身就是抽象的 所在我们…

Qt实现简易计算器

目录 写在前面 一、设计思路 效果展示&#xff1a; 二、功能实现 三、设计代码 1.mainwindow.cpp 2.calculate.cpp 写在前面 上篇文章写了C中如何实现简单的计算器&#xff0c;先用C写看来我的选择是正确的&#xff0c;明白了其中的原理再用Qt实现是水到渠成的事&#…

vue实现复制功能

目录 一、vue实现复制功能 1.功能实现 2.模板结构 3.js行为 4.样式 二.延伸扩展 一、vue实现复制功能 1.功能实现 点击复制弹出复制成功信息&#xff0c;粘贴即可获得复制数据。 2.模板结构 在自己想要复制的内容所在标签上添加一个类名和一个点击事件方法&#xff0c;…

多态的实现

多态实现条件 在Java中要实现多态&#xff0c;那么必须要满足以下几个条件&#xff0c;缺一不可&#xff1a; 必须在继承体系下 子类必须要对父类中的方法进行重写 通过父类的引用调用重写的方法 多态体现&#xff1a;在代码运行时&#xff0c;当传递不同类对象时&#xff0c;…

java实现接口

接口的简述&#xff1a; 1、在java编程语言中&#xff0c;接口是属于抽象类型的&#xff0c;是抽象方法的结合&#xff0c;用interface来定义接口&#xff0c;一个类通过继承接口的方式&#xff0c;从而来继承接口的抽象方法&#xff1b;类可以继承接口&#xff0c;但是接口不可…

java实现链表

一、链表定义 链表通过指针将一组零散的内存块串联在一起进行使用。 数据格式&#xff1a; 根据上面的图展示&#xff0c;每个内存块可以称为链条的一个“结点”&#xff0c;结点包含了数据和下一个结点的地址&#xff1b;同时有2个结点特殊&#xff1a;第一个结点和最后一个…

redis实现延迟队列

前言&#xff1a;redis实现延迟队列该怎么做&#xff1f;在这里我分享一下 redis实现延迟队列 一、Redis实现延迟队列二、redis失效监听事件三、此种实现面临的问题四、开发准备五、基础实现六、使用redisson实现延迟队列七、redisson实现延迟队列的原理八、延迟队列配置九、疑…

如何设置时间格式

如何设置时间格式 开发工具与关键技术&#xff1a;VisualStudio C# 作者&#xff1a;落白 撰写时间&#xff1a;2019/06/26时间格式的转换是一个令人头疼的存在&#xff0c;格式稍微出了一点差错就保存不进数据库&#xff0c;或者在类型为时间类型的input标签中显示不出来。搞…

html如何修改时间,html怎么设置时间

html设置时间的方法&#xff1a;首先创建一个div&#xff1b;然后给该div添加一个class属性&#xff1b;最后通过“function realSysTime(clock){...}”方法设置时间即可。 本文操作环境&#xff1a;windows7系统、HTML5&&CSS3版、Dell G3电脑。 HTML设置一个当前时间s…

心跳检测时间设置

Eureka Client 向 Eureka Server 发送心跳的频率&#xff08;默认 30 秒&#xff09; client eureka:instance:# 如果x秒内&#xff0c;依然没有收到续约请求&#xff0c;判定服务过期,默认90slease-expiration-duration-in-seconds: 50# 每隔x秒钟&#xff0c;向服务中心发送…

window下时间设置

用了蛮长时间搞出点东西&#xff0c;还被上面鄙视了一番&#xff0c;算了不抱怨了&#xff0c;在鄙视中成长&#xff0c;在鄙视中强大。 我主要是完成两个两个功能:第一个是设置系统时间将其转换成十六进制精确到分钟显示出来&#xff08;这个VC中有现成的api&#xff0c;以前…

Date、Time、DateTimes设置

撰写时间&#xff1a;2019年06月16日 在数据库中设置的Date、Time、datetime类型&#xff0c;在Vs中Date、datetime便会自动转化为DataTIme类型&#xff0c;而Time类型则会转化为TimeSpan类型 常常在查出时间、日期的数据时都会乱码&#xff0c;就像下图一样&#xff0c;那么…

如何更改Windows服务器时间

Windows操作系统自带时间同步功能&#xff0c;它会自动从互联网时间服务器获取时间&#xff0c;以保证系统时间的准确性。但是&#xff0c;有时候我们需要更改时间服务器&#xff0c;以获得更准确的时间同步。小编将为大家介绍如何更改Windows时间服务器&#xff0c;以及Window…

Windows将时间设置到秒的方法

使用win10系统的用户应该都发现了&#xff0c;Win10系统右下角时间只显示到分&#xff0c;不会显示到秒&#xff0c;如果想要看到秒的话&#xff0c;需要点击一下时间才会弹出。那么&#xff0c;Win10系统时间怎么显示到秒? 默认情况下&#xff0c;需要点击后方可查看时间详情…

设置linux的时间

目录 一、什么是时间 &#xff08;1&#xff09;例子1 &#xff08;2&#xff09;例子2 二、什么是本地时间 三、linux设置本地时间的方法 &#xff08;1&#xff09;方式一&#xff1a;通过互联网自动同步 1.修改时间同步服务器 2.查看时间同步情况 &#xff08;2&…

win10电脑时间同步设置方法

win10系统的时间与日期默认是跟网络时间同步的&#xff0c;这样可以保持电脑时间的准确。不过有网友反映自己的win10电脑时间不对&#xff0c;调准时间后过段时间又是如此&#xff0c;不知道如何设置win10电脑时间同步。下面小编就教下大家win10电脑时间同步设置方法。 具体的…

简单3招教你设置电脑时间

案例&#xff1a;电脑时间怎么设置&#xff1f; 【我使用电脑时&#xff0c;电脑显示的时间一直不对&#xff0c;这导致我非常不方便&#xff0c;想问下大家平常使用电脑时有什么设置电脑时间比较简单的方法吗&#xff1f;】 电脑的时间设置很重要&#xff0c;不仅可以保证电…

超越函数e^(-x^2)收敛

超越函数e(-x2)收敛 Γ ( z ) ∫ 0 ∞ e − x 2 d t . \Gamma(z) \int_0^\infty e^{-x^2}dt\,. Γ(z)∫0∞​e−x2dt. 原函数不能直接积分所以采用极坐标变换的方式求解&#xff0c;本人自用码住