跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 工具系统 > 其他工具 > 前端-layui动态渲染表格行列与复杂表头合并

前端-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,作者:欧阳逸,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论