vue實(shí)現(xiàn)簡(jiǎn)單計(jì)算商品價(jià)格
本文實(shí)例為大家分享了vue實(shí)現(xiàn)簡(jiǎn)單計(jì)算商品價(jià)格的具體代碼,供大家參考,具體內(nèi)容如下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
table {
width: 700px;
text-align: center;
}
tr,
th {
height: 40px;
}
</style>
<script src="../vue.js"></script>
</head>
<body>
<div class="box">
<table cellspacing='0' border="solid 1px">
<thead>
<tr>
<th>全選<input type="checkbox" v-model='isAllChecked'></th>
<th>id</th>
<th>商品名稱(chēng)</th>
<th>商品價(jià)格</th>
<th>商品數(shù)量</th>
<th>小計(jì)價(jià)格</th>
</tr>
</thead>
<tbody>
<tr v-for='item in goods'>
<td><input type="checkbox" v-model='item.isCheck'></td>
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>{{item.price}}</td>
<td>{{item.num}}</td>
<!-- 計(jì)算每個(gè)商品的價(jià)格根據(jù)選中的狀態(tài) -->
<td>{{goodsPrice(item)}}元</td>
</tr>
<tr>
<td colspan="6">商品總價(jià):{{total}}元</td>
</tr>
</tbody>
</table>
</div>
<script>
var vm = new Vue({
el: '.box',
methods: {
// 商品小計(jì)
goodsPrice(item) {
var sum = 0;
// 選中就計(jì)算價(jià)格
if (item.isCheck) {
sum = item.price * item.num;
}
return sum;
}
},
data: {
goods: [
{
id: 20200925,
name: '蘋(píng)果',
price: 3,
num: 12,
isCheck: false,
},
{
id: 20200945,
name: '香蕉',
price: 2,
num: 33,
isCheck: false,
},
{
id: 20200935,
name: '橘子',
price: 4,
num: 44,
isCheck: false,
},
]
},
computed: {
isAllChecked: {
/*
this.goods.every(el=>el.isCheck)返回結(jié)果為true 或者false
遍歷下方每一個(gè)isCheck的狀態(tài)、
1、 都選中返回true---------即全選為true,
2、 有一個(gè)沒(méi)選中返回false---即全選為false
*/
get() {
return this.goods.every(el => el.isCheck)
},
set(val) {
// 全選的狀態(tài)true、false兩種狀態(tài)
console.log(val);
// val為true即全選的時(shí)候、下方每一個(gè)isCheck也是true
// val為false即全選的時(shí)候、下方每一個(gè)isCheck也是false
return this.goods.forEach(el => el.isCheck = val);
}
},
// 根據(jù)選中狀態(tài)計(jì)算商品的價(jià)格
total() {
var sum = 0;
this.goods.forEach(el => {
if (el.isCheck) {
sum += el.price * el.num;
}
})
return sum;
},
}
})
</script>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解Vue demo實(shí)現(xiàn)商品列表的展示
- Vue實(shí)現(xiàn)購(gòu)物車(chē)的全選、單選、顯示商品價(jià)格代碼實(shí)例
- Vue實(shí)現(xiàn)商品飛入購(gòu)物車(chē)效果(電商項(xiàng)目)
- Vue實(shí)現(xiàn)商品詳情頁(yè)的評(píng)價(jià)列表功能
- Vue實(shí)現(xiàn)商品分類(lèi)菜單數(shù)量提示功能
- vue實(shí)現(xiàn)商品加減計(jì)算總價(jià)的實(shí)例代碼
- vue.js購(gòu)物車(chē)添加商品組件的方法
- 基于vue的tab-list類(lèi)目切換商品列表組件的示例代碼
- vue實(shí)現(xiàn)購(gòu)物車(chē)功能(商品分類(lèi))
- vue實(shí)現(xiàn)商品規(guī)格選擇功能
相關(guān)文章
vue?require.context()的用法實(shí)例詳解
require.context是webpack提供的一個(gè)api,通常用于批量注冊(cè)組件,下面這篇文章主要給大家介紹了關(guān)于vue?require.context()用法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
利用Vue3+Element?Plus封裝公共表格組件(帶源碼)
最近公司項(xiàng)目中頻繁會(huì)使用到table表格,而且前端技術(shù)這一塊也用到了vue3來(lái)開(kāi)發(fā),所以基于element plus table做了一個(gè)二次封裝的組件,這篇文章主要給大家介紹了關(guān)于利用Vue3+Element?Plus封裝公共表格組件的相關(guān)資料,需要的朋友可以參考下2023-11-11
VUE2.0 ElementUI2.0表格el-table自適應(yīng)高度的實(shí)現(xiàn)方法
在開(kāi)發(fā)中,需要表格控件根據(jù)瀏覽器高度進(jìn)行調(diào)整,固定表頭,本文主要介紹了VUE2.0 ElementUI2.0表格el-table自適應(yīng)高度的實(shí)現(xiàn)方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-11-11
vue2.x 對(duì)象劫持的原理實(shí)現(xiàn)
這篇文章主要介紹了vue2.x 對(duì)象劫持的原理實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
vue中的echarts實(shí)現(xiàn)寬度自適應(yīng)的解決方案
這篇文章主要介紹了vue中的echarts實(shí)現(xiàn)寬度自適應(yīng),本文給大家分享實(shí)現(xiàn)方案,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
vue中img src 動(dòng)態(tài)加載本地json的圖片路徑寫(xiě)法
這篇文章主要介紹了vue中的img src 動(dòng)態(tài)加載本地json的圖片路徑寫(xiě)法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04

