用Vue框架怎样写一个简单的购物车,基本实现是怎样
Admin 2022-06-11 群英技术资讯 593 次浏览
VUE实现简易购物车效果,供大家参考,具体内容如下
简易的购物车小demo
引用了一下bootstrap3,的表格
<section id="gouwuche"> <table class="table table-hover"> <thead> <tr> <th> <input type="checkbox" @change="handlechange" v-model="isAllChange" @click='inshow()'/> 全选 </th> <th>商品信息</th> <th>单价</th> <th>数量</th> <th>金额</th> <th>操作</th> </tr> </thead> <tbody> <tr style="height:50px;"></tr> <tr v-for="(date,index) in arr" :class="{bgcolor:isActive}"> <td> <input type="checkbox" v-model="checkgroup" :value="date" @change="handleLiChange" /> <img :src="date.imges"/> {{date.name}} </td> <td> <p>{{date.networkType}}</p> <p>{{date.colorClass}}</p> <p>{{date.packageType}}</p> <p>{{date.rom}}</p> <p>{{date.purchaseMethod}}</p> <br> </td> <td> <p><b class="danjia">{{date.price}}</b></p> </td> <td> <button @click="handleDelclike(date)" >-</button> <input type="text" :value="date.numbers"/> <button @click="date.numbers++">+</button> </td> <td> <p><b class="jiner">{{getSumje(date)}}.00</b></p> </td> <td> <p>移入收藏夹</p> <a href="#" @click="rmove(index)">删除</a> </td> </tr> </tbody> </table> <div class="box"> <div class="boxa"> <input type="checkbox" @change="handlechange" v-model="isAllChange" @click='inshow()'/> <a href="#" >全选</a> <a href="#" >删除</a> </div> <div class="boxc"> <p>已选商品:<b class="jiner">{{checkgroup.length}}</b></p> <p>合计(不含运费):<b class="jiner">{{getSum()}}<b></p> </div> <div class="boxb" > 结算 </div> </div> </section>
CSS:
#gouwuche { width: 1200px; height: ; margin: 0 auto; } .box { width: 1200px; height: 50px; margin: 30px auto; display: flex; justify-content: space-between; align-items: center; background-color: #C4E3F3; } .boxa { width: 780px; height: 50px; } .boxa a { margin-right: 50px; } .boxb { width: 120px; height: 50px; background-color: #C0C0C0; display: flex; align-items: center; justify-content: center; color: white; font-size: 18px; } .boxc { width: 300px; height: 50px; display: flex; align-items: center; justify-content: space-between; } input { width: 50px; text-align: center; } img { width: 60px; height: 60px; } a { text-decoration: none; color: #000; } * { font-size: 12px; } p { margin: 0; padding: 0; line-height: 1.9; } .danjia { font-size: 16px; } .jiner { font-size: 18px; color: #FF8C00; } .bgcolor{ background-color: rgba(205,205,205,0.2); }
js:
var gouwuche = new Vue({ el:"#gouwuche", data:{ checkgroup:[], isAllChage:false, isActive:false, arr:[ { //商品名 name:"小米 note8 Pro", //图片地址 imges:"img/t1.jpg", //颜色分类 colorClass:"机身颜色:冰翡翠", //网络类型 networkType:"网络类型:4G+全网通", //套餐类型 packageType:"套餐类型:官方标配", //存储容量 rom:"存储容量:6+128GB", //购买方式 purchaseMethod:"官方旗舰店", //单价 price:1299.00, //数量 numbers:1, //金额 money:1299.00, //索引 id:"1", }, { //商品名 name:"红米 k30 5G", //图片地址 imges:"img/t3.jpg", //颜色分类 colorClass:"机身颜色:紫玉幻境", //网络类型 networkType:"网络类型:5G+全网通", //套餐类型 packageType:"套餐类型:官方标配", //存储容量 rom:"存储容量:8+128GB", //购买方式 purchaseMethod:"官方旗舰店", //单价 price:1499.00, //数量 numbers:1, //金额 money:1499.00, //索引 id:"2", }, { //商品名 name:"红米 k30 Pro", //图片地址 imges:"img/t4.jpg", //颜色分类 colorClass:"机身颜色:象牙白", //网络类型 networkType:"网络类型:5G+全网通", //套餐类型 packageType:"套餐类型:官方标配", //存储容量 rom:"存储容量:8+256GB", //购买方式 purchaseMethod:"官方旗舰店", //单价 price:3999.00, //数量 numbers:1, //金额 money:3999.00, //索引 id:"3", }, { //商品名 name:"红米 k20 Pro", //图片地址 imges:"img/t4.jpg", //颜色分类 colorClass:"机身颜色:象牙白", //网络类型 networkType:"网络类型:5G+全网通", //套餐类型 packageType:"套餐类型:官方标配", //存储容量 rom:"存储容量:8+256GB", //购买方式 purchaseMethod:"官方旗舰店", //单价 price:3999.00, //数量 numbers:1, //金额 money:3999.00, //索引 id:"3", } ], }, methods:{ inshow:function(){ this.isActive = !this.isActive; }, //总额 getSum:function(){ var sum = 0; for(var i in this.checkgroup){ sum += this.checkgroup[i].numbers * this.checkgroup[i].price; } return sum; }, //单品总额 getSumje:function(date){ var sum = date.price; sum *= date.numbers; return sum; }, //判断全选框 handlechange:function(){ if(this.isAllChange){ this.checkgroup = this.arr; }else{ this.checkgroup = []; } }, //判断全选框 handleLiChange:function(){ if(this.checkgroup.length !== this.arr.length){ this.isAllChange = false; }else{ this.isAllChange = true; } }, //数量减1 handleDelclike:function(date){ var numbers = date.numbers--; if(numbers === 1){ date.numbers = 1; } }, //删除 rmove:function(index){ var that = this; that.arr.splice(index,1); that.checkgroup.splice(index,1); } } })
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
目录elementUI 如何处理文件批量上传问题解决elementUI批量上传下载注意事项在el-upload组件关键的钩子,其它省略点击上传,将多个文件和表单数据一起上传elementUI 如何处理文件批量上传问题elementUI的Upload上传组件,通过设置multiple为true,就可以实现多选文件;但是在
这篇文章主要介绍“Cocos项目中有哪些使用的开发技巧”,有一些人在Cocos项目中有哪些使用的开发技巧的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。
我们经常会遇到判断一个变量的数据类型或该变量是否为空值的情况,你是如何去选择判断类型操作符的?本文来记录一下我们开发人员必须掌握关于 typeof 和 instanceof 的知识点及在开发中的使用建议,同时在面试过程中也经常会遇到这样的问题,需要的朋友可参考下文章内容
这篇文章主要为大家详细介绍了jquery实现手风琴展开效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
javascript数组中的map方法和filter方法,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008