太坑了,百度了所有都找不到的答案,elementui的table的多级表头固定前n列的问题
【太坑了,百度了所有都找不到的答案,elementui的table的多级表头固定前n列的问题】废话不多说,先看效果如下,我固定的是前三列,复杂表头渲染,是我前一章节说的(https://segmentfault.com/a/11...)
文章图片
1、elementui的table的多级表头固定前n列(注意:n列是根据width来固定的)的问题所在
1.1 发现给了el-column固定宽度,和fixed属性后,其他没有这两个属性的el-column部分被加上了is-hidden的类名(这个要浏览器控制台查看html结构代码才知道),导致页面渲染的数据被隐藏了,所以要想办法去掉这个类名
1.2 经过查看html结构后,使用jquery去掉is-hidden类名(没有想到更好的办法,有其他办法的大神希望能点拔我一下)
2、解决的办法:
2.1 核心代码:
this.$nextTick(() => {
// 如果不是固定列用这个
let myTrList = $('.kingChangeHead .el-table__header .has-gutter tr');
// 第一行表头(表头的样式)
let colorTr = myTrList.eq(0);
let colorTh = colorTr.find('th').eq(0);
$(colorTh).removeClass('is-hidden');
$(colorTh)
.find('.cell')
.css({ color: '#000', 'font-size': '18px', 'font-weight': 'bold' });
/**
* @Date: 2021-08-17
* @author @拿菜刀砍电线
* @Description:为了解决elementui的复杂表头,固定前三列的问题
* 问题分析1、发现给了固定宽度,和fixed属性后,没有固定的部分被加上了is-hidden的类名,导致页面数据被隐藏了,所以要想办法去掉这个类名
* 2、经过查看html结构后,使用jquery去掉is-hidden类名
*/
let kingBody = $('.kingChangeHead .el-table__body-wrapper .el-table__body tr');
kingBody.each(function(index, domEle) {
$(domEle)
.find('td')
.each(function(index1, domEle1) {
$(domEle1).removeClass('is-hidden');
});
});
if (this.$refs.mutipleTable !== undefined) {
this.$refs.mutipleTable.doLayout();
}
});
2.2 全部代码:
查询
导出
全屏显示
各区排名
第一
项目个数各区排名
最后
项目个数{{ scope.row.type }}
{{ scope.row.daySale[key][key2][index1]['value'] }}
.changeElBoCoSt {
.el-table .cell {
color: #333;
}
.el-table__header {
// border-right: 1px solid #000;
border-top: 1px solid #000;
border-left: 1px solid #000;
}
.el-table__body {
// border-right: 1px solid #000;
// border-bottom: 1px solid #000;
border-left: 1px dashed #000;
}.el-table--border td {
border-right: 1px dashed #000;
}
.el-table--border th {
border-right: 1px solid #000;
}
.el-table__body-wrapper .el-table--border.is-scrolling-left ~ .el-table__fixed {
border-right: 1px dashed #000;
}.el-table--border th {
border-bottom: 1px solid #000;
}.el-table__fixed-right-patch {
border-bottom: 1px dashed #000;
}.el-table td {
border-bottom: 1px dashed #000;
}
.el-table th.is-leaf {
border-bottom: 1px solid #000;
}.el-table__header tr,
.el-table__header th {
background-color: #ffc000 !important;
}
// // body的每一行的最后一个单元格
// .el-table__body tr td:last-child {
//border-right: 1px solid #000;
// }
// // body的最后一行
// .el-table__body tr:last-child td {
//border-bottom: 1px solid #000;
// }
// //(刚好最后两行的第一列有合并才要这个)
// .el-table__body tr:first-child td:first-child {
//border-bottom: 1px solid #000;
// }// 双下划线(表体)
// .kingRowIndex td {
//border-bottom: 2px solid #000000 !important;
// }
// 表头
// .kingRowIndex1 {
//border-right: 2px solid #000000 !important;
// }
}
推荐阅读
- 热闹中的孤独
- 2018-02-06第三天|2018-02-06第三天 不能再了,反思到位就差改变
- 尽力
- 你到家了吗
- 这辈子我们都不要再联系了
- 死结。
- 我从来不做坏事
- 时间老了
- 喂,你结婚我给你随了个红包
- 赢在人生六项精进二阶Day3复盘