ElementUI el-tree一键折叠或展开

简介: ElementUI el-tree一键折叠或展开

后端

value作为键

package com.dam.model.vo.shiftScheduling;
import lombok.Data;
import java.util.List;
/**
 * 将任务以 年 月 区分开来
 */
@Data
public class TaskCreateTimeTreeItemVo {
    private Long value;
    private String label;
    private List<TaskCreateTimeTreeItemVo> children;
    public TaskCreateTimeTreeItemVo(Long value, String label) {
        this.value = value;
        this.label = label;
    }
}


前端

html

<div style="padding: 5px;">
    <span style="margin-right: 20px;margin-left:15px;font-weight: bold;">时间树</span>
    <el-button id="button-black" style="font-weight: bold;" type="text" icon="iconfont icon-expand" v-if="isExpand==false"
        size="mini" @click="foldOrExpand()"></el-button>
    <el-button id="button-black" style="font-weight: bold;" type="text" icon="iconfont icon-zhedie" v-if="isExpand==true"
        size="mini" @click="foldOrExpand()"></el-button>
</div>
<div>
    <el-tree class="filter-tree" :data="dateTree" :props="defaultProps" :filter-node-method="filterNode"
        :default-expanded-keys="treeExpandedKeyArr" @node-click="handleNodeClick" ref="dateTree"
         node-key="value">
        <span class="custom-tree-node" slot-scope="{ node, data }">
            <i class="iconfont icon-nianfen" v-if="(node.label + '').indexOf('年') != -1"></i>
            <i class="iconfont icon-yuefen" v-if="(node.label + '').indexOf('月') != -1"></i>
            <span style="font-size: 14px;margin-left: 5px;">{{ node.label }}</span>
        </span>
    </el-tree>
</div>


前端

html

<div style="padding: 5px;">
    <span style="margin-right: 20px;margin-left:15px;font-weight: bold;">时间树</span>
    <el-button id="button-black" style="font-weight: bold;" type="text" icon="iconfont icon-expand" v-if="isExpand==false"
        size="mini" @click="foldOrExpand()"></el-button>
    <el-button id="button-black" style="font-weight: bold;" type="text" icon="iconfont icon-zhedie" v-if="isExpand==true"
        size="mini" @click="foldOrExpand()"></el-button>
</div>
<div>
    <el-tree class="filter-tree" :data="dateTree" :props="defaultProps" :filter-node-method="filterNode"
        :default-expanded-keys="treeExpandedKeyArr" @node-click="handleNodeClick" ref="dateTree"
         node-key="value">
        <span class="custom-tree-node" slot-scope="{ node, data }">
            <i class="iconfont icon-nianfen" v-if="(node.label + '').indexOf('年') != -1"></i>
            <i class="iconfont icon-yuefen" v-if="(node.label + '').indexOf('月') != -1"></i>
            <span style="font-size: 14px;margin-left: 5px;">{{ node.label }}</span>
        </span>
    </el-tree>
</div>



js

        // 一键折叠/展开
        foldOrExpand() {
            this.isExpand = !this.isExpand
            this.expandFunc(this.dateTree)
        },
        // 遍历树形数据,通过设置每一项的expanded属性,实现展开与折叠
        expandFunc(data) {
            data.forEach(item => {
                this.$refs.dateTree.store.nodesMap[item.value].expanded = this.isExpand
                if (item.children != null && item.children.length > 0) {
                    this.expandFunc(item.children)
                }
            })
        },


效果

目录
相关文章
|
SQL 前端开发 API
关于ElementUI之动态树+数据表格+分页实例
关于ElementUI之动态树+数据表格+分页实例
836 0
ECharts 柱状图横轴(X轴)文字内容显示不全
ECharts 柱状图横轴(X轴)文字内容显示不全
2556 0
|
Oracle Java 关系型数据库
Spring+Mybatis多数据源配置(二)——databaseIdProvider的使用
 在上一篇同系列的博文中,讲到配置多数据源,然后根据config.properties配置不同的数据库,进行切换。而且需要根据不同的数据库,配置不同的mybatis sql映射配置文件,如下: classpath...
3048 0
element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解
element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解
2577 2
element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
1863 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
机器学习/深度学习 人工智能 自然语言处理
《剖析Transformer架构:自然语言处理飞跃的幕后英雄》
Transformer架构自2017年提出以来,凭借自注意力机制革新了自然语言处理(NLP)。它摒弃传统RNN的顺序处理方式,实现全局并行计算,大幅提升训练效率。通过多头自注意力机制,Transformer能精准捕捉长距离依赖关系,多维度挖掘语义信息。位置编码赋予其序列顺序感知能力,而大规模预训练则使其具备强大的通用语言能力。Transformer已成为NLP领域的核心驱动力,推动智能语音助手、机器翻译等应用进入新时代。
628 2
|
自然语言处理 JavaScript 前端开发
静态文档网站生成神奇器:VuePress!尤雨溪的旧爱!
【10月更文挑战第3天】静态文档网站生成神奇器:VuePress!尤雨溪的旧爱!
静态文档网站生成神奇器:VuePress!尤雨溪的旧爱!
|
JavaScript
如何对ElementUI、ElementPlus中的Tree树组件进行美化,如增加辅助线、替换展开收起图标、点击节点后文字高亮等效果?本文给你答案!
本文介绍了如何对ElementUI和ElementPlus的Tree树组件进行美化,包括增加辅助线、替换展开收起图标、点击节点后文字高亮等效果,并提供了详细的代码示例和实现效果。
4418 0
如何对ElementUI、ElementPlus中的Tree树组件进行美化,如增加辅助线、替换展开收起图标、点击节点后文字高亮等效果?本文给你答案!
|
JavaScript 前端开发 数据管理
使用Sortable.js库 实现Vue3 elementPlus 的 el-table 拖拽排序
使用Sortable.js库 实现Vue3 elementPlus 的 el-table 拖拽排序
4535 1
【UI】 elementui input输入框自动获取失去焦点
【UI】 elementui input输入框自动获取失去焦点
962 1