element 复选框组件 想知道这段代码是什么意思?

发布于 2022-09-07 20:09:38 字数 1431 浏览 15 评论 0

emrParts = ['入院记录', '病程记录', '出院小结', '手术记录'];
value是从复选框传过来的参数
 const checkedCount = value.length;
 this.checkAll = checkedCount === this.emrParts.length;
 this.isIndeterminate = checkedCount > 0 && checkedCount < this.emrParts.length;
element标准写法:
<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" :key="city">{{city}}</el-checkbox>
  </el-checkbox-group>
</template>
<script>
  const cityOptions = ['上海', '北京', '广州', '深圳'];
  export default {
    data() {
      return {
        checkAll: false,
        checkedCities: ['上海', '北京'],
        cities: cityOptions,
        isIndeterminate: true
      };
    },
    methods: {
      handleCheckAllChange(val) {
        this.checkedCities = val ? cityOptions : [];
        this.isIndeterminate = false;
      },
      handleCheckedCitiesChange(value) {
        let checkedCount = value.length;
        this.checkAll = checkedCount === this.cities.length;
        this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length;
      }
    }
  };
</script>
想知道handleCheckedCitiesChange这个方法中的代码什么意思?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

手心的海 2022-09-14 20:09:38

判断城市是否全选,如果城市全选了,勾上全选复选框。如果至少选中一个城市或者没有选中城市,全选这个checkbox为 indeterminate状态。如果没选城市,全选的checkbox 为没选中的状态

半衾梦 2022-09-14 20:09:38

let checkedCount = value.length; //checkedCount 为选中城市的数量
this.checkAll = checkedCount === this.cities.length; //如果选中城市的数量(checkedCount)与所有城市的数量(this.cities.length)一致,则将checkAll的状态改成true,否则改成false。
this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length; //如果选中城市的数量(checkedCount)大于0且选中城市的数量(checkedCount)小于所有城市的数量(this.cities.length),则将isIndeterminate的状态改成true,否则将isIndeterminate的状态改成false。

indeterminate为false,checkAll为false的时候,状态为未选中。
indeterminate为true,checkAll为false的时候,状态为半选中。
indeterminate为false,checkAll为true的时候,状态为全选中。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文