el-cascader级联框动态显示复选框

需求是当点击A按钮时,级联框中的第一级和第三级显示复选框,第一级选中时,第三级对应第一级的所有数据选中,不包含第二级的数据。当点击B按钮时,级联框中的第二级和第三级显示复选框,父子级不关联。

首先,隐藏复选框需要通过css控制,代码如下(此处隐藏的是第二级的复选框)

<style lang="scss">
.el-cascader-panel {
  .el-scrollbar:nth-child(2) {
    .el-checkbox {
      display: none;
    }
  }
}
</style>

此处控制的是页面所有的级联都会使用这个样式,也会影响到项目中的其他使用级联框的页面,给父级直接加类名不生效,因为级联框选择时浮层的父级是body,添加class需要通过文档中的属性添加;

结合需求中的动态隐藏显示,popper-class需要动态绑定,然后根据需求修改isSelectUser的值,在css中添加父级就可以实现了。

数据父子是否关联通过动态修改props属性中的checkStrictly可以实现

代码如下

<el-cascader
                ref="casca"
                v-model="form.receiveUnitList"
                :options="selects.userTreeForReceiveUnit"
                :props="cascProps"
                placeholder="请选择接收单位"
                :show-all-levels = "false"
                :popper-class="isSelectUser ? 'has-second-check' : 'has-first-check'"
                filterable
                clearable
              </el-cascader>

data() {
  return {
    // 复选框是否显示
    isSelectUser: true,
    // props属性  checkStrictly:父子关联
    cascProps: { checkStrictly: true , emitPath:false,multiple :true}
   }
}


methods:{
  changeCasc() {
      this.isSelectUser = false,
      // 去掉checkStrictly属性   进行父子关联
      this.cascProps = { emitPath:false,multiple :true}
  }
}


<style lang="scss">
.has-first-check .el-cascader-panel {
  .el-scrollbar:nth-child(2) {
    .el-checkbox {
      display: none;
    }
  }
}
.has-second-check .el-cascader-panel {
  .el-scrollbar:first-child {
    .el-checkbox {
      display: none;
    }
  }
}
</style>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值