表格数据横向转纵向并在el-table中渲染

HTML表格CSS样式化:border-collapse与渲染规则深度解析 HTML表格不是普通块级元素,而是一套内置布局引擎,其CSS渲染遵循独特规则。理解border-collapse的分离与合并模式,是解决边框重叠、样式失效等核心问题的前提;它直接决定padding作用域、vertical-align基准线及响应式重构逻辑。现代表格样式化需兼顾语义正确性、视觉一致性与无障碍支持,在金融、医疗、后台等高要求场景中尤为关键。本文聚焦浏览器原生表格渲染机制,详解border优先级链、单元格内容对齐原理及移动端信息密度重构方案。 阅读详情

数据转换

transform(res) {
         console.log(res, 'res');
         const data = res.powerPlantVos;
         const dataKey = [
            {
               label: '机组实际发电曲线', val: 'realUnitPowerDate',
            },
            {
               label: '日前申报分段报价', val: 'segQuoPriForDate',
            },
            {
               label: '日前和实际出清结果', val: 'setReaPriDate',
            },
            {
               label: '中长期数据明细', val: 'newEneMedBaseClearElecDate',
            },
            {
               label: '省间现货申报-省内单元出清结果', val: 'provinceClearingDate',
            },
            {
               label: '每日事前数据', val: 'coalStockDate',
            },
            {
               label: '每日事后数据', val: 'aterwardsDailyData',
            },
            {
               label: '月度计划数据', val: 'monthPlanData',
            },
         ];
         const column = [
            {
               label: '名称',
               prop: 'name',
            },
         ];
         const tableData = [];
         dataKey.forEach((key, j) => {
            const obj = {
               name: key.label,
            };
            data.forEach((e, i) => {
               if(j === 0) {
                  const tempCol = {
                     label: e.unitName,
                     prop: e.unitId,
                  };

                  column.push(tempCol);
               }

               if(key.val == 'monthPlanData' && i === 0) {
                  obj[e.unitId] = res.monthPlanData;
               }
               else if(key.val == 'coalStockDate' && i === 0) {
                  obj[e.unitId] = res.coalStockDate;
               }
               else if(key.val == 'aterwardsDailyData' && i === 0) {
                  obj[e.unitId] = res.aterwardsDailyData;
               }
               else {
                  obj[e.unitId] = e?.[key.val];
               }
            });

            tableData.push(obj);
         });

         this.dialogData = {
            column: column,
            tableData: tableData,
         };
      },

表格渲染

<template>
   <el-dialog title="数据完整度" :visible.sync="dialogVisible" @close="cancelDialog">
      <el-table :cell-class-name="cellOneStyle" :span-method="arraySpanMethod" :data="tableData" border>
         <el-table-column
            v-for="(item,index) in column"
            :key="index"
            :align="index == 0 ? 'left' : 'right'"
            :label="item.label"
            :prop="item.prop"
            :width="index == 0 ? 200 : 'auto'"
         ></el-table-column>
         <el-table-column v-if="tableData.length > 0" width="80" align="center" label="操作">
            <i class="el-icon-view" @click="check"></i>
         </el-table-column>
      </el-table>
   </el-dialog>
</template>

<script>
export default {
   props: {
      showDialog: {
         type: Boolean,
         default: false,
      },
      dialogData: {
         type: Object,
      },
   },
   data() {
      return {
         dialogVisible: false,
         column: [],
         tableData: [],
         originData: [],
         loading: false,
         cellOneStyle: function({ row, column, rowIndex, columnIndex }) {
            if(columnIndex < 1) {
               return 'cellStyle';
            }
         },
      };
   },
   watch: {
      showDialog: {
         handler(falg) {
            this.dialogVisible = falg;
         },
         immediate: true,
      },
      dialogData: {
         handler(falg) {
            this.tableData = falg.tableData;
            this.column = falg.column;
         },
         // immediate: true,
         deep: true,
      },
   },
   methods: {
   // el-table  单元格合并(行)
      arraySpanMethod({ row, column, rowIndex, columnIndex }) {
         if(rowIndex == this.tableData.length - 1) {
            if(columnIndex === 1) {
               return [2, this.column.length - 1];
            }
            else if(columnIndex !== 0 && columnIndex !== this.column.length) {
               return [0, 0];
            }
         }
      },
      cancelDialog() {
         this.$emit('cancelDialog');
      }
   },
};
</script>

<style lang="scss" scoped>
::v-deep .cellStyle {
   background: var(--tableHeadBackground);
}
</style>



el-table表格还可以这么玩 我们都知道表格是横向渲染的,一行一行去展示。不过博主这里有个需求是纵向渲染,一列一列去展示…嗯…不难…做出来了,下面是全部代码,分享出来或许能帮到你们。 阅读详情

相关推荐

JS实现二维数组横纵列转置的方法

我想将一个二维数组横纵列转过来,我就不信只有我有这个需求,可是百度了好久,四海八荒都找遍了&hellip;&hellip; 后来证明还是大神说的google好用 ~ 第一条就是,鄙视臭百度 此番记录下来,也方便各位道友查阅(好想说“仙友”,最近被一部剧毒害的后遗症 ~~~) var newArray = arr[0].map(function(col, i) { return arr.map(function(row) { return row[i]; }) }); 以上这篇JS实现二维数组横纵列转置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发

在Vue项目中实现table数据的纵向展示

本文主要解决如何实现将数据以表格形式展示,项目基于Vue3+ElementPlus+Ts

qq_52569656的博客 7909

MIMO技术入门

MIMO:多天线技术,发射端和接收端有多个天线(注意:并不是指多个天线板,而是多套振子,每一套是一个独立的天线。) 4G:2、8天线 5G:4、64天线(64T64R) 手机也是多天线 MIMO实现效果的分类: 1)空间分集 。2)空间复用。3)波束赋形。 空间分集(space diversity) 作用:提升接收质量 利用多个天线发射或者接收一个数据流,避免单个信道衰落对整个链路的影响。(比如你的耳机坏了一只并不影响另一只) 空间复用(space multiplexing) 作用:提升速率 利

About1129的博客 2875

vue element-ui table表格自定义纵向合计横向合计

vue element-ui table表格自定义纵向合计横向合计,以及动态表格自定义合计列最后一个总合计不显示问题

weixin_52526109的博客 3041

CentOS7下Node.js v20+安装与常见依赖库问题解决指南

本文详细介绍了在CentOS7系统下安装Node.js v20+的完整流程及常见依赖库问题的解决方案。通过升级glibc到2.28+、配置环境变量以及处理libstdc++版本问题,帮助开发者顺利在老旧系统上部署最新版Node.js,提升开发效率。

weixin_30689307的博客 156

Basler相机和pylon viewer 的使用

文章目录1 线路连接2 安装和使用pylon 1 线路连接 电源线接到电源插座,网线接到电脑(电脑没有网口的话,可用转换器转到type-c接口)。 2 安装和使用pylon 参考 Basler pylon安装及对网口相机基本设置 相机和电脑以太网IP设置参考:balser相机IP设置 关于相机参数和pylon viewer的详细设置,可以参考pylon Viewer安装路径下的文档(Documentation) ...

Deephome的博客 1万+

el-table横向数据表格实现

众所周知,el-table大部分场景下包括官方例子,table都是纵向数据,就是渲染每一项的数据是一列的。最近有个需求它是横向数据渲染,是一行一行的,之前没写过一时间没思路,现在解决了记录一下。

L2395183536的博客 5334

【自用】吉林大学计算机系统结构第二章:缓存优化 曲冠南老师版 笔记

容量8KB,2的十三次方,块大小16B,一块用掉四位,剩余2的九次方是标志位,则有512行,每个元素8B,则一块两个元素,a数组150块,b数组152块,不出现容量失效。不管是否交换内容,在同一“伪相联”组中的两块都是用同一个索引得到的,因此失效率相同,即:失效率伪相联=失效率2路。伪相联cache的命中时间等于直接映象cache的命中时间加上伪相联查找过程中的命中时间*该命中所需的额外开销。(6) 由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。

weixin_73587775的博客 1616

elementui中 el-table表格表头以及内容渲染(横向纵向渲染)以及固定列fixed定位位置错乱表格偏移问题

el-table横向纵向渲染 横向纵向渲染需要两类数组,一类渲染表头,另外一类需要渲染内容,表头数组每一个对象需要塞入两个值 一个为表头渲染的内容即绑定label 另外一个为该纵列值所在字段名即绑定prop <el-table ref="refreshTable" v-loading="loading" :data="listData" :header-cell-style="{ background: '#007F69', color: '#fff'

yuan20010401的博客 6501

WSL2+Docker+Ollama:解锁Windows本地GPU加速运行DeepSeek-R1模型

本文详细介绍了在Windows系统上,通过WSL2、Docker和Ollama的组合方案,实现本地GPU加速运行DeepSeek-R1模型的全过程。该方案解决了Windows环境下Ollama默认无法调用NVIDIA显卡的痛点,通过配置Docker的GPU支持,强制将计算任务分配给GPU,从而显著提升文本生成速度与效率,为开发者提供了一个便捷的本地AI测试环境。

weixin_28452161的博客 357

YOLOv8结合GhostNet实现轻量化目标检测:模型设计与性能评测

GhostNet系列的核心是**“幽灵特征图(Ghost Feature Map)”** 概念:通过简单的线性变换(如深度卷积)生成“幽灵特征”,这些特征与原始特征融合后,能以极低的计算成本带来丰富的语义信息。为了突出GhostNet系列的必要性,设计消融实验:分别测试“仅主卷积”“仅幽灵卷积”“GhostNet(主卷积+幽灵卷积)”三种方案的性能,用数据证明“幽灵特征”的不可替代性。简单来说,引入GhostNet系列的YOLOv8,既能体现你的技术深度,又能让毕设的“落地性”大幅提升。

m0_71589036的博客 114

vue、element实现表格表头纵向显示

大多数情况,我们的管理端都有表格展示数据,然而表格的展示基本都是表头横向展示,然后相应的数据一行一行排列在下方,我们先看一下element官网的el-table的样子: 那么我们如果想要让表头纵向展示该如何实现呢?怎么样?是不是发现element官网没有这样的示例,有点难搞,哈哈,接下来咱们就来现场撸纵向表格展示,准备好了吗? 其实原理很简单,一般的都是横向展示,先定义第一行表头,然...

vividzll的博客 4万+

Qt代码-无人机地面站系统

无人机地面站系统是无人机与操作员交互的核心枢纽,需实现**无人机状态监控**(位置、姿态、电池等)、**实时通信**(基于MAVLink协议)、**任务规划**(航点编辑、航线生成)、**地图显示**(无人机位置与航迹)、**参数配置**(传感器校准、飞行模式设置)等核心功能。地面站作为`MAV_COMP_ID_GCS`(地面控制站组件ID=255),无人机通常为`MAV_COMP_ID_AUTOPILOT1`(组件ID=1)。// 航点/盘旋指令。// 北京坐标(示例)

寒寒豆豆软件公司的博客 320

vue 渲染表格两个表头,横向显示时间,纵向显示参数

parameters 是一个参数数组,包含了表格纵向的参数列表,而 times 是一个时间数组,包含了表格横向的时间列表。这个方法的主要作用是根据这两个数组生成一个符合格式要求的表格数据数组。它使用 Math.random() 函数生成一个 0 到 1 之间的随机小数,然后将其乘以 100 并取整,得到一个 0 到 100 之间的随机整数作为参数值,并返回该值。它用于显示一个包含时间和参数的表格,其中时间横向显示,参数纵向显示。vue 渲染表格两个表头,横向显示时间,纵向显示参数。

weixin_46328739的博客 1585

十年芯片资深IC设计工程师面经系列(四)SDC约束

set_driving_cell:当我们的设计是模块级(Block level)的design时,我们的设计前面一般还有其他的设计,那么前面模块的输出便是我们模块的输入,5.1set_false_path:可以单独的时钟或者路径进行约束。set drive :当我们的设计是芯片级(Chip level)的顶层设计时,芯片外围电路要驱动的是负载较大的IO单元,故需要的驱动能力较强,:set_load 是指output端口的负载,设置的值会影响输出到端口的net上的电容,从而影响相应的路径延时。

weixin_47349046的博客 1773

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

记录使用el-table 实现表头固定,数据列一列对应多行的写法

本文介绍了在Element UI表格中实现横向单元格合并的方法。由于el-table不支持colspan和rowspan属性,作者通过自定义span-method函数实现横向合并。文章展示了包含48个时间列的数据表格示例,并详细说明了如何通过arraySpanMethod方法处理单元格合并逻辑。该方法适用于需要展示大量时间点数据的场景,通过自定义合并策略可以优化表格展示效果。

qq_35111210的博客 796

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

html表头纵向,vue、element实现表格表头纵向显示

大多数情况,我们的管理端都有表格展示数据,然而表格的展示基本都是表头横向展示,然后相应的数据一行一行排列在下方,我们先看一下element官网的el-table的样子: 那么我们如果想要让表头纵向展示该如何实现呢?怎么样?是不是发现element官网没有这样的示例,有点难搞,哈哈,接下来咱们就来现场撸纵向表格展示,准备好了吗?其实原理很简单,一般的都是横向展示,先定义第一行表头,然后数据部分直接放...

weixin_32534653的博客 2873

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Vue进阶(幺幺玖):element-ui table组件适应性问题(横向滚动条)

在开发前端项目过程中,解决适配性、兼容性问题是经常遇到且费事费力的苦差事,尤其是在开发Vue项目,应用部署在IE(尤其是IE9)上的时候。 在进行动态展示(根据后台返回的表头、表数据展示)搜索结果时,会遇到搜索结果适配屏幕宽度或高度,但是却会出现纵向或横向滚动条的现象,通过F12调试页面元素,会发现动态的增删overflow:auto元素属性,会解决以上问题。由此可知,动态渲染页面元素时,页面加载之前,由于页面元素尚未完全加载计算元素属性值结束,会造成屏幕出现不适配,即会出现横向纵向滚动条的问题,现在的解决

IT全栈 华强工作室 7510

Vue进阶(幺幺玖):element-ui table组件适应性问题(横向滚动条)_elementui table横向滚动条

在前端项目开发过程中,解决适配性、兼容性问题是经常遇到且费事费力的苦差事,尤其是在开发Vue项目,应用部署在IE(尤其是IE9)上的时候。在进行动态展示(根据后台返回的表头、表数据展示)搜索结果时,会遇到搜索结果适配屏幕宽度或高度,但是却会出现纵向或横向滚动条的现象,通过F12调试页面元素,会发现动态的增删元素属性,会解决以上问题。

2401_84433974的博客 1728

Element UI el-table 固定列错位问题:原理剖析与根治方案

在前端开发中,复杂表格的渲染与交互优化是提升用户体验的关键环节。Element UI 的 el-table 组件通过多表格协同渲染的原理实现固定列功能,其核心在于多个独立表格在视觉上的精确拼接与状态同步。这一机制在应对动态数据、异步加载和样式变化时,容易出现行高、列宽计算不同步的技术挑战,导致固定列与滚动区域错位,直接影响数据展示的准确性和界面美观。从工程实践角度,解决此类问题需要深入理解浏览器渲染流程、Vue 生命周期与组件内部状态管理。通过精准把控 doLayout 方法的调用时机(如结合 $nextT

weixin_33806914的博客 356

Element UI表格fixed列错位问题:从原理到实战解决方案

在前端开发中,表格组件是数据展示的核心工具,其布局稳定性直接影响用户体验。表格错位问题本质上是浏览器渲染机制与CSS盒模型计算不一致导致的视觉偏差,常见于动态数据更新、异步渲染等场景。理解DOM渲染流程、CSS定位原理及框架生命周期是解决此类问题的关键。在Vue技术栈中,Element UI的el-table组件通过拆分多个独立表格实例实现固定列功能,这要求各实例间的尺寸同步必须精确。本文聚焦el-table fixed列错位这一典型问题,深入剖析其产生机制,并提供从强制重新布局、CSS规范化到组件强制刷新

weixin_33881140的博客 379

记一次element-ui配置化table组件的适应性问题(横向滚动条)

本来想在 jsfiddle 重现下的,结果没有成功,就给大家看截图吧 vue版本:2.5.3 element-ui版本:1.4.13 浏览器:chrome 66.0.3359.170 大家可以发现,固定了高度的 table 不仅出现了纵向滚动条,横向滚动条也出现了(只能滚动一点点),其实宽度是足够显示的。 然后将问题在网上搜寻,查到了相关的issues https://github...

天驱的博客 2万+

VUE+elementUI横向表格

最近有个需求需要表格横向,双向表头,然后形成矩阵查了一些资料后,都模棱两可,汇总了一下,用以下方法实现中间单元格需要做一个交叉取值,所以定义了一个方法,通过横向的id到纵向数据里面取到对应的值 翻页的话,可以通过监控表格的滚动条实现,但是不太好使,我就加了个按钮通过点击按钮获取下一页内容。

weixin_44530086的博客 1905

vue 表格动态合并行和列

【代码】vue 表格动态合并行和列。

m0_49062914的博客 1047

element-ui:el-table 基础用法 / 常见问题解决

本文总结了Element UI表格组件的常见问题及解决方案:1)条件控制展开行显示;2)实现列合并和单选功能;3)处理表格表单联动;4)禁用多选和分页数据保留;5)解决固定列滚动错位问题;6)处理页面缩放导致的滚动条异常;7)实现表头合并;8)优化固定列滚动条交互。通过CSS调整和事件处理等方法,有效提升了表格组件的稳定性和用户体验。

snow的博客 900
上一篇: Http、Socket、WebSocket之间联系与区别
下一篇: axios拦截器
OOOOOOh~
博客等级 码龄9年 92粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值