美文网首页
vue购物车

vue购物车

作者: 沈枷若 | 来源:发表于2019-03-05 18:32 被阅读0次

    <html>
    <head>
    <title>购物车</title>
    <link rel="stylesheet" href="./css/购物车.css" type="text/css" />
    </head>
    <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>

    <body>
        <div id="test">
            <table id="mytable">
                <tr>
                    <th><input type="checkBox"  @click="selectProduct()" v-bind:checked="isSelectAll" />全选</th>
                    <th>书名</th>
                    <th>数量</th>
                    <th>单价</th>
                    <th>总价</th>
                    <th>操作</th>
                </tr>
    
                <tr v-for="(item,index) in productList">
                    <td><input type="checkBox" v-bind:checked="item.isSelect" @click="item.isSelect=!item.isSelect"/></td>
                    <td>{{item.proName}}</td>
                    <td>
                        <span><a @click="item.proNum--">-</a></span>
                        {{item.proNum}}
                        <span><a @click="item.proNum++">+</a></span>
                    </td>
                    <td>{{item.proPrice}}</td>
                    <td>{{item.proPrice*item.proNum}}</td>
                    <td><a @click="deletePro(index)">删除</a></td>
                </tr>
            </table>
    
            <div class="checkPro">
                <div class="left">
                    <span><a  @click="deleteProduct">删除所选产品</a></span>
                </div>
                <div class="right">
                    <span>{{getTotal.totalNum}}本图书总计{{getTotal.totalPrice}}元</span>
                </div>
            </div>
        </div>
    </body>
    
    
    <script >
        new Vue({
            el : "#test",
            data : {
                productList:[
                    {
                        'proName' :'操作系统',
                        'proNum' : 2,
                        'proPrice' :30,
                    },
                    {
                        'proName' :'组成原理',
                        'proNum' : 5,
                        'proPrice' :25,
                    },
                    {
                        'proName' :'编译原理',
                        'proNum' : 1,
                        'proPrice' :30,
                    }
                ],
            },
    
            methods:{
                deletePro:function(index){
                    this.productList.splice(index,1);
                },
    
                deleteProduct:function(){
                    this.productList=this.productList.filter(function (item) {return !item.isSelect})
                },
    
                selectProduct:function(){
                    for (var i=0;i<this.productList.length; i++) {
                        this.productList[i].isSelect=true;
                    }
                },
            },
    
            mounted:function () {
                var _this=this;
                this.productList.map(function (item) {
                    _this.$set(item, 'isSelect', true);
                })
            },
    
            computed:{
                getTotal:function(){
                    var prolist=this.productList.filter(function (val) { return val.isSelect}),
                    totalPri=0;
                    for (var i=0,len=prolist.length; i<len; i++) {
                        totalPri+=prolist[i].proPrice*prolist[i].proNum;
                    }
                    return {totalNum:prolist.length,totalPrice:totalPri}
                },
    
                isSelectAll:function(){
                    return this.productList.every(function (val) { return val.isSelect});
                },
            },
    
        
        })
    </script>
    

    </html>

    table{width: 1200px;}
    table th{width: 100px}
    table td{width: 200px;text-align: center;}
    a{text-decoration:none;color: black}
    span{font-size: 20px;margin: 10px 10px}
    strong{border: 1px solid;}
    .checkPro{
    padding-right:450px;
    padding-left:50px;
    }
    .left{
    float: left;

    }
    .right{
    float: right;
    }

    相关文章

      网友评论

          本文标题:vue购物车

          本文链接:https://www.haomeiwen.com/subject/ihnouqtx.html