element [Bug Report] Table组件里的bodyHeight计算逻辑有误

p8ekf7hl  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(47)

Element UI version

2.15.14

OS/Browsers version

Windows/Chrome lastest

Vue version

2.7.16

https://codepen.io/YagamiNewLight/pen/eYXZvpK

Steps to reproduce

需求很简单:
在一个固定高度的容器中,有两个元素A和B
A的高度可能会动态变化,现在要求让B的高度沾满容器剩余高度
这里的A元素就是一个红框,B元素就是一个饿了么的Table
但是当你开始横向滚动table到最右侧的时候,列头和列表的内容直接就对不齐了

What is Expected?

滚动到最右侧的时候,最后一列的table head和body内容对齐

What is actually happening?

滚动到最右侧的时候,最后一列的table head和body内容没有对齐

4uqofj5v

4uqofj5v1#

Bug原因分析:因为el-table没有传height属性(因为我用css设置成了动态的),导致

导致这里if的逻辑判断失败,this.bodyHeight的值为初始化的空对象,进而导致下面的判断为false,

进而导致这里this.scrollY为fasle,进而由于以下逻辑导致在滚动的时候th的gutter宽度为0,造成了上述bug

建议修复方式:把第一张图里的if判断去掉,这样就能永远根据dom的真实height来判断是否需要此处的gutter,而不是根据用户传没传height来判断

相关问题