分页打印el-table时如何为每一页增加表头

我们都知道eltable为了实现这个表头的

浮动

他把上面的表头和下面的表格的内容

分别放在了两个DIV里面

所以我们没办法像上期视频那样

在打印el-table的时候

让他每一页都含有这个

表头

那我们应该怎么处理呢

首先哈

我们先想办法把这个表头复制一份

放到下边

所以呢我们可以这样

打开上面我已经写了一个 ref=mytable

我们在这啊

先取到这个

表头他那个表头在哪呢

我们来看一下

打开这个t害的

他在的DNA为叫e l table hyder挖牌

所以呢我们先把它复制过来

this.$refs.mytable

然后.$el(找到dom节点)

然后querySelector

呢把这个拿过来样式里面的thead

好我们打印一下试试

把它放到一个thead变量里

然后呢我们打印一下thead的innerHTML

来看一下

大家看,innerHTML里面是空的

为什么呢

因为啊我们需要把它放到nextTick里面

我们再来试一下

大家看 这就有了

然后我们把这个thead克隆一份儿

然后我们把这theadNew放到哪呢

放到下面这个DIV

放到这个table里

这个table在哪呢

在这个包的wapper这个点位里面

把这块复制一下

粘贴然后呢把这块换成包里外边

然后这块呢换成table

放到table里面

直接点apan的

theadNew

好我们再来试一下啊

大家看 已经可以了

已经有两thead了

那这两个里面

一个是我们刚加的

一个是他原来的

我们要把它正常显示的时候呢

把我们刚加的这个隐藏掉

所以呢我们要用样式在这

点 el-table

就是这个

大的这个table

然后它里面的

body-wapper table

这个点

里面的thead

我们把它display:none

我们先不刷新啊

看一下他现在显示的时候

dissplay值是什么

找到这个thead

大家看 display等于table-header-group

所以啊

一会我们显示的时候得用这个值

好我们先看一下隐藏了没有

大家看 隐藏了

然后呢我们需要在打印的时候

再给他显示出来

所以这块是要用媒体查询

madia print 在打印的时候呢

还是这个

只不过呢我们要把这块换成刚才这个

对吧

我们来试一下

打开打印的时候可以了

但是打印的时候还要把原来的这个

thead隐藏掉

所以呢这个就简单了我们直接把这个

隐藏掉就行了

加e r

table

第二卡display等于呢

我们再来试一下

刷新打印

好这样就可以了 大家看

但是呢如果项目里比较多的地方

会用到这种情况

怎么办呢

不能每个页面都这样写一遍对吧

所以呢我们可以封装一个组件

这个我已经写好了啊其实特别简单

写一个vue文件

然后呢继承字elementUI的这个table

然后我们在mounted的里边

直接把刚才这段代码拿过来

只是呢我们不用挂载ref了

直接用this.$el

就可以取到这个dom节点

然后呢把这个样式拿过来就可以了

然后呢再把它注册到

这个全局的组件里边

我起起了个名叫ELTable

然后再用的页面呢

大家看这是另一个页面啊

我们正常是叫

我把它还原过来el-table

就这个页面

我们打印一下

大家看正常情况下他是被截断的

然后呢我们只需要把它改成el-table

我们再来试一下

打开这样就可以了

其他的什么改动都不用动了

大家看我下边什么都没有了

关于这个el-table3的这个代码啊

也不多

我把它也放到了GitHub的这个

Gist的文件(代码段)里边了

那很多同学说找不到我分享的代码段

大家可以直接敲这个地址就可以了哈

大家看,把这个去掉

直接敲这个地址

然后在这里边

就有我之前分享的一些代码段

最后更新于