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

14 篇文章 2 订阅

 每次子选择器的内容都是通过将父级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)
    })
},

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

antd(Ant Design)是一个企业级的UI设计语言和React组件库,它提供了一套完整的中后台产品解决方案,其中级联选择器Cascader)是一个常用的组件,用于处理有层级关系的数据选择。在处理大量数据时,为了提高性能,antd提供了懒加载(Lazy Load)的功能,即按需加载数据,而不是一次性加载所有数据级联选择器的懒加载功能可以通过配置`loadData`属性来实现。`loadData`属性是一个函数,它会在需要加载下一级数据时被调用。这个函数接受当前节点(`Option`)作为参数,并返回一个Promise对象,该对象在解决后将包含该节点的下一级数据。 实现懒加载级联选择器时,你需要准备一个能表示层级关系的数据源,并且设计好如何按需获取下一级数据的逻辑。当用户展开某个节点时,组件会调用你提供的`loadData`函数来获取数据,并渲染下一级选项。 以下是实现懒加载级联选择器的基本步骤: 1. 准备数据源,并确保每个节点有表示层级关系的属性,如`value`、`label`、`children`等。 2. 使用`Cascader`组件,并为其设置`loadData`属性,该属性指向一个函数,该函数根据当前节点信息来异步获取下一级的数据。 3. 在`loadData`函数中,根据当前节点的信息(通常是其`value`),向服务器请求对应的数据,并返回一个Promise对象。 使用懒加载可以显著提高应用性能,尤其是在数据量大的场景下,因为它避免了一开始就加载所有数据,减少了内存的消耗和初始加载时间。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值