diff --git a/packages/table/src/table-column.js b/packages/table/src/table-column.js index 650afda72..60f9971ab 100644 --- a/packages/table/src/table-column.js +++ b/packages/table/src/table-column.js @@ -280,16 +280,19 @@ export default { }); let source = forced[type] || {}; - for (let prop in source) { - if (source.hasOwnProperty(prop)) { - let value = source[prop]; - if (value !== undefined) { - column[prop] = prop === 'className' - ? `${column[prop]} ${value}` - : value; + Object.keys(source).forEach((prop) => { + let value = source[prop]; + if (value !== undefined) { + if (prop === 'renderHeader') { + if (type === 'selection' && column[prop]) { + console.warn('[Element Warn][TableColumn]Selection column doesn\'t allow to set render-header function.'); + } else { + value = column[prop] || value; + } } + column[prop] = prop === 'className' ? `${column[prop]} ${value}` : value; } - } + }); this.columnConfig = column; diff --git a/packages/table/src/table-header.js b/packages/table/src/table-header.js index e08fc944b..4d007036b 100644 --- a/packages/table/src/table-header.js +++ b/packages/table/src/table-header.js @@ -106,7 +106,8 @@ export default { on-click={ ($event) => this.handleHeaderClick($event, column) } on-contextmenu={ ($event) => this.handleHeaderContextMenu($event, column) } style={ this.getHeaderCellStyle(rowIndex, cellIndex, columns, column) } - class={ this.getHeaderCellClass(rowIndex, cellIndex, columns, column) }> + class={ this.getHeaderCellClass(rowIndex, cellIndex, columns, column) } + key={ column.id }>