element-UI checkbox 多選框

http://element-cn.eleme.io/#/zh-CN/component/checkbox
這里的例子中,數據源是普通數組.

這里為了需求,將普通數組改為對象數組.

<template>
  <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全選</el-checkbox>
  <div style="margin: 15px 0;"></div>
  <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
    <el-checkbox v-for="city in cities" :label="city.id" :key="city.id">{{city.label}}</el-checkbox>
  </el-checkbox-group>
</template>
<script>
  const cityOptions = [{id:1,label:'上海'},{id:2,label:'北京'},{id:3,label:'廣州'}, {id:4,label: '深圳'}];
  export default {
    data() {
      return {
        checkAll: false,
        checkedCities: [1,2],
        cities: cityOptions,
        isIndeterminate: true
      };
    },
    methods: {
      handleCheckAllChange(val) {
        this.checkAll =  !!this.checkAll;
        let checked = cityOptions.map(function(item){return item.id;});
        this.checkedCities = this.checkAll ? checked : [];
        this.isIndeterminate = false;
      },
      handleCheckedCitiesChange(value) {
        let checkedCount = value.length;
        this.checkAll = checkedCount === this.cities.length;
        this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length;
      }
    }
  };
</script>
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容