首页 > 其他分享 >Cascader 级联选择器代码实现

Cascader 级联选择器代码实现

时间:2024-10-14 18:49:08浏览次数:9  
标签:级联 const children transformData Cascader data 选择器 unit

当一个数据集合有清晰的层级结构时,可通过级联选择器Cascader 逐级查看并选择,在开发过程中,非常常见,解决选择列表数量过多的情况。

结果

1、组件

<el-cascader :props="props" :options="unitData" v-model="query.UnitName" size="small" style="margin-left: 10px; margin-right: 10px;width: 350px;"></el-cascader>

  • 使用 el-cascader 组件(Element UI 库中的级联选择器),用于选择单位。
  • :options="unitData" 绑定单位数据,v-model="query.UnitName" 绑定选择的值。

2、查询和重置按钮

<el-button class="search-btn" type="primary" size="small" @click="searchData()">查询</el-button>
<el-button class="search-btn" type="primary" size="small" @click="clearSearchData()">重置</el-button>
  • 两个按钮,分别用于查询和重置操作。点击按钮会用 searchData() 和 clearSearchData() 方法。

3、 加载数据的 load 方法

load(){
    const userid = localStorage.getItem('userid'); 
    var token = localStorage.getItem('token');
    const headers = {
        'Authorization': `Bearer ${token}`
    };
    this.$http.post('/api/Unit/GetNestedUnit', {userID: userid}, {headers: headers})
    .then((result) => {
        const data = result.data;
        if (data.code === 0) {
            const nodes = this.transformData(data.data);
            this.unitData = nodes;
        } else { 
            // 处理其他状态码的逻辑
        }
    })
    .catch((error) => {
        console.error('API 请求失败:', error);
    });
},
  • 通过 POST 请求向 API 获取单位的嵌套数据,成功后调用 transformData 方法处理数据,并将结果存储在 unitData 中。

4、数据转换的 transformData 方法

transformData(units) {
    return units.map(unit => {
        return {
            value: unit.unitID,
            label: unit.unitName,
            children: Array.isArray(unit.children) && unit.children.length > 0 
            ? this.transformData(unit.children) 
            : []
        };      
    }).filter(node => 
        node !== null
    );   
},
  • 该方法用于将原始单位数据转换为适合级联选择器的格式。
  • 使用 map 方法遍历单位列表,生成具有 valuelabel, 和 children 属性的新对象。
  • 如果单位有子单位,则递归调用 transformData 进行处理。

 总结

        如果数据量不大的情况下,减少使用懒加载。

标签:级联,const,children,transformData,Cascader,data,选择器,unit
From: https://blog.csdn.net/weixin_45148467/article/details/142925650

相关文章

  • jquery样式之选择器
    jquery之样式学习一、选择器jquery选择器jquery选择器之id选择器 $("#id")jquery选择器之类选择器 $(".class")jquery选择器之元素选择器 $("div")jquery选择器之全选择器 $("*")jquery选择器之层级选择器:子元素 $("div>p")后代元素$("divp")兄弟元素 $(".prev+......
  • Web前端开发入门学习笔记之CSS 43-47 --新手超级友好版-复合选择器+css特性篇
         Foreword写在前面的话: 大家好,我是一名刚开始学习HTML的新手。这篇文章是我在学习html过程中的一些笔记和心得,希望能和同样在学习HTML的朋友们分享。由于我的知识有限,文章中可能存在错误或不准确的地方,欢迎大家在评论区提出建议和指正。我非常期待大家的反馈,以便......
  • CSS篇二:其他选择器与权重/范围
    一、其他选择器简单聊聊:篇一提到的三种基础选择器其实并不能完全覆盖商业项目的开发场景,所以其他类型选择器的使用频率也非常高,所以还是建议记住,避免某一场景下为难。1、通配选择器简述:使用较少,优缺点都很明显,优→统一设置;缺→样式覆盖,降低代码执行效率。推荐度:一星2、组......
  • CSS选择器(速通版!!)
    目录1.网页中引用CSS的方法1.1行内式1.2 内嵌式1.3 外链式2基本选择器2.1类选择器2.2id选择器2.3 标签选择器 3复合选择器3.1交集选择器3.2并集选择器4.关系选择器4.1后代选择器4.2子代选择器4.3相邻兄弟选择器4.4通用兄弟选择器前言上一期我......
  • 前端学习-CSS的复合选择器(十四)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档目录前言什么是复合选择器后代选择器语法格式注意事项代码示例子选择器语法格式注意事项代码示例并集选择器语法格式伪类选择器链接伪类选择器​编辑注意事项:focus伪类选择器表格总结总结......
  • CSS3属性选择器
    属性选择器选择符                       简介E[att]                   选择具有att属性的元素E[att="val"]          选择具有att属性且属性值等于val的E元素E......
  • css选择器用法
    1.元素选择器(标签选择器)元素名称{} 2类选择器以点开头{}3.id选择器器以#号开头4.后代选择器空格分隔5.子类选择器>大于号分隔6.相邻兄弟选择器+连接选择与指定元素在同一层级且紧接在它后面的元素(只有一个)。h2+......
  • 通过NandGame网站学习选择器
    1.选择器选择器元件选择两个输入中的一个作为输出。s为选择比特,决定选择哪个输入:为0时,选择d0;为1时,选择d1。2.开关开关元件将数据比特送到2个输出之一。s(选择位)决定d(数据位)是从c1还是c0输出。电路描述:输入信号:选择位(s)和数据位(d)。非门:对(s)取反。与......
  • 用 Cursor 撸了一款主打“高颜值”、“说人话”的开源许可证选择器
    一句话介绍:通过一系列通俗易懂问题帮助用户选择适合自己的开源许可证。网站另外包含许可证比较器和许可证使用情况图表,为用户提供直观且立体的开源许可证信息。详情见下图(网站体验效果更佳):官网地址:https://open-source-license-chooser.toolsnav.top/1.主要功能:许可证选择......
  • css-functions伪类选择器系列二
    一张图浏览CSSFunctions概述本文主要讲述CSS的部分伪类选择器第二篇,包括::nth-child、:nth-last-child、:nth-of-type和:nth-last-of-type。:nth-child():nth-child伪类是根据父元素的子元素列表中的索引来选择元素。语法:nth-child是以一个参数nth来描述匹配兄弟元素......