antDv 级联选择器(a-cascader)通过接口动态加载数据

本文介绍如何在Vue项目中利用a-cascader组件实现库位的多级联动选择功能。文章详细展示了通过父级id获取子级数据并更新到selectItem的过程,同时提供了具体的方法实现,如loadOptionsData和doLoadOptionsData等。

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

 每次子选择器的内容都是通过将父级id传给接口获取到  最终保存到data中参数selectItem格式为  xxx,xx,x

<a-cascader
    :options="options"
    :load-data="loadOptionsData"
    placeholder="请选择库位信息"
    change-on-select
    v-model="queryParam.positionCode"
    @change="onChange"
/>

data数据 

options: [], // 库位下拉框数据
selectItem: '',

methods 

// 获取库位的options
loadOptionsData(selectedOptions) {
    console.log(selectedOptions)
    const targetOption = selectedOptions[selectedOptions.length - 1]
    console.log(targetOption)
    this.doLoadOptionsData(targetOption, (array) => {
        console.log('...targetOption', targetOption)
        targetOption.children = array
        this.options = [...this.options]
    })
},

doLoadOptionsData(targetOption, callback = null) {
    getAction(this.url.getOptions, { code: this.selectItem }).then((res) => {
        var array = []
        res.result.map((item) => {
            array.push(Object.assign(item, { isLeaf: item.type == 'POSITION' }))
        })

        if (callback) {
            callback(array)
        }
    })
},
onChange(value) {
    console.log(value)
    this.selectItem = JSON.stringify(value).replace(/"/g, '').replace(/\[/g, '').replace(/\]/g, '')
    console.log(this.selectItem)
},
// 没有调用但是不能删除
initDictConfig() {
    getAction(this.url.getOptions).then((res) => {
        res.result.map((item) => {
            this.options.push(Object.assign(item, { isLeaf: false }))
        })
        console.log(this.options)
    })
},

欢迎大家关注我的公众号「踏浪而行生活圈」,这里不仅有更多好玩的内容,还会同步更新 踏浪而行 最新资讯,让你时刻掌握科技前沿,快来加入我们吧!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值