From d220894e818dae17ad1c13829c70eed7da4aa4dd Mon Sep 17 00:00:00 2001 From: Liril Date: Thu, 16 Feb 2017 14:48:52 +0800 Subject: [PATCH] Table: Fix wrong header with fixed right columns. --- packages/table/src/table-header.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/table/src/table-header.js b/packages/table/src/table-header.js index be7e416f5..7593e21ef 100644 --- a/packages/table/src/table-header.js +++ b/packages/table/src/table-header.js @@ -26,13 +26,9 @@ const convertToRows = (originColumns) => { } } if (column.children) { - let childrenMax = 1; let colSpan = 0; column.children.forEach((subColumn) => { - const temp = traverse(subColumn, column); - if (temp > childrenMax) { - childrenMax = temp; - } + traverse(subColumn, column); colSpan += subColumn.colSpan; }); column.colSpan = colSpan; @@ -105,7 +101,7 @@ export default { on-mouseout={ this.handleMouseOut } on-mousedown={ ($event) => this.handleMouseDown($event, column) } on-click={ ($event) => this.handleHeaderClick($event, column) } - class={ [column.id, column.order, column.headerAlign, column.className || '', rowIndex === 0 && this.isCellHidden(cellIndex) ? 'is-hidden' : '', !column.children ? 'is-leaf' : ''] }> + class={ [column.id, column.order, column.headerAlign, column.className || '', rowIndex === 0 && this.isCellHidden(cellIndex, columns) ? 'is-hidden' : '', !column.children ? 'is-leaf' : ''] }>
0 ? 'highlight' : ''] }> { column.renderHeader @@ -225,11 +221,15 @@ export default { }, methods: { - isCellHidden(index) { + isCellHidden(index, columns) { if (this.fixed === true || this.fixed === 'left') { return index >= this.leftFixedCount; } else if (this.fixed === 'right') { - return index < this.columnsCount - this.rightFixedCount; + let before = 0; + for (let i = 0; i < index; i++) { + before += columns[i].colSpan; + } + return before < this.columnsCount - this.rightFixedCount; } else { return (index < this.leftFixedCount) || (index >= this.columnsCount - this.rightFixedCount); }