美文网首页
Vue实现简单购物车效果

Vue实现简单购物车效果

作者: 闫梓璇 | 来源:发表于2018-09-14 09:43 被阅读0次

    效果:总计会随着总价的变化而变化,总价随着数量的变化而变化


    QQ截图20180914094046.png

    body部分:

    <div id="app">
       <table border='1' cellspacing='0'>
           <thead>
               <tr>
                   <th>编号</th>
                   <th>名称</th>
                   <th>单价</th>
                   <th>数量</th>
                   <th>总价</th>
               </tr>
           </thead>
           <tbody>
               <tr v-for='(value,index) in arr'>
                   <td>{{value.num}}</td>
                   <td>{{value.uname}}</td>
                   <td>{{value.price}}</td>
                   <td>
                       <button v-on:click='jia(index)'>+</button>
                           {{value.quantity}}
                       <button v-on:click='jian(index)'>-</button>
                   </td>
                   <td>{{value.total}}</td>
               </tr>
               <tr>
                   <td colspan='5' style='text-align:center;'>总计:<span>{{arrs}}</span>元</td>
               </tr>
           </tbody>
       </table>
    </div>
    

    js部分:

    new Vue({
            el:'#app',
            data:{
                arr:[
                    {num:1,uname:'香蕉',price:1,quantity:1,total:1},
                    {num:2,uname:'苹果',price:2,quantity:1,total:2},
                    {num:3,uname:'橘子',price:3,quantity:1,total:3}
                ],
                arrs:6
            },
            methods:{
                jia:function(ind){
                    this.arr[ind].quantity++
                    this.arr[ind].total=(this.arr[ind].price)*this.arr[ind].quantity
                    this.getTotal()
                },
                jian:function(index){
                    if(this.arr[index].quantity>1){
                        this.arr[index].quantity--
                        this.arr[index].total=this.arr[index].price*this.arr[index].quantity
                    }
                    this.getTotal()
                },
                getTotal:function(){
                    for(var i=0,to=0;i<this.arr.length;i++){
                        to+=Number(this.arr[i].total)
                    }
                    this.arrs=to;
                }
            }
        })
    

    style部分:

    <style>
        th,td{
            border:1px solid #000;
            width:100px;
            height:30px;
            text-align: center;
        }
    </style>

    相关文章

      网友评论

          本文标题:Vue实现简单购物车效果

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