基于vue.js實(shí)現(xiàn)購(gòu)物車(chē)
本文實(shí)例為大家分享了vue.js實(shí)現(xiàn)購(gòu)物車(chē)的具體代碼,供大家參考,具體內(nèi)容如下
template
<template> <div class="all"> <div class="head"> <span>購(gòu)物車(chē)</span> </div> <ul class="menu"> <li class="li"> <input type="checkbox" id="all" v-model="checkedAll" @change="checkedAllChange()"> <label for="all"></label> 全選 </li> <li class="li">商品代碼</li> <li class="li">商品名稱(chēng)</li> <li class="li">商品單價(jià)</li> <li class="li">商品數(shù)量</li> <li class="li">商品庫(kù)存</li> <li class="li">商品小計(jì)</li> </ul> <div> <ul v-for="data in data" :key="data.code" class="menu"> <li class="li"> <input type="checkbox" name="commodity" v-model="checked" :value="data" @change="changeAll()" > </li> <li class="li">{{data.code}}</li> <li class="li">{{data.name}}</li> <li class="li">¥{{data.price}}</li> <li class="li"> <div @click="SubNum(data)">-</div> <input type="number" v-model.lazy="data.number" @change="numberChange(data)" > <div @click="AddNum(data)">+</div> </li> <li class="li">{{data.stock}}</li> <li class="li">¥{{data.number*data.price}}</li> </ul> </div> <div class="info"> <p>{{commodityNumber}}件商品</p> <p>總計(jì):<span>¥{{numberAll}}</span></p> </div> </div> </template>
script
<script> export default { data() { return { checkedAll: false, checked: [], totalPrice: 0, data: { one: { code: 10001, name: "商品一", price: 26, number: 1, stock: 6 }, two: { code: 10002, name: "商品二", price: 34, number: 1, stock: 14 }, three: { code: 10003, name: "商品三", price: 48, number: 1, stock: 2 }, four: { code: 10004, name: "商品四", price: 63, number: 1, stock: 12 }, five: { code: 10005, name: "商品五", price: 50, number: 1, stock: 92 } } }; }, mounted() {}, methods: { //判斷全選事件 checkedAllChange() { if (this.checkedAll) { for (let i in this.data) { this.checked.push(this.data[i]); } } else { this.checked = []; } }, changeAll() { if (this.checked.length == Object.keys(this.data).length) { this.checkedAll = true; } else { this.checkedAll = false; } }, // 加減 SubNum(data) { data.number--; if (data.number < 1) { data.number = 1; } }, AddNum(data) { data.number++; if (data.number > data.stock) { data.number = data.stock; } }, //輸入 numberChange(data) { if (data.number > data.stock) { data.number = data.stock; } } }, computed: { //商品數(shù)量 commodityNumber() { return this.checked.length; }, //總價(jià) numberAll() { var numberAll = 0; for (let i in this.checked) { numberAll += this.checked[i].number * this.checked[i].price; } return numberAll; } } }; </script>
css
<style lang="scss" scoped type="text/css"> ul, li { list-style: none; } .all { width: 800px; height: 500px; background: #fff; border: 1px solid #177ecb; margin-left: 300px; .head { background: #177ecb; height: 36px; line-height: 36px; color: #fff; padding-left: 15px; } .menu { height: 32px; width: 100%; border-bottom: 1px solid #d4d4d4; padding: 0 15px; display: flex; .li { line-height: 32px; flex: 1; border-right: 1px solid #d4d4d4; text-align: center; input[type="number"] { width: 40px; display: inline-block; height: 20px; } div { width: 20px; height: 20px; padding: 0; display: inline-block; background: #333; color: #fff; line-height: 20px; text-align: center; cursor: pointer; } div:active { background: #999; } } .li:nth-of-type(3) { flex: 2; } .li:last-child { border: 0; } } .menu + div { height: 350px; margin-bottom: 20px; border-bottom: 1px solid #177ecb; } .info { text-align: right; margin-right: 20px; span { color: #f00; font-size: 20px; font-weight: 900; } } } </style>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue控制滾動(dòng)條滑到某個(gè)位置的方法實(shí)例
當(dāng)容器有滾動(dòng)條時(shí),有時(shí)需要將滾動(dòng)條滑到某個(gè)位置,下面這篇文章主要給大家介紹了關(guān)于vue控制滾動(dòng)條滑到某個(gè)位置的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12vue實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn)scrollIntoView()使用案例
這篇文章主要介紹了vue實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn)scrollIntoView()使用案例,文中結(jié)合實(shí)例代碼介紹了vue錨點(diǎn)跳轉(zhuǎn)的三種方式(頁(yè)內(nèi)跳轉(zhuǎn),跨頁(yè)跳轉(zhuǎn),函數(shù)跳轉(zhuǎn)),需要的朋友可以參考下2023-07-07Vuex模塊化和命名空間namespaced實(shí)例演示
這篇文章主要介紹了Vuex模塊化和命名空間namespaced的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11解決vue項(xiàng)目,npm run build后,報(bào)路徑錯(cuò)的問(wèn)題
這篇文章主要介紹了解決vue項(xiàng)目,npm run build后,報(bào)路徑錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08vue-cli下的vuex的簡(jiǎn)單Demo圖解(實(shí)現(xiàn)加1減1操作)
這篇文章主要介紹了vue-cli下的vuex的簡(jiǎn)單Demo(實(shí)現(xiàn)加1減1操作),本文圖文并茂給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-02-02vue3組件化開(kāi)發(fā)常用API知識(shí)點(diǎn)總結(jié)
Vue是目前Web前端最流行的開(kāi)發(fā)框架技術(shù),?下面這篇文章主要給大家介紹了關(guān)于vue3組件化開(kāi)發(fā)常用API的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06