

基于Element组件下动态生成多级表头以及数据
source link: https://blog.csdn.net/QuiltKing/article/details/111450283
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

基于Element组件下动态生成多级表头以及数据
element是一套基于vue的组件,本文主要介绍如何根据后端传输数据来动态生成表格。
利用vue里的for
循环来动态生成表头,再利用if语句判断是否有二级表头,并将对应key赋值给label
和prop
<template id="table">
<el-table :data="tableData" :stripe=true :border=true height="80%" class="tablehead">
<!-- for循环
判断是否含有子类
-->
<el-table-column v-for="key in listhead" v-if="key[Object.keys(key)]!=null" :label="Object.keys(key).toString()"
:prop="Object.keys(key).toString()">
<el-table-column v-for="keychild in key[Object.keys(key)]" :label="keychild"
:prop="keychild" sortable>
</el-table-column>
</el-table-column>
<el-table-column v-else :label="Object.keys(key).toString()" :prop="Object.keys(key).toString()" sortable>
</el-table-column>
</el-table>
</template>
先获取表头和表格内容,将表格内容push到数组并添加对应的key方便使用
var listhead = test[0]; //获取表头
var listbody = test[1]; //获取内容
listhead = eval(listhead);
//创建表格内容的数组
var listbodyarr = [];
for (i in listbody) {
console.log(listbody[i][0])
listbodyarr.push({
'商品号': listbody[i][0],
'a_1': listbody[i][1],
'a_2': listbody[i][2],
'a_3': listbody[i][3],
'a_4': listbody[i][4],
'b_1': listbody[i][5],
'b_2': listbody[i][6],
'b_3': listbody[i][7],
'b_4': listbody[i][8],
'C': listbody[i][9],
'D': listbody[i][10],
'E': listbody[i][11],
});
}
new Vue({
el: '#table',
data: function () {
return {
tableData: listbodyarr,//表格内容
listhead: listhead,//表头
}
}
})
假定后端数据如下展示格式
var test = [
[{
"商品号": null
},
{
" A": ["a_1", "a_2", "a_3", "a_4"]
},
{
"B": ["b_1", "b_2", "b_3", "b_4"]
},
{
"C": null
},
{
"D": null
},
{
"E": null
}
],
[
["1234", 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0],
["12345", 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0],
["23123", 6, 1, 2, 9, 3, 0, 7, 10, 2, 0, 0],
["P123", 2, 1, 1, 4, 0, 0, 1, 1, 1, 0, 0],
["43244", 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0],
["fsdf3", 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0],
["134324", 6, 1, 2, 9, 3, 0, 7, 10, 2, 0, 0],
["fsdf3", 2, 1, 1, 4, 0, 0, 1, 1, 1, 0, 0],
["3452", 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0],
["1026", 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0],
["7527", 6, 1, 2, 9, 3, 0, 7, 10, 2, 0, 0],
["7788", 2, 1, 1, 4, 0, 0, 1, 1, 1, 0, 0],
["0yly", 0, 4, 0, 4, 0, 4, 0, 4, 0, 0, 0],
["wuhu", 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0],
["saber1", 6, 1, 2, 9, 3, 0, 7, 10, 2, 0, 0],
["23344", 2, 1, 1, 4, 0, 0, 1, 1, 1, 0, 0],
]
]
Element是一个功能强大的组件,如有更好的方法、疑问或者错误之处欢迎大家指正。对不同格式数据的处理问题也可以私聊或者在评论区讨论。
Recommend
-
75
-
32
点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,可以点个在看,让它可以帮助到更多老铁~ 这篇文章是在高铁上写的。 这次继续和大家分享Qt Model/View的一些使用方法。 Qt 帮助文档的整体目录如下:
-
16
使用代码生成工具快速生成基于ABP框架的Vue+Element的前端界面 世界上唯一不变的东西就是变化,...
-
6
基于nodejs的动态编译 weex 组件的平台 大纲 在苏宁业务快速发展的背景下,以前的大促促销页使用到的组件已经无法满足业务的需求,为此我们设计了一套基于weex的组件动态构建方案,实现了模块的动态编译,减少了不必要的...
-
7
【记录】Element表格动态表头及数据发布于 5 分钟前实现方式1、取数据列表中第一条作为表头数据,再遍历删除不是表头的固定属性,结果赋值...
-
10
一劳永逸,解决基于 keep-alive 的多级路由缓存问题 发表于 2020-12-19 更新于 2020-12-2...
-
12
在 Vue3 + Element Plus 中生成动态表格,动态修改表格,多级表头,合并单元格stone前端工程师最近更新 2022年...
-
7
1.1:nacos分级存储是什么1.3:为什么nacos 要引入这么一个服务分级1.3.1:服务跨集群调用问题2.1.1:修改文件yml,添加如下内容:2.1.2:在Nacos控制台可以看到集群变化:1,服务分级存储模型这个服务分级存储...
-
3
1. 效果:
-
7
在之前较早随笔中介绍过实现多行表头的处理,通过手工创建字段以及映射数据源字段属性的方式实现,有些客户反映是否可以通过代码方式更方便的创建对应的处理操作,因此本篇随笔继续探讨这个多行表头的处理的操作,使用代码的方式结合扩展函数处理,快速的实现GridCon...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK