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

偏执的太偏执、 2023-07-21 12:30 168阅读 0赞

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

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

关键词是“presentText”

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

主要代码如下:

  1. <el-cascader ref="cityShow" :props="props" placeholder="请选择城市" v-model="job.userAddress.selectedCity" :show-all-levels="true" clearable></el-cascader>
  2. //data中props如下
  3. props: {
  4. lazy: true,
  5. lazyLoad: (node, resolve) => {
  6. const { level, value } = node;
  7. if (level === 0) {
  8. this.getProvince(resolve);
  9. } else if (level === 1) {
  10. this.getCity(value, resolve)
  11. }
  12. }
  13. },
  14. 方法如下:
  15. getProvince(resolve) {
  16. this.$http.getProvince((res) => {
  17. console.log("555", res)
  18. if(res.code === 0 && res.data && res.data.provinceArray) {
  19. const provinceList = res.data.provinceArray.map(item => ({
  20. value: item,
  21. label: item.provinceName,
  22. leaf: false,
  23. }))
  24. resolve && resolve(provinceList)
  25. }
  26. })
  27. },
  28. getCity(data, resolve) {
  29. this.$http.getCity({ provinceId: data.provinceCode }, (res) => {
  30. if(res.code === 0 && res.data && res.data.cityArray) {
  31. const cityList = res.data.cityArray.map(item => ({
  32. value: item,
  33. label: item.cityName,
  34. leaf: true,
  35. }))
  36. resolve && resolve(cityList)
  37. }
  38. console.log("666", res)
  39. })
  40. },

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

  1. mounted() {
  2. setTimeout(()=>{
  3. this.$refs.cityShow.presentText = this.companyInfo.provinceName +"/" + this.companyInfo.cityName;// 首次手动复制
  4. this.$refs.areaShow.value = this.companyInfo.regionName;
  5. },1000)
  6. },
  7. watch:{
  8. selectCity(arr){
  9. //处理回显问题
  10. setTimeout(()=>{
  11. this.$refs.cityShow.presentText = arr[0].provinceName +"/" + arr[1].cityName;// 首次手动复制
  12. },1000)
  13. }
  14. },
  15. computed: {
  16. //工作地点回显问题
  17. selectCity(){
  18. return this.job.userAddress.selectedCity;
  19. },
  20. }

发表评论

表情:
评论列表 (有 0 条评论,168人围观)

还没有评论,来说两句吧...

相关阅读