vue2.0中vue-cli实现全选、单选计算总价格的实例代码

前端之家收集整理的这篇文章主要介绍了vue2.0中vue-cli实现全选、单选计算总价格的实例代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

由于工作的需要并鉴于网上的vue2.0中vue-cli实现全选、单选方案不合适,自己写了一个简单实用的。就短短的126行代码

<table&gt;

  <tr&gt;

    <td&gt;<input type="check<a href="/tag/Box/" target="_blank" class="keywords">Box</a>" v-model="checkAll"&gt;全选({{checkedCount}})</td&gt;

    <td&gt;产品<a href="/tag/mingcheng/" target="_blank" class="keywords">名称</a></td&gt;

    <td&gt;价格</td&gt;

    <td&gt;<a href="/tag/shuliang/" target="_blank" class="keywords">数量</a></td&gt;

  </tr&gt;

  <tr v-for="(item,$index) in lists"&gt;

    <td&gt;<span v-show="checkedCount===lists.length || item.checked===true"&gt;我被选中</span><input type="check<a href="/tag/Box/" target="_blank" class="keywords">Box</a>" :value="item.id" v-model="checked" @click="currClick(item,$index)"&gt;</td&gt;

    <td&gt;{{item.productName}}</td&gt;

    <td&gt;{{item.price}}</td&gt;

    <td&gt;{{item.count}}</td&gt;

  </tr&gt;

  <tr&gt;

    总价:{{totalMoney}}

  </tr&gt;

</table&gt;

@H_404_7@

export default{

data() {

  return {

    checked:[],totalPrice:[],lists : [

      {

        productName:'产品1',price:'24',count:'3',id:1

      },{

        productName:'产品2',price:'25',count:'6',id:2

      },{

        productName:'产品3',price:'54',count:'7',id:3

      }

    ]

  }

},computed:{

  totalMoney:function(item,index){

    let sum = 0;

    for(let i=0;i<this.totalPrice.length;i++){

      sum += this.totalPrice[i];

    };

    return sum;

  },checkAll: {

    get: function() {

      return this.checkedCount == this.lists.length;

    },set: function(value){

      var _this = this;

      if (value) {  

        this.totalPrice = [];

        this.checked = this.lists.map(function(item) {

          item.checked = true;

          let total = item.price*item.count;

          _this.totalPrice.push(total);

          return item.id

        })

      }else{

        this.checked = [];

        this.totalPrice=[];

        this.lists.forEach(function(item,index){

          item.checked = false;

        });

      }

    }

  },checkedCount: {

    get: function() {

      return this.checked.length;

    }

  }

},methods:{

  currClick:function(item,index){

    var _this = this;

    if(typeof item.checked == 'undefined'){

      this.$set(item,'checked',true);

        let total = item.price*item.count;

        this.totalPrice.push(total);

        console.log(this.totalPrice);

    }else{

      item.checked = !item.checked;

      if(item.checked){

        this.totalPrice = [];

        this.lists.forEach(function(item,index){

          if(item.checked){

            let total = item.price*item.count;

            _this.totalPrice.push(total);

          }

        });

      }else{

        this.totalPrice = [];

        this.lists.forEach(function(item,index){

          if(item.checked){

            let total = item.price*item.count;

            _this.totalPrice.push(total);

          }

        });

      }

    }

  }

}

}

效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的Vue相关文章