ant 级联选择器 cascader 动态加载

ant cascader 动态加载
vue代码

 <a-cascader @click="popupVisible = true" :popupVisible="popupVisible" 
 allowClear :options="options" :load-data="loadData" 
 placeholder="请选择" change-on-select @change="onChangeCascader"
  :fieldNames="{ label: 'categoryNameCn', value: 'id', children: 'children' }" />

fieldNames 自定义字段
loadData 加载方法
options 选项

vueJS代码

	data(){
	  return{
		selectCascader: [], //选中的id
	    popupVisible: null  //控制级联选择器显示隐藏
	  }
	}
    /* 获取父级分类 */
    getCategory () {
      selectCategoryGoods().then(res => {
        this.options = res.data.map(item => {  
          item.isLeaf = false   //获取父级分类,为每一项添加isLeaf,这样才能动态去加载
          return item
        })
        this.options = res.data
      })
    },


  /* 分类级联选择器 */
    onChangeCascader (value) {
      console.log('选中的id',value);
      this.selectCascader = value //存储所选数组id
    },

//loadData 
 async loadData (e) {
      const targetOption = e[e.length - 1]
      targetOption.loading = true
       // 接口调用
      let data = await selectCategoryGoodsByFatherId({ fatherId: targetOption.id })
      targetOption.loading = false
      if (data.data.length == undefined) { //如果加载不到数据,关闭选择器,关闭动画
        this.popupVisible = false
        targetOption.loading = false
        return
      }

      data.data.forEach(item => { //获取到的子级分类,每项添加isLeaf 
        item.isLeaf = false
        targetOption.loading = false
      })
      targetOption.children = [...data.data]
      this.options = [...this.options]
    },

成果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一头小绵羊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值