相思资源网 Design By www.200059.com
本文实例为大家分享了vue实现购物车功能的具体代码,供大家参考,具体内容如下
new Vue({
el: "#app",
data: {
cIndex: 0,
lists: [
{
title: "推荐商品",
goods: [
{
id: 0,
img: './images/goods.png',
name: '散称樱桃1',
price: '10.00',
num: 0
},
{
id: 1,
img: './images/goods.png',
name: '散称樱桃1',
price: '10.00',
num: 0
}
]
},
{
title: "推荐商品",
goods: [
{
id: 2,
img: './images/goods.png',
name: '散称樱桃2',
price: '20.00',
num: 0
},
{
id: 3,
img: './images/goods.png',
name: '散称樱桃2',
price: '20.00',
num: 0
},
]
},
],
carArr: [],
appearCar: false,
},
computed:{
alltotal:function () {
var alltotal = 0;
var allNum = 0;
for(var i = 0,len = this.lists.length;i<len;i++){
for(var j = 0,goodsLen = this.lists[i].goods.length;j<goodsLen;j++){
alltotal += parseInt(this.lists[i].goods[j].num)*parseFloat(this.lists[i].goods[j].price);
allNum += parseInt(this.lists[i].goods[j].num);
}
}
return [alltotal,allNum]
},
},
methods: {
leftTap: function (index) {
this.cIndex = index
},
showCar: function () {
if (this.carArr.length == 0) {
this.appearCar = false
} else {
this.appearCar = !this.appearCar
}
},
//商品数量加
addNum: function (data) {
data.num++;
var carArr = this.carArr;
var isCar = false;
if (carArr == 0) {
carArr.push(data)
}
for (var i = 0, len = carArr.length; i < len; i++) {
if (data.id == carArr[i].id) {
isCar = true
}
}
if (!isCar) {
carArr.push(data)
}
},
reduceNum: function (data) {
if (data.num <= 0) return;
var carArr = this.carArr;
data.num--;
var isCar = false;
for (var i = 0, len = carArr.length; i < len; i++) {
if (carArr[i].num <= 0) {
carArr.splice(i, 1)
}
}
},
carAddNum: function (index) {
this.carArr[index].num++
},
carReduceNum: function (index) {
this.carArr[index].num--;
if (this.carArr[index].num <= 0) {
this.carArr.splice(index, 1)
}
if (this.carArr.length == 0) {
this.appearCar = !this.appearCar
}
},
// 清空
delCar: function () {
confirm('确定清空购物车吗"htmlcode">
<div id="app" v-cloak>
<div class='box'>
<div class='boxleft'>
<div class='boxla'>
<img src='./images/sm.png'/>
<span>扫码</span>
</div>
<ul class='boxlbox'>
<template v-for="(item,index) in lists">
<li @click='leftTap(index)' :class="{boxlb_cheak:cIndex==index}" class='boxlb'>
<span class='boxlb_inner' :class="{boxlb_inner_cheak:cIndex==index}">{{item.title}}</span>
</li>
</template>
</ul>
</div>
<ul class='boxright'>
<li class='boxri' v-for="(item,index) in lists[cIndex].goods">
<img class='boxri_img' :src='item.img'/>
<div class='boxri_text'>
<div class='boxrit_left'>
<p class='boxritl_name'>{{item.name}}</p>
<p class='boxritl_price'>¥{{item.price}}</p>
</div>
<div class='boxrit_right'>
<img @click='reduceNum(item)' v-show="item.num>0" class='boxrit_right_img' src='./images/minus.png'/>
<span class='boxrit_right_num' v-show="item.num>0">{{item.num}}</span>
<img @click='addNum(item)' class='boxrit_right_img' src='./images/add.png'/>
</div>
</div>
</li>
</ul>
</div>
<footer class='footer'>
<div class='cartImgBox'>
<img class='cartImg' src='./images/car.png' @click='showCar'/>
共{{alltotal[1]}}件商品
</div>
<div class='footerb'>¥{{alltotal[0]}}</div>
<div @click='Settlement' class='footerc'>结算</div>
</footer>
<!-- 购物车 -->
<div class='shop-car-mask' v-show="appearCar">
<div class='shop-com'>
<div class='shop-title'>
<span>已选商品</span>
<span @click="delCar">清空</span>
</div>
<ul class="car-shopList">
<template v-for='(item,index) in carArr'>
<li class='car-list'>
<div class='car-img'>
<img :src='item.img'/>
</div>
<div class='car-name'>{{item.name}}</div>
<div class='car-num'>¥{{item.price}}</div>
<div class='boxrit_right2'>
<img @click='carReduceNum(index)' class='boxrit_right_img2' src='./images/minus.png'/>
<span class='boxrit_right_num2'>{{item.num}}</span>
<img @click='carAddNum(index)' class='boxrit_right_img2' src='./images/add.png'/>
</div>
</li>
</template>
</ul>
</div>
</div>
</div>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
vue,购物车
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无vue实现购物车功能(商品分类)的评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。