Vue3开源Tree组件研发:节点勾选支持v-model

news2024/11/17 13:22:16

在这里插入图片描述
自研Tree组件有两个原因:1. 目前开源UI对Tree组件的用户API不太友好,2. 提升Vue3组件自研能力。

目前已实现的功能见上面思维导图。想象Tree组件的一个使用场景:后台管理员通过Tree组件来完成用户角色授权,同时支持对权限进行新增和删除等操作。这里既涉及到Tree节点的勾选操作,又涉及到节点增删。我们的研发就是同时很好的支持多个功能一起使用的情况,不能有bug,即便用户往往只启用一种功能。

自研Tree组件功能演示 - 节点勾选

用法示例

在这里插入图片描述

v-model绑定的是一个已选中节点backId数组。显然这里的节点我们只考虑叶子节点,也就是最外层的节点。id为后台模型的id。用户操作勾选,v-model的数据模型会自动更新。

功能演示

v-model初始值

在这里插入图片描述

v-model初始绑定的数组,会让视图完成默认的勾选。

勾选和反选

用户勾选后,v-model同步更新,绑定的数据为选中的叶子节点的backId

在这里插入图片描述

删除节点

叶子节点删除时,v-model也会相应的更新:

在这里插入图片描述

支持删除父节点的情况下,v-model同样会一致更新。

在这里插入图片描述

新增节点下的勾选控制

新增一个节点后,该节点在没有保存时,不能被选中(本身不能被点击,同时外层父节点勾选,也不能级联选中它),只有保存从后台同步了backId才能勾选噢~

在这里插入图片描述

在这里插入图片描述

对已勾选的叶节点执行新增

可以看到原来存在于v-model中的绑定项也会被移除,因为它已变成父节点。

在这里插入图片描述

源码实现

见后续补充教程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1963187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动化测试概念篇

目录 一、自动化 1.1 自动化概念 1.2 自动化分类 1.3 自动化测试金字塔 二、web自动化测试 2.1 驱动 2.2 安装驱动管理 三、selenium 3.1 ⼀个简单的web自动化示例 3.2 selenium驱动浏览器的工作原理 一、自动化 1.1 自动化概念 在生活中: 自动洒水机&am…

cv::convexityDefects异常

cv::convexityDefects捕捉到cv::Exception OpenCV(4.8.0) C:\GHA-OCV-1\_work\ci-gha-workflow\ci-gha-workflow\opencv\modules\imgproc\src\convhull.cpp:360: error: (-5:Bad argument) The convex hull indices are not monotonous, which can be in the case when the inp…

拓扑排序(初中组)

有向无环图 定义 边有向,无环。英文名叫 Directed Acyclic Graph,缩写是 DAG。一些实际问题中的二元关系都可使用 DAG 来建模。 性质 能 拓扑排序 的图,一定是有向无环图; 如果有环,那么环上的任意两个节点在任意序…

特征构造和降维

特征构造(Feature Engineering) 特征构造是从现有数据中创建新的特征,以揭示数据中的隐藏关系,从而提高模型表现。这是数据预处理中一个关键步骤,可以显著提升模型的性能。 原理 通过特征构造,我们可以利…

“云计算环境下的等保测评要点分析“

随着云计算技术的广泛应用,企业越来越多地将业务迁移到云端,这不仅带来了灵活性和效率的提升,也对信息安全提出了新的挑战。等保测评作为我国信息安全等级保护制度的重要组成部分,其在云计算环境下的实施具有特殊性。本文将围绕“…

nginx 简单使用方法

nginx是用于 Web 服务、反向代理、内容缓存、负载均衡、媒体流传输等场景的开源软件。 主要作用有三个:1、反向代理 负载均衡动静分离 下载地址:nginx: download nginx执行命令及启动 //假设安装在E:\server\nginx-1.20.0目录下 //cmd命令进入安装文…

如何在 VitePress 中增加一个全局自定义组件

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

【Python实战】轻松实现自动发送邮件

本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢! 文章目录 一、前言二、开发准备三、正式开始四、总结一、前言 本文介绍如何使用Python开源项目“PythonSendMail”,快速实现自动发送带Excel报表附件的邮件。只需要进行简…

操作系统篇--八股文学习第十天| 进程和线程之间有什么区别;并行和并发有什么区别;解释一下用户态和核心态,什么场景下,会发生内核态和用户态的切换?

进程和线程之间有什么区别 答: 进程是资源调度和分配的基本单位。 线程是程序执行的最小单位,线程是进程的子任务,是进程内的执行单元。 一个进程至少有一个线程,一个进程可以运行多个线程,这些线程共享同一块内存…

oracle rac-> rac配置adg避坑注意点

例如源主库db_name为aaa db_unique_name为aaa,实例名为aaa1,aaa2 ORACLE_SID为aaa1,aaa2 tnsnames.ora的服务名配置:aaa/dgaaa 则备库设置参考:db_name相同为aaa,db_unique_name不同为dgaaa,实例名为dgaaa1,dgaaa2…

【LeetCode】56. 区间合并

区间合并 题目描述: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: …

Oracle的一些脚本工具总结

一、操作系统性能 在linux 6 之后,建议使用dstat监控操作系统的各项指标。 使用方法: yum install dstat dstat -cdlrgmnpsy 二、we.sql https://download.csdn.net/download/zengxiangbo/89601165 详见文章关联附件。 Oracle脚本工具,查…

企业安全生产管理是否将成为新的朝阳产业?

这个答案我可以肯定的告诉你,是的! 首先朝阳产业是啥?朝阳产业指的是具有广阔发展前景、高成长性和创新性的产业。 但你也有可能不信我说的这句。因为在大多数人看来,安全生产管理这块儿,企业的关注度不多&#xff0…

Oracle Database 确认表空间大小的方法

Oracle Database 确认表空间大小的方法 sql: WITH object_size AS (SELECT segment_name,owner,segment_type,tablespace_name,SUM(bytes) total_bytesFROM dba_segmentsGROUP BY segment_name, owner, segment_type, tablespace_name ), table_size AS (SELECT segment_name …

【探索Linux】P.43(网络层 —— IP协议)

阅读导航 引言一、IP协议基本概念二、IP协议头格式三、网段划分1. 网络号和主机号2. 引入子网掩码(1)基本概念(2)默认子网掩码(3)子网掩码的作用(4)子网掩码与IP地址的结合&#xff…

探索Python代码质量的守护神:Flake8

文章目录 探索Python代码质量的守护神:Flake8背景:为何选择Flake8?简介:Flake8是什么?安装:如何获取Flake8?使用方法:Flake8的基本命令场景应用:Flake8在实际开发中的作用…

SOMEIPSRV_RPC_13: 不同服务可以共享相同的端口

测试目的: 验证不同的服务是否能够共享同一个传输层协议的端口号。 描述 本测试用例旨在验证在同一个电子控制单元(ECU)上,不同服务的多个服务实例是否能够监听不同的端口,同时确保不同的服务能够共享同一个端口号。 测试拓扑&#xff1a…

接口测试:使用 curl 发送请求

简介 cURL 是一个通过 URL 传输数据的,功能强大的命令行工具。cURL 可以与 Chrome Devtool 工具配合使用,把浏览器发送的真实请求还原出来,附带认证信息,脱离浏览器执行,方便开发者重放请求、修改参数调试,…

SAP HCM 薪酬过账-忽略成本分配的含义

导读 INTRODUCTION 忽略成本分配:昨天分析C0表与C1表的作用,是为今天说的忽略成本分配按钮的铺垫,忽略成本分配这个翻译有点难让人理解,从字母意思感觉就是所有成本类的不拆分处相关的行项目,但是实际不是这样&#xf…

大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…