日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

vue實現(xiàn)淘寶購物車功能

瀏覽:228日期:2022-06-12 10:52:08

本文實例為大家分享了vue實現(xiàn)淘寶購物車的具體代碼,供大家參考,具體內(nèi)容如下

淘寶購物車功能,效果如下圖

vue實現(xiàn)淘寶購物車功能

非常簡單的邏輯,沒有做代碼的封裝,代碼如下

<div class='list-container'> <div class='top-ops'><div> <img src='http://www.b3g6.com/static/images/HomeRecommendShopInfoAdress@2x.png' alt=''> <span>浙江省杭州市...</span></div><div class='ops'> <span v-if='cartStatus === ’account’' @click='cartStatus = ’edit’'>編輯商品</span> <span v-if='cartStatus === ’edit’' @click='cartStatus = ’account’'>完成</span></div> </div> <div class='paddingB200'> <div v-for='(item,index) in cartShops' :key='index'><div class='shop-name'> <label> <input type='checkbox' name='shopRadio' :value='item.productShopId' @click='shopCheck($event,cartShops)' class='disN'> <b></b> </label> <div> <div> <img src='http://www.b3g6.com/static/images/mall@2x.png' alt=''> <span class='name'>{{item.shopName}}</span> </div> <span> <img src='http://www.b3g6.com/static/images/jtxq@2x.png' alt=''> </span> </div></div><div v-for='(goods,goodsIndex) in item.detailLists' :key='goodsIndex'> <label> <input type='checkbox' name='goodRadio' :price='goods.price' :num='goods.number' :dataId='item.productShopId' :value='goods.cartDetailId' @click='goodsCkeck($event,item.detailLists,cartShops,item.productShopId)' class='disN'> <b></b> </label> <div class='middle'> <img :src='http://www.b3g6.com/bcjs/goods.reportImage' alt=''> <div> <p class='name'>{{goods.name}}</p> <p class='spec'>{{goods.specifications}}</p> <p class='tab'><img src='http://www.b3g6.com/static/images/lsspbq@2x.png' alt=''> </p> </div> </div> <div class='right'> <p class='price'>¥{{goods.price}}</p> <p class='num'>X{{goods.number}}</p> <p class='caculate'> <span @click='numDecrease(goods.number)'></span> <span class='beeforCacul'>{{goods.number}}</span> <span :num='goods.cartDetailId'>{{goods.number}}</span> <span @click='numAdd(goods.number)'></span> </p> </div></div> </div> <div v-if='cartStatus === ’edit’'><label> <input type='checkbox' name='allRadio' @click='allCheck($event)'> <b></b> <span>全選</span></label><span class='delet'>刪除(3)</span> </div> <div v-if='cartStatus === ’account’'><label> <input type='checkbox' name='allRadio' @click='allCheck($event)'> <b></b> <span class='marginR40'>全選</span> <span>合計:</span> <span class='sum'>¥{{sumPrice.toFixed(2)}}</span></label><span @click='cauSum'>去結(jié)算({{totalNumber}})</span> </div> </div></div>

export default { components: { }, name: 'life', data() { return { cartStatus:'account', //購物車狀態(tài),account結(jié)算,edit刪除編輯狀態(tài) cartShops: [], //店鋪列表 sumPrice:0, //合計金額 totalNumber: 0, //總數(shù) shopList:[], //店鋪列表 goodsList:[], //商品列表 }; }, watch: { }, mounted() { this.getCartDetail(); }, methods: { //購物車列表 getCartDetail: function(){ this.$http.get('api/product/v1/getCartDetail').then( res => {if(res.data.code === 200){ //console.log(res.data.data) this.cartShops = res.data.data.cartShops;}else{ Toast(res.data.msg);} }).catch( error => {console.log(error) }) }, //商品選擇 goodsCkeck: function(event,goodsList,shopList,shopId){ //商品列表+-,店鋪是否checked(店鋪列表+-),全選是否checked var input = document.getElementsByTagName(’input’) if(event.currentTarget.checked){this.goodsList.push(String(event.currentTarget.value));//如果店鋪內(nèi)所有商品全選,店鋪選中var newArr = this.goodsList;var tt = goodsList.every(function(itemValue){ return (newArr.indexOf(String(itemValue.cartDetailId)) != -1)})if(tt){ //店鋪內(nèi)全選,店鋪checked,店鋪列表+ for(var i = 0;i<input.length;i++){ if(input[i].value == shopId){ input[i].checked = true; } } this.shopList.push(String(shopId)); //防止shopid是number類型造成麻煩 //如果所有店鋪都全選,則全選按鈕checked if(this.shopList.length === shopList.length){ //所有店鋪全選 for(var i = 0;i<input.length;i++){ if(input[i].name == ’allRadio’){input[i].checked = true; } } }} }else{//商品列表--this.goodsList.splice(this.goodsList.indexOf(event.currentTarget.value),1)//如果店鋪checked,則取消,店鋪列表--for(var i = 0;i<input.length;i++){ if(input[i].value == shopId){ if(input[i].checked){ input[i].checked = false; this.shopList.splice(this.shopList.indexOf(String(shopId)),1); //防止shopid是number類型造成麻煩 } } //任意一個不選,全選取消 if(input[i].name == ’allRadio’){ input[i].checked = false; }} } //計算總價和數(shù)量 this.caculate(); }, //店鋪選擇 shopCheck: function(event,shopList){ //店鋪選中則對應商品全選,否則全不選 //console.log(event.currentTarget) var input = document.getElementsByTagName(’input’) if(event.currentTarget.checked){//店鋪列表+,店鋪checked,店鋪內(nèi)商品全checked,商品列表++//console.log(this.shopList)this.shopList.push(String(event.currentTarget.value));//店鋪內(nèi)商品全checkedfor(var i = 0;i<input.length;i++){ if(input[i].getAttribute(’dataId’) == event.currentTarget.value){ //將沒有選中的checked,并加入列表,去重 if(!input[i].checked){ input[i].checked = true; //商品列表++ this.goodsList.push(String(input[i].value)) } }}//所有店鋪全選if(this.shopList.length === shopList.length){ for(var i = 0;i<input.length;i++){ if(input[i].name == ’allRadio’){ input[i].checked = true; } }} }else{//店鋪取消checked,店鋪列表--,店鋪內(nèi)所有商品取消checked,商品列表--this.shopList.splice(this.shopList.indexOf(String(event.currentTarget.value)),1);//店鋪內(nèi)所有商品取消checkedfor(var i = 0;i<input.length;i++){ if(input[i].getAttribute(’dataId’) == event.currentTarget.value){ input[i].checked = false; //商品列表-- this.goodsList.splice(this.goodsList.indexOf(input[i].value),1); } //任意一個不選,全選取消 if(input[i].name == ’allRadio’){ input[i].checked = false; }} } //計算總價和數(shù)量 this.caculate(); }, //所有全選 allCheck: function(event){ var input = document.getElementsByTagName(’input’) if(event.currentTarget.checked){//全選checked,所有店鋪checked,店鋪列表++,所有商品checked,商品列表++for(var i = 0;i<input.length;i++){ //去重 if(!input[i].checked){ input[i].checked = true; if(input[i].name == ’shopRadio’){ this.shopList.push(String(input[i].value)) } if(input[i].name == ’goodRadio’){ this.goodsList.push(String(input[i].value)) } }} }else{//全不選取消checked,店鋪全部取消checked,店鋪列表清空,所有商品取消checked,商品列表清空for(var i = 0;i<input.length;i++){ input[i].checked = false; this.shopList = []; this.goodsList = [];} } //計算總價和數(shù)量 this.caculate(); }, //計算總金額總數(shù)量 caculate: function(){ var input = document.getElementsByTagName(’input’); var newArr = []; for(var i = 0;i<input.length;i++){if(input[i].name == ’goodRadio’ && input[i].checked){ var num = input[i].parentNode.parentNode.children[2].children[2].children[2].innerHTML; newArr.push( { ’price’: input[i].getAttribute(’price’), ’num’: num } )} } this.totalNumber = newArr.length; //歸零 this.sumPrice = 0; for(var j = 0,len = newArr.length;j<len;j++){this.sumPrice += newArr[j].price * newArr[j].num; } }, //數(shù)量減小 numDecrease: function(num){ //如果當前input選中,則修改數(shù)量計算價格,如果當前input沒有選中,則修改數(shù)量不計算價格 var spanList = event.currentTarget.parentNode.children; for(var i = 0,len = spanList.length;i<len;i++){if(spanList[i].getAttribute('class') == ’beeforCacul’){ spanList[i].style.display = ’none’;}if(spanList[i].getAttribute('class') == ’cacul’){ spanList[i].style.display = ’block’; var caculNum = spanList[i].innerHTML; if(caculNum < 2){ Toast(’寶貝不能再少了哦’); }else{ caculNum -- spanList[i].innerHTML = caculNum; }} } if(event.currentTarget.parentNode.parentNode.parentNode.children[0].children[0].checked){this.caculate(); } }, //數(shù)量增加 numAdd: function(num){ var spanList = event.currentTarget.parentNode.children; //console.log(event.currentTarget.parentNode.children) for(var i = 0,len = spanList.length;i<len;i++){if(spanList[i].getAttribute('class') == ’beeforCacul’){ spanList[i].style.display = ’none’;}if(spanList[i].getAttribute('class') == ’cacul’){ spanList[i].style.display = ’block’; var caculNum = spanList[i].innerHTML; caculNum ++; spanList[i].innerHTML = caculNum;} } if(event.currentTarget.parentNode.parentNode.parentNode.children[0].children[0].checked){this.caculate(); } }, //去結(jié)算 cauSum:function(){ if(this.sumPrice === 0){Toast(’您還沒有選擇寶貝哦’); }else{this.$router.push(’/cart/order’) } }, }};

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: 淘寶
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91成人小视频| 日韩中文字幕亚洲一区二区va在线| 视频一区二区欧美| 欧美freesex黑人又粗又大| 色天使综合视频| 欧美亚洲在线日韩| 91久久黄色| 日韩精品一区二区三区中文在线| 欧美日韩夜夜| www在线观看黄色| 欧美粗暴jizz性欧美20| 亚洲综合精品| 日韩高清不卡在线| 久久精品99久久久| 国产一区二区三区国产精品| 久久精品一区二区不卡| 久久亚洲电影| 久久精品一区二区国产| 中文字幕成在线观看| 国产高清久久| 国产日韩欧美高清免费| 亚洲成人va| 日韩综合一区二区| 国产精品777777在线播放| 99成人在线视频| 天堂va在线高清一区| 日韩理论视频| 一区二区电影| 国产拍在线视频| 亚洲婷婷丁香| 人在线成免费视频| 欧美一区在线观看视频| 久久九九99| 911精品国产| 极品av在线| 人人精品人人爱| 欧美黄色一区| 玖玖玖国产精品| 国产一区2区| 婷婷精品久久久久久久久久不卡| 福利视频一区| 欧美在线看片| 亚洲深夜福利| 久久uomeier| 88久久精品| 中国女人久久久| 国产超碰精品| 久久只有精品| 亚洲一区二区小说| 日韩精品欧美| 欧美aa在线视频| 亚洲精品韩国| 亚洲激情二区| 久久国产成人午夜av影院宅| 久久99久久人婷婷精品综合| 免费观看在线综合色| 成人免费网站www网站高清| 国产图片一区| 日本一区二区中文字幕| 狠狠爱成人网| 日韩美女一区二区三区在线观看| 欧美日韩夜夜| 综合在线一区| 国产高清一区| 久久久久久黄| 不卡一二三区| 捆绑调教日本一区二区三区| 国产极品嫩模在线观看91精品| 国产精品嫩草99av在线| 久久影院午夜精品| 国产精品成人国产| 日韩视频免费| 国产专区一区| 天堂日韩电影| 激情国产在线| 久久国产精品美女| 婷婷综合一区| 婷婷五月色综合香五月| 激情欧美日韩一区| 欧美国产先锋| 欧美日韩1区| 日韩高清在线不卡| 91欧美极品| 亚洲a成人v| 丝袜亚洲另类欧美| 国产手机视频一区二区| 亚洲综合丁香| 免费在线视频一区| 国产视频欧美| 在线国产一区二区| 麻豆亚洲精品| 蜜臀av一区二区在线免费观看| 好看的av在线不卡观看| 欧美1区免费| 久久午夜视频| 四虎精品一区二区免费| 亚洲一区日韩在线| 中文字幕一区二区av| 日韩精品久久久久久| 日韩av中文字幕一区| 国产精品亚洲片在线播放| 久久一区亚洲| 中文字幕色婷婷在线视频| 日韩精品久久久久久久电影99爱| 日韩中文视频| 久久国产电影| 国产婷婷精品| 日本不卡视频在线观看| 日韩av一区二区三区四区| 国产精品自拍区| 国产专区精品| 亚洲五月婷婷| 亚洲天堂免费| 欧美激情久久久久久久久久久| 日产午夜精品一线二线三线| 99精品在线观看| 午夜影院欧美| 老牛影视一区二区三区| 欧美日韩一区二区国产| 国产在线观看91一区二区三区| 精精国产xxxx视频在线野外| 日韩午夜电影| 国产免费av国片精品草莓男男| 欧美亚洲三区| 日韩伦理一区| 在线视频亚洲| 日本少妇一区二区| 97精品中文字幕| 国产精品日韩久久久| 欧美日一区二区在线观看| 精品国产乱码久久久| 欧美手机在线| 欧美日韩18| 国产一区观看| 欧美伊人影院| 天堂√8在线中文| 日韩在线一二三区| 精品久久精品| 99视频在线精品国自产拍免费观看| 亚洲精品无播放器在线播放| 精品国产乱码久久久| 免费日韩视频| 福利一区二区| 亚洲三级网站| av免费不卡国产观看| 一区二区91| 久久青青视频| 日韩一区二区三区免费视频 | 国产剧情一区二区在线观看| 亚洲天堂av影院| 日本中文字幕视频一区| 欧美日中文字幕| 国产日产精品一区二区三区四区的观看方式| 亚洲黄色免费av| 日本一不卡视频| 久久一区二区三区电影| 国产精品久久免费视频| 亚洲女同中文字幕| 色一区二区三区四区| 亚洲91在线| 欧美天堂视频| 久久av免费| 中文字幕一区二区精品区| 综合日韩av| 国产欧美在线| 人人香蕉久久| 国产精品**亚洲精品| 亚洲va久久| 午夜宅男久久久| 久久高清免费| 精品视频国内| 久久国产精品免费一区二区三区 | 日韩免费精品| 亚洲综合日韩| 欧美 日韩 国产精品免费观看| 国产精品www.| 亚洲精品少妇| 黄页网站一区| 日韩国产欧美一区二区| 国产精选久久| 久久精品99国产精品| 三级亚洲高清视频| 99国产精品自拍| 激情欧美一区二区三区| 日本久久综合| 精品国产亚洲一区二区在线观看| 亚洲伊人精品酒店| 欧美特黄a级高清免费大片a级| 欧美日韩尤物久久| 荡女精品导航| 国产乱码精品一区二区三区四区 | 影院欧美亚洲| 日韩专区精品| 精品国产乱码久久久| 国产高清精品二区| 欧美激情福利| 蜜桃久久久久| 精品亚洲a∨一区二区三区18| 欧美日韩中出| 欧美一级二级视频|