返回顶部
首页 > 资讯 > 精选 >elementui动态级联选择器回显问题怎么解决
  • 481
分享到

elementui动态级联选择器回显问题怎么解决

2023-07-05 07:07:24 481人浏览 八月长安
摘要

这篇文章主要讲解了“elementui动态级联选择器回显问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“elementui动态级联选择器回显问题怎么解决”吧!场景描述后台返回类目数

这篇文章主要讲解了“elementui动态级联选择器回显问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“elementui动态级联选择器回显问题怎么解决”吧!

场景描述

后台返回类目数组,其中有一级类目;二级类目,三级类目;这种情况下如何回显数据

效果图如下:

elementui动态级联选择器回显问题怎么解决

数据结构如下:

  • id:自己的id

  • level:等级

  • pid:父级id,0位第一级

  • name:名字

[    {    id:1, level:0,pid:0,name:'测试1'                },    {    id:2, level:0,pid:0,name:'测试2'                },    {    id:11, level:1,pid:1,name:'测试1-1'                },    {    id:12, level:2,pid:11,name:'测试1-1-1'                }]

先贴上html部分

<el-cascader :props="cateGoryProps"             v-model="cascaderData"></el-cascader>

然后再贴上data数据中的部分

这儿需要注意几个点:

label、value需要改为你数据结构一致的字段;

lazyLoad函数中的node有许多参数,如果目前的不能满足你的需求;你可以查看里面的一些参数是否有你需要的数值;

现在data中的lazyLoad函数主要是一些默认值;

      cascaderData: '12',      categoryProps: {        emitPath: false,        label:'name', // 字段必须统一        value:'id', // 字段必须统一        lazy: true,        lazyLoad (node, resolve) {          const { level,value } = node;          console.log(value);          let nodes = [];          if (level == 0) { // 第一级            nodes = catalogueList.filter(v=>{return v.level == 0});          }else { // 后面两级            nodes = catalogueList.filter(v=>{return v.pid == value});          };          resolve(nodes.map(v=>({            id: v.id,            name: v.name,            leaf: level >= 2          })));        }      }, // 级联选择器显示数据

回显的方法:

将以下方法赋值给lazyLoad函数即可实现回显了;

逻辑:

  1. cascaderData:是选择的参数最后一级id

  2. value:我们在选择是(鼠标点击选择的)会触发并返回id,如果没有选择点击,则返回undefined(我们就在这儿进行判断是回显还是手动触发)

  3. 先说回显:threeFind:我们根据有的最后一级id(cascaderData),去查找改数据并查询到他父级(twoFind);然后根据他父级查找到(第三级)的所有数据(threeData)

  4. 然后根据二级数据(twoFind)去查找一级(oneFind),然后根据一级(oneFind)查找到二级的所有数据;一级不用查(level==0)全是

  5. 这个时候开始将对应(二级,三级)的数据放到children下面;children是默认的值;会自动去查找

  6. 在放置第三级的数据的时候需要注意一个值:leaf,为true时就是结束;也必须写这个;否则选择器不会显示,但是展开的时候是显示状态

  7. 现在回显也完成了;但是我们从二级或者一级选择分类的时候,会出现一级或者二级数据跑到二级或者三级目录下等清楚;这个时候就需要将选中的数据查找到

  8. 然后将其子集的数据查找出来;并判断如果是第三级就leaf:true;即可完成

  9. 赶紧去试试吧!

    setLazyLoad(node, resolve) {      const { level,value } = node;      const cascaderData = this.cascaderData;      // 第一级数据      let nodes = [];      nodes = catalogueList.filter(v=>{return v.level == 0});      // 选中的第三级某位数据      const threeFind = catalogueList.find(v=>{return v.id == cascaderData});      if (value) {        // 查询数据        const unknownFind = catalogueList.find(v=>v.id == value);        if (level == 1) {          let twoData = catalogueList.filter(v=>v.pid == unknownFind.id);          nodes = twoData; // 第二级        }else if (level == 2) {          let threeData = catalogueList.filter(v=>v.pid == unknownFind.id);          nodes = threeData.map(v=>{return {id:v.id,name:v.name,level:v.level,leaf:true}}); // 第三级        };      }else {        // 选中的第二级某位数据        let twoFind = catalogueList.find(v=>v.id == threeFind.pid);        // 第三级数据        let threeData = catalogueList.filter(v=>v.pid == twoFind.id);        // 选中的第一级某位数据        const oneFind = catalogueList.find(v=>{return v.id == twoFind.pid});        // 第二级数据        let twoData = catalogueList.filter(v=>{return v.pid == oneFind.id});        // nodes = nodes.map(v=>{return {id:v.id,name:v.name,level:v.level}}); // 第一级        const oneIndex = nodes.findIndex(v=>{return v.id == oneFind.id});          nodes[oneIndex].children = twoData; // 第二级          const twoIndex = nodes[oneIndex].children.findIndex(v=>v.id == twoFind.id);        nodes[oneIndex].children[twoIndex].children = threeData.map(v=>{ // 第三季          return {            id:v.id,            name:v.name,            level:v.level,            leaf: true,          }        });      }      resolve(nodes);    },

感谢各位的阅读,以上就是“elementui动态级联选择器回显问题怎么解决”的内容了,经过本文的学习后,相信大家对elementui动态级联选择器回显问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: elementui动态级联选择器回显问题怎么解决

本文链接: https://lsjlt.com/news/350421.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • elementui动态级联选择器回显问题怎么解决
    这篇文章主要讲解了“elementui动态级联选择器回显问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“elementui动态级联选择器回显问题怎么解决”吧!场景描述后台返回类目数...
    99+
    2023-07-05
  • vue ElementUI级联选择器回显问题解决
    目录1. 分析问题2. 解决问题1. 分析问题 【问题描述】 使用 ElementUI 的 Cascader 级联选择器组件,如果使用了懒加载和动态加载数据会导致,在v-model中...
    99+
    2024-04-02
  • 如何解决element级联选择器数据回显问题
    这篇文章给大家分享的是有关如何解决element级联选择器数据回显问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。element级联选择器数据回显问题对于前端小菜鸡来说,被这个...
    99+
    2024-04-02
  • element-ui动态级联选择器回显问题详解(二十多行代码搞定)
    目录场景描述效果图如下:数据结构如下:先贴上html部分然后再贴上data数据中的部分回显的方法:总结场景描述 后台返回类目数组,其中有一级类目;二级类目,三级类目;这种情况下如何回...
    99+
    2023-03-01
    element ui级联选择器回显数据 elementui 级联选择 element ui级联选择器回显数据
  • 如何解决element-ui动态加载级联选择器默认选中问题
    目录前言1.解决方法2.不同层级间的默认选中解决方法前言 最近在开发任务中碰到需要在新增和修改时使用动态加载级联选择器,但是当在修改时设置默认选中项时,出现了后端数据返回慢的情况,就...
    99+
    2024-04-02
  • ElementUI下拉框选择后不显示值问题及解决
    目录ElementUI下拉框选择后不显示值解决elementUI下拉框value和label问题总结ElementUI下拉框选择后不显示值 问题 vue(ElementUI)下拉框选...
    99+
    2023-02-23
    ElementUI下拉框 ElementUI下拉框不显示值 下拉框选择后不显示值
  • 如何解决layui 三级联动下拉框更新时回显的问题
    小编给大家分享一下如何解决layui 三级联动下拉框更新时回显的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近接触lay...
    99+
    2024-04-02
  • element-ui select多选绑定回显值问题怎么解决
    本篇内容主要讲解“element-ui select多选绑定回显值问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“element-ui select多选绑定回显值问...
    99+
    2023-07-05
  • element编辑表单el-radio回显之后无法选择的问题解决
    目录前言问题网上的解决方案前言 提前说明哦,这是一篇很基础类的文章,只适合小小白阅读,因为以下文章内容来源于我刚入行时的笔记。各位高人请绕道,避免浪费时间,谢谢~ 今天主要来谈一...
    99+
    2024-04-02
  • QWrap选择器tagName的大小写问题怎么解决
    这篇文章主要讲解了“QWrap选择器tagName的大小写问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“QWrap选择器tagName的大小写问...
    99+
    2024-04-02
  • mybatis中的动态sql问题怎么解决
    本篇内容主要讲解“mybatis中的动态sql问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis中的动态sql问题怎么解决”吧!Mybatis框架的动态SQL技术是一种根据...
    99+
    2023-07-05
  • eclipse显示无法启动选择的项怎么解决
    出现Eclipse无法启动选择的项的错误通常是由于Eclipse配置或安装问题引起的。以下是一些可能的解决方法:1. 检查Java安...
    99+
    2023-09-26
    eclipse
  • SpringBoot拦截器返回false显示跨域问题怎么解决
    本文小编为大家详细介绍“SpringBoot拦截器返回false显示跨域问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot拦截器返回false显示跨域问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
    99+
    2023-06-30
  • element select必填项验证回显问题怎么解决
    本文小编为大家详细介绍“element select必填项验证回显问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“element select必填项验证回显问题怎么解决”文章能帮助大家解决疑惑,下面...
    99+
    2023-07-05
  • Vue动态构建混合数据Treeselect选择树及巨树问题的解决
    目录一、后台构建两个表的数据选择查询功能二、在VUE中引入Treeselect三、使用Treeselect组件四、构建初始的省级目录五、构建动态生成的二、三、四级目录六、最...
    99+
    2024-04-02
  • MyBatis怎么解决Update动态SQL逗号的问题
    这篇文章主要介绍“MyBatis怎么解决Update动态SQL逗号的问题”,在日常操作中,相信很多人在MyBatis怎么解决Update动态SQL逗号的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MyB...
    99+
    2023-06-28
  • vue使用ElementUI部分组件适配移动端问题怎么解决
    本篇内容主要讲解“vue使用ElementUI部分组件适配移动端问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue使用ElementUI部分组件适配移动端问题怎么解决”吧!组件适配...
    99+
    2023-07-05
  • IE8下CSS3选择器与nth-child()不兼容问题怎么解决
    本篇内容主要讲解“IE8下CSS3选择器与nth-child()不兼容问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“IE8下CSS3选择器与nth-...
    99+
    2024-04-02
  • windows显卡驱动更新使用问题怎么解决
    这篇文章主要介绍“windows显卡驱动更新使用问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“windows显卡驱动更新使用问题怎么解决”文章能帮助大家解决问题。显卡驱动怎么更新:首先右...
    99+
    2023-06-30
  • JavaScript运动框架怎么解决防抖动问题、悬浮对联
    这篇文章主要为大家展示了“JavaScript运动框架怎么解决防抖动问题、悬浮对联”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript运动框架怎么...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作