vue实现简单购物车页面部分功能
2017-09-27 21:58
1006 查看
为实现功能为第一,布局引用框架,不足支出请指正
一、body部分的代码:
<div id="app">
<header class="bar bar-header bar-assertive">
<span class="title">购物车</span>
</header>
<header class="bar bar-subheader bar-dark">
<span class="title">总件数: {{totalNum}} 总价格: {{totalPrice}}</span>
</header>
<section class="content scroll-content overflow-scroll has-header has-footer has-subheader">
<ul class="list ">
<li class="item item-thumbnail-left" v-for="(n,index) in cartList">
<img :src="n.pic">
<h2>{{n.title}}</h2>
<p>单价:{{n.price}}</p>
<p class="box">数量:
<span @click="add(index)">+</span>
<span><input type="text" v-model="n.qal"></span>
<span @click="sub(index)">-</span>
</p>
</li>
</ul>
</section>
<footer class="tabs tabs-icon-top">
<div class="tab-item">
<i class="icon ion-ios-home"></i>
首页
</div>
<div class="tab-item">
<i class="icon ion-ios-home"></i>
首页
</div>
<div class="tab-item">
<i class="icon ion-ios-home"></i>
首页
</div>
<div class="tab-item has-badge">
<span class="badge badge-assertive">{{totalNum}}</span>
<i class="icon ion-ios-home"></i>
购物车
</div>
<div class="tab-item">
<i class="icon ion-ios-home"></i>
首页
</div>
</footer>
</div>
二、vue部分代码
(function () {
//实例化vue
var vm = new Vue({
el:"#app",
//抽取方法和属性
data:{
totalNum:0,
totalPrice:0,
cartList:[]
},
methods:{
//当点击加号时
add:function(idx){
this.cartList[idx].qal++;
this.counter(this.cartList);
},
//当点击减号时
sub:function (idx) {
if(this.cartList[idx].qal <=1){
this.cartList[idx].qal =1;
}else{
this.cartList[idx].qal--
this.counter(this.cartList);
}
},
initData:function () {
//新的ajax请求方式 (cart.json文件中放入商品)
fetch("assets/cart.json").then((response)=>{
response.json().then(data=>{
this.counter(data);
this.cartList = data;
})
})
},
counter:function(data){
this.totalNum=0;
this.totalPrice =0;
data.forEach((v,index)=>{
this.totalNum += v.qal;
this.totalPrice += v.qal * v.price;
})
}
},
//实例化开始
beforeCreate:function () {
},
//实例化完成
created:function () {
this.initData();
},
//监听总价 如大于5000 送1000
watch:{
"totalPrice":function(n,o){
if(n >= 5000){
console.log("满5000,送1000 cent");
}
}
}
})
})()
一、body部分的代码:
<div id="app">
<header class="bar bar-header bar-assertive">
<span class="title">购物车</span>
</header>
<header class="bar bar-subheader bar-dark">
<span class="title">总件数: {{totalNum}} 总价格: {{totalPrice}}</span>
</header>
<section class="content scroll-content overflow-scroll has-header has-footer has-subheader">
<ul class="list ">
<li class="item item-thumbnail-left" v-for="(n,index) in cartList">
<img :src="n.pic">
<h2>{{n.title}}</h2>
<p>单价:{{n.price}}</p>
<p class="box">数量:
<span @click="add(index)">+</span>
<span><input type="text" v-model="n.qal"></span>
<span @click="sub(index)">-</span>
</p>
</li>
</ul>
</section>
<footer class="tabs tabs-icon-top">
<div class="tab-item">
<i class="icon ion-ios-home"></i>
首页
</div>
<div class="tab-item">
<i class="icon ion-ios-home"></i>
首页
</div>
<div class="tab-item">
<i class="icon ion-ios-home"></i>
首页
</div>
<div class="tab-item has-badge">
<span class="badge badge-assertive">{{totalNum}}</span>
<i class="icon ion-ios-home"></i>
购物车
</div>
<div class="tab-item">
<i class="icon ion-ios-home"></i>
首页
</div>
</footer>
</div>
二、vue部分代码
(function () {
//实例化vue
var vm = new Vue({
el:"#app",
//抽取方法和属性
data:{
totalNum:0,
totalPrice:0,
cartList:[]
},
methods:{
//当点击加号时
add:function(idx){
this.cartList[idx].qal++;
this.counter(this.cartList);
},
//当点击减号时
sub:function (idx) {
if(this.cartList[idx].qal <=1){
this.cartList[idx].qal =1;
}else{
this.cartList[idx].qal--
this.counter(this.cartList);
}
},
initData:function () {
//新的ajax请求方式 (cart.json文件中放入商品)
fetch("assets/cart.json").then((response)=>{
response.json().then(data=>{
this.counter(data);
this.cartList = data;
})
})
},
counter:function(data){
this.totalNum=0;
this.totalPrice =0;
data.forEach((v,index)=>{
this.totalNum += v.qal;
this.totalPrice += v.qal * v.price;
})
}
},
//实例化开始
beforeCreate:function () {
},
//实例化完成
created:function () {
this.initData();
},
//监听总价 如大于5000 送1000
watch:{
"totalPrice":function(n,o){
if(n >= 5000){
console.log("满5000,送1000 cent");
}
}
}
})
})()
相关文章推荐
- 实现简单的聊天功能部分Vue
- bootstrap+vue.js实现简单的购物车功能
- vue.js实现简单的购物车功能
- vue2实现简单的商品加入购物车和结算功能(前端数据保存方向)
- vue实现的上传图片到数据库并显示到页面功能示例
- JS小功能(列表页面隔行变色)简单实现
- 简单3步 js使用cookie实现的购物车功能[原创]
- 用jQuery实现简单的加入收藏页面的功能
- Jquery仿美团外卖等食品选择页面购物车数量加减功能实现
- vue实现商城购物车功能
- angularjs实现简单的购物车功能
- 简单的asp.net模拟邮箱系统基础实现(二 (2)具体版块功能的实现及关键代码之登陆页面)
- ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
- Session对象的应用:实现简单的购物车的功能
- 简单的angular实现一个购物车小功能
- 爬虫requests库简单抓取页面信息功能实现(Python)
- jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
- JS实现简单loading功能页面
- 简单的asp.net模拟邮箱系统基础实现(二 (1)具体版块功能的实现及关键代码之注册页面)
- ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能