vue element复选

效果如下:
在这里插入图片描述
html代码:

 <div class="el-checkbox">
   <p class="title-p">请选择要展示的指标并等级排序</p>
   <!-- 复选 -->
   <div
     v-for="(item, index) in CheckList"
     :key="index"
   >
     <el-checkbox
       :indeterminate="item.isIndeterminate"
       v-model="item.isCheck"
       @change="checkTitle(item.isCheck, index)"
     >{{item.title}}</el-checkbox>

     <el-checkbox-group
       v-model="item.checkedData"
       @change="checkItem(item.checkedData, index)"
     >
       <el-checkbox
         v-for="(a, index) in item.children"
         :label="a.value"
         :key="index"
       >{{ a.label }}</el-checkbox>
     </el-checkbox-group>
   </div>
 </div>

js代码:

methods: {
	//复选框
    checkItem(val, index) {
      let checkedCount = val.length;
      this.CheckList[index].isCheck =
        checkedCount === this.CheckList[index].children.length;
      this.CheckList[index].isIndeterminate =
        checkedCount > 0 && checkedCount < this.CheckList[index].children.length;
    },
    checkTitle(val, index) {
      let arr = [];
      const re = this.CheckList[index].children;
      //全选
      if (val) {
        for (let i = 0; i < re.length; i++) {
          arr[i] = re[i]["value"];
        }
      }
      this.CheckList[index].checkedData = arr;
      this.CheckList[index].isIndeterminate = false;
    },
}

data() {
    return {
      checkAll: false,
      checkedCities: [],
      CheckList: [
        {
          isCheck: false,
          isIndeterminate: true,
          title: '品牌',
          checkedData: [],
          children: [],
        },
        {
          isCheck: false,
          isIndeterminate: true,
          title: '大区',
          checkedData: [],
          children: [
            {
              value: "001",
              label: "小区",
            },
          ],
        },
        {
          isCheck: false,
          isIndeterminate: true,
          title: '省份',
          checkedData: [],
          children: [
            {
              value: "01",
              label: "城市",
            },
          ],
        },
        {
          isCheck: false,
          isIndeterminate: true,
          title: '运营指标',
          checkedData: [],
          children: [
            {
              value: "11",
              label: "OCC",
            },
            {
              value: "12",
              label: "房费ADR",
            },
            {
              value: "13",
              label: "房费Revpar",
            },
            {
              value: "14",
              label: "综合ADR",
            },
          ],
        },
        {
          isCheck: false,
          isIndeterminate: true,
          title: '时间单位',
          checkedData: [],
          children: [
            {
              value: "21",
              label: "年度",
            },
            {
              value: "22",
              label: "季度",
            },
            {
              value: "23",
              label: "月度",
            },
            {
              value: "24",
              label: "周",
            },
            {
              value: "25",
              label: "日",
            },
          ],
        },
      ],
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值