CSS代码:同前篇
html代码:
class="box"> 我的购物车(Vue实现) class="selectAll"> type="checkbox" class="check-all" name="check-all" @click="checkAll()" :checked="chka" /> for="check-all">全选 class="list"> 选择品名数量单价金额 v-for="(item,index) of list"> type="checkbox" @click="checkThis(index)" :checked="item.check" /> class="content">手机 type="number" v-model="item.num" min="1" class="num" /> class="price">{{item.price}} class="amount">{{item.price*item.num}} 总计: class="total-num">{{totalNum}} class="total-amount">{{totalAmount}} class="account">结算
我的购物车(Vue实现)
class="selectAll"> type="checkbox" class="check-all" name="check-all" @click="checkAll()" :checked="chka" /> for="check-all">全选
type="checkbox" class="check-all" name="check-all" @click="checkAll()" :checked="chka" />
for="check-all">全选
class="list">
选择品名数量单价金额
v-for="(item,index) of list">
type="checkbox" @click="checkThis(index)" :checked="item.check" />
class="content">手机
type="number" v-model="item.num" min="1" class="num" />
class="price">{{item.price}}
class="amount">{{item.price*item.num}}
总计:
class="total-num">{{totalNum}}
class="total-amount">{{totalAmount}}
class="account">结算
Javascript代码:
const app = Vue.createApp({
data() {
return {
chka:true,
list:[{check:true,num:1,price:100},{check:true,num:2,price:200},{check:true,num:3,price:300}],
}
},
computed: {
totalNum(){
return this.list.filter(item=>item.check).reduce((acc,item)=>acc+item.num,0);
totalAmount(){
return this.list.filter(item=>item.check).reduce((acc,item)=>acc+item.num*item.price,0);
methods: {
checkAll(){
this.chka=!this.chka;
this.list.forEach(item=>item.check=this.chka);
checkThis(index){
this.list[index].check=!this.list[index].check;
this.chka=this.list.every(item=>item.check==true);
}).mount('.box')
购物车图示: