el-tree中展示项换行展示

news/2025/2/12 16:37:00/

文章目录

  • 效果如下所示:
    • 没有换行展示的效果
    • 修改样式换行之后的展示效果
  • 想要了解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.ppmy.cn/news/1200792.html

相关文章

C#SOLID原则(面向对象设计的准则)

SOLID原则是一组关于面向对象设计的准则&#xff0c;旨在帮助开发人员编写可维护、可扩展和可重用的代码。下面我将详细解释每个原则&#xff0c;并提供相关的示例说明。 单一职责原则&#xff08;Single Responsibility Principle&#xff0c;SRP&#xff09;&#xff1a;一个…

一些对程序员有用的网站

当你遇到问题时 Stack Overflow&#xff1a;订阅他们的每周新闻和任何你感兴趣的主题Google&#xff1a;全球最大搜索引擎必应&#xff1a;在你无法使用Google的时候CSDN&#xff1a;聊胜于无AI导航一号AI导航二号 新闻篇 OSCHINA&#xff1a;中文开源技术交流社区 针对初学…

【数据结构】数组和字符串(十五):字符串匹配2:KMP算法(Knuth-Morris-Pratt)

文章目录 4.3 字符串4.3.1 字符串的定义与存储4.3.2 字符串的基本操作4.3.3 模式匹配算法0. 朴素模式匹配算法1. ADL语言2. KMP算法分析3. 手动求失败函数定义例1例2例3 4. 自动求失败函数&#xff08;C语言&#xff09;5. KMP算法&#xff08;C语言&#xff09;6. 失败函数答案…

【实战-08】flink 消费kafka自定义序列化

目的 让从kafka消费出来的数据&#xff0c;直接就转换成我们的对象 mvn pom <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information …

如果你们团队想提升剪辑效率,这个批量剪辑神器不可错过

实话实说&#xff0c;现在市场上批量剪辑视频的软件真的特别多&#xff0c;但是其实仔细了解下&#xff0c;会发现功能都是大差不差&#xff0c;但又有一些细微的差别&#xff0c;让人难以抉择。 今天给大家推荐一款个人觉得性价比很高的软件——超级编导。 首先&#xff0c;…

支付宝AI布局: 新产品助力小程序智能化,未来持续投入加速创新

支付宝是全球领先的独立第三方支付平台&#xff0c;致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验&#xff0c;及转账收款/水电煤缴费/信用卡还款/AA收款等生活服务应用。 支付宝不仅是一个支付工具&#xff0c;也是一个数字生活平台&#xff0c;通过…

智慧班牌系统全套解决方案 智慧校园云平台

随着智能的不断发展&#xff0c;学校也有了更多智能化的应用&#xff0c;传统教育信息化水平低、校园和班级文化建设、日常教学管理缺少有力的数字抓手&#xff0c;家校通缺乏渠道&#xff0c;无法及时掌握孩子在校情况&#xff0c;学校教育和家庭教育出现断层&#xff0c;存在…

【多媒体文件格式】MTS、M2TS

MTS MTS 文件是由典型摄像机拍摄的 AVCHD&#xff08;高级视频编码高清&#xff09;视频文件。此文件格式是许多 AVCHD 兼容摄像机&#xff08;如 Sony 和 Panasonic HD 摄像机&#xff09;使用的标准视频格式。 MTS 允许您录制高清 (HD) 视频以在您的计算机上转换或共享它们。…