前端-layui动态渲染表格行列与复杂表头合并
时间:2024-04-19 15:25:27 来源:网络cs 作者:欧阳逸 栏目:其他工具 阅读:
说在前面:
最近一直在用layui处理表格
写的有些代码感觉还挺有用的,顺便记录下来方便以后查看使用;
HTML处代码
拿到id 渲染位置表格
<div class="layui-table-body salaryTable"> <table class="layui-table" id="ID-table-salary-parse" style="display:block"></table> </div>
CSS
.layui-table th { background-color: rgb(199 217 234 / 78%); /* 设置表头的背景颜色 */ color: #2e2e2e; /* 设置表头的文本颜色 */ font-weight: bold; } .layui-table tbody tr:nth-child(odd) { background-color: #ffffff; /* 设置奇数行的背景颜色 */ } .layui-table tbody tr:nth-child(even) { background-color: rgba(239, 239, 239, 0.94); /* 设置偶数行的背景颜色 */ } .layui-table td, .layui-table th { border: 1px solid #e6e6e6; /* 边框颜色 */ } .layui-table td, .layui-table th { border-width: 2px; /* 设置双边框效果 */ }
重点来了
JS代码
var backData = {};var backData3 = {};layui.use('table', function () { getStudentTaskData() function getStudentTaskData() { ajaxBase.getSelectInfo(false, function (jsonData) { if (jsonData['单据json']) { backData = jsonData['代扣项目']; backData3 = jsonData['工资薪酬计算表']; } }) } var datas = [] $.each(backData3, function (index, item) { var coll = {}; for (key in item) { coll[key.split("、")[1]] = item[key]; } datas.push(coll); }) var table = layui.table; var colLists = []; for (key in backData[0]) { var colList = {}; colList['field'] = key; colList['title'] = key; colList['align'] = 'center'; colList['minWidth'] = '122'; colLists.push(colList); } colLists.sort(); // 渲染 table.render({ elem: '#ID-table-demo-parse' , data: backData , cols: [colLists] , height: 100 }); colLists = []; var colls = []; const site = 0; var colList = {}; for (key in backData3[0]) { colList[key.split("、")[0]] = key.split("、")[1] } for (key in colList) { var coll = {}; if (colList[key].includes('代扣项目')) { coll['field'] = colList[key]; coll['edit'] = 'text'; coll['title'] = colList[key].split("-")[1]; coll['align'] = 'center'; colls.push(coll); // colLists.push(coll); } else { coll['field'] = colList[key]; coll['title'] = colList[key]; coll['edit'] = 'text'; coll['rowspan'] = 2; coll['align'] = 'center'; colLists.push(coll); if (colList[key].includes('收入总额')) { var colll = {}; colll['field'] = '代扣项目'; colll['title'] = '代扣项目'; colll['align'] = 'center'; colll['colspan'] = 5; colLists.push(colll); } } } //console.log('colLists', colLists) // 渲染 table.render({ elem: '#ID-table-salary-parse' , data: datas , cols: [colLists, colls] , height: 350 });});
合并表头需要在
cols中传入[ [ ],[ ] ]这种数组类型的格式;
主要就是不合并的表头都加上rowspan:2(代表行跨度为2)
colspan:5 表示第二个数组需要合并的表格个数;
完成效果图:
小程序演示地址:
点击演示
本文链接:https://www.kjpai.cn/news/2024-04-19/160365.html,文章来源:网络cs,作者:欧阳逸,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。