博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端开发:Vue写一个购物车
阅读量:5234 次
发布时间:2019-06-14

本文共 2761 字,大约阅读时间需要 9 分钟。

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

"/>

</head>

<body>

<div id="app">

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

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

<inputtype="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>

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

</td>

</tr>

<tr>

<td>总购买价

</td>

<td>

{

{animatenum |filtermoney}}

</td>

<td>总购买数量

</td>

<td>

</td>

<tdcolspan="2">

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

</td>

</tr>

</tbody>

</table>

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

 

 

 

">

">

<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(){

varvm=this;

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

vm.totalPrice=0;

this.message.forEach(function(mess){

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

})

returnthis.totalPrice;

}

},

filters:{

filtermoney:function(value){

return '¥'+value ;

}

},

mounted:function(){

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

},

methods:{

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

toComput:function(){

varvm=this;

vm.message.forEach(function(mess){

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

})

returnvm.totalPrice;

},

add:function(index){

varvm=this;

vm.message[index].quantity++;

},

subtract:function(index){

varvm=this;

vm.message[index].quantity--;

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

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

vm.message.splice(index,1)

}

}

},

remove:function(index){

varvm=this;

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

vm.message.splice(index,1)

}

},

empty:function(){

varvm=this;

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

},

jia:function(index){

varvm=this;

vm.arr[index].one++;

},

tween:function(newValue,oldValue){

varvm=this;

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

functionanimate() {

requestAnimationFrame(animate);

TWEEN.update();

};

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

twen.onUpdate(function(){

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

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

})

twen.start();

animate();

}

}

});

</script>

</body>

</html>

【web前端交流学习群018】群号498854752

转载于:https://www.cnblogs.com/xsns/p/6714028.html

你可能感兴趣的文章
工作中使用到的技术和工具分享
查看>>
用Gradle命令行编译Android工程
查看>>
Edward Frenkel关于几何化朗兰兹纲领的采访
查看>>
APP上架流程
查看>>
虚拟机出现“操作文件.PhysicalDrive1失败”的解决方法
查看>>
虚拟交换系统-VSS
查看>>
UNL/EVE关联putty和wireshark
查看>>
考研数据结构-顺序表(基本操作)
查看>>
14_01__shmGetZ
查看>>
ant-design学习准备_1
查看>>
Win7 IIS7.5+PHP Manager安装配置PHP5+Mysql教程
查看>>
工具-VS常用快捷键
查看>>
牛客 216D 消消乐 (二分图最小点覆盖)
查看>>
详解Linux服务器最大tcp连接数
查看>>
mssql sqlserver 视图如何加密,让第三方用户查看不到其中的SQL语句
查看>>
android 滑动菜单SlidingMenu的实现(转)
查看>>
Windows下Tesseract-OCR的安装
查看>>
使用WSUS离线下载补丁并安装在非联网的windows系统中(以Windows Server 2008 r2为例)...
查看>>
JVM
查看>>
html5实现的超简单幻灯片
查看>>