Element如何实现复杂table表格结构


这篇文章主要介绍“免费云主机域名Element如何实现复杂table表格结构”,在日常操作中,相信很多人在Element如何实现复杂table表格结构问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Element如何实现复杂table表格结构”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!Element-UI组件el-table用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。将使用到以下两项,来完成今天demo演示:多级表头:数据结构比较复杂的时候,可使用多级表头来展现数据的层次关系。合并行或列:多行或多列共用一个数据时,可以合并行或列。需要实现的表格如下图:使用npm进行安装:这里表头实现比较简单,代码如下:此时表头效果已形成,如下图:数据渲染这里较为复杂,这里为方便大家理解,进行逐步拆解叙述。如有更好方法,也欢迎大家指点。如上图,在element-table目录中,新建data.js文件,用于存储模拟数据,代码如下:页面中引入模拟数据,并赋值给表格的变量,代码如下:此时表格中可以正常渲染出部分数据了,效果图如下:如上图会发现,科目和成绩相关信息,未显示出来。这里需要对数据进行处理下,将所有科目信息调整到 和姓名字段为同一行数据中。需要做以下几步:将subject二级数据全部移至name同级的同一行数据中。将name字段原数据移至subject的第一行数据中;item和sub进行合并。无subject子项数据的,保持原数据输出。在data.js中,添加重构数据reconstructionStuData()函数,代码如下:引入reconstructionStuData()函数,代码如下:此时表格效果图如下:如上图,列(姓名)位于列的第1位置(起始从0开始,所以序号为第0位置),往下合并subject数组长度位置即可。列(总分)位于列的第6位置,往下合并subject数组长度位置即可。列(满分总分)位于列的第8位置,往下合并subject数组长度位置即可。这是我们会发现,methods中定义的reconstructionStuCell()函数还未使用,通过给table传入span-method方法可以实现合并行或列,方法的参数是一个对象,里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。该函数可以返回一个包含两个元素的数组,第一个元素代表rowspan,第二个元素代表colspan。 也可以返回一个键名为rowspan和colspan的对象。span-method相当于从数据单元格第一行开始,每行每列开始循环执行,想当于 9 * 15 执行135次,通过函数中 rowIndex, columnIndex字段进行判断当前循环是哪行哪列,并作对应处理。这里我们添加以下逻辑,在每行数据中添加姓名、总分,满分总分对应columnIndex1、columnIndex6、columnIndex8字段,用来存储需要返回的colspan和rowspan数据,代码如下:以上代码添加后,发现表格并无任何变化,这是因为重构数据函数中,还未添加对应的columnIndex1、columnIndex6、columnIndex8字段。首先,我们来合并(姓名)这列数据,将每行数据中添加columnIndex1,子属性变量columnIndex表示合并对应的列位置。subject有子项数据除第一行数据,后面所有rowspan和colspan为0,第1个单元往下合并后,会填充其他行空缺位置。subject无子项数据rowspan和colspan为1,保留原位置渲染。如为0则当前单元格不被渲染,表格会错乱。代码如下:此时大家看到表格的(姓名)列,已合并到对应长度,效果图如下:总分和满分总分合并部分,和(姓名)列同理,但多出一步则需计算出对应科目的总分 和 所有科目的满分总分。增加第6列和第8列合并数据columnIndex6和columnIndex8,并新增scoreTotal和totalAll分别保存总分和满分总分结果。代码如下:此时,咱们需要的表格就被渲染出来了,如下图:这里reconstructionStuData()函数处理能力还是相对不足,只能处理特定的表格合并。到此,关于“Element如何实现复杂table表格结构”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: C语言怎么判断三个数中的最大数

本篇内容主要讲解“C语言怎么判断三个数中的最大数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带免费云主机域名大家学习“C语言怎么判断三个数中的最大数”吧!通过屏幕我们输入三个数字,并找出最大的数。#include stdio…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 05/22 10:58
Next 05/22 10:59

相关推荐