一、效果


二、代码



<template>
<div class="shopping-car">
<div>
全选<input type="checkbox" v-model="checked" @change="checkAll">
</div>
<ul>
<li v-for="(item,index) in list" :key="index">
<input type="checkbox" v-model="item.checkModel" @change="checkBox(item)"/>
<span>{{item.name}}</span>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return{
list:[{
id:1,
name:"西瓜啵啵",
},
{
id:2,
name:"椰子汁",
},
{
id:3,
name:"生打椰椰冻",
},
{
id:4,
name:"竹生空野",
}],
checkModel:[],
checked:false
}
},
methods:{
checkAll() {
if(this.checked) {
this.list.forEach((item) => {
item.checkModel = true
})
} else {
this.list.forEach((item) => {
item.checkModel = false
})
}
},
checkBox(item) {
if(this.list.every(item => item.checkModel)) {
this.checked=true
} else {
this.checked=false
}
}
}
};
</script>
<style lang="less" scoped>
.shopping-car {
ul {
list-style: none;
border: 2px dotted pink;
padding: 6px;
li{
display: flex;
align-items: center;
margin-bottom: 10px;
input{
margin-right: 10px;
}
}
}
}
</style>