vue.js 展示一个树形结构的数据视图,并禁用其中默认选中的节点

news2024/11/15 8:36:40

功能描述

  1. 展示树形结构

    • 使用 Element UI 的 <el-tree> 组件展示树形结构数据。
    • 数据由 content 数组提供,树形结构包含了嵌套的节点及其子节点。
  2. 默认选中节点

    • 使用 defaultCheckedKeys 属性指定默认选中的节点。
    • 这些节点在树形结构渲染时会被默认选中。
  3. 禁用默认选中的节点

    • 自定义 props 来配置节点属性,其中 disabled 属性用于禁用默认选中的节点。
    • 在 created 生命周期钩子中,递归处理节点数据,设置 disabled 属性为 true
<template>
    <div>
      <el-tree
        :data="content"
        show-checkbox
        node-key="id"
        :default-checked-keys="defaultCheckedKeys"
      >
      </el-tree>
    </div>
  </template>
  
  <script>
  import 'element-ui/lib/theme-chalk/index.css';
  import { Tree } from 'element-ui';
  
  export default {
    components: {
      'el-tree': Tree
    },
    data() {
      return {
        content: [
          {
            id: 543,
            label: "首页",
            business_type: 0,
            icon: "el-icon-s-home"
          },
          {
            id: 547,
            label: "up内容质量",
            business_type: 0,
            children: [
              {
                id: 549,
                label: "聚集规则",
                business_type: 0,
                children: [
                  {
                    id: 551,
                    label: "分页获取聚集规则",
                    business_type: 0,
                    icon: "el-icon-more"
                  },
                  {
                    id: 553,
                    label: "创建聚集规则",
                    business_type: 0,
                    icon: "el-icon-plus"
                  },
                  {
                    id: 555,
                    label: "修改聚集规则",
                    business_type: 0,
                    icon: "el-icon-edit"
                  },
                  {
                    id: 557,
                    label: "删除聚集规则",
                    business_type: 0,
                    icon: "el-icon-delete"
                  }
                ],
                icon: "el-icon-document"
              },
              {
                id: 559,
                label: "违反明细",
                business_type: 0,
                children: [
                  {
                    id: 686,
                    label: "导出明细",
                    business_type: 0,
                    icon: "el-icon-download"
                  },
                  {
                    id: 710,
                    label: "分页获取明细",
                    business_type: 0,
                    icon: "el-icon-more"
                  }
                ],
                icon: "el-icon-document"
              },
              {
                id: 561,
                label: "子规则设置",
                business_type: 0,
                children: [
                  {
                    id: 563,
                    label: "分页获取子规则",
                    business_type: 0,
                    icon: "el-icon-more"
                  },
                  {
                    id: 565,
                    label: "创建子规则",
                    business_type: 0,
                    icon: "el-icon-plus"
                  },
                  {
                    id: 567,
                    label: "修改子规则",
                    business_type: 0,
                    icon: "el-icon-edit"
                  },
                  {
                    id: 569,
                    label: "删除子规则",
                    business_type: 0,
                    icon: "el-icon-delete"
                  }
                ],
                icon: "el-icon-document"
              },
              {
                id: 571,
                label: "聚集违反明细",
                business_type: 0,
                children: [
                  {
                    id: 612,
                    label: "分页获取违反明细",
                    business_type: 0,
                    icon: "el-icon-more"
                  },
                  {
                    id: 613,
                    label: "打标导出",
                    business_type: 0,
                    icon: "el-icon-download"
                  },
                  {
                    id: 687,
                    label: "导出明细",
                    business_type: 0,
                    icon: "el-icon-download"
                  }
                ],
                icon: "el-icon-document"
              },
              {
                id: 573,
                label: "策略说明",
                business_type: 0,
                icon: "el-icon-goblet-square"
              },
              {
                id: 622,
                label: "检测类型管理",
                business_type: 0,
                children: [
                  {
                    id: 623,
                    label: "分页获取检测类型管理",
                    business_type: 0,
                    icon: "el-icon-more"
                  },
                  {
                    id: 624,
                    label: "创建检测类型管理",
                    business_type: 0,
                    icon: "el-icon-plus"
                  },
                  {
                    id: 625,
                    label: "修改检测类型管理",
                    business_type: 0,
                    icon: "el-icon-edit"
                  },
                  {
                    id: 626,
                    label: "删除检测类型管理",
                    business_type: 0,
                    icon: "el-icon-delete"
                  }
                ],
                icon: "el-icon-search"
              }
            ],
            icon: "el-icon-microphone"
          }
        ],
        defaultCheckedKeys: [543, 551, 555, 710, 565]
      };
    },
    created() {
      this.addDisabledProperty(this.content);
    },
    methods: {
      addDisabledProperty(nodes) {
        nodes.forEach(node => {
          if (this.defaultCheckedKeys.includes(node.id)) {
            node.disabled = true;
          }
          if (node.children && node.children.length > 0) {
            this.addDisabledProperty(node.children);
          }
        });
      }
    }
  };
  </script>
  
  <style>
  /* 你的样式代码 */
  </style>

总结

  • 展示树形结构:使用 <el-tree> 组件渲染树形结构数据,并显示复选框。
  • 默认选中节点:将树节点默认选中,并通过 defaultCheckedKeys 指定。
  • 禁用选中节点:在方法中遍历节点数据,添加 disabled 属性来禁用默认选中的节点。通过 defaultProps 属性中的 disabled 方法实现。

 

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

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

相关文章

自动换行且带下划线的居中长标题的论文封面一种绘图实现

自动换行且带下划线的居中长标题的论文封面一种绘图实现 引言 在一些学位论文的封面上要求标题带有下划线&#xff0c;但长标题的情况下标题自动换行后下划线就会面临一些问题。 因此&#xff0c;往往需要一些特殊的处理。 在《如何制作自动换行且有定长下划线的论文封面模板…

决策树+随机森林模型实现足球大小球让球预测软件

文章目录 前言一、决策树是什么&#xff1f;二、数据收集与整理1.数据收集2.数据清洗3.特征选择 三、决策树构建3.1绘制训练数据图像3.2 训练决策树模型3.3 依据模型绘制决策树的决策边界3.4 树模型可视化 四、模型预测五、随机森林模型总结 前言 之前搞足球数据分析的时候&…

删除topic提示admin token

这个admin token不是admin的密码&#xff0c;而是如下配置文件中的值&#xff1a; 否则报错&#xff1a; 检查&#xff1a; [rootk1 conf]# pwd /opt/kafka-web/efak-web-3.0.1/conf [rootk1 conf]# grep token system-config.properties # delete kafka topic token efak.t…

教师管理系统小程序+ssm论文源码调试讲解

第二章 开发工具及关键技术介绍 2.1 JAVA技术 Java主要采用CORBA技术和安全模型&#xff0c;可以在互联网应用的数据保护。它还提供了对EJB&#xff08;Enterrise JavaBeans&#xff09;的全面支持&#xff0c;java servlet AI&#xff0c;JS&#xff08;java server ages&…

TCL25届校招测评笔试TAS人才测评题库:高分攻略真题分析

&#x1f31f; 职场新人必看&#xff1a;TCL校招测评全解析 &#x1f31f; 亲爱的小伙伴们&#xff0c;你是否正准备踏入职场&#xff0c;或是对即将到来的校招感到既兴奋又紧张&#xff1f;今天&#xff0c;我将带你深入了解TCL校招中的TAS人才测评&#xff0c;让你在面试前做…

Flutter鸿蒙化环境配置(windows)

Flutter鸿蒙化环境配置&#xff08;windows&#xff09; 参考资料Window配置Flutter的鸿蒙化环境下载配置环境变量HarmonyOS的环境变量配置配置Flutter的环境变量Flutter doctor -v 检测的问题flutter_flutter仓库地址的警告问题Fliutter doctor –v 报错[!] Android Studio (v…

构建数据分析模型,及时回传各系统监控监测数据进行分析反馈响应的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。增…

20 基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STM32F103C8T6 采用DHT11读取温度、滑动变阻器模拟读取电流、电压。 通过OLED屏幕显示&#xff0c;设置电流阈值为80&#xff0c;电流小阈值为50&#xff0c;电压阈值为60&#xff0c;温度阈值…

虚幻引擎的射线检测/射线追踪

射线检测在 FPS/TPS 游戏中被广泛应用 什么是射线检测? 两个点行成一条线 , 射线检测是从一个起始点发出一条到终点的射线 , 如果射线命中一个游戏对象&#xff0c;就可以获取到对象命中时的 位置、距离、角度、是否命中、骨骼 等非常多的信息 , 这些信息在射击游戏中至关重…

价格便宜又好用的云电脑挑选:ToDesk云电脑 vs 青椒云

云计算技术的成熟使得云电脑因其便捷、灵活和高效而成为日常工作、学习和娱乐的首选工具。而在众多云电脑品牌之中&#xff0c;ToDesk云电脑与青椒云电脑 较为热门 。在此&#xff0c;笔者将围绕价格、性能、用户体验等关键指标对 比 这两款云电脑&#xff0c; 帮助 你们 找到最…

信号分解降噪 | Matlab实现基于TVFEMD-IMF能量熵增量的数据降噪方法

信号分解降噪 | Matlab实现基于TVFEMD-IMF能量熵增量的数据降噪方法 目录 信号分解降噪 | Matlab实现基于TVFEMD-IMF能量熵增量的数据降噪方法效果一览基本介绍程序设计参考资料 效果一览 基本介绍 信号分解降噪 | Matlab实现基于TVFEMD-IMF能量熵增量的数据降噪方法。该方法引…

地平线静态目标检测 MapTR 参考算法-V1.0

简介 高清地图是自动驾驶系统的重要组件&#xff0c;提供精确的驾驶环境信息和道路语义信息。传统离线地图构建方法成本高&#xff0c;维护复杂&#xff0c;使得依赖车载传感器的实时感知建图成为新趋势。早期实时建图方法存在局限性&#xff0c;如处理复杂地图元素的能力不足…

【python】requests 库 源码解读、参数解读

文章目录 一、基础知识二、Requests库详解2.1 requests 库源码简要解读2.2 参数解读2.3 处理响应2.4 错误处理 一、基础知识 以前写过2篇文章&#xff1a; 计算机网络基础&#xff1a; 【socket】从计算机网络基础到socket编程——Windows && Linux C语言 Python实现…

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【LMS调测】

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 基本概念 LMS全称为Lite Memory Sanitizer&#xff0c;是一种实时…

新版本大疆上云API指令飞行(drc)模式通讯搭建思路

一、大疆上云API mqtt官方通讯指导 1.1drc链路 1.2mqtt交互时序图 二、自行搭建mqtt说明 2.1工具&#xff1a;用emqx搭建mqtt服务器&#xff0c;mqttx作为客户端测试工具 2.2端口说明&#xff1a;1883&#xff0c;普通mqtt消息端口&#xff0c;8083&#xff0c;ws通信协议端…

商业银行应用安全架构设计实践

传统的信息安全工作通常偏向于事中或事后检测漏洞,随着敏捷开发工作的逐步推进,商业银行认识到安全架构设计在实现IT降本增效方面的独特优势。近几年,商业银行逐步构建了安全架构设计工作体系,在组织人员、安全技术与管控流程方面,与企业IT架构密切协同,着力建设安全公共…

课程表-LeetCode100

现在你总共有 numCourses 门课需要选&#xff0c;记为 0 到 numCourses - 1。给你一个数组 prerequisites &#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示在选修课程 ai 前 必须 先选修 bi 。 例如&#xff0c;想要学习课程 0 &#xff0c;你需要先完成课程 1…

Python | Leetcode Python题解之第432题全O(1)的数据结构

题目&#xff1a; 题解&#xff1a; class Node:def __init__(self, key"", count0):self.prev Noneself.next Noneself.keys {key}self.count countdef insert(self, node: Node) -> Node: # 在 self 后插入 nodenode.prev selfnode.next self.nextnode.…

【机器学习】——支持向量机

文章目录 支持向量机&#xff08;Support Vector Machine, SVM&#xff09;概述SVM 的工作原理线性不可分数据&#xff1a;软间隔与核技巧SVM 的数学形式SVM 的优势SVM 的缺点SVM 的应用 支持向量机&#xff08;Support Vector Machine, SVM&#xff09;概述 支持向量机&#…

JavaSE高级(3)——lombok、juint单元测试、断言

一、lombok的使用 默认jvm不解析第三方注解&#xff0c;需要手动开启 链式调用 二、juint单元测试 下载juint包 public class TestDemo {// 在每一个单元测试方法执行之前执行Beforepublic void before() {// 例如可以在before部分创建IO流System.out.println("befor…