el-tree中展示项换行展示

news2024/12/24 2:56:10

文章目录

  • 效果如下所示:
    • 没有换行展示的效果
    • 修改样式换行之后的展示效果
  • 想要了解el-tree使用的详情往下看
  • 代码和数据如下所示
    • Vue代码中可能使用到的数据如下
    • Vue的代码如下:
    • 没有换行展示的效果
    • 换行之后的展示效果
    • 样式调试

效果如下所示:

没有换行展示的效果

在这里插入图片描述

修改样式换行之后的展示效果

本质上就是在vue代码中对el-tree的默认样式进行了修改,这是修改样式的代码。如果想了解详细的,往后看就行了

<!-- <style scoped>

/* 这里需要用到深度选择器,否则改变不了样式,
无论scoped是否存在都需要使用到深度选择器 */
:deep(.el-tree-node) {
  white-space: normal;
  outline: 0;
}

:deep(.el-tree-node__content) {
  text-align: left;
  align-items: start;
  margin: 4px;
  height: 100%;

}


</style> -->

<style scoped lang="scss">
// 如果使用了sass时,也可以这样写,
// 使用了sass也可以像上面一样写,就写两个深度选择器
// 这个我也是F12,然后看到它们对应的关系的
:deep(.el-tree-node) {
      white-space: normal;
      outline: 0;

      .el-tree-node__content {
        text-align: left;
        align-items: start;
        margin: 4px;
        height: 100%;
      }
    }
</style>

在这里插入图片描述

想要了解el-tree使用的详情往下看

这里使用的是Vite(Home | Vite中文网 (vitejs.cn)) + Vue3 + Ts建立的项目,使用了element plus(设计 | Element Plus (element-plus.org))这个组件库。
package.json中对应的版本信息如下所示

{
  "name": "vue3-ts-vite-wen-zhang-ji-lu-xiang-mu",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vue-tsc && vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "element-plus": "^2.4.2",
    "vue": "^3.3.4"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.2.3",
    "typescript": "^5.0.2",
    "vite": "^4.4.5",
    "vue-tsc": "^1.8.5"
  }
}

代码和数据如下所示

Vue代码中可能使用到的数据如下

假设从后端请求有一份这样的数据,属性数据result.json文件如下所示

{
    "code": 200,
    "message": "成功",
    "data": [
        {
            "mediaCatalogId": 1,
            "mediaCatalogName": "合同",
            "parentId": -1,
            "children": [
                {
                    "mediaCatalogId": 2,
                    "mediaCatalogName": "合同",
                    "parentId": 1,
                    "children": []
                }
            ]
        },
        {
            "mediaCatalogId": 3,
            "mediaCatalogName": "项目部组织体系文件这是一个测试项测试项测试项",
            "parentId": -1,
            "children": [
                {
                    "mediaCatalogId": 4,
                    "mediaCatalogName": "项目部成立文件项目部组织体系文件这是一个测试项测试项测试项,我来进行测试了",
                    "parentId": 3,
                    "children": []
                },
                {
                    "mediaCatalogId": 5,
                    "mediaCatalogName": "质量管理机构人员项目部组织体系文件这是一个测试项测试项测试项,我来进行测试了",
                    "parentId": 3,
                    "children": []
                }
            ]
        },
        {
            "mediaCatalogId": 6,
            "mediaCatalogName": "过程资料项目部组织体系文件这是一个测试项测试项测试项,测试中",
            "parentId": -1,
            "children": [
                {
                    "mediaCatalogId": 7,
                    "mediaCatalogName": "地质资料项目部组织体系文件这是一个测试项测试项测试项,测试中",
                    "parentId": 6,
                    "children": []
                },
                {
                    "mediaCatalogId": 8,
                    "mediaCatalogName": "出工检查表",
                    "parentId": 6,
                    "children": []
                },
                {
                    "mediaCatalogId": 9,
                    "mediaCatalogName": "开工申请表",
                    "parentId": 6,
                    "children": []
                },
                {
                    "mediaCatalogId": 10,
                    "mediaCatalogName": "中期检杳查、完工验收表项目部组织体系文件这是一个测试项测试项测试项,测试中",
                    "parentId": 6,
                    "children": []
                },
                {
                    "mediaCatalogId": 11,
                    "mediaCatalogName": "钻孔较工验收单",
                    "parentId": 6,
                    "children": []
                },
                {
                    "mediaCatalogId": 12,
                    "mediaCatalogName": "钻孔质量评定表项目部组织体系文件这是一个测试项测试项测试项",
                    "parentId": 6,
                    "children": []
                },
                {
                    "mediaCatalogId": 13,
                    "mediaCatalogName": "平码验收单",
                    "parentId": 6,
                    "children": []
                }
            ]
        },
        {
            "mediaCatalogId": 14,
            "mediaCatalogName": "人员台账",
            "parentId": -1,
            "children": [
                {
                    "mediaCatalogId": 15,
                    "mediaCatalogName": "勘察单位人员台好",
                    "parentId": 14,
                    "children": []
                },
                {
                    "mediaCatalogId": 16,
                    "mediaCatalogName": "勘探单位人员台账项目部组织体系文件这是一个测试项测试项测试项",
                    "parentId": 14,
                    "children": [
                        {
                            "mediaCatalogId": 17,
                            "mediaCatalogName": "第三级分类项目部组织体系文件这是一个测试项测试项测试项",
                            "parentId": 16,
                            "children": []
                        }
                    ]
                }
            ]
        }
    ]
}

对应的ts类型,MediaCatalog.ts

/**
 * MediaCatalog
 */
export interface MediaCatalog {
  /**
   * 创建者
   */
  createBy?: string;
  /**
   * 更新时间
   */
  createTime?: string;
  /**
   * 媒体目录ID
   */
  mediaCatalogId?: number;
  /**
   * 媒体目录名称
   */
  mediaCatalogName?: string;
  /**
   * 父级ID
   */
  parentId?: number;
  /**
   * 备注
   */
  remark?: string;
  /**
   * 类型
   */
  type?: string;
  /**
   * 更新者
   */
  updateBy?: string;
  /**
   * 更新时间
   */
  updateTime?: string;

  /**
   * 树形结构
   */

  children?: MediaCatalog[]
  
}

Vue的代码如下:

el-tree的用法看官网:Tree 树形控件 | Element Plus (element-plus.org),这里有基础用法,就不重复追叙了,直接上代码

<template>
  <div style="width: 300px; height: 800px;">
    <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick" />
  </div>
</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue'
import { MediaCatalog } from './test/MediaCatalog.ts'
import result from './test/result.json'

interface Tree {
  /**
   * 媒体目录ID
   */
  mediaCatalogId?: number;
  /**
   * 媒体目录名称
   */
  mediaCatalogName?: string;
  /**
   * 父级ID
   */
  parentId?: number;
  /**
   * 子集
   */
  children?: Tree[]
}

const defaultProps = {

  id: 'mediaCatalogId',
  // 这个children项在树形数据中也是需要有的
  children: 'children',
  mediaCatalogId: 'mediaCatalogId',
  mediaCatalogName: 'mediaCatalogName',
  // 可以适当多添加几项,根据需求来
  parentId: "parentId",
  // // 这个label选项是必须要有的,否则无法显示文字,只展示树形关系,也就是每一层都是空白
  label: 'mediaCatalogName'

}

const handleNodeClick = (data: Tree) => {
  console.log("点击属性结构某一项的数据", data)
}

const treeData = ref<MediaCatalog[]>([])

onMounted(() => {
  console.log(result)
  treeData.value = result.data
})

</script>

<!-- <style scoped>

/* 这里需要用到深度选择器,否则改变不了样式,
无论scoped是否存在都需要使用到深度选择器 */
:deep(.el-tree-node) {
  white-space: normal;
  outline: 0;
}

:deep(.el-tree-node__content) {
  text-align: left;
  align-items: start;
  margin: 4px;
  height: 100%;

}


</style> -->

<style scoped lang="scss">
// 如果使用了sass时,也可以这样写,
// 使用了sass也可以像上面一样写,就写两个深度选择器
// 这个我也是F12,然后看到它们对应的关系的
:deep(.el-tree-node) {
      white-space: normal;
      outline: 0;

      .el-tree-node__content {
        text-align: left;
        align-items: start;
        margin: 4px;
        height: 100%;
      }
    }
</style>

没有换行展示的效果

在这里插入图片描述

换行之后的展示效果

在代码中的
在这里插入图片描述
从上面的代码可以看出,本质上就是修改了el-tree的默认样式

<!-- <style scoped>

/* 这里需要用到深度选择器,否则改变不了样式,
无论scoped是否存在都需要使用到深度选择器 */
:deep(.el-tree-node) {
  white-space: normal;
  outline: 0;
}

:deep(.el-tree-node__content) {
  text-align: left;
  align-items: start;
  margin: 4px;
  height: 100%;

}


</style> -->

<style scoped lang="scss">
// 如果使用了sass时,也可以这样写,
// 使用了sass也可以像上面一样写,就写两个深度选择器
// 这个我也是F12,然后看到它们对应的关系的
:deep(.el-tree-node) {
      white-space: normal;
      outline: 0;

      .el-tree-node__content {
        text-align: left;
        align-items: start;
        margin: 4px;
        height: 100%;
      }
    }
</style>

样式调试

从F12之后调试中我们可以看到
在这里插入图片描述

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

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

相关文章

仅以此文,纪念毕业一年后的日子

22年6月份从华农毕业了之后&#xff0c;拿到了好几份不错的offer&#xff0c;最后我进入了我学生时代十分憧憬的一家公司&#xff08;腾讯&#xff09;工作&#xff0c;加上实习的时间&#xff0c;已经在腾讯差不多工作了两年了。 从一开始实习的时候的懵懂学生气到现在的清醒…

Azure 机器学习 - 使用 ONNX 对来自 AutoML 的计算机视觉模型进行预测

目录 一、环境准备二、下载 ONNX 模型文件2.1 Azure 机器学习工作室2.2 Azure 机器学习 Python SDK2.3 生成模型进行批量评分多类图像分类 三、加载标签和 ONNX 模型文件四、获取 ONNX 模型的预期输入和输出详细信息ONNX 模型的预期输入和输出格式多类图像分类 多类图像分类输入…

【Liunx基础】之指令(一)

【Liunx基础】之指令&#xff08;一&#xff09; 1.ls指令2.pwd命令3.cd指令4.touch指令5.mkdir指令(重要)6.rmdir指令与rm指令&#xff08;重要&#xff09;7.man指令&#xff08;重要&#xff09;8.cp指令&#xff08;重要&#xff09; &#x1f4c3;博客主页&#xff1a; 小…

核电堆芯组件动态特性试验研究

u 核电试验概述 反应堆是核电事业的核心组成部分之一&#xff0c;堆内构件、堆芯燃料组件等部件在冷却剂流动冲击下&#xff0c;会诱发剧烈振动&#xff0c;导致堆芯内试验件流道不稳定。为了保障反应堆的安全运行&#xff0c;根据国家核安全法规规定&#xff0c;有必要对受冷…

单链表的应用(2)

环形链表的约瑟夫问题 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数&#xff0c;报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后&#xff0c;只剩下一个人&#xff0c;问最后留下的这个人编号是多少&#xff1f; 利用链表实现 思路&#xff1…

基础Redis-结构与命令

结构与命令 1.基础-Redisa.Redis数据结构介绍b.Redis通用命令c.key的结构d.String类型e.Hash类型f.List类型g.Set类型h.SortedSet类型 1.基础-Redis a.Redis数据结构介绍 Redis是一个key-value的数据库&#xff0c;key一般是String类型&#xff0c;不过value的类型多种多样&a…

idea中配置spring boot单项目多端口启动

参照文章 https://zhuanlan.zhihu.com/p/610767685 项目配置如下 下面为 idea 2023&#xff0c;不同版本的设置有区别&#xff0c;但是没那么大&#xff0c;idea 2023默认使用新布局&#xff0c;切换为经典布局即可。 在项目根目录的.idea/workspace.xml文件里添加如下配置 &l…

Java用log4j写日志

日志可以方便追踪和调试问题&#xff0c;以前用log4net写日志&#xff0c;换Java了改用log4j写日志&#xff0c;用法和log4net差不多。 到apache包下载下载log4j的包&#xff0c;解压后把下图两个jar包引入工程 先到网站根下加一个log4j2.xml的配置文件来配置日志的格式和参…

测试开发面试宝典,涨价倒计时

大家好&#xff0c;我是洋子&#xff0c;相信在面试软件测试、测试开发岗位的小伙伴都深有体会&#xff0c;考察的知识点越来越多 不仅会考察到软件测试的理论&#xff0c;让你对某种功能进行测试用例的设计&#xff0c;更难一点会给出一个测试场景进行测试方案的设计&#xf…

C++二分算法:平衡子序列的最大和

涉及知识点 二分 动态规划 #题目 给你一个下标从 0 开始的整数数组 nums 。 nums 一个长度为 k 的 子序列 指的是选出 k 个 下标 i0 < i1 < … < ik-1 &#xff0c;如果这个子序列满足以下条件&#xff0c;我们说它是 平衡的 &#xff1a; 对于范围 [1, k - 1] 内的所…

openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略

文章目录 openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略115.1 操作步骤 openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略 115.1 操作步骤 用户密码存储在系统表pg_authid中&#xff0c;为防止用户密码泄露&#xff…

2023-2024-1高级语言程序设计-一维数组

7-1 逆序输出数组元素的值 从键盘输入n个整数存入一维数组中&#xff0c;然后将数组元素的值逆序输出。 输入格式: 第一行输入整数个数n&#xff1b; 第二行输入n 个整数&#xff0c;数据之间以空格隔开。 输出格式: 逆序输出数组元素的值&#xff0c;每个数据之后跟一个空…

[React] React-Redux 快速入门

文章目录 1.安装 Redux Toolkit 和 React Redux2.创建 Redux Store3.为 React 提供 Redux Store​4.创建 Redux State Slice5.添加 Slice Reducers 到 Store6.在 React 组件中使用 Redux State 和 Actions​7.总结 1.安装 Redux Toolkit 和 React Redux npm install reduxjs/t…

测试服务器端口是否开通,计算退休时间

本案例知识点 netstat -tuln | grep 80 nestat 目前主机打开的网络服务端口&#xff0c;-tuln目前主机启动的服务&#xff0c;如图 报错说参数太多&#xff0c;仔细检查发现if后的中括号内&#xff0c;变量少双引号导致&#xff0c;改完之后运行显示22,25端口开放&#xff0…

关于编程不得不说的事

这些年&#xff0c;互联网爆炸式的发展&#xff0c;促生了无数程序员&#xff0c;也促生了大量 IT培训机构。短短数年间&#xff0c;科班出生的程序员和培训机构出生的程序员呈指数增长。程序员的职业也不再是金饭碗。写了这么多代码&#xff0c;有些感触&#xff0c;所以写下来…

挑战100天 AI In LeetCode Day01(1)

挑战100天 AI In LeetCode Day01&#xff08;1&#xff09; 一、LeetCode介绍二、LeetCode 热题 HOT 100-12.1 题目2.2 题解 三、面试经典 150 题-13.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站&#xff0c;提供各种算法和数据结构的题目&#xff0c;面向程序…

回顾十大数据恢复软件,帮助用于恢复丢失的文件!

您是否因丢失计算机上的重要文件而感到恐慌&#xff1f;你不是一个人&#xff01;数据丢失是许多人面临的严重问题&#xff0c;但幸运的是&#xff0c;有许多解决方案可以恢复数据。 在本文中&#xff0c;我将回顾十大数据恢复软件&#xff0c;以帮助您恢复丢失的文件&#xf…

线性【SVM】数学原理和算法实现

一. 数学原理 SVM是一类有监督的分类算法&#xff0c;它的大致思想是&#xff1a;假设样本空间上有两类点&#xff0c;如下图所示&#xff0c;我们希望找到一个划分超平面&#xff0c;将这两类样本分开&#xff0c;我们希望这个间隔能够最大化来使得模型泛化能力最强。 如上图所…

Vulnhub-DC-3 靶机复现完整过程

啰嗦两句&#xff1a; 提权之前完成是一个月前做的&#xff0c;当时在提权处出了点问题就搁置了&#xff0c;今天才完成&#xff0c;所以IP地址可能会会有变化 注意&#xff1a;后续出现的IP地址为192.168.200.55同样是靶机IP地址&#xff0c;若本文能有帮助到你的地方&#xf…

Flutter 07 框架和三棵树(Widgets、Elements和RenderObjects)

一、Flutter框架的整体结构&#xff1a; Flutter是Google推出并开源的跨平台开发框架&#xff0c;主打跨平台、高保真、高性能。开发者可以通过Dart语 言开发Flutter应用&#xff0c;一套代码同时运行在ios和Android平台。不仅如此&#xff0c;Flutter还支持Web、桌面、嵌 入应…