ElementUi中Cascader级联选择器 回调问题解决

1 篇文章 0 订阅

ElementUi中Cascader级联选择器 回调问题解决
1,在开发中使用了Cascader级联选择器,应用于省市联动的效果,发现问题:数据回调时不显示。
2,解决方法:使用ref进行回调处理。

this.$refs.cityShow.presentText ="复制";// 首次手动复制

关键词是“presentText”

详细问题描述:
Cascader级联选择器中使用的是props进行的省市联动效果,而没有使用options 进行传值;

主要代码如下:

  <el-cascader ref="cityShow" :props="props" placeholder="请选择城市" v-model="job.userAddress.selectedCity" :show-all-levels="true" clearable></el-cascader>
//data中props如下
props: {
                lazy: true,
                lazyLoad: (node, resolve) => {
                    const { level, value } = node;
                    if (level === 0) {
                        this.getProvince(resolve);
                    } else if (level === 1) {
                        this.getCity(value, resolve)
                    }
                }
            },
         
方法如下:
 getProvince(resolve) {
            this.$http.getProvince((res) => {
                console.log("555", res)
                if(res.code === 0 && res.data && res.data.provinceArray) {
                    const provinceList = res.data.provinceArray.map(item => ({
                        value: item,
                        label: item.provinceName,
                        leaf: false,
                    }))
                    resolve && resolve(provinceList)
                }
            })
        },
        getCity(data, resolve) {
            this.$http.getCity({ provinceId: data.provinceCode }, (res) => {
                if(res.code === 0 && res.data && res.data.cityArray) {
                    const cityList = res.data.cityArray.map(item => ({
                        value: item,
                        label: item.cityName,
                        leaf: true,
                    }))
                    resolve && resolve(cityList)
                }
                console.log("666", res)
            })
        },             

解决方案
在mounted中或者 watch处理

 mounted() {
        setTimeout(()=>{
            this.$refs.cityShow.presentText = this.companyInfo.provinceName +"/" + this.companyInfo.cityName;// 首次手动复制
            this.$refs.areaShow.value = this.companyInfo.regionName;
        },1000)
    },
 watch:{
        selectCity(arr){
            //处理回显问题
            setTimeout(()=>{
                this.$refs.cityShow.presentText = arr[0].provinceName +"/" + arr[1].cityName;// 首次手动复制
            },1000)
        }
    },
    computed: {
        //工作地点回显问题
        selectCity(){
            return this.job.userAddress.selectedCity;
        },
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值