Table: fixed row-style with display not work (#17002)

pull/17372/head
Cr 2019-09-06 15:46:25 +08:00 committed by hetech
parent 90c5d74fd3
commit 069d96a857
2 changed files with 13 additions and 5 deletions

View File

@ -321,9 +321,13 @@ export default {
rowClasses.push('el-table__row--level-' + treeRowData.level); rowClasses.push('el-table__row--level-' + treeRowData.level);
display = treeRowData.display; display = treeRowData.display;
} }
// 指令 v-show 会覆盖 row-style 中 display
// 使用 :style 代替 v-show https://github.com/ElemeFE/element/issues/16995
let displayStyle = display ? null : {
display: 'none'
};
return (<tr return (<tr
v-show={display} style={ [displayStyle, this.getRowStyle(row, $index)] }
style={ this.getRowStyle(row, $index) }
class={ rowClasses } class={ rowClasses }
key={ this.getKeyOfRow(row, $index) } key={ this.getKeyOfRow(row, $index) }
on-dblclick={ ($event) => this.handleDoubleClick($event, row) } on-dblclick={ ($event) => this.handleDoubleClick($event, row) }

View File

@ -182,7 +182,7 @@ describe('Table', () => {
methods: { methods: {
tableRowStyle({row, rowIndex}) { tableRowStyle({row, rowIndex}) {
if (rowIndex === 1) { if (rowIndex === 1) {
return { height: '60px' }; return { height: '60px', display: 'none' };
} }
return null; return null;
@ -191,8 +191,12 @@ describe('Table', () => {
}); });
setTimeout(_ => { setTimeout(_ => {
expect(vm.$el.querySelector('.el-table__body tr:nth-child(1)').style.height).to.equal(''); let child1 = vm.$el.querySelector('.el-table__body tr:nth-child(1)');
expect(vm.$el.querySelector('.el-table__body tr:nth-child(2)').style.height).to.equal('60px'); let child2 = vm.$el.querySelector('.el-table__body tr:nth-child(2)');
expect(child1.style.height).to.equal('');
expect(child1.style.display).to.equal('');
expect(child2.style.height).to.equal('60px');
expect(child2.style.display).to.equal('none');
destroyVM(vm); destroyVM(vm);
done(); done();
}, DELAY); }, DELAY);