el-cascader级联选择器单选/多选根据接口懒加载动态获取数据

2023-11-04

在Vue项目中,使用elment ui 中 el-cascader 级联选择器,级联选择器每一级的内容对应不同的接口,因此我们要采用懒加载的形式实现对数据的动态获取。

主要思路:通过 lazy 开启动态懒加载,并使用 lazyLoad 来设置加载数据源的方法。lazyLoad 方法有两个参数,第一个参数 node 为当前点击的节点,第二个 resolve 为数据加载完成的回调(必须调用)。

以下先介绍el-cascader级联选择器单选根据接口懒加载动态获取数据

<template>
  <el-cascader
    ref="cascader"
    :props="casProps"
    :options="casData"
    filterable
    clearable
    placeholder="请选择"
    @change="handleCasChange">
  </el-cascader>
</template>
 
<script>
export default {
  name: 'cascaderTest',
  data () {
    return {
    // 获取数据
      casData: [],
      casProps: {
        value: 'casId',
        label: 'casName',
        // 懒加载
        lazy: true, // 必须为true
        lazyLoad:this.lazyLoad
      }
    }
  },
methods:{
	// 懒加载获取数据 
    lazyLoad(node,resolve){
        const level = node.level
        var url
        if (level === 0) {
          url = '接口地址'
        }
        if (level === 1) {
          url = '接口地址'
        }
        if (level === 2) {
          url = '接口地址'
        }
        // 请求看项目具体请求格式
        this.reqM1Service(url, '', "get")
        .then(res => {
          let data
          if (level === 0) {
            data = res.data.data
            // 判断data是否有数据
            if(data.length == 0){
              return this.$message.error("获取数据失败!")
              }else{
                data.forEach(item => {
                this.value = item.casId
                this.label = item.casName
            })
           }
          }
          if (level === 1) {
            data = res.data.data
            if(data.length == 0){
              return this.$message.error("获取数据失败!")
              }
            data.forEach(item => {
              item.value = item.casId
              item.label = item.casName
            })
          }
          if (level === 2) {
            data = res.data.data
            if(data.length == 0){
              return this.$message.error("获取数据失败!")
              }
            data.forEach(item => {
              item.value = item.casId
              item.label = item.casName
              //将相关值赋值到选择器上
              item.leaf = level >= 2
            })
          }
          resolve(data)
        })
      }
    }
}
</script>

多选的实现其实可以类比单选,但是注意要处理最后一个层级。因为多选不会自动关闭选择框,选择的内容会回显在选择框里,但是其最后一级的加载圈会一直在转,且控制台会报错。
在这里插入图片描述
在这里插入图片描述

因此el-cascader级联选择器多选根据接口懒加载动态获取数据在单选的基础上修改以下代码

casProps:{
        //允许多选
        multiple: true, 
        value: 'casId',
        label: 'casName',
        // 懒加载
        lazy: true, // 必须为true
        lazyLoad:this.lazyLoad
      },
		if (level === 0) {
          url = '接口地址'
        }
        if (level === 1) {
          url = '接口地址'
        }
        if (level === 2) {
          url = '接口地址'
        }
       // 新增对最后一级的下一级的处理
       // 到最后一级的时候消除加载圈及禁止继续请求
        if (level === 3) {
          let data
          resolve(data)
          return
        }
        

补充:element-ui Cascader 级联选择器清除选中及高亮

// 清空级联选择器选中状态
this.$refs.cascader.$refs.panel.clearCheckedNodes()
// 清除高亮
this.$refs.cascader.$refs.panel.activePath = []

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

el-cascader级联选择器单选/多选根据接口懒加载动态获取数据 的相关文章

随机推荐

  • EduCoder_web实训作业--JavaScript 学习手册二:JS 数据类型

    欢迎大家关注 转发 加推荐给身边的同学啊 第一关 请在此处编写代码 Begin aType typeof a bType array cType typeof c dType typeof d eType bool fType typeof
  • kubernetes-1.25.6 二进制部署

    目录 1 基础环境 2 基础环境配置 2 1 所有节点配置hosts 2 2 关闭防火墙 selinux dnsmasq swap 2 3 配置时间同步 2 4 节点修改资源限制 2 5 安装基本软件 2 6 升级系统内核 2 7 修改内核
  • 半监督目标检测

    一 Soft Teacher 1 超实用半监督目标检测 Soft Teacher 及 MMDetection 最强代码实践 2 3 GitHub上mmdetection上有一个关于SSOD这个的教程 SSOD tutorial 4 配置mm
  • unity 保存场景数据,读取场景

    原文链接 http www cnblogs com qq2351194611 p 11310159 html 一共两个脚本 一个保存的 一个读取的 下面会附上代码 网上都有 这个只是方便自己用 这是保存的脚本 放到Editor文件夹下即可
  • 数据清洗:由坐标数据构成的轨迹去除漂移点的操作

    版权声明 转载请注明作者 独孤尚良dugushangliang 出处 https blog csdn net dugushangliang article details 102821219 先看看我们要处理的数据 首先根据点的经纬度数值
  • uos的linux内核版本,在UOS 20或Deepin系统中安装Linux 5.5.0版本内核

    本文介绍的安装Linux 5 5版本内核方法可用在UOS 20或Deepin系统中 内核类型为generic 适用于x86 64架构计算机 Linux 5 5更新详情 Linux 5 5内核发布下载 附新功能及新特性介绍 下载Linux 5
  • 谷歌携Blink来势汹汹 WebKit将成明日黄花?

    原文地址 http www csdn net article 2013 04 09 2814815 Google近日宣布将为Chrome浏览器开发新的自主渲染引擎Blink 与WebKit分道扬镳 随后Opera宣称将追随Google 放弃
  • 主流数据库之间对SQL:2003标准的不同实现方法比较(第四部分 查询结果集中间n行数据)

    本文严禁在未征得本人同意的情况下以任何形式进行转载 本人只接受在邮件中的转载申请 如需转载 请发送邮件至 betteryou 126 com 带有偏移量的限制 目标 仅需要结果集中的n行数据 并试图忽略前面m行的数据 通常只在有ORDER
  • 程序员看世界杯

    目录 1 世界杯赛事规则 1 1 赛制 1 2 小组赛 1 3 淘汰赛阶段 1 4 1 8决赛 1 5 半决赛 1 6 决赛 2 大力神杯材质 3 看球心德 4 2022大力神杯赢家 1 世界杯赛事规则 1 1 赛制 世界杯一共进行64场
  • pytorch基本使用_01

    import torch import numpy as np string 在torch中对string不支持 1 可以通过向量one hot来进行分类 2 embedding word2vec glove type check a to
  • 利用nodemcu和mqtt协议让嵌入式设备接入互联网(二.nodejs的安装和配置)

    文章目录 前言 nodejs nvm和nodejs的安装 npm的相关配置 配置npm的global和cache路径 配置npm仓库为国内淘宝镜像 npm下载相关依赖包 npm初始化项目 安装相关依赖包 前言 第一篇讲了怎么用layui做H
  • 在Sonar中配置license和copyright的检查

    现在开源代码越来越多 代码头部的license和copyright信息在开发中容易被遗忘 那么就有必要做一些相关的检查 例如在持续集成CI中加入这方面的检查 当然 目前有很多集成在IDE中的工具来自动添加license和copyright信
  • 区间查询(树状数组之差点问线问题)

    1110 区间查询 时间限制 2 Sec 内存限制 32 MB 提交 162 解决 62 提交 状态 题目描述 食堂有N个打饭窗口 现在正到了午饭时间 每个窗口都排了很多的学生 而且每个窗口排队的人数在不断的变化 现在问你第i个窗口到第j个
  • selenium自动化测试入门 浏览器多窗口切换

    有时web应用会打开多个浏览器窗口 当我们要定位新窗口中的元素时 我们需要将webDriver的handle 句柄 指定到新窗口 什么意思 假设我们打开web应用 在系统运行过程中重新打开一个新窗口 可以是页签 当前浏览器存在两个窗口 这时
  • 宋浩概率论笔记(四)数字特征

    本帖更新数字特征 包含期望 方差 相关系数等 要点在于记忆性质中的各种公式 遇到题目时能迅速利用已知条件计算答案
  • (超详细)单臂路由及操作步骤

    目录 一 前提引入 二 单臂路由概述 2 1概念 2 2单臂路由优点 2 3单臂路由子接口 三 链路类型 四 单臂路由的配置实例 4 1拓扑图 4 2交换机的配置 4 3路由器的配置 4 4主机的配置 4 5连通性测试 五 总结 一 前提引
  • ajax+异步promise+async+await

    ajax是什么 为什么要学 ajax 异步js xml ajax实现客户端和服务端进行异步通信 实现页面的局部更新 好处 局部刷新 用户体验好 异步通信 加快了响应能力 减少冗余请求 减轻了服务器负担 ajax原理就是 通过xml对象向服务
  • 用python绘制一条直线_python绘制直线的方法

    本文实例为大家分享了python绘制直线的具体代码 供大家参考 具体内容如下 usr bin env python import vtk 绘制通用方法 def myshow linepolydata Now we ll look at it
  • 1km分辨率全球夜间灯光数据(2012-2022)

    数据简介 夜间灯光 一方面直接反映着当地的工业化水平和城市化水平 另一方面 也能部分反映着人口集中分布情况 同时 根据地表夜间灯光亮度 从而在一定程度上表征人类活动强度 长时间序列的夜间灯光数据被广泛运用于多个领域 一些学者将这一指标当作真
  • el-cascader级联选择器单选/多选根据接口懒加载动态获取数据

    在Vue项目中 使用elment ui 中 el cascader 级联选择器 级联选择器每一级的内容对应不同的接口 因此我们要采用懒加载的形式实现对数据的动态获取 主要思路 通过 lazy 开启动态懒加载 并使用 lazyLoad 来设置