element-ui 级联选择器cascader动态加载的问题

本文介绍了在使用Element UI的级联选择器Cascader时,如何实现动态加载数据并解决实际项目中遇到的问题。包括根据单位ID获取各级单位,动态加载下级单位,控制节点的展开状态,以及选择单位后的处理和默认显示等。通过示例代码展示了解决方案。
摘要由CSDN通过智能技术生成

前段时间项目里有一个树状单位结构的需求,第一反应就是用elementui里的cascader 级联选择器来做。

本来以为是通过接口直接获取到所有单位树后配置一下就可以了,看了需求文档后发现原来是要通过动态加载的方式来获取。

需求:
1.进入页面之后根据当前的单位Id调用第一个接口来获取第一级的单位,并默认展示。
2.如果当前单位有下级单位则显示箭头,点击调用第二个接口获取下级单位。

很快啊,看着elementui官方文档,写了一个简单的demo,如下:

<template>
    <div class="main">
        <el-cascader :props="props"></el-cascader>
    </div>
</template>
<script>
export default {
   
    data(){
   
        return {
   
            placeholder:"",
            defaultName:"",
            props:{
   
                label:'text',
                value:'id',
                lazy: true,
                lazyLoad:(node, resolve) =>{
     
                    if(node.level == 0 ){
   
                        this.queryTree(node, resolve)
                    }else {
   
                        this.queryMoreTree(node, resolve)
                    }
                },
            }
        }
    },
    methods:{
   
        //获取第一级单位
        queryTree(node, resolve){
   
            setTimeout(() => {
   
                let res = [{
   id:"1",text:"北京",hasChildren:true}];
                res.forEach(item => {
   
                    return {
   
                        value:item.id,
                        label:item.text,
                        leaf:item.leaf
                    }
                })
                console.log(res)

                resolve(res)
            }, 500);

        },
        //获取下级单位
        queryMoreTree(node, resolve){
   
            setTimeout(() => {
   
                let<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值