复杂布局结构,树形组件集成表格组件,每个节点代表一行

复杂布局结构,树形组件集成表格组件,每个节点代表一行缩略图
本文目录
  1. 1. 前言
  2. 2. 需求分析
  3. 3. 代码实现

前言

本篇文章介绍一种比较复杂的排版方式,是一种树形组件集成了表格组件,树的每一个节点都具有一行配置。
对比产品页面如下:

复杂布局结构,树形组件集成表格组件,每个节点代表一行插图

需求分析

看个这个页面,我们首先想到的是,一个树组件,和一个表格组件。
如果要把右侧当成表格组件坐起来是比较复制的。因为涉及到树节点的折叠,对应的行也要折叠。
所以最简单的办法是,模拟右侧的表格,将每一行写到树节点中。这样,折叠节点时,对应的行也相应被折叠。

代码实现

顶部的表头是一个单独的div实现,向右偏移。

<div class="top-header">
  <div class="col-item">
    Row count
  </div>
  <div class="col-item">
    Column count
  </div>
  <div class="col-item">
    Custom SQL
  </div>
  <div class="col-item">
    Freshness
  </div>
  <div class="col-item">
    Cardinality
  </div>
  <div class="col-item">
    Uniqueness
  </div>
  <div class="col-item">
    Nullness
  </div>
  <div class="col-item">
    Distribution
  </div>
</div>

左侧的树使用element-plus的树组件来展示。
每一个节点应该使用插槽来写,这样可以单独处理很多逻辑,比如为不同层级使用不同的icon。
每个节点的单元格数量 可以单独设置。
单元格数量使用css的类来实现,无法点击的单元格,背景色设置为透明,或与底色设置为一致。
每一个单元格显示与否,显示什么颜色, 都与节点的数据和单元格类型有关。
所以在获取单元格的css类时,使用单元格类型1和node两个参数。如下
<div :class="showCell(1, node)" class="node-rules-cell" />

特别需要注意的是:
树有不同的级别,每一级向右缩进的距离不一样。为了达到书节点的宽度不影响后面单元格的排版。
我们需要将树节点的结尾处对齐,所有不同级节点的宽度是不一样的。
我们可以这样写。

@levMargin: 16px;
.node-info {
  width: 340px;
  margin-right: 12px;
  &.node-lev2{
    width: calc(340px - @levMargin) ;
  }
  &.node-lev3{
    width: calc(340px - @levMargin * 2) ;
  }
  &.node-lev4{
    width: calc(340px - @levMargin * 3) ;
  }
}

第一级节点的宽度为340px,第二级为340-16,第三级节点的宽度为340 – 16 * 2。以此类推。

一些细节处理就是我们需要为节点的hover,focus 时做一些优化。

.el-tree-node__content:hover .node-rules{
  background-color: #fff;
}
.el-tree-node:focus>.el-tree-node__content .node-rules{
  background-color: #fff;
}

演示效果

复杂布局结构,树形组件集成表格组件,每个节点代表一行插图1
来源/工具信息 —— 点击展开
来源 Modbus中文网(modbus.cn) —— 国内领先的Modbus通信协议技术社区 分类 Node-RED 字数 1424 字 · 阅读约 4 分钟 更新 2023-02-19 永久链接 https://www.modbus.cn/%e5%a4%8d%e6%9d%82%e5%b8%83%e5%b1%80%e7%bb%93%e6%9e%84%ef%bc%8c%e6%a0%91%e5%bd%a2%e7%bb%84%e4%bb%b6%e9%9b%86%e6%88%90%e8%a1%a8%e6%a0%bc%e7%bb%84%e4%bb%b6%ef%bc%8c%e6%af%8f%e4%b8%aa%e8%8a%82%e7%82%b9/
推荐工具:Modbus调试助手 微信小程序
Modbus中文网官方推出的Modbus调试工具,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 无需安装,微信搜索「Modbus调试助手」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注