layui table 打印表格

摘要:
例如,layui的表单打印方法是将表单的数据重新组合成新页面,但它只能打印当前页面的内容。仅仅说实话是不够的。我整个上午都找到了一些,并说他们自己换了,但他们并不满意。这没用。我只能打印当前页面的内容。我的想法是编写一个函数,传递显示的列和要打印的数据,然后直接打印。不要胡说八道。直接转到代码。

如题,layui 的表格打印的方式是将表格的数据重新组合成一个新页面,但是只能打印当前页面的内容,讲真不够用,找了一上午找了一些说是自己改的,但是都不满意,没什么用,还是只能打印当前页的内容,我的想法是写一个函数,传递显示的列和需要打印的数据,直接打印。就像某些同学要的那种打印全部数据吧。废话不多说了,直接上代码吧。

var cols = [[
                    {type: 'checkbox'}
                    ,{field:'id', title:'ID'}
                    ,{field:'title', title:'标题'}
                    ,{field:'short_title', title:'短标题'}
                    ,{field:'keyword', title:'关键字'}
                    ,{field:'seo_title', title:'seo标题'}
                    ,{field:'seo_keyword', title:'seo关键字'}
                    ,{field:'thumbnail', title:'缩略图'}
                    ,{field:'date', title:'显示时间'}
                    ,{field:'views', title:'观看次数'}
                    ,{field: 'sort', title:'排序'}
                    ,{field: 'create_time', title:'创建时间'}
                    ,{field: 'lb', title:'类别'}
                    ,{field: 'zhiding', title:'置顶'}
                    ,{title:'操作', toolbar: '#barDemo'}
                ]];
table.on('toolbar(table)',function(obj){
            if(obj.event == 'LAYTABLE_TIPS')(obj.event == 'print2'){
                $.ajax({
                    url:'/admin/articleAll',
                    type:'get',
                    success:res=>{
                        print(res,cols)
                    }
                })
            }
        })
function print (res,cols)
        {
            var v = document.createElement("div");
            var f = ["<head>", "<style>", "body{font-size: 12px; color: #666;}", "table{ 100%; border-collapse: collapse; border-spacing: 0;}", "th,td{line-height: 20px; padding: 9px 15px; border: 1px solid #ccc; text-align: left; font-size: 12px; color: #666;}", "a{color: #666; text-decoration:none;}", "*.layui-hide{display: none}", "</style>", "</head>"].join("");
            thead = `<h1 style="text-align: center;">这是标题</h1><table><thead><tr>`
            for(let v2 of cols[0]){
                if((v2.type == 'checkbox') || v2.hasOwnProperty('toolbar')){
                    thead += `<th class="layui-table-col-special">空列</th>`
                }else{
                    thead += `<th>${v2.title}</th>`
                }
            }
            thead += `</tr></thead></table>`
            $(v).append(thead);
            var tr = `<tbody>`
            for(let v of res){
                tr += '<tr>'
                for(let v2 of cols[0]){
                    if((v2.type == 'checkbox') || v2.hasOwnProperty('toolbar')){
                        tr += `<td class="layui-table-col-special"></td>`
                    }else{
                        var field = v2.field ?? 'id'
                        tr += `<td>${v[field]}</td>`
                    }
                }
                tr += '</tr></tbody>'
            }
            $(v).find('tr').after(tr)
            $(v).find("th.layui-table-patch").remove();
            $(v).find(".layui-table-col-special").remove();
            var h = window.open("打印窗口", "_blank");
            h.document.write(f + $(v).prop("outerHTML"));
            h.document.close();
            h.print();
            h.close();
        }

免责声明:文章转载自《layui table 打印表格》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇es6 proxy浅析HTML中canvas的大小调整下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Mock 基本使用

特殊的格式,例如IP,随机数,图片,地址,需要去收集二、mock优点1、前后端分离让前端工程师独立于后端进行开发。表示需要拦截的Ajax请求类型。表示数据模板,可以是对象或字符串。表示用于生成响应数据的函数。...

android studio如何查看数据库文件

Android Studio可以通过两种方式查看数据库文件:1。SQLCOUT优点:功能强大。缺点:解决麻烦。2.Android DeviceMonitor中FileExpoler的优点:免费缺点:需要导出数据库并使用数据库可视化工具查看;手机需要root获得su权限,并通过adb命令修改/data/data/data下数据库文件的访问权限。具体修改方法:...

postgresql笔记

一旦任何有价值的对象被转移到新所有者,可以使用DROPOWNED命令删除被删除角色所拥有的任何剩余对象。此外,DROPOWNED不会删除整个数据库或表空间。因此,如果角色有任何尚未转移到新所有者的数据库或表空间,则需要手动删除它们。DROPOWNED还将注意到,对于不属于目标角色的对象,删除授予目标角色的任何特权。因为REASSIGNOWNED不会接触这些对...

Kafka监控工具——Kafka-Eagle

Kafka监控工具官网https://www.kafka-eagle.org/是什么KafkaEagle是一款用于监控和管理ApacheKafka的完全开源系统,目前托管在Github,由笔者和一些开源爱好者共同维护。而且,在使用消费者API时,尽量#客户端KafkaAPI版本和Kafka服务端的版本保持#一致性。...

【问题】如何批量导出AI文件里内嵌的图片

截止目前为止,新版的AI里面没有直接可以批量导出内嵌图片的选项,手动一个个导出实在太麻烦了。有人说用Phantasm插件可以导出,但新版的找不到对应支持的插件版本,所以这里就不说了。这里介绍一种简单粗暴的方法。...

vue+jspdf+html2canvas导出PDF文件

没有废话。首先,查看最终打印结果。我说最后打印的pdf文件看起来像这样。pdf文件的分页是通过设置jspdf实现的,但我暂时无法对文件内容进行分页。因为我们首先将需要打印的元素转换为画布,然后将画布转换为图像,然后将图像转换为pdf文件。...