Element UI的table不同应用

目录

一、自定义表头

二、纵向表头(动态表头)

2.1、分别拿到表头和表头中日期对应的行数据

2.2、拿到每个日期对应的列数据

一、自定义表头

          <el-table-column prop="chu" align="center"><!-- 自定义表头 --><template slot="header"><span class="circle" style="background: #5dd49f"></span>出勤</template></el-table-column>

二、纵向表头(动态表头)

以课表考勤图为例:

有两种格式的数据:

2.1、分别拿到表头和表头中该课节对应的行数据

<el-table
:data="tableOldData"
style="width: 100%"
border
:row-style="{ height: '100px' }"
:header-cell-style="{background: '#F8F8F8',color: '#172b4d',height: '70px',}"
v-if="visibleCalendar.length > 0"><el-table-columnprop="name"label="课节"fixed="left"width="120"align="center"></el-table-column><el-table-column:label="item.date + item.week"v-for="(item, index) in visibleCalendar":key="index"align="center"><template slot-scope="{ row }"><div class="cell_boxs" v-if="row.dayData[item.date].type > -1"><div class="cell_tops"><span:style="'background-color:' +colorType(row.dayData[item.date].type)"class="circle"></span><span>{{typeStatistics(row.dayData[item.date].type)}}</span></div><div class="cell_bottom"><span>{{ row.dayData[item.date].subject }}</span><span>{{ row.dayData[item.date].name }}</span></div></div></template></el-table-column>
</el-table>
<script>
data() {return {visibleCalendar: [{ date: "2023-09-26", week: "周六" },{ date: "2023-10-25", week: "周一" },{ date: "2023-10-26", week: "周二" },{ date: "2023-10-27", week: "周三" },{ date: "2023-10-28", week: "周四" },{ date: "2023-10-29", week: "周五" },],dateTable: [{name: "第1-2节",dayData: {"2023-10-25": {type: 1,name: "赵翔",subject: "英语写作基础",},"2023-10-26": {type: 0,name: "赵翔",subject: "英语写作基础",},"2023-10-27": {type: 2,name: "赵翔",subject: "英语写作基础",},},},{name: "第3-4节",dayData: {"2023-09-26": {type: 2,name: "都会迟",subject: "奥术模拟",},},},{name: "第5-6节",dayData: {"2023-10-28": {type: 3,name: "王鹏",subject: "新闻播报",},"2023-10-29": {type: 4,name: "王鹏",subject: "新闻播报",},},},],
}
},computed: {tableOldData() {const oldData = [];this.dateTable.forEach((item) => {const newItem = { ...item };const dayData = newItem.dayData;newItem.dayData = {};this.visibleCalendar.forEach((item) => {let oldDate = item.date;if (dayData[oldDate]) {newItem.dayData[oldDate] = dayData[oldDate];} else {newItem.dayData[oldDate] = {};}});oldData.push(newItem);});return oldData;},},methods: {typeStatistics(index) {const status = ["出勤", "迟到", "旷课", "早退", "请假"];return status[index] || "";},colorType(index) {const colors = ["#6BC25E", "#F0A55C", "#E77575", "#F0A55C", "#6FBFF1"];return colors[index] || "";},
}
</script>

tableOldData是表格上最终要渲染的数据源;visibleCalendar是返回的表头;dateTable是表头中的日期对应的全部数据。渲染的时候,根据visibleCalendar里的日期去找对应的值。

2.2、拿到每个日期对应的列数据

<el-table
style="width: 100%"
:data="getValues"
:show-header="false"
border><el-table-column fixed width="120" align="center"><template slot-scope="{ row }"><div class="cell_header">{{ row.title }}</div></template></el-table-column><!--(拿到列数据时) 纵向垂直表头 --><!-- 左侧固定,右侧列数动态变化,min-width设置宽度 --><template v-for="(item, i) in getHeaders"><el-table-columnv-if="item != 'title'":show-overflow-tooltip="true":label="item":key="i"min-width="174"align="center"><template slot-scope="{ row }"><div class="cell_boxs" v-if="row[item] && row[item].name"><div class="cell_tops"><span:style="'background-color:' + colorType(row[item].type)"class="circle"></span><span>{{ typeStatistics(row[item].type) }}</span></div><div class="cell_bottom"><span>{{ row[item].subject }}</span><span>{{ row[item].name }}</span></div></div><div class="cell_header" v-else>{{ row[`value${i - 1}`] }}</div></template></el-table-column></template>
</el-table>
<script>
data() {return {headers: [{prop: "date",label: "课节",},{prop: "one",label: "第1-2节",},{prop: "two",label: "第3-4节",},{prop: "three",label: "第5-6节",},{prop: "four",label: "第7-8节",},{prop: "five",label: "第9-10节",},],otherDatas: [{date: "2023-10-25",one: { type: 1, name: "赵翔1", subject: "英语写作基础" },},{date: "2023-10-26",three: { type: 2, name: "赵翔6", subject: "英语写作基础" },},{date: "2023-10-27",one: { type: 3, name: "赵翔7", subject: "英语写作基础" },},{date: "2023-10-28",one: { type: 4, name: "赵翔7", subject: "英语写作基础" },two: { type: 1, name: "赵翔8", subject: "英语写作基础" },three: { type: 2, name: "赵翔9", subject: "英语写作基础" },},],
}
},computed: {getHeaders() {return this.otherDatas.reduce(//对数组累积操作(pre, cur, index) => pre.concat(`value${index}`),["title"]);},getValues() {return this.headers.map((item) => {return this.otherDatas.reduce((pre, cur, index) =>Object.assign(pre, { ["value" + index]: cur[item.prop] }),{ title: item.label });});},},methods: {typeStatistics(index) {const status = ["出勤", "迟到", "旷课", "早退", "请假"];return status[index] || "";},colorType(index) {const colors = ["#6BC25E", "#F0A55C", "#E77575", "#F0A55C", "#6FBFF1"];return colors[index] || "";},
}
</script>

通过headers这个数组确定要组装的数据源otherDatas格式,这样出来的数据每一行就是表格的row了。

第二种格式数据参考博客:el-table 纵向垂直表头_el-table纵向表头_wh4834的博客-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache Flink 1.12.0 on Yarn(3.1.1) 所遇到的問題

Apache Flink 1.12.0 on Yarn(3.1.1) 所遇到的問題 新搭建的FLINK集群出现的问题汇总 1.新搭建的Flink集群和Hadoop集群无法正常启动Flink任务 查看这个提交任务的日志无法发现有用的错误信息。 进一步查看yarn日志&#xff1a; 发现只有JobManager的错误日志出现了如下的…

Linux CentOS配置阿里云yum源

一&#xff1a;先备份文件&#xff0c;在配置失败时可以恢复 cd /etc/yum.repos.d mkdir back mv *.repo back 二&#xff1a;下载阿里云yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.…

[SSD综述 1.4] SSD固态硬盘的架构和功能导论

依公知及经验整理,原创保护,禁止转载。 专栏 《SSD入门到精通系列》 <<<< 返回总目录 <<<< ​ 前言 机械硬盘的存储系统由于内部结构, 其IO访问性能无法进一步提高,CPU与存储器之间的性能差距逐渐扩大。以Nand Flash为存储介质的固态硬盘技术的发展,…

如何处理msvcp110.dll缺失的问题,msvcp110.dll修复方法分享

当我们试图运行用Visual Studio 2012开发的应用程序时&#xff0c;有时可能会收到一个错误提示&#xff1a;“程序无法启动&#xff0c;因为计算机中丢失了msvcp110.dll”。这是非常常见的DLL&#xff08;动态链接库&#xff09;错误之一。它通常是因为该dll文件丢失或损坏所造…

Unity中Shader的GI的间接光实现

文章目录 前言一、GI中 间接光照的实现1、看Unity的源码可知&#xff0c;在计算GI的间接光照时&#xff0c;最主要的实现是在UnityGI_Base函数中 二、分析 UnityGI_Base 中实现的功能1、ResetUnityGI的作用2、第一个#if中实现的功能&#xff1a;计算在Distance Shadowmask 中实…

Python新手必读:容器类型使用的实用小贴士

更多资料获取 &#x1f4da; 个人网站&#xff1a;涛哥聊Python Python提供了多种容器类型&#xff0c;如列表&#xff08;List&#xff09;、元组&#xff08;Tuple&#xff09;、集合&#xff08;Set&#xff09;、字典&#xff08;Dictionary&#xff09;等&#xff0c;用于…

【GEE】5、遥感影像预处理【GEE栅格预处理】

1简介 在本模块中&#xff0c;我们将讨论以下概念&#xff1a; 了解常用于遥感影像的数据校正类型。如何直观地比较同一数据集中不同预处理级别的空间数据。如何在 Google Earth Engine for Landsat 8 表面反射率图像中执行云遮蔽和云遮蔽评估。 2背景 什么是预处理&#xff…

【性能测试】数据库索引问题定位/分析+ 架构优化+ SQL优化+ 代码优化(详全)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 索引问题定位与分…

MapReduce:大数据处理的范式

一、介绍 在当今的数字时代&#xff0c;生成和收集的数据量正以前所未有的速度增长。这种数据的爆炸式增长催生了大数据领域&#xff0c;传统的数据处理方法往往不足。MapReduce是一个编程模型和相关框架&#xff0c;已成为应对大数据处理挑战的强大解决方案。本文探讨了MapRed…

文本内容转换成语音播放的工具:Speech Mac

Speech Mac版是一款适用于Mac电脑的语音合成工具。它将macOS语音合成器的所有功能整合到一个易于使用的界面中。通过Speech Mac版&#xff0c;用户可以选择40多种声音和语言&#xff0c;方便地将文本转换为语音。用户可以将文本拖放或粘贴到Speech中&#xff0c;并随时更改语音…

TCP/IP--七层通信

文章目录 TCP/IP--七层通信先来看一下会话层以上的处理再来看一下传输层以下的处理 TCP/IP–七层通信 下面举例说明7层网络模型的功能。假设使用主机A的用户A要给使用主机B的用户B发送一封电子邮件。 在七层OSI模型中&#xff0c;如何模块化通信传输&#xff1f; 先来看一下七…

基础课23——设计客服机器人

根据调查数据显示&#xff0c;使用纯机器人完全替代客服的情况并不常见&#xff0c;人机结合模式的使用更为普遍。在这两种模式中&#xff0c;不满意用户的占比都非常低&#xff0c;不到1%。然而&#xff0c;在满意用户方面&#xff0c;人机结合模式的用户满意度明显高于其他模…

专访虚拟人科技:如何利用 3DCAT 实时云渲染打造元宇宙空间

自古以来&#xff0c;人们对理想世界的探索从未停止&#xff0c;而最近元宇宙的热潮加速了这一步伐&#xff0c;带来了许多新的应用。作为元宇宙的关键入口&#xff0c;虚拟现实&#xff08;VR&#xff09;将成为连接虚拟和现实的桥梁。苹果发布的VISION PRO头戴设备将人们对VR…

响应式特性

前言 持续学习总结输出中&#xff0c;今天分享的是响应式特性 1.什么是响应式&#xff1f; 简单理解就是数据变&#xff0c;视图对应变。 数据的响应式处理→ 响应式:数据变化&#xff0c;视图自动更新 聚焦于数据 → 数据驱动视图 使用 Vue 开发&#xff0c;我们主要关注…

干货分享 | 3D WEB轻量化引擎HOOPS Communicator如何读取复杂大模型文件?

HOOPS Communicator是一款简单而强大的工业级高性能3D Web可视化开发包&#xff0c;其主要应用于Web领域&#xff0c;主要加载其专有的SCS、SC、SCZ格式文件&#xff1b;HOOPS还拥有另一个桌面端开发包HOOPS Visualize&#xff0c;主要加载HSF、HMF轻量化格式文件。 两者虽然同…

【PyQt学习篇 · ⑨】:QWidget -控件交互

文章目录 是否可用是否显示/隐藏是否编辑是否为活跃窗口关闭综合案例信息提示状态提示工具提示“这是什么”提示 焦点控制单个控件角度父控件角度 是否可用 setEnabled(bool)&#xff1a;该函数用于设置QWidget控件的可用性&#xff0c;参数bool为True表示该控件为可用状态&…

shopee、亚马逊卖家如何安全给自己店铺测评?稳定测评环境是关键

大家都知道通过测评可以提升产品的转化率&#xff0c;提升产品的销量&#xff0c;那么做跨境平台的卖家如何安全的给自己店铺测评呢&#xff1f; 无论是亚马逊、拼多多Temu、shopee、Lazada、wish、速卖通、敦煌网、Wayfair、雅虎、eBay、Newegg、乐天、美客多、阿里国际、沃尔…

unity打AB包,AssetBundle预制体与图集(一)

第一步&#xff1a;打AB包 1、先创建一个AB包的按钮&#xff0c;如图 新建一个脚本 public class BulidBundle : Editor {[MenuItem("TOOL/BuildBundle")]public static void BuildAndroidBundle(){} }创建目录 public static void BuildAndroidBundle(){// 设置…

NowCoder | 链表中倒数第k个结点

NowCoder | 链表中倒数第k个结点 OJ链接 思路&#xff1a;定义两个快慢指针&#xff0c;让快指针先提前走k个节点&#xff0c;然后再让慢结点和快结点一起走&#xff0c;当快指针 NULL时&#xff0c;慢指针就是倒数第k个节点 代码如下&#xff1a; struct ListNode* FindK…

卡尔曼家族从零解剖-(04)贝叶斯滤波→细节讨论,逻辑梳理,批量优化

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解的 卡尔曼家族从零解剖 链接 :卡尔曼家族从零解剖-(00)目录最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/133846882 文末正下方中心提供了本人 联系…