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

elementplus el-table(行列互换)转置

方案一:
Element Plus v2.4.0, repl v3.4.0

<template>
<div><el-table :data="tableData" style="width: 100%"><el-table-column prop="name" label="名字" width="180" /><el-table-column prop="weight" label="重量" width="180" /><el-table-column prop="maxWeight" label="最大重量" width="180" /><el-table-column prop="height" label="高度" width="180" /><el-table-column prop="width" label="宽度" width="180" /><el-table-column prop="speed" label="速度" width="180" /></el-table><!-- 转置代码 --><div>转置table</div><el-table :data="trans_tableData" style="width:100%"><el-table-columnprop="title"label=""></el-table-column><el-table-columnv-for="(item,index) in props":key="index":prop="item.value":label="item.label"><template v-slot:header><span v-html="item.label"></span></template><template v-slot="{ row }"><span>{{ row[item.value] }}</span></template></el-table-column>
</el-table>
</div>
</template><script lang="ts" setup>
let tableData = [{name: '歼-20',weight: '25吨',maxWeight: '37吨',height: '4.69米',width: '21.2米',speed: '2马赫'},{name: '歼-20-1',weight: '25吨-1',maxWeight: '37吨-1',height: '4.69米-1',width: '21.2米-1',speed: '2马赫-1'}]
const props = tableData.map((t) => {return {label: t.name,value: t.id || t.name}
})
console.log("props=",props)
function isExist (newArr, name) {for (let i = 0; i < newArr.length; i++) {if (newArr[i].title === name) {return newArr[i]}}return false
}/***  定义映射字段表(最好取全量字段)* */
const mapObj = {name: '名称',weight: '重量',maxWeight: '最大载重',height: '高度',width: '宽度',speed: '速度'}
const newArr = []
for (const t in mapObj) {for (let i = 0; i < tableData.length; i++) {const item = tableData[i]const result = isExist(newArr, mapObj[t])if (result) {result[item.name] = item[t] || ''} else {const obj = {}obj.title = mapObj[t]obj[item.name] = item[t] || ''newArr.push(obj)}}
}
console.log("newArr",newArr)
const trans_tableData = newArr
</script>

结果如下:
添加链接描述
在这里插入图片描述
方案二:
https://blog.csdn.net/qq_41026858/article/details/125064928

相关文章:

  • 010、GPT-5:AI新纪元的曙光与挑战
  • HarmonyOS Next 原生应用开发-从TS到ArkTS的适配规则(一)
  • macOS Sequoia 15 beta 2 (24A5279h) Boot ISO 原版可引导镜像下载 (iPhone Mirroring 现已支持)
  • React Native优质开源项目推荐与解析
  • grpc学习golang版( 三、proto文件数据类型 )
  • 非常疑惑文章变成了仅VIP可读
  • 【高考志愿】建筑学
  • 深圳信息职业技术学院联合开源网安,培育新一代复合型网安人才
  • 高阶面试-spring的部分
  • Android Style 使用指南
  • 汽车电子行业知识:什么是车载智能座舱
  • Spring Boot配置文件properties/yml/yaml
  • Pytest+Allure+Yaml+PyMsql+Jenkins+Gitlab接口自动化(四)Jenkins配置
  • 【Arduino】XIAOFEIYU实验ESP32实验热敏电阻(图文)
  • 23- Redis 主从复制是怎么实现的?
  • IDEA 插件开发入门教程
  • java多线程
  • MQ框架的比较
  • session共享问题解决方案
  • 关于使用markdown的方法(引自CSDN教程)
  • 解析带emoji和链接的聊天系统消息
  • 配置 PM2 实现代码自动发布
  • 前端攻城师
  • 为什么要用IPython/Jupyter?
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 小程序开发中的那些坑
  • 小李飞刀:SQL题目刷起来!
  • 学习Vue.js的五个小例子
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (CPU/GPU)粒子继承贴图颜色发射
  • (八)Spring源码解析:Spring MVC
  • (第二周)效能测试
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)linux 命令大全
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net framework profiles /.net framework 配置
  • .Net 垃圾回收机制原理(二)
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • .py文件应该怎样打开?
  • .stream().map与.stream().flatMap的使用
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @ResponseBody
  • @WebService和@WebMethod注解的用法
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具