element table 自定义列 + 固定列 导致显示问题

一、需求

    使用element-ui 的 table组件实现自定义列 + 固定列功能
    这里只有解决方案,没有追根溯源,为啥嘞? 因为我菜 T.T

二、解决方案

    直接上才艺
    ①动态切换表格时,(随机性的)导致固定列塌陷(固定列的内容会坠下来),使用doLayout() 方法解决,具体如下:
    在 vue的 updated 中调用即可,也有在mounted,beforeUpdate中调用的,自行尝试。

updated() {
    this.$refs.table.doLayout()
  }

    1
    2
    3

    ②解决了上述问题后 可能还会遇到这个问题:动态切换表头时,table发生闪烁问题,
    这边时直接设置 table 的 .cell样式的高度给一个固定值,具体如下

//重写表格样式,不在自动计算,解决表格渲染时闪烁问题
//不写这个使用v-if重新渲染表格的时候会再次计算下宽高,导致了抖动div高度=table容器高度/行数
// -----取自某位老哥的分析
.el-table .cell {
    height: 25px!important;
  }

    1
    2
    3
    4
    5
    6

    ③表格自适应高度,我这边简单的提供一个思路的,因为我觉得我的实现不是最优解
    我们通过实践发现,当table组件有height 或者 max-height的时候才会出现纵向滚动条,但是我们实际的业务需求和开发中,表格的高度往往需要自适应高度,如果手动为table body加滚动,就会出现固定列不随表格内容滚动情况,
    解决方案如下: 动态设置table组件的height的属性值

:height="maxHeight"

this.maxHeight = this.$refs.table.$el.getBoundingClientRect().height

    1
    2
    3

    具体的api呀 方法啥的 都可以自己找的 不一定非要我这个写法,主要是思路:动态的赋予height的值就ok了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值