element-ui 表格打印

简介: element-ui 表格打印

更多文章

打印需要用到的组件为 print-js

普通表格打印

一般的表格打印直接仿照组件提供的例子就可以了。

printJS({
    printable: id, // DOM id
    type: 'html',
    scanStyles: false,
})

element-ui 表格打印

element-ui 的表格,表面上看起来是一个表格,实际上是由两个表格组成的。

表头为一个表格,表体又是个表格,这就导致了一个问题:打印的时候表体和表头错位。

另外,在表格出现滚动条的时候,也会造成错位。

解决方案

我的思路是将两个表格合成一个表格,print-js 组件打印的时候,实际上是把 id 对应的 DOM 里的内容提取出来打印。

所以,在传入 id 之前,可以先把表头所在的表格内容提取出来,插入到第二个表格里,从而将两个表格合并,这时候打印就不会有错位的问题了。

function printHTML(id) {
    const html = document.querySelector('#' + id).innerHTML
    // 新建一个 DOM
    const div = document.createElement('div')
    const printDOMID = 'printDOMElement'
    div.id = printDOMID
    div.innerHTML = html
    // 提取第一个表格的内容 即表头
    const ths = div.querySelectorAll('.el-table__header-wrapper th')
    const ThsTextArry = []
    for (let i = 0, len = ths.length; i < len; i++) {
        if (ths[i].innerText !== '') ThsTextArry.push(ths[i].innerText)
    }
    // 删除多余的表头
    div.querySelector('.hidden-columns').remove()
    // 第一个表格的内容提取出来后已经没用了 删掉
    div.querySelector('.el-table__header-wrapper').remove()
    // 将第一个表格的内容插入到第二个表格
    let newHTML = '<tr>'
    for (let i = 0, len = ThsTextArry.length; i < len; i++) {
        newHTML += '<td style="text-align: center; font-weight: bold">' + ThsTextArry[i] + '</td>'
    }
目录
相关文章
|
5天前
|
编解码
element-ui 表格滚动条(不同分辨率)自适应问题;
element-ui 表格滚动条(不同分辨率)自适应问题;
55 1
|
5天前
|
JavaScript
vue element-ui中有关表格中的数据整条显示红色/绿色等等颜色的问题
vue element-ui中有关表格中的数据整条显示红色/绿色等等颜色的问题
31 1
|
5天前
|
JavaScript
vue中有关表格中的表格头中添加悬浮提示的ui问题
vue中有关表格中的表格头中添加悬浮提示的ui问题
64 0
|
7月前
|
编解码 前端开发 API
SAP UI5 里响应式表格的 minScreenWidth 属性讲解
SAP UI5 里响应式表格的 minScreenWidth 属性讲解
30 0
SAP UI5 里响应式表格的 minScreenWidth 属性讲解
|
5天前
|
JavaScript
vue中有关表格中的表格头中添加悬浮提示的ui问题
vue中有关表格中的表格头中添加悬浮提示的ui问题
20 1
|
5天前
【UI】 element ui 表格没有数据时用--填充
【UI】 element ui 表格没有数据时用--填充
22 2
|
5天前
【UI】 vue2 修改elementui 表格table 为空时暂无数据样式
【UI】 vue2 修改elementui 表格table 为空时暂无数据样式
34 1
|
5天前
基于sortablejs实现拖拽element-ui el-table表格行进行排序
基于sortablejs实现拖拽element-ui el-table表格行进行排序
|
5天前
|
XML JSON 开发框架
基于 OData 模型和 JSON 模型的 UI5 表格控件行项目的添加和删除实现
基于 OData 模型和 JSON 模型的 UI5 表格控件行项目的添加和删除实现
21 1
|
5天前
element-ui实现表格单选的功能
element-ui实现表格单选的功能
15 0

热门文章

最新文章