Browse Source

Table: called render header in index column (#12914)

hetech 6 years ago
parent
commit
6b76896c40
2 changed files with 13 additions and 9 deletions
  1. 11 8
      packages/table/src/table-column.js
  2. 2 1
      packages/table/src/table-header.js

+ 11 - 8
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;
 

+ 2 - 1
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 }>
                       <div class={ ['cell', column.filteredValue && column.filteredValue.length > 0 ? 'highlight' : '', column.labelClassName] }>
                         {
                           column.renderHeader