checkbox多选以及如何读取选中行的数据

1.首先我们需要明确一个变量

indeterminate, indeterminate="true"的时候是半选的状态,indeterminate="false"的时候是对号的状态。

是控制我们半选状态的,我们第二张图是。indeterminate="false的状态

<th-table-column label="全选" min-width="20">
        <template slot="header" slot-scope="scope">
            <th-checkbox v-model="selectAll" :scope="scope" :indeterminate="indeterminate" @change="selectAllEvent">
            </th-checkbox>
        </template>
        <template slot-scope="scope">
          <th-checkbox v-model="scope.row.isSelect" @change="selectItemEvent"></th-checkbox>
        </template>
      </th-table-column>

 slot="Header"是为了现实全选最上面的正方框的。

data(){
return {
     selectAll: false,
     indeterminate: false,
 }
}

 控制全选的代码:

 selectAllEvent(val) {
      console.log('selectAllEvent val:', val);
      console.log('indeterminate', this.indeterminate);
      this.indeterminate = false;
      this.tableData.forEach(ele => {
        ele.isSelect = val;
      });
    },

单个勾选的时候

 selectItemEvent(val) {
      console.log('selectItemEvent val:', val);
      const selectArr = this.tableData.filter(ele => ele.isSelect);
      if (selectArr.length === 0) {
        this.selectAll = false;
        this.indeterminate = false;
      } else if (selectArr.length === this.tableData.length) {
        this.selectAll = true;
        this.indeterminate = false;
      } else {
        this.selectAll = false;
        this.indeterminate = true;
      }
      console.log('indeterminate', this.indeterminate);
    },

读取选中这一行的数据例如id

 const selectDatas = this.tableData.filter(ele => ele.isSelect).map(ele => ele.shopsId);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值