ElementUi之Cascader 级联选择器el-cascader(异步获取数据源,lazyLoad)

级联选择器el-cascader(异步获取数据源,lazyLoad)

官网地址:https://element.eleme.cn/#/zh-CN/component/cascader
在这里插入图片描述
在这里插入图片描述

官网示例
省市区三联用法
data中调用methods中方法需再create时声明_that=this;_that(自己定义名字),放到export外部;

var _that;
export default {

 props: {
          lazy: true,
          lazyLoad(node, resolve) {
            const {
              level
            } = node;
            let nodes = [];
            //判断当前node是否携带data数据,无数据则父级id为null否则对parentId 赋值
            let parentId = node.data ? node.data.id : null;
            let levels = '';
            switch (level) {
              case 0:
                levels = 'province';
                break;
              case 1:
                levels = 'city';
                break;
              case 2:
                levels = 'district';
                break;
              case 3:
                levels = 'street';
                break;
            }
            _that.getArea(levels, parentId).then(res => {
              nodes = res;
              resolve(nodes);
            });
            // 通过调用resolve将子节点数据返回,通知组件数据加载完成

          },
        },
methods:{
//传入父级id及level,
async getArea(level, parentId) {
        let data = {
          level: level,
          parentId: parentId
        }
        let select = [];
        await getDistrict(data).then(res => {
          res.rows.forEach(item => {
            item.value = item.adcode;
            item.label = item.name;
            item.leaf = data.level == 'street' ? true : false;
          })
          select = res.rows;
        })
        return select;
      },
}

其他需分三级或多级数据量大时使用同上,数据结构都差不多

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值