layui通过下拉框动态渲染多级表头

layui通过下拉框动态渲染多级表头

之前遇到的坑 直接上图

在这里插入图片描述

选择第二个下拉框时
在这里插入图片描述
选回第一个下拉框时 表头全乱了
在这里插入图片描述
原本写法是 通过监听下拉框控制表格重载 报错

解决方法

通过监听下拉框 然后每次都重新表格实例化覆盖掉

// 监听 开支项目下拉框
            form.on("select(select_kaizhi)",function(data){
                switch(data.value){
                    case "个人办公用品":
                    renderCols(data.value)
                    break;
                    case "省内差旅费":
                    renderCols(data.value)
                    break;
                    case "招待费":
                    renderCols(data.value)
                    break;
                    case "宣传用品费":
                    renderCols(data.value)
                    break;
                    case "内部会议费":
                    renderCols(data.value)
                    break;
                    case "教育培训费":
                    renderCols(data.value)
                    break;
                }
            })
            function renderCols(name){ 
                if(name=="个人办公用品" || name=="省内差旅费" || name=="宣传用品费"){
                    var arr=[[  // 个人办公用品  省内差旅费  宣传用品费
                            { field:"val01",title:"部门",rowspan:"2",align:'center' },
                            { field:"val02",title:name+"",colspan:"3",align:'center' }
                        ],[
                            { field: 'val02',title: '2019年预算',align: 'center'},
                            { field: 'val03',title: '实际执行数',align: 'center'},
                            { field: 'val04',title: '预算执行率%',align: 'center'}
                    ]]
                    TableReload(arr)
                }
                if(name=="招待费"){
                    var arr=[[
                        { field:"val01",title:"部门",rowspan:"3",align:'center' },
                        { title:"招待费",colspan:"6",align:'center' }
                    ],[
                        { title:"商务接待",colspan:"3",align:'center' },
                        { title:"公务接待",colspan:"3",align:'center' }
                    ],[
                        { field: 'val02',title: '2019年预算',align: 'center'},
                        { field: 'val03',title: '实际执行数',align: 'center'},
                        { field: 'val04',title: '预算执行率%',align: 'center'},
                        { field: 'val05',title: '2019年预算%',align: 'center'},
                        { field: 'val06',title: '实际执行数%',align: 'center'},
                        { field: 'val07',title: '预算执行率%',align: 'center'}
                    ]]
                    TableReload(arr)
                }
            }
            function TableReload(cols){
                // 表格实例化
                tableObj = table.render({
                    elem: '#data_table',
                    id:'data_table',
                    title: '部门费用预算表',
                    cols: cols,
                    cellMinWidth: 100,
                    toolbar: '#toolbar',
                    defaultToolbar: ['exports'],
                    totalRow: false ,
                    page: true ,
                    limit: 50 ,
                    limits: [50, 100, 200, 1000] ,
                    skin: 'line',
                    data: [],
                    even: true
                });
            }

后面表头数据就完美解决了
之前用表格重载的方法table.reload(); 解决不了
后面用控制DOM 节点的方法 每次删除再添加 还是报错
借鉴:https://www.cnblogs.com/yysbolg/p/10654281.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值