element Cascader 点击文字选中+选中隐藏+多选

element Cascader 级联选择器只能通过点击文字前边的icon选中,且选中后选择框不会隐藏

现在的需求是可以选中任意一级,需要点击文字选中且选中后选择框隐藏

HTML结构
<el-form-item label="组织者" prop="organizer">
                  <el-cascader
                    ref="organizerUnit"
                    v-model="temp.organizer"
                    :options="joinPeopleList"
                    :disabled="isShow.isDisabled"
                    :props="{ checkStrictly: true , value: 'id', label: 'name',}"
                    placeholder="请选择组织者"
                    :show-all-levels="false"
                    expand-trigger="hover"
                    class="w100_pidR30"
                    @change="organizerUnit"
                  />
  </el-form-item>
选中隐藏选择框

通过ref实现隐藏

/**
     * 组织者点击选择隐藏选择框
     */
    organizerUnit(a) {
      if (this.$refs.organizerUnit) {
        this.$refs.organizerUnit.dropDownVisible = false
      }
    },
点击文字选中

方案一:setInterval

 // 因组件阻止了冒泡 点击文本就让它自动点击前面的input就可以触发选择。【记得卸载】
 this.ElementSibling = setInterval(function() {
          if (document.querySelectorAll('.el-cascader-node__label').length) {
            document
              .querySelectorAll('.el-cascader-node__label')
              .forEach(el => {
                el.onclick = function() {
                  if (this.previousElementSibling) {
                    this.previousElementSibling.click()
                  }
                }
              })
          }
        }, 1000)

方案二:css

 .el-cascader-panel .el-radio {
    width: 100%;
    height: 100%;
    z-index: 10;
    position: absolute;
    top: 10px;
    /* margin-right: 10px; */
    /* right: 10px; */
  }
.el-cascader-node__label{
  margin-left: 10px;
}
    /* 这个样式针对IE有用,不考虑IE的可以不用管*/
  .el-cascader-panel .el-cascader-node__postfix {
    top: 10px;
  }
// setInterval比较耗性能,css会污染全局。具体选择哪种,根据项目环境决定
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值