美文网首页
iview checkbox全选

iview checkbox全选

作者: web30 | 来源:发表于2020-05-14 21:50 被阅读0次

需求:

  1. 当点击全选checkbox时,所有列表商品选中,
  2. 当列表商品中某一项取消时,全选checkbox变成半选(不是全选),重新点击后,再次变为全选

环境:

vue+vue-cli+iview
iview checkbox链接

效果图:

全选状态 半先状态

布局:

<template>
  <div class="header-btns">
     <Checkbox v-model="checkedAll" @on-change="selectCheck(orderList)">全选</Checkbox>
     <button size="small" class="btn btn-primary btn-sm" @click="mergePayClick">合并付款</button>
   </div>
   <span>
     <Checkbox v-model="order.checkedSingle" @on-change="selectSingCheck(order,orderList)" style="padding-top: 8px;width: 10px"></Checkbox>
   </span>
<template/>

逻辑:

export default {
  data(){
    checkedAll: false,
    checkedSingle: false,
    orderList: []
  }
  methods:{
    //全选
      selectCheck(orderList) {
        for (var i = 0; i < orderList.length; i++) {
          orderList[i].checkedSingle = this.checkedAll;
        }
      },
    //单选
      selectSingCheck(order, orderList) {
        //订单列表中某一项没有选中,那么就是半选
        if (order.checkedSingle == false) {
          this.checkedAll = false;
        } else {
          for (var i = 0; i < orderList.length; i++) {
            //循环到某一项没有选中时,那么就是半选,否则是全选
            if (!orderList[i].checkedSingle) {
              this.checkedAll = false;
              return
            } else {
              this.checkedAll = true;
            }
          }
        }
      }
  }
}

相关文章

网友评论

      本文标题:iview checkbox全选

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