element UI级联选择器---动态加载数据,动态控制二级面板的显示与隐藏

这篇具有很好参考价值的文章主要介绍了element UI级联选择器---动态加载数据,动态控制二级面板的显示与隐藏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

element 级联选择器动态加载,Element-UI,vue.js,elementui,前端

 一级数据列表是在页面初始化的时候调用接口返回的数据;

二级数据列表需要在获取到一级数据id的时候调用接口得到数据进行列表渲染;

问题:

使用了el-cascader后发现如果第一次点击父级A获取到二级数据,并且二级面板显示,第二次点击父级B获取到二级数据为[ ],此时二级面板不仅没有隐藏,同时展示的仍然是父级A的二级数据;

解决方法:

获取到二级面板的元素,通过方法进行display的显示与隐藏;文章来源地址https://www.toymoban.com/news/detail-718936.html

<template slot-scope="{disabled,size}" slot="packageIdSearch">
  <el-cascader
    v-model="search.packageId"
    :props="hostProps"
    :options="hostOptions"
    placeholder="请选择适用host"
    clearable
  >
    <template slot-scope="{ node, data }">
      <span @click="parentNode(node)" style="display:block;">{{ data.label }</span>
    </template>
  </el-cascader>
</template>
data() {
  return {
    hostProps: {
      lazy: true,
      checkStrictly: true,
      lazyLoad: (node, resolve) => {
        if (node.data) {
          this.getHostVersion(node, node.data.id, resolve)
        }
      }
    },
    hostOptions: [],
  };
},

mounted() {
    getPackage().then((res) => {
      if (res.status == 200) {
        res.data.data.map((item) => {
          item.value = item.id
          item.label = (item.regionType == 'internal' ? '(D) ' : '(U) ') + item.nebulaPackageName
        })
        this.hostOptions = res.data.data
      }
    })
},

methods: {
    // 级联搜索适用host
    parentNode(node) {
      let el_node = document.querySelectorAll('.el-cascader-menu');
      if (el_node[node.level] && el_node.length > 0) {
        el_node[node.level].style.display = "block";
      }
    },

    getHostVersion(node, v, resolve) {
      let el_node = document.querySelectorAll('.el-cascader-menu');
      getversionList({ packageId: v }).then((res) => {
        if (res.status == 200) {
          let arr = []
          if (res.data.data.length > 0) {
            arr = res.data.data
            arr.map((item) => {
              item.value = item.id
              item.label = item.versionName + '('+ item.versionCode + ')'
              item.leaf = true
            })
            if (el_node[node.level] && el_node.length > 0) {
              el_node[node.level].style.display = "block";
            }
            resolve(arr)
          } else {
            if (el_node[node.level] && el_node.length > 0) {
              el_node[node.level].style.display = "none";
            }
            resolve([])
          }
          
        } else {
          resolve([])
        }
        
      })
    },
}

到了这里,关于element UI级联选择器---动态加载数据,动态控制二级面板的显示与隐藏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • antd级联选择器(a-cascader)动态加载和动态回显效果实现

    ​ 需要实现级联选择器动态拿到每一层级的数据并显示,同时在编辑数据时弹框回显对应的层级关系。 ​ 给组件添加 :checkStrictly=\\\"true\\\" 这个属性就可以实现单独勾选一级、二级、三级组织关系。(官方api没有写) ​ 首先先在html里 模态框上写上a-cascader组件 ​ 先实现只有动

    2024年01月25日
    浏览(37)
  • vue中使用element-ui ,设置级联选择器高度问题

    我本来以为设置elemnt-ui组件样式需要用到深度选择器,然后找了好多关于深度选择器的,比如 /deep/ ::v-deep 后来才明白是权重不够,解决方法如下 1、在全局css中设置 缺点:所有级联选择器的高度都是固定的 结论:只有在所有页面级联选择器都一致的情况下或者只有一个级联

    2024年02月12日
    浏览(47)
  • vue element UI el-cascader 级联选择器 获取当前选择值的整个对象

    要使用到cascader组件选中的数据的所有部分,并没有类似于select组件中的value可以指定,查看官方文档提供了新的方法,官方地址https://element.eleme.cn/#/zh-CN/component/cascader html部分 可以正常获取到该节点的全部数据,如下图所示: 如有问题请联系我~ 欢迎加入QQ群:

    2024年02月15日
    浏览(47)
  • element-ui cascader级联选择器,获取对象Object(getCheckedNodes()、currentLabels)

    element-ui中的cascader级联选择器,官网文档中并没有提供方法直接获取当前选择的Object,这里特别需要注意element-ui的版本问题,不同的版本需要用到不同的方法。 可以用this.$refs[‘cascader’].currentLabels获取选中节点。 //获取节点label内容 因为安装的element-ui版本高于2.7.0版本,所

    2024年02月16日
    浏览(40)
  • [element-ui] 级联选择器el-cascader不触发change事件

    el-cascader 使用官网的数据是可以的 官网数据中最后一级没有children 就可以了 参考: elementui级联选择器Cascader不触发change事件

    2024年01月23日
    浏览(40)
  • element-ui el-cascader级联选择器设置指定层级不能选中(示例代码)

    本文为转载原地址:https://www.136.la/shida/show-396330.html 有时候用element-ui el-cascader级联选择器添加分类时会遇到最多添加几级的限定.看了文档,只要给需要禁止选择的选项添加disabled属性就可以.但是使用一层一层循环遍历数据感觉很麻烦,自己写了个遍历的方法,纪录下,方便以后使

    2024年02月11日
    浏览(52)
  • vue.js3 setup风格 element-ui 级联选择器clearCheckedNodes使用方法

    Cascader 级联选择器 | Element Plus 官方文档里提到可以清空选中节点,使用 clearCheckedNodes()方法:   具体用法: 1 先了解vue3 setup中怎么获取ref 获取方法非常简单,在需要获取的组件里写ref,在setup里定义同名空ref,就会自动获取了 定义ref: 在setup里定义同名空ref: 然后操作mu

    2024年02月12日
    浏览(42)
  • Element UI级联选择器 多选模式下,实现同一父级下最多只能选中一个子级

    这个需求有点多选与单选结合的意思,同一父级下的子节点单选,又可以选择多个不同父级下的节点。这里以两级为例,实现一个在多选模式下,同一父级下最多只能选中一个子级的级联选择器。 1、隐藏父级节点处的CheckBox 多选模式下可以通过勾选父级一键选中所有的子级

    2024年02月01日
    浏览(38)
  • el-cascader级联选择器加载远程数据、默认开始加载固定条、可以根据搜索加载远程数据。

    加载用户列表分页请求、默认请求20条数据。想添加远程搜索用户功能。原有的方法 filter-method 不能监听到输入清空数据的时候。这样搜索完无法返回默认的20条数据。 直接监听级联选择的 v-model 绑定的值是无法检测到用户自己输入的。 解决思路: el-cascader 没有提供监听用户

    2024年02月14日
    浏览(41)
  • Vue+element-ui的el-cascader实现动态添加删除级联地点输入框

    实现省市区三级地点级联选择,可联想; 包括始发地点、途径地点、终止地点,始发地点、终止地点均为一个,途径地点可以没有也可以是多个; 用户可以动态添加/删除途径地点。 使用级联选择器Cascader需要的树形数据,前端请求到后端获取省市区数据并处理为elementui官网

    2024年02月04日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包