Vue实现简易购物车页面


Posted in Vue.js onDecember 30, 2020

VUE实现简易购物车效果,供大家参考,具体内容如下

简易的购物车小demo

引用了一下bootstrap3,的表格

Vue实现简易购物车页面

<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);
  

 }
 
 }
 
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
vue使用vant中的checkbox实现全选功能
Nov 17 Vue.js
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 Vue.js
详解Vue的异步更新实现原理
Dec 22 Vue.js
详解Vue的七种传值方式
Feb 08 Vue.js
如何理解Vue前后端数据交互与显示
May 10 Vue.js
vue如何批量引入组件、注册和使用详解
May 12 Vue.js
Vue如何实现组件间通信
May 15 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
vue实现列表垂直无缝滚动
Apr 08 Vue.js
vue使用watch监听属性变化
Apr 30 Vue.js
vue3 自定义图片放大器效果的示例代码
Jul 23 Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 #Vue.js
vue+element UI实现树形表格
Dec 29 #Vue.js
vue实现树状表格效果
Dec 29 #Vue.js
vue实现图书管理系统
Dec 29 #Vue.js
Vue实现随机验证码功能
Dec 29 #Vue.js
vue3+typeScript穿梭框的实现示例
Dec 29 #Vue.js
Vue.extend 登录注册模态框的实现
Dec 29 #Vue.js
You might like
实用函数10
2007/11/08 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
Symfony生成二维码的方法
2016/02/04 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
Python对象体系深入分析
2014/10/28 Python
简单理解Python中基于生成器的状态机
2015/04/13 Python
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
几个Linux面试题笔试题
2012/12/01 面试题
汽车销售求职自荐信
2013/10/01 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
分公司任命书
2014/06/06 职场文书
社区志愿者活动总结
2014/06/26 职场文书
财务会计专业自荐书
2014/06/30 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
唐山大地震的观后感
2015/06/05 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书