vue element Cascader 级联选择器 选择任意一级选项 点击收起,点击label选中等问题详解

1. 温馨提示:Cascader 级联选择器 选择任意一级 请切换到 2.12.0 最新版

在这里插入图片描述

2. 直接步入主题,先看下需求要实现的功能

就是一个级联联动效果,但是他是每一级都能够选择,可以看到既可以选商品组,还能选择商品组下面的团队长,也就是他的子级。
在这里插入图片描述

找到饿了吗的级联选择器,快捷访问地址:然后找到选择任意一级选项

点击跳转:Cascader 级联选择器

在这里插入图片描述

3. Cascader 级联选择器 数据渲染

其实这个很简单,就是通过 :options="options" 映射就OK啦。让每一级都可以选择设置属性 :props="{ checkStrictly: true }"
在这里插入图片描述

上面的就是很简单的渲染,这里就不给大家看具体实现代码了,坑还在后面,这是我渲染的结果
在这里插入图片描述

4. 本文重点来了。。。

当我们都写完了的时候,but,特么这官网这个有两个问题:

  1. 点击圆圈后理想是自动收起下拉,但是他这个也没有
  2. 而且只能点击圆圈才能选中,点击文字 label 没有效果

于是,开始了艰辛的百度历程: 最后依然没有找到答案,好像很少人用这种,级联每一级都可以选择的。。。用得多的就是选中最后一级,像省级联动之内的

打铁还需自身硬,只有自己去慢慢看了。后面终于解决了这两个问题:
先看第一个问题,让他收起来,这个好像不难,确实不难:
设置每次监听值变化的时候,把 dropDownVisible 属性设置为 false 即可。(虽说简单,但是这个属性我找了半天,官网根本没有说~~~~(>_<)~~~~ )

  watch: {
    handlerValue() {
      if (this.$refs.refHandle) {
        this.$refs.refHandle.dropDownVisible = false; //监听值发生变化就关闭它
      }
    }
  },

在看看第二个问题,点击label 也每次让他选中,卧槽,无从下手,后面怎么解决的说来话长,看实现代码吧。

mounted() {
	//点击文本就让它自动点击前面的input就可以触发选择。但是因组件阻止了冒泡,暂时想不到好方法来触发。
	//这种比较耗性能,暂时想不到其他的,能实现效果了。
    setInterval(function() {
      document.querySelectorAll(".el-cascader-node__label").forEach(el => {
        el.onclick = function() {
          if (this.previousElementSibling) this.previousElementSibling.click();
        };
      });
    }, 1000);
  },

5. 补充其它问题

后端返回的字段和前端的不一致,请使用 propsvalue,label,children 做映射

vue解决Element-ui中 el-cascader 级联选择器 最后一级数据为空显示暂无数据问题

Vue级联选择器插件是一种基于Vue.js框架开发的组件,用于实现级联选择功能。它可以用来解决多级关联选择问题,比如省市区选择、商品分类选择等。 Vue级联选择器插件具有以下特点: 1. 灵活多样的配置选项:可以通过配置参数来设置级联选择器的样式、默认值、数据源等,以满足不同业务需求。 2. 数据绑定:可以通过v-model指令将选中的值与组件外部的数据进行双向绑定,保持数据的一致性。 3. 动态加载:支持根据选择的值动态加载下一级选项,减少数据加载量,提升用户体验。 4. 定制化选项:可以自定义选项的展示形式,比如添加图标、设置选项的可用状态等,增加用户可操作性。 5. 事件回调:提供了多个事件回调函数,方便开发者处理选择器的变化事件,如选择改变、面板打开、面板关闭等。 Vue级联选择器插件的使用步骤如下: 1. 在Vue.js项目中安装该插件,可通过npm或者cdn方式引入相关依赖。 2. 在需要使用级联选择器的组件中引入并注册该插件。 3. 在模板中通过组件标签的方式引入级联选择器,并设置相关的属性。 4. 根据需求,处理级联选择器的事件回调函数,更新相关数据。 通过以上步骤,我们即可在Vue.js项目中使用该插件,实现级联选择的功能。这种插件的使用减少了开发人员开发成本,提高了开发效率,同时还提供了丰富的功能和灵活的配置选项,使得级联选择更加方便快捷。
评论 67
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q_Q 忙里偷闲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值