elementui 级联选择器懒加载获取动态数据

本文详细介绍了如何使用Element UI的级联选择器组件,包括设置选项数据、监听change事件获取选中值、通过ref获取额外信息以及如何配置props属性以处理不同字段名的数据。此外,还展示了如何实现懒加载和后端数据的动态加载,通过typeEconomyGetSelectList方法处理后端返回的数据,并提供了一个解决属性名不匹配的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<el-cascader
      v-model="options"
      @change="test"
      :options="optionsOptions"
    ></el-cascader>

elementui 可以通过options属性指定选项数组即可渲染出一个级联选择器;在data里面声明一个变量为数组,显示效果便如下图;

optionsOptions: [
        { value: 1, label: "111", children: [{ value: 3, label: "333" }] },
        { value: 2, label: "222" },
      ],

当你选中之后会调用change事件;返回值为你选中节点value值组成的数组。

但是当你需要拿到选中的节点除了value值以外其他的值时,比如说label啊,或者是你自定义的值;比如像这样想拿到a的值的话;

你可以给el-cascader添加一个ref值

 <el-cascader
     ref="cascader"
      v-model="options"
      @change="test"
      :options="optionsOptions"
    ></el-cascader>

 然后通过组件的getCheckedNodes方法来获取你所需要的值;

test(val) {
      console.log(val)
      console.log(this.$refs["cascader"].getCheckedNodes()); 
    },

 

 因为options数据只能识别到value/label/children属性,如果后端返回的数据属性名与组件不一致时,你便需要添加props进行属性名配置;

optionsOptions: [
        // { value: 1, label: "111",a:'a', children: [{ value: 3, label: "333" ,a:'b'}] },
        // { value: 2, label: "222",a:'c' },
        {id:1,label:'111',child:[{id:3,label:'333'}]},
        {id:2,label:'222'}
      ],
<el-cascader
     ref="cascader"
      v-model="options"
      @change="test"
      :options="optionsOptions"
      :props="prop"
    ></el-cascader>
prop:{
          value:'id',
          children:'child'
      },

开启懒加载/加载后端数据

props: {
        //开启懒加载
        lazy: true,
        lazyLoad: this.typeEconomyGetSelectList,
      },
typeEconomyGetSelectList(node, resolve) {
      console.log(node);
      let params = {
        
      };
      typeEconomyGetSelectList(params).then((res) => {
        var nodes = res.data.map((item) => {
          return {
            value: item.value,
            label: item.label,
            haveChildren: item.haveChildren,
            level: item.level,
            leaf: !item.haveChildren,
          };
        });
        resolve(nodes);
      });

后端调用方法再根据你的需求进行修改就行,return的数据都可以在node参数里面的data属性里面获取;value和label必须返回,其余的参数可根据项目需求更改,leaf可以根据级别或者别的参数进行层数的判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小童同学呀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值