Vue写一个购物车

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.0.2/css/bootstrap.min.css"/>

</head>

<body>

<div id="app" class="container">

<table class="table">

<thead>

<tr>

<th>产品编号</th>

<th>产品名字</th>

<th>购买数量</th>

<th>产品单价</th>

<th>产品总价</th>

<th>操作</th>

</tr>

</thead>

<tbody>

<tr v-for="(item , index) in message">

<td @click="jia(index)">{{item.id}}</td>

<td>{{item.name}}</td>

<td>

<button type="button" class="btn tn-primary" @click="subtract(index)">-</button>

<input type="text" v-model="item.quantity">

<button type="button" class="btn tn-primary" @click="add(index)">+</button>

</td>

<td>{{item.price | filtermoney}}</td>

<!--<td>{{arr[index].one}}</td>-->

<td>{{item.price*item.quantity | filtermoney}}</td>

<td>

<button type="button" class="btn btn-danger" @click="remove(index)">移除</button>

</td>

</tr>

<tr>

<td>总购买价

</td>

<td>

{{animatenum | filtermoney}}

</td>

<td>总购买数量

</td>

<td>

</td>

<td colspan="2">

<button type="button" class="btn btn-danger" @click="empty()">清空购物车</button>

</td>

</tr>

</tbody>

</table>

更多资料免费分享加群      120342833      验证回答      ZZ

<p v-if="message.length===0">您的购物车为空</p>

</div>

<script src="https://unpkg.com/[email protected]"></script>

<script src="https://cdn.bootcss.com/vue/2.2.3/vue.min.js"></script>

<script>

var vm=new Vue({

el:"#app",

data:{

totalPrice:0,

animatenum:0,

message:[

{

id: 007,

name: ‘iphone5s‘,

quantity: 3,

price: 4000

},{

id: 1340,

name: ‘iphone5‘,

quantity: 9,

price: 3000

},{

id: 7758,

name: ‘imac‘,

quantity: 4,

price: 7000

},{

id: 2017,

name: ‘ipad‘,

quantity: 5,

price: 6000

}

]

},

watch:{

toComput2:function(newValue,oldValue){

this.tween(newValue,oldValue);

}

},

computed:{

//计算总金额

toComput2:function(){

var vm=this;

//每次进来要重置总金额

vm.totalPrice=0;

this.message.forEach(function(mess){

vm.totalPrice+=parseInt(mess.price*mess.quantity);

})

return this.totalPrice;

}

},

filters:{

filtermoney:function(value){

return ‘¥‘+value ;

}

},

mounted:function(){

this.tween(‘97000‘,‘0‘);

},

methods:{

//计算总数的方法为什么写在methods里面就不行?

toComput:function(){

var vm=this;

vm.message.forEach(function(mess){

vm.totalPrice+=parseInt(mess.price*mess.quantity);

})

return vm.totalPrice;

},

add:function(index){

var vm=this;

vm.message[index].quantity++;

},

subtract:function(index){

var vm=this;

vm.message[index].quantity--;

if(vm.message[index].quantity<=0){

if (confirm("你确定移除该商品?")) {

vm.message.splice(index,1)

}

}

},

remove:function(index){

var vm=this;

if (confirm("你确定移除该商品?")) {

vm.message.splice(index,1)

}

},

empty:function(){

var vm=this;

vm.message.splice(0,vm.message.length);

},

jia:function(index){

var vm=this;

vm.arr[index].one++;

},

tween:function(newValue,oldValue){

var vm=this;

var twen=new TWEEN.Tween({animatenum:oldValue});

function animate() {

requestAnimationFrame(animate);

TWEEN.update();

};

twen.to({animatenum:newValue},750);

twen.onUpdate(function(){

//toFixed();保留几位小数

vm.animatenum = this.animatenum.toFixed();

})

twen.start();

animate();

}

}

});

</script>

</body>

</html>

时间: 2024-10-30 12:35:41

Vue写一个购物车的相关文章

前端开发:Vue写一个购物车

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> https://cdn.bootcss.com/bootstrap/3.0.2/css/bootstrap.min.css"/> </head> <body> <div id="app"> <table> <thead> <tr>

用vue写一个仿简书的轮播图

原文地址:Bougie的博客 1.先展示最终效果: 2.解决思路 Vue的理念是以数据驱动视图,所以拒绝通过改变元素的margin-top来实现滚动效果.写好css样式,只需改变每张图片的class即可实现轮播效果.动画效果交给transition完成.可以将轮播图看成两个(mainSlide和extraSlide),各个图片的位置如图所示: 3.代码实现 各个slide的样式: $width: 800px; // 容器宽度 $height: 300px; // 容器高度 $bWidth: 50

Vue学习—Vue写一个图片轮播组件

1.先看效果: 熟悉的图片轮播,只要是个网站,百分之90以上会有个图片轮播.我认为使用图片轮播. 第一可以给人以一种美观的感受,而不会显得网站那么呆板, 第二可以增加显示内容,同样的区域可以显示更多内容. 2.每学一个新东西 ,图片轮播都是很好的练手案例,而且,也很实用. 3.基本要求:页面加载,自动播放.鼠标悬停,停止播放.鼠标离开,继续播放 点击左右箭头切换上一张,下一张图片. 下方小圆点显示当前位第几张图片. 4.使用Vue实现,想法: 5.示例代码 结构html: <template>

在上线项目中,用Vue写一个星级评价

先看一下效果: html: <div class="big-star-box"> <img :src="imgNum>0 ? srcStar : srcNoStar" @click="imgItem(1)"> <img :src="imgNum>1 ? srcStar : srcNoStar" @click="imgItem(2)"> <img :src

利用html5的本地存储写的一个购物车

好久没有写博客园了,很多知识没有记录下来:可惜: 这几天在开发微信,也写了一个订餐平台的微网站,里面需要写一个购物车: 这里主要是把商品的部分信息以json格式保存在sessionstorage中,还有商店信息也是: 以json格式保存有什么好处呢,轻量级的传输,大概是这样吧!另外,如果我们把商品信息分开存储,就会导致有多条的sessionstorage项,那以后实现在两家商店同时购物的话,就不可能区分每家商店的商品了: 如果代码是自己写的,就有版权,这么说.对吧,是在软件工程师书上看到的: 不

用java代码写一个简单的网上购物车程序

1 需求:1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性.2.写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法. 2 3 3.写一个购物车类,有添加商品方法.查看订单信息,删除商品,修改商品,清空购物车,求购物车中所有商品总金额方法.4.写一个测试类,测试上述方法. 4 5 商品类: 6 [java] view plain copy 7 8 public class Product { 9 private int productId;// 商品编号 10 privat

写一个vue组件

写一个vue组件 我下面写的是以.vue结尾的单文件组件的写法,是基于webpack构建的项目.如果还不知道怎么用webpack构建一个vue的工程的,可以移步到vue-cli. 一个完整的vue组件会包括一下三个部分: template:模板 js: 逻辑 css : 样式 每个组件都有属于自己的模板,js和样式.如果将一个页面比喻成一间房子的话,组件就是房子里的客厅.卧室.厨房.厕所.如果把厨房单独拿出来的话,组件又可以是刀.油烟机...等等.就是说页面是由组件构成的,而组件也可以是组件构成

写一个简单vue 中间件,$emit、$on

前言 使用过vue的同学大多数都知道$emit 与$on的使用.我们仅仅知道使用,有时候是完全不够的.现在我就带领大家写一个简单类似于vue空实例的中间件. 非父子组件的通信 非父子组件的通信vue官网给出这样的解决方案. 有时候,非父子关系的两个组件之间也需要通信.在简单的场景下,可以使用一个空的 Vue 实例作为事件总线: var bus = new Vue() // 触发组件 A 中的事件 bus.$emit('id-selected', 1) // 在组件 B 创建的钩子中监听事件 bu

写一个循环,不断的问客户想买什么 ,当用户选择一个商品编号,就把对应的商品加入购物车 ,最终用户输入q退出时,答应购物车的商品

写一个循环,不断的问客户想买什么 ,当用户选择一个商品编号,就把对应的商品加入购物车 ,最终用户输入q退出时,答应购物车的商品products=[["Iphone8",68888],["MacpPro",14800],["Coffee",31],["小米",2499],["Book",80],["Nlke",799]]shopping_cart=[]print(".....商品