element select 添加全选

请添加图片描述
请添加图片描述
请添加图片描述

<el-form-item label="流向">
   <el-select v-model="formInline.flowId" multiple collapse-tags placeholder="请选择" style="width: 230px" @change="selectFlowChange">
     <el-checkbox v-model="checkOptions.checkAll" :style="{paddingLeft:'20px'}" :indeterminate="checkOptions.isIndeterminate" @change="handleCheckAllChange">
       全选
     </el-checkbox>
     <el-option v-for="(item,index) in flowList" :key="index" :label="item.flowName" :value="item.flowID">
       {{ item.flowName }}
     </el-option>
   </el-select>
 </el-form-item>
  data() {
    return { 
      flowList: [],
      formInline: {
        flowId: '',
      },
      checkOptions: {
        isIndeterminate: false,
        checkAll: false,
      },
    }
 // 流向全选
 handleCheckAllChange(e) {
   this.formInline.flowId = e ? this.flowList.map((item) => item.flowID) : []
   this.checkOptions.isIndeterminate = false
 },
 // 流向选择
 selectFlowChange(e) {
   const nowLength = this.formInline.flowId.length
   this.checkOptions.isIndeterminate =
     nowLength > 0 && nowLength < this.flowList.length
   this.checkOptions.checkAll = nowLength == this.flowList.length
 },

两个事件为:check框change、select框change。
check:
当全选发生改变时,判断返回的e是否为true,即是否选中。选中了赋值全部id,否则置为空数组。
无论什么状态,半选都应该为false。
select:
获取select绑定值的长度,当数据发生改变时,判断长度是否大于0,且小于数据源长度,并把值赋给半选状态。
如果选取的值长度和数据源长度一致,将比较值赋给全选。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值