ElementUI的el-checkbox的自定义使用

样式效果:

html代码部分:
<el-checkbox v-model="CheckAll" label="全选" @change="handleCheckAllChangeSales"></el-checkbox>
    <el-checkbox-group v-model="Select" class="yetaixuan" @change="handleCheckedCitiesChange">
      <!-- el-checkbox 的label 是绑定值 基础用法 -->
      <el-checkbox v-for="(item, index) in tableData" :key="index" :label="item.val"></el-checkbox>

      <!-- 如果想获取到 选中的对象  {{item.val}} 为展示的选项 -->
      <!-- <el-checkbox v-for="(item, index) in tableData" :key="index" :label="item">{{item.val}}</el-checkbox> -->

</el-checkbox-group>

js部分:
<script>
export default {
  data() {
    return {
      CheckAll: false,// 全选框是否是勾选状态
      Select: [], //选中的数据
      // 多选框选项
      tableData: [
        { val: "多选框 一", id: 1 },
        { val: "多选框 二", id: 2 },
        { val: "多选框 三", id: 3 },
      ],
    };
  },
  methods: {
    //选择全选触发的事件 
    handleCheckAllChangeSales(bool) {
      // 如果是选中状态  bool为true  并把所有选项赋值给Arr
      // 如果是未选中状态 bool为false  把Arr赋值为空
      let Arr = bool ? this.tableData : [];
      // 如果Arr长度大于0
      if (Arr.length > 0) {
        // 把其他的选项赋值
        Arr.forEach((item) => {
          this.Select.push(item.val);
        });
        // 如果Arr长度小于等于0 把选项清空
      } else {
        this.Select = [];
      }
    },
    // 多选框绑定值改变时触发
    handleCheckedCitiesChange(value) {
      // value 为多选框选中的值 是一个数组
      let Selectlength = value.length;
      // 如果选择的值的数组长度 等于 选项数组的长度 全选框勾选状态为true
      this.CheckAll = Selectlength === this.tableData.length;
    },
  },
  watch: {
    // 侦听选中的值
    Select(newValue, oldValue) {
      console.log(newValue, '多选框选中选项');
    },
  },
};
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值