关于iview CheckboxGroup 使用二维数组的操作姿势!

1、官方的demo 都是一维数组,但是实际开发中经常都是二维数组,对总结如下

说明:radio 和 checkbox 都可以使用如下方式,可以愉快的使用二维数组了

上代码:

html

<FormItem label="可用充值项目" prop="amount">
          <div style="border-bottom: 1px solid #e9e9e9;padding-bottom:6px;margin-bottom:6px;">
            <Checkbox
              :indeterminate="indeterminate"
              :value="checkAll"
              @click.prevent.native="handleCheckAll">全选</Checkbox>
          </div>
          <CheckboxGroup v-model="form.rechargeItem" @on-change="checkAllGroupChange">
            <Checkbox :label="item.id"  :key="item.id" v-for="(item,index) in checkAllGroup">{{item.name}}</Checkbox>
          </CheckboxGroup>
</FormItem>

js

handleCheckAll () {
      if (this.indeterminate) {
        this.checkAll = false;
      } else {
        this.checkAll = !this.checkAll;
      }
      this.indeterminate = false;

      if (this.checkAll) {
        //全选,将id全部取出复制到 CheckboxGroup v-model="form.rechargeItem" 即可
       var map = []
        this.checkAllGroup.forEach(res=>{
          map.push(res.id)
        })
        this.form.rechargeItem = map;
      } else {
        //反选,没啥好说的,清空 CheckboxGroup v-model="form.rechargeItem" 即可
        this.form.rechargeItem = [];
      }
    },
    checkAllGroupChange (data) {
      if (data.length === 3) {
        this.indeterminate = false;
        this.checkAll = true;
      } else if (data.length > 0) {
        this.indeterminate = true;
        this.checkAll = false;
      } else {
        this.indeterminate = false;
        this.checkAll = false;
      }
    },

data

form: {
      rechargeItem: [] //用于v-model 绑定的数组
},      
indeterminate: true,
checkAll: false,
// 如下list 通过后端返回即可
checkAllGroup: [{
        id:1,
        name:"充100送20"
      },{
        id:2,
        name:"充1000送200"
      },{
        id:3,
        name:"充10000送2000"
}],

效果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值