当前位置: 首页 > news >正文

Element中 el-tree 如何隐藏 Tree 组件中的父节点 Checkbox

文章目录

    • 需求
    • 分析
      • 1. 取消二者关联
      • 2. 大家可以试一下以下步骤

需求

要求父节点的 checkbook 隐藏,只能选中子节点的

分析

1. 取消二者关联

在这里插入图片描述

在这里插入图片描述

2. 大家可以试一下以下步骤

  1. 要求:
    • 第一层节点不显示checkbox
    • 后续任意子节点,如果数据为部门 则也不显示 checkbox
    • 后端返回的部分数据,如果人员符合特定规则(根据自己场景来即可),则表现为 禁用 checkbox
  2. 实现
  • 数据 treeData.js
export default [{"id":1,"label":"一级 1-是部门","depType":1,"disabled":false,"children":[{"id":4,"label":"二级 1-1-是部门","depType":1,"disabled":false,"children":[{"id":9,"label":"三级 1-1-9","disabled":false},{"id":25,"label":"三级 1-1-25","disabled":false},{"id":27,"label":"三级 1-1-27","disabled":false},{"id":30,"label":"三级 1-30","disabled":false},{"id":10,"label":"三级 1-1-2 是部门","depType":5,"disabled":false}]}]},{"id":2,"label":"一级 2 部门","depType":1,"disabled":false,"children":[{"id":5,"label":"二级 2-1  张三","disabled":false},{"id":6,"label":"二级 2-2 李四","disabled":false}]},{"id":3,"label":"一级 3 部门","depType":1,"disabled":false,"children":[{"id":7,"depType":1,"label":"二级 3-1 王武","disabled":false},{"id":8,"label":"二级 3-2 赵柳","disabled":false}]}
]
  • html
<template><div><el-treenode-key="id"show-checkbox:data="treeData":render-content="renderContent"class="tree-box"@node-expand='onNodeExpand'></el-tree><div><ul><li>一开始的数据结构必须都有 disabled字段, 默认不禁用,设置为 false  否则会出现视图的响应式延迟问题</li><li>是否禁用某个节点,根据renderContent  里面的规则来的, 规则是, 只要是部门的维度,就禁用  设置 data.disabled= true</li><li>tree的第一层节点隐藏,是通过js控制的</li></ul></div></div>
</template><script>import treeData from './treeData.js'export default {name: 'render-content-tree',data() {return {treeData}},mounted() {let nodes = document.querySelector('.tree-box')let children = nodes.querySelectorAll('.el-tree-node')for(let i=0; i< children.length; i++) {children[i].querySelector('.el-checkbox').style.display = 'none'}// 第一层不要checkbox// 后续根据规则来},methods: {renderContent(h, { node, data, store }) {// console.log(node, data)// 如果不是一级节点,并且符合数据的特定要求,比如这里是 id 大于27 的数据,禁用掉if (node.level !== 1 &&  data.id > 27) {data.disabled = true}return h('div', {// 如果是部门,就将所有的 checkbox 都隐藏class: data.depType === undefined ? '' : 'dept-node'}, data.label)},setDeptNodeHide() {let deptNodes = document.querySelectorAll('.dept-node')for(let i=0; i<deptNodes.length; i++) {let checkbox = deptNodes[i].parentNode.querySelector('.el-checkbox')checkbox.style.display = 'none'}},onNodeExpand(data, node, com) {// console.log(data);// console.log(node);// console.log(com);this.$nextTick(() => {this.setDeptNodeHide()})}}
}
</script>

在这里插入图片描述

http://www.dtcms.com/a/465623.html

相关文章:

  • 基于「多模态大模型 + BGE向量检索增强RAG」的航空维修智能问答系统(vue+flask+AI算法)
  • 基于屏幕空间投影面积的剔除(Screen-space Area Culling, SSAC)
  • Google 智能体设计模式:路由总结
  • 大庆网站建设公司哪家好论坛网站怎么建设
  • AI智能体赋能历史和社会科学领域之仿真:崩塌方程式 —— 复杂系统内源性衰退的统一理论与领导力行动框架
  • MATLAB进行数据的各种统计分析
  • Google 智能体设计模式:并行化
  • 数据仓库入门:从超市小票看懂数仓
  • 公众号运营技巧河北省邢台市seo
  • BEVFUSION解读(五)
  • 制造行业档案管理难题,档案宝如何灵活破局?
  • 哈尔滨服务器租用-青蛙云
  • 深度解析 Spring Boot 应用 Logback 初始化失败问题:从报错定位到彻底解决
  • leetCode——二叉树刷题——平衡二叉树
  • 资讯网站 整体ui自己在线制作logo免费图片
  • 网站源码下载免费一 网站建设管理基本情况
  • Linux内核架构浅谈8-Linux内核与UNIX的传承:设计思想与特性差异
  • C# 写入CSV文件和导出CSV文件总结
  • 基于NVIDIA ORIN+FPGA+AI自动驾驶硬件在环注入测试
  • 怎么帮网站做支付接口王妃说此生不复相见
  • 虚幻基础:NPC制作
  • 智能眼镜行业腾飞在即,苹果/微美全息锚定“AR+AI眼镜融合”之路抢滩市场!
  • vue中慎用v-if和v-show导致不好排查无预期的错误和异常
  • Rokid JSAR 技术开发全指南:基于 Web 技术栈的 AR 开发实战
  • 顶尖高校读研经验-读研生活篇
  • 例点估算网站开发项目工作量推荐做任务网站
  • 【RH850F1KMS1】一文了解瑞萨MCU的芯片引脚标识名称
  • MPLS技术详解1:原理、架构与转发机制详析
  • WPF自定义控件之环形进度条
  • 深度学习入门(一)——从神经元到损失函数,一步步理解前向传播(下)