前端学习-超强VUE教程09-购物车

练习案例

<!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="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="box">
        <input type="checkbox" @change="handleisAllcheck" v-model="checkallbox" >
        <ul>
            <li v-for="data in datalist">
                <input type="checkbox" v-model="checkgroup" :value="data" @change="handleischeck">
                {{data}}
                <button @click="handleDelclick(data)">del</button>
                {{data.number}}
                <button @click="data.number++">add</button>
            </li>
        </ul>
        {{checkgroup}}
       <p>总计算金额:{{getsum()}}</p>
    </div>

    <script type="text/javascript">
      var app = new Vue({
            el: '#box',
            data: {
                checkallbox: false,
                checkgroup: [],
                datalist: [
                    {
                        name: '商品1',
                        price: 10,
                        number: 2,
                        id: 1
                    },
                    {
                        name: '商品1',
                        price: 20,
                        number: 5,
                        id: 2
                    },{
                        name: '商品1',
                        price: 30,
                        number: 6,
                        id: 3
                    }
                ]
            },
            methods: {
                getsum(){
                    var sum=0;
                    for(i in this.checkgroup){
                        sum+= this.checkgroup[i].number*this.checkgroup[i].price;
                    }
                    return sum;
                },
                handleisAllcheck(){
                    console.log("改变了"+this.checkallbox);
                    if(this.checkallbox){
                        this.checkgroup=this.datalist;
                        this.checkallbox=false;
                    }else{
                        this.checkgroup=[];
                    
                    }
                },
                handleischeck(){
                    //判斷是否全部勾選
                    if(this.checkgroup.length === this.datalist.length){
                        this.checkallbox=true;
                    }else{
                        this.checkallbox=false;
                    }
                },
                handleDelclick(data){
                    var number=data.number--;
                    if(number===0){
                        data.number=1;   
                    }
                }
            }
        })
    </script>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值