vue3 + ts 使用 el-tree
实现效果:

代码:
<template><!-- el-tree 使用 --><div class="my-tree-container"><el-scrollbar height="100%"><el-tree ref="treeRef" :data="treeData" node-key="id" @node-click="handleNodeClick" :props="treeProps":show-checkbox="true" :check-strictly="true" :default-expanded-keys="defaultExpandedKeys"@check-change="handleCheckChange"><template #default="{ node, data }"><span class="node-icon"><i class="iconfont" :class="data.icon"/></span><span :class="currentNodeKey === data.id ? 'active-node' : ''">{{ node.label }}</span></template></el-tree></el-scrollbar></div></template><script setup lang="ts">import {ref} from "vue";const treeProps = {id: 'id',label: 'label',children: 'children',disabled: 'disabled'
}const treeData: any[] = [{id: 1,label: 'Level one 1',icon: 'icon-houqinguanli',children: [{id: 11,label: 'Level two 1-1',children: [{id: 111,label: 'Level three 1-1-1',},],},],},{id: 2,label: 'Level one 2',icon: 'icon-caiwuguanli',children: [{id: 21,label: 'Level two 2-1',children: [{id: 211,label: 'Level three 2-1-1',},],},{id: 22,label: 'Level two 2-2',children: [{id: 221,label: 'Level three 2-2-1',},],},],},{id: 3,label: 'Level one 3',icon: 'icon-nenghaoqingkuang',children: [{id: 31,label: 'Level two 3-1',children: [{id: 311,label: 'Level three 3-1-1',},],},{id: 32,label: 'Level two 3-2',children: [{id: 321,label: 'Level three 3-2-1',},],},],},
] // 数据const currentNodeKey = ref<any>(null) // 当前点击的节点的 key【key具体为哪一个属性可通过 node-key 指定】const defaultExpandedKeys = [1, 2, 3] // 默认展开的节点的 keyconst treeRef = ref<any>(null)const handleNodeClick = (data: any, node: any) => { /* 节点点击事件 */currentNodeKey.value = data.id
}/* 节点勾选事件(当复选框被点击时触发)
* data: 当前点击的节点的数据
* isNodeChecked: 节点本身是否被选中
* hasChildrenChecked: 节点的子树中是否有被选中的节点
* */
const handleCheckChange = (data: any, node: any, indeterminate: any) => {// console.log(data, node, indeterminate)const checkedNodes = treeRef.value.getCheckedNodes()console.log(checkedNodes, '被选中的节点')
}// 根据唯一 id 查找树节点
const findNodeById = (id: number, arr: any[]): any => {for (let item of arr) {if (item.id === id) {return item}if (item.children && item.children.length > 0) {const res = findNodeById(id, item.children)if (res) {return res}}}
}</script><style scoped lang="scss">.my-tree-container {position: absolute;top: 100px;left: 100px;height: 300px; /* tree height needed */width: 230px; /* needed */background: linear-gradient(180deg, rgba(26, 35, 48, 0.9) 0%, rgba(6, 13, 22, 0.9) 100%);opacity: 0.9;padding-bottom: 10px;.active-node { /* 选中的节点的样式 */color: #409EFF;background-color: transparent;}.node-icon {margin-right: 10px;}:deep(.el-tree) {background: none;color: rgba(206, 207, 209);font-size: 16px;margin-left: 10px;font-weight: lighter;font-family: "ResourceHanRoundedCN-Bold", "黑体", Arial, sans-serif;}:deep(.el-tree-node__content) { // node-heightheight: 35px;}:deep(.el-tree-node__expand-icon) { /* 隐藏可展开节点前面的箭头 */display: none;}:deep(.el-tree-node__content:hover) {background-color: transparent;color: #409EFF;}:deep(.el-tree-node:focus > .el-tree-node__content) { /* 解决点击一个节点后,鼠标移开,修改该节点背景色失效的问题 */background: none;}:deep(.el-icon) {font-size: 16px;}:deep(.el-tree-node) { /* 只有叶子节点显示勾选框 */.is-leaf + .el-checkbox {display: inline-flex;}.el-checkbox {display: none;}}}</style>
相关文章:
vue3 + ts 使用 el-tree
实现效果: 代码: <template><!-- el-tree 使用 --><div class"my-tree-container"><el-scrollbar height"100%"><el-tree ref"treeRef" :data"treeData" node-key"id" n…...
Create Stunning Word Clouds with Ease!
Looking to craft breathtaking word clouds? WordCloudStudio is your go-to solution! Whether you’re a marketer, educator, designer, or simply someone who loves visualizing data, this app has everything you need. Download now: https://apps.apple.com/app/wor…...
html+css网页设计 旅游 马林旅行社5个页面
htmlcss网页设计 旅游 马林旅行社5个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&#…...
python selenium(4+)+chromedriver最新版 定位爬取嵌套shadow-root(open)中内容
废话不多说,直接开始 本文以无界作为本文测试案例,抓取shadow-root(open)下的内容 shadow Dom in selenium: 首先先讲一下shadow Dom in selenium 版本的区别,链接指向这里 在Selenium 4版本 以及 chrom…...
React基础教程(11):useCallback记忆函数的使用
11、useCallback记忆函数 防止因为组件重新渲染,导致方法被重新创建,起到缓存作用,只有第二个参数变化了,才重新声明一次。 示例代码: import {useCallback, useState} from "react";const App = () =>...
arp-scan 移植到嵌入式 Linux 系统是一个涉及多个步骤的过程
将 arp-scan 移植到嵌入式 Linux 系统是一个涉及多个步骤的过程。arp-scan 是一个用于发送 ARP 请求以发现网络上设备的工具,它依赖于一些标准的 Linux 库和工具。以下是将 arp-scan 移植到嵌入式 Linux 系统的基本步骤: 1. 获取 arp-scan 源码 首先&a…...
【Linux】常用命令一
声明:以下内容均学习自《Linux就该这么学》一书。 Linux中的shell是一种命令行工具,它充当的作用是人与内核(硬件)之间的翻译官。 大多数Linux系统默认使用的终端是Bash解释器。 1、echo 用于在终端输出字符串或变量提取后的值。 echo "字符串…...
在鲲鹏麒麟服务器上部署MySQL主从集群
因项目需求需要部署主从MySQL集群,继续采用上次的部署的MySQL镜像arm64v8/mysql:latest,版本信息为v8.1.0。计划部署服务器192.168.31.100和192.168.31.101 部署MySQL主节点 在192.168.31.100上先创建好/data/docker/mysql/data和/data/docker/mysql/l…...
Siknhorn算法介绍
SiknHorn算法是一个快速求解离散优化问题的经典算法,特别适用于计算离散分布之间的**最优传输(Optimal Transport)**距离; 最优传输问题介绍 计算两个概率分布 P 和 Q 之间的传输成本,通常表示为: 是传输…...
群控系统服务端开发模式-应用开发-邮箱短信通道功能开发
邮箱短信通道主要是将邮箱及短信做归属的。具体见下图: 一、创建表 1、语句 CREATE TABLE cluster_control.nc_param_emailsms (id int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 编号,email_id varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NO…...
[docker中首次配置git环境]
11月没写东西,12月初赶紧水一篇。 刚开始搭建docker服务器时,网上找一堆指令配置好git后,再次新建容器后忘记怎么配了,,这次记录下。 一、git ssh指令法,该方法不用每次提交时输入密码 前期准备࿰…...
书生浦语·第四期作业合集
目录 1. Linux基础知识 1.1-Linux基础知识 1.在终端通过ssh 端口映射连接开发机 2. 创建helloworld.py 3.安装相关包并运行 4.端口映射并访问相关网页...
5G学习笔记之PRACH
即使是阴天,也要记得出门晒太阳哦 目录 1. 概述 2. PRACH Preamble 3. PRACH Preamble 类型 3.1 长前导码 3.2 短前导码 3.3 前导码格式与小区覆盖 4. PRACH时频资源 4.1 小区所有可用PRACH资源 4.2 SSB和RACH的关系 4.3 PRACH时频资源配置 1. 概述 随机接入…...
Ubuntu24.04配置DINO-Tracker
一、引言 记录 Ubuntu 配置的第一个代码过程 二、更改conda虚拟环境的默认安装路径 鉴于不久前由于磁盘空间不足引发的重装系统的惨痛经历,在新系统装好后当然要先更改虚拟环境的默认安装路径。 输入指令: conda info可能因为我原本就没有把 Anacod…...
抓包之查看websocket内容
写在前面 本文看下websocket抓包相关内容。 1:正文 websocket基础环境搭建参考这篇文章。 启动后,先看chrome的network抓包,这里我们直接使用is:running来过滤出websocket的请求: 可以清晰的看到发送的内容以及响应的内容。在…...
【Leetcode Top 100】21. 合并两个有序链表
问题背景 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 数据约束 两个链表的节点数目范围是 [ 0 , 50 ] [0, 50] [0,50] − 100 ≤ N o d e . v a l ≤ 100 -100 \le Node.val \le 100 −100≤Node.val≤100 l 1 l_1 …...
账本模型
05-账本模型 1 账本模型 1.1 传统线性增长模型 传统的 MySQL 等系统采用线性增长的日志模型,通过一个 Leader 和多个 Follower 进行状态同步。这种方式有单点的带宽瓶颈问题。 1.2 区块链共享账本模型 共享账本:树形增长。在去中心化网络中,…...
openwrt利用nftables在校园网环境下开启nat6 (ipv6 nat)
年初写过一篇openwrt在校园网环境下开启ipv6 nat的文章,利用ip6tables控制ipv6的流量。然而从OpenWrt22版本开始,系统内置的防火墙变为nftables,因此配置方法有所改变。本文主要参考了OpenWRT使用nftables实现IPv6 NAT 这篇文章。 友情提示 …...
24.12.02 Element
import { createApp } from vue // 引入elementPlus js库 css库 import ElementPlus from element-plus import element-plus/dist/index.css //中文语言包 import zhCn from element-plus/es/locale/lang/zh-cn //图标库 import * as ElementPlusIconsVue from element-plus/i…...
记录QT5迁移到QT6.8上的一些问题
经常看到有的同学说网上的教程都是假的,巴拉巴拉,看看人家发布时间,Qt官方的API都会有所变动,多搜索,多总结,再修改记录。 下次遇到问题多这样搜索 QT 4/5/6 xxx document,对比一下就知道…...
机器学习中的不确定性原理:模型优化与误差评估的根本权衡
1. 项目概述:当机器学习遇见“测不准”在机器学习的日常实践中,我们常常面临一个看似矛盾的目标:既要让模型学得“好”(预测准),又要能说得清它“错”得怎么样(误差评估准)。我们习惯…...
长期使用Taotoken Token Plan套餐对项目预算管理的帮助
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken Token Plan套餐对项目预算管理的帮助 对于需要持续调用大模型API的项目而言,成本的可预测性与可控性…...
【Gemini重大Bug修复公告】:20年Google AI架构师亲述3个致命漏洞及72小时紧急修复全过程
更多请点击: https://intelliparadigm.com 第一章:Gemini重大Bug修复公告 近日,Google 工程团队紧急发布 Gemini API v0.5.3 补丁版本,修复了一个影响多模态推理一致性的高危竞态条件(Race Condition)Bug。…...
渗透测试学习路线:从原生终端到实战靶场的系统路径
1. 这不是“速成课”,而是一张你真正能踩出脚印的地图很多人点开“渗透测试学习路线”时,心里想的是:学三个月能不能接单?能不能进红队?能不能年薪30万?我试过在2019年用两周时间刷完某平台全部CTF入门题&a…...
通达信ChanlunX缠论插件:5分钟完成专业缠论分析的终极免费工具
通达信ChanlunX缠论插件:5分钟完成专业缠论分析的终极免费工具 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你是不是经常盯着K线图却看不懂市场走势?想要掌握缠论分析技术&…...
利用Taotoken统一管理多个项目的API密钥与访问权限
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken统一管理多个项目的API密钥与访问权限 对于同时维护多个AI应用或为不同客户部署服务的开发者而言,管理分散…...
KLayout 0.29.12版图编辑工具:DRC验证引擎性能提升20%与多工艺节点设计支持
KLayout 0.29.12版图编辑工具:DRC验证引擎性能提升20%与多工艺节点设计支持 【免费下载链接】klayout KLayout Main Sources 项目地址: https://gitcode.com/gh_mirrors/kl/klayout KLayout是一款开源的集成电路版图编辑与验证工具,专注于GDSII/O…...
工作总“救火”还费力不讨好?《易经》这一卦告诉你:别瞎忙
你有没有遇到过这样的同事或领导?哪里出问题,他就冲向哪里,整天忙得脚不沾地,可最后不但没解决问题,反而把局面弄得更糟,自己也落得个“吃力不讨好”。或者,你自己就是那个“救火队员”。项目出…...
WechatDecrypt终极指南:3步解锁你的微信聊天记忆
WechatDecrypt终极指南:3步解锁你的微信聊天记忆 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 你是否曾经有过这样的经历?换了新手机,却发现珍贵的微信聊天记录无法完…...
LangGraph多智能体能力路由:动态专家选择与负载均衡
LangGraph多智能体能力路由:动态专家选择与负载均衡一、引言 钩子 你是否遇到过这种情况: 当你构建了一个由多个大模型或专业Agent组成的“超级团队”——有的精通数学推理、有的擅长代码生成、有的是情感分析小能手、还有的能写长篇技术文档——却发现整…...
