首页 > 其他分享 >Element cascader动态加载

Element cascader动态加载

时间:2022-08-15 19:14:31浏览次数:83  
标签:node resolve res value Element item cascader data 加载

一开始也是网上查找:https://blog.csdn.net/lgh1206/article/details/113932595  看的这位博主的,他是自己创建的数据

我这边是与后端联调: 

 <el-cascader
              style="width: 170px"
              :options="options"
              :props="props"
              @change="handleChange"
              placeholder="省 / 市 / 区"
></el-cascader>


data(){
    options: [],
      props: {
        label: "name", 
        value: "id",
        lazy: true,
        lazyLoad: (node, resolve) => {
          if (node.level == 0) {
            this.getLevelOne(node, resolve);
          } else if (node.level == 1) { 
            this.getLevelTwo(node, resolve);
          } else if (node.level == 2) {
            node.level = 2;
            this.getLevelThree(node, resolve);
          }
        },
      },
},
methods:{
  // 三级联动 - 一级
    getLevelOne(node, resolve) {
      一级接口({}).then((res) => {
        if (res.code == 200) {
          this.options = res.data;
        }
      });
    },
    // // 三级联动 - 二级
    getLevelTwo(node, resolve) {
      let data = {
        provinceId: node.data.id,
      };
      二级接口(data).then((res) => {
        let optionChild = res.data;
        optionChild.map((item) => {
          return {
            value: item.id,
            label: item.name,
          };
        });
        resolve(optionChild);
      });
    },
    // // 三级联动 - 三级
    getLevelThree(node, resolve) {
      let data = {
        cityId: node.data.id,
      };
      三级接口(data).then((res) => {
        let optionChilds = res.data;
        optionChilds.map((item) => {
          item.leaf = !item.hasChildren; // 这里是区分最后一级时不让显示箭头
          return {
            value: item.id,
            label: item.name,
            leaf: item.leaf,
          };
        });
        resolve(optionChilds);
      });
    },  
handleChange(value) {
      console.log(value);
    },
}

本来label和 value是一二三级为不同的字段名,但是 data里面的label和value 是哪一级的字段名cascader就只能显示那一级的(这里要和后端商量好,一二三级的字段名要统一)

标签:node,resolve,res,value,Element,item,cascader,data,加载
From: https://www.cnblogs.com/yjd-05/p/16589353.html

相关文章

  • element下拉框远程搜索debounce防抖控制
    一、需求:下拉框支持远程搜索,根据用户输入字符,调接口获取数据渲染到下拉列表上,供用户选择。二、为什么要做防抖控制?在做远程搜索时,如果每输入1个字就调用1次接口,就会频繁......
  • Bash: array contains element
     functioncontainsElement(){localn=$##numberofargumentslocalvalue=${!n}#lastofargumentsecho"${@:2}"echo"${@:0}"......
  • 加载远程vue文件 vue3-sfc-loader
    需求项目在写一些需求的时候,现场可能会有些变动,但是不想从新打包,这种情况可以考虑单独不打包的vue文件注意vue2import{loadModule}from'vue3-sfc-loader/dist/vue2......
  • 微信小程序获取数据时显示加载中
    微信小程序在获取数据时页面显示数据需要加载时间,这时可以使用wx.showLoading(),如果小程序内多次使用 wx.request时,可以对其进行封装在utils文件夹下新建文件network.js......
  • Elements
    Elementspackageorg.jsoup.select;importorg.jsoup.helper.Validate;importorg.jsoup.nodes.Element;importorg.jsoup.nodes.FormElement;importorg.jsoup.nod......
  • 华测RTK采集的GPX数据,如何带属性转出GIS常用格式并分类加载管理?
    0.序部分自然资源和规划局经常性的基于华测中绘RTK设备采集点位、轨迹等相关数据。比如需要保护的古树、古建、古道路信息等。后续一旦需要对这些古物进行改造或者方案设......
  • 2022.8.14 模块化、Webpack、Vue-element-admin
    06、模块化相当于形成包6.1、简介模块化产生的背景随着网站逐渐变成”互联网应用程序”,嵌入网页的Javascript代码越来越庞大,越来越复杂。Javascript模块化编程,已经成......
  • elementui+django实现分页效果
    elementui+django实现分页效果前端:template:<el-paginationbackground @current-change='currentChange'layout="prev,pager,next":page-......