<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./js/vue.js"></script>
<style>
li {
display: flex;
justify-content: space-around;
text-align: center;
line-height: 100px;
height: 100px;
padding: 10px;
}
img {
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div id="box">
<div v-if='list.length === 0'>空空如也</div>
<template v-else>
<input type="checkbox" v-model="isAllChecked">全選/全不選
<ul>
<li v-for='(item,index) in list' :key='item.id'>
<div>
<input type="checkbox" v-model='checkgroup' :value="item" @change="checked()">
</div>
<img :src="item.pic" alt="">
<div>{{item.name}}</div>
<div>¥{{item.price}}</div>
<div>{{item.id}}</div>
<div>
<button @click="item.number--" :disabled="item.number===1">-</button>
{{item.number}}
<button @click="item.number++" :disabled="item.number === item.limit">+</button>
</div>
<div>
<button @click="handleDel(index,item.id)">刪除</button>
</div>
</li>
</ul>
<div style="text-align: right;padding: 0 50px;">
總價{{sum()}}
</div>
</template>
</div>
<script>
var vm = new Vue({
el: '#box',
data: {
checkgroup: [],
isAllChecked: false,
list: [
{
"id": 1,
"name": "商品1",
"number": 1,
"pic": "https://c-ssl.duitang.com/uploads/blog/202011/16/20201116210409_fdb12.jpg",
"msg": "頭像",
"price": 10,
"limit": 1,//限購
},
{
"id": 2,
"name": "商品2",
"number": 2,
"pic": "https://c-ssl.duitang.com/uploads/blog/202010/31/20201031204228_sewqy.jpg",
"msg": "頭像",
"price": 20,
"limit": 5,//限購
},
{
"id": 3,
"name": "商品3",
"number": 3,
"pic": "https://c-ssl.duitang.com/uploads/item/202005/23/20200523141101_ungtj.jpg",
"msg": "頭像",
"price": 30,
"limit": 10,//限購
},
]
},
methods: {
sum() {
var total = 0
this.checkgroup.forEach(item => {
total += item.price * item.number
})
return total
},
// 刪除方法
handleDel(index, deleteid) {
// 刪除checkgroup里面對應(yīng)的元素定踱,通過id
this.checkgroup = this.checkgroup.filter(item => item.id !== deleteid)
// 刪除原數(shù)組屋吨,通過index
this.list.splice(index, 1)
//判定是否全勾選上
this.checked()
},
//全選/全不選
// handleChange(ev) {
// // console.log("change",ev.target.checked)
// console.log(this.isAllChecked)
// if (this.isAllChecked) {
// this.checkgroup = this.list
// } else {
// this.checkgroup = []
// }
// //判斷是否全選
// },
checked() {
if (this.checkgroup.length === this.list.length) {
this.isAllChecked = true
} else {
if(this.checkgroup.length === this.list.length){
this.isAllChecked = false
}
}
}
},
//監(jiān)聽狀態(tài)的改變
watch:{
isAllChecked(data){
console.log("isAllChecked狀態(tài)改變了",data)
if (this.isAllChecked) {
this.checkgroup = this.list
} else {
this.checkgroup = []
}
}
}
})
</script>
</body>
</html>
18-watch-購物車
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門晌姚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人挥唠,你說我怎么就攤上這事』酪椋” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵盅安,是天一觀的道長。 經(jīng)常有香客問我别瞭,道長腌紧,這世上最難降的妖魔是什么畜隶? 我笑而不...
- 正文 為了忘掉前任号胚,我火速辦了婚禮,結(jié)果婚禮上猫胁,老公的妹妹穿的比我還像新娘。我一直安慰自己弃秆,他們只是感情好届惋,可當(dāng)我...
- 文/花漫 我一把揭開白布菠赚。 她就那樣靜靜地躺著,像睡著了一般衡查。 火紅的嫁衣襯著肌膚如雪瘩欺。 梳的紋絲不亂的頭發(fā)上拌牲,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼定躏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起芹敌,我...
- 正文 年R本政府宣布话侄,位于F島的核電站,受9級特大地震影響满葛,放射性物質(zhì)發(fā)生泄漏径簿。R本人自食惡果不足惜篇亭,卻給世界環(huán)境...
- 文/蒙蒙 一锄贷、第九天 我趴在偏房一處隱蔽的房頂上張望曼月。 院中可真熱鬧,春花似錦哑芹、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽乙嘀。三九已至末购,卻和暖如春虎谢,著一層夾襖步出監(jiān)牢的瞬間盟榴,已是汗流浹背婴噩。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 023|決策時間:用戶思考了很久笑跛,又把商品放回去了,怎么辦飞蹂? 什么是“決策時間”几苍?消費者的注意力時長越來越短陈哑,人們...
- 紅墻惠勒,黃葉爬坑,老后窗…… 18樓比記憶里漂亮了好多! 小時候盾计,18樓是個溫暖的安慰售担,也是個快樂的庇護所署辉。 因為族铆,姥姥...
- 如何從無到有來開發(fā)一個項目 一哭尝、需求分析 額度 15000 或 自定義 ---> 注冊功能實現(xiàn)購物商城,買...