vxe-table 3.18.1 → 3.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/src/column.js +2 -0
  6. package/es/table/src/columnInfo.js +1 -0
  7. package/es/table/src/footer.js +7 -5
  8. package/es/table/src/header.js +67 -28
  9. package/es/table/src/methods.js +233 -39
  10. package/es/table/src/props.js +23 -6
  11. package/es/table/src/table.js +43 -19
  12. package/es/table/src/util.js +70 -2
  13. package/es/table/style.css +11 -17
  14. package/es/table/style.min.css +1 -1
  15. package/es/ui/index.js +1 -1
  16. package/es/ui/src/log.js +1 -1
  17. package/es/vxe-table/style.css +11 -17
  18. package/es/vxe-table/style.min.css +1 -1
  19. package/lib/index.css +1 -1
  20. package/lib/index.min.css +1 -1
  21. package/lib/index.umd.js +482 -94
  22. package/lib/index.umd.min.js +1 -1
  23. package/lib/style.css +1 -1
  24. package/lib/style.min.css +1 -1
  25. package/lib/table/src/column.js +2 -0
  26. package/lib/table/src/column.min.js +1 -1
  27. package/lib/table/src/columnInfo.js +1 -0
  28. package/lib/table/src/columnInfo.min.js +1 -1
  29. package/lib/table/src/footer.js +7 -5
  30. package/lib/table/src/header.js +82 -25
  31. package/lib/table/src/header.min.js +1 -1
  32. package/lib/table/src/methods.js +259 -42
  33. package/lib/table/src/methods.min.js +1 -1
  34. package/lib/table/src/props.js +11 -3
  35. package/lib/table/src/props.min.js +1 -1
  36. package/lib/table/src/table.js +46 -16
  37. package/lib/table/src/table.min.js +1 -1
  38. package/lib/table/src/util.js +74 -2
  39. package/lib/table/src/util.min.js +1 -1
  40. package/lib/table/style/style.css +11 -17
  41. package/lib/table/style/style.min.css +1 -1
  42. package/lib/ui/index.js +1 -1
  43. package/lib/ui/index.min.js +1 -1
  44. package/lib/ui/src/log.js +1 -1
  45. package/lib/ui/src/log.min.js +1 -1
  46. package/lib/vxe-table/style/style.css +11 -17
  47. package/lib/vxe-table/style/style.min.css +1 -1
  48. package/package.json +1 -1
  49. package/packages/table/src/column.ts +4 -2
  50. package/packages/table/src/columnInfo.ts +1 -0
  51. package/packages/table/src/footer.ts +11 -9
  52. package/packages/table/src/header.ts +76 -34
  53. package/packages/table/src/methods.ts +245 -40
  54. package/packages/table/src/props.ts +29 -12
  55. package/packages/table/src/table.ts +53 -16
  56. package/packages/table/src/util.ts +76 -2
  57. package/styles/components/table.scss +33 -55
  58. /package/es/{iconfont.1756272539382.ttf → iconfont.1756452257212.ttf} +0 -0
  59. /package/es/{iconfont.1756272539382.woff → iconfont.1756452257212.woff} +0 -0
  60. /package/es/{iconfont.1756272539382.woff2 → iconfont.1756452257212.woff2} +0 -0
  61. /package/lib/{iconfont.1756272539382.ttf → iconfont.1756452257212.ttf} +0 -0
  62. /package/lib/{iconfont.1756272539382.woff → iconfont.1756452257212.woff} +0 -0
  63. /package/lib/{iconfont.1756272539382.woff2 → iconfont.1756452257212.woff2} +0 -0
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.columnWatch=exports.columnProps=void 0;var _cell=_interopRequireDefault(require("./cell")),_comp=require("../../ui/src/comp"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let columnProps=exports.columnProps={colId:[String,Number],type:String,field:String,title:String,width:[Number,String],minWidth:[Number,String],maxWidth:[Number,String],resizable:{type:Boolean,default:null},fixed:String,align:String,headerAlign:String,footerAlign:String,showOverflow:{type:[Boolean,String],default:null},showHeaderOverflow:{type:[Boolean,String],default:null},showFooterOverflow:{type:[Boolean,String],default:null},className:[String,Function],headerClassName:[String,Function],footerClassName:[String,Function],formatter:[Function,Array,String],footerFormatter:[Function,Array,String],padding:{type:Boolean,default:null},verticalAlign:{type:String,default:null},sortable:Boolean,remoteSort:{type:Boolean,default:null},sortBy:[String,Function],sortType:String,sortMethod:Function,filters:{type:Array,default:null},filterMultiple:{type:Boolean,default:!0},filterMethod:Function,filterResetMethod:Function,filterRecoverMethod:Function,filterRender:Object,rowGroupNode:Boolean,treeNode:Boolean,dragSort:Boolean,rowResize:Boolean,visible:{type:Boolean,default:null},headerExportMethod:Function,exportMethod:Function,footerExportMethod:Function,titleHelp:Object,titlePrefix:Object,titleSuffix:Object,cellType:String,cellRender:Object,editRender:Object,contentRender:Object,aggFunc:[String,Boolean],params:Object},columnWatch=exports.columnWatch={};Object.keys(columnProps).forEach(o=>{columnWatch[o]=function(e){var t=this.$xeTable;this.columnConfig.update(o,e),t&&("filters"===o?(t.setFilter(this.columnConfig,e),t.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(o)&&t.handleRefreshColumnQueue())}});var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColumn",props:columnProps,provide(){return{$xeColumn:this,$xeGrid:null,$xeGantt:null}},inject:{$xeTable:{default:null},$xeColumn:{default:null}},watch:columnWatch,created(){var e=this.$xeTable;this.columnConfig=this.createColumn(e,this)},mounted(){this.columnConfig.slots=this.$scopedSlots,(0,_util.assembleColumn)(this)},destroyed(){(0,_util.destroyColumn)(this)},render(e){return e("div",this.$slots.default)},methods:_cell.default});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.columnWatch=exports.columnProps=void 0;var _cell=_interopRequireDefault(require("./cell")),_comp=require("../../ui/src/comp"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let columnProps=exports.columnProps={colId:[String,Number],type:String,field:String,title:String,width:[Number,String],minWidth:[Number,String],maxWidth:[Number,String],resizable:{type:Boolean,default:null},fixed:String,align:String,headerAlign:String,footerAlign:String,showOverflow:{type:[Boolean,String],default:null},showHeaderOverflow:{type:[Boolean,String],default:null},showFooterOverflow:{type:[Boolean,String],default:null},className:[String,Function],headerClassName:[String,Function],footerClassName:[String,Function],formatter:[Function,Array,String],headerFormatter:[Function,Array,String],footerFormatter:[Function,Array,String],padding:{type:Boolean,default:null},verticalAlign:{type:String,default:null},sortable:Boolean,remoteSort:{type:Boolean,default:null},sortBy:[String,Function],sortType:String,sortMethod:Function,filters:{type:Array,default:null},filterMultiple:{type:Boolean,default:!0},filterMethod:Function,filterResetMethod:Function,filterRecoverMethod:Function,filterRender:Object,rowGroupNode:Boolean,treeNode:Boolean,dragSort:Boolean,rowResize:Boolean,visible:{type:Boolean,default:null},headerExportMethod:Function,exportMethod:Function,footerExportMethod:Function,titleHelp:Object,titlePrefix:Object,titleSuffix:Object,cellType:String,cellRender:Object,editRender:Object,contentRender:Object,aggFunc:[String,Boolean],params:Object},columnWatch=exports.columnWatch={};Object.keys(columnProps).forEach(o=>{columnWatch[o]=function(e){var t=this.$xeTable;this.columnConfig.update(o,e),t&&("filters"===o?(t.setFilter(this.columnConfig,e),t.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(o)&&t.handleRefreshColumnQueue())}});var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColumn",props:columnProps,provide(){return{$xeColumn:this,$xeGrid:null,$xeGantt:null}},inject:{$xeTable:{default:null},$xeColumn:{default:null}},watch:columnWatch,created(){var e=this.$xeTable;this.columnConfig=this.createColumn(e,this)},mounted(){this.columnConfig.slots=this.$scopedSlots,(0,_util.assembleColumn)(this)},destroyed(){(0,_util.destroyColumn)(this)},render(e){return e("div",this.$slots.default)},methods:_cell.default});
@@ -104,6 +104,7 @@ class ColumnInfo {
104
104
  headerClassName: _vm.headerClassName,
105
105
  footerClassName: _vm.footerClassName,
106
106
  formatter,
107
+ headerFormatter: _vm.headerFormatter,
107
108
  footerFormatter: _vm.footerFormatter,
108
109
  padding: _vm.padding,
109
110
  verticalAlign: _vm.verticalAlign,
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,formats}=_ui.VxeUI;class ColumnInfo{constructor(e,r,{renderHeader:t,renderCell:o,renderFooter:l,renderData:i}={}){var d=e,n=e.$xeGrid,a=e.$xeGantt,s=n||a,{field:u,editRender:f}=r,g=n?n.computeProxyOpts:null,c=r.formatter,p=!_xeUtils.default.isBoolean(r.visible)||r.visible,h=["seq","checkbox","radio","expand","html"];r.type&&-1===h.indexOf(r.type)&&(0,_log.warnLog)("vxe.error.errProp",["type="+r.type,h.join(", ")]),(_xeUtils.default.isBoolean(r.cellRender)||r.cellRender&&!_xeUtils.default.isObject(r.cellRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.cell-render="+r.cellRender,"column.cell-render={}"]),(_xeUtils.default.isBoolean(r.editRender)||r.editRender&&!_xeUtils.default.isObject(r.editRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.edit-render="+r.editRender,"column.edit-render={}"]),"expand"===r.type&&(h=d.treeConfig,h)&&(e.treeOpts.showLine||e.treeOpts.line)&&(0,_log.errLog)("vxe.error.errConflicts",["tree-config.line","column.type=expand"]),r.remoteSort&&(0,_log.warnLog)("vxe.error.delProp",["column.remote-sort","sort-config.remote"]),r.sortMethod&&(0,_log.warnLog)("vxe.error.delProp",["column.sort-method","sort-config.sortMethod"]),c&&(_xeUtils.default.isString(c)?(d=formats.get(c)||_xeUtils.default[c])&&_xeUtils.default.isFunction(d.tableCellFormatMethod||d.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[c]):!_xeUtils.default.isArray(c)||(h=formats.get(c[0])||_xeUtils.default[c[0]])&&_xeUtils.default.isFunction(h.tableCellFormatMethod||h.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[c[0]])),r.aggFunc&&!e.handlePivotTableAggregateData&&!0!==r.aggFunc&&(0,_log.errLog)("vxe.error.errProp",["column.agg-func="+r.aggFunc,"column.agg-func=true"]),u&&f&&(f.startField&&0<=(""+f.startField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.startField="+f.startField]),f.endField)&&0<=(""+f.endField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.endField="+f.endField]),Object.assign(this,{type:r.type,property:r.field,field:u,title:r.title,width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth,resizable:r.resizable,fixed:r.fixed,align:r.align,headerAlign:r.headerAlign,footerAlign:r.footerAlign,showOverflow:r.showOverflow,showHeaderOverflow:r.showHeaderOverflow,showFooterOverflow:r.showFooterOverflow,className:r.className,headerClassName:r.headerClassName,footerClassName:r.footerClassName,formatter:c,footerFormatter:r.footerFormatter,padding:r.padding,verticalAlign:r.verticalAlign,sortable:r.sortable,sortBy:r.sortBy,sortType:r.sortType,sortMethod:r.sortMethod,remoteSort:r.remoteSort,filters:(0,_util.toFilters)(r.filters),filterMultiple:!_xeUtils.default.isBoolean(r.filterMultiple)||r.filterMultiple,filterMethod:r.filterMethod,filterResetMethod:r.filterResetMethod,filterRecoverMethod:r.filterRecoverMethod,filterRender:r.filterRender,rowGroupNode:r.rowGroupNode,treeNode:r.treeNode,dragSort:r.dragSort,rowResize:r.rowResize,cellType:r.cellType,cellRender:r.cellRender,editRender:f,contentRender:r.contentRender,headerExportMethod:r.headerExportMethod,exportMethod:r.exportMethod,footerExportMethod:r.footerExportMethod,titleHelp:r.titleHelp,titlePrefix:r.titlePrefix,titleSuffix:r.titleSuffix,aggFunc:r.aggFunc,params:r.params,id:r.colId||_xeUtils.default.uniqueId("col_"),parentId:null,visible:p,defaultParentId:null,halfVisible:!1,defaultVisible:p,defaultFixed:r.fixed,defaultAggGroup:r.aggGroup,defaultAggFunc:r.aggFunc,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,sortNumber:0,renderSortNumber:0,renderAggFn:"",renderFixed:"",renderVisible:!1,renderWidth:0,renderHeight:0,renderResizeWidth:0,renderAutoWidth:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:t||r.renderHeader,renderCell:o||r.renderCell,renderFooter:l||r.renderFooter,renderData:i,slots:r.slots}),s&&g&&g.beforeColumn&&g.beforeColumn({$table:e,$grid:n,$gantt:a,column:this})}getTitle(){return(0,_utils.getFuncText)(this.title||("seq"===this.type?getI18n("vxe.table.seqTitle"):""))}getKey(){var e=this.type;return this.field||(e?"type="+e:null)}update(e,r){"filters"!==e&&("field"===e&&(this.property=r),this[e]=r)}}exports.ColumnInfo=ColumnInfo;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,formats}=_ui.VxeUI;class ColumnInfo{constructor(e,r,{renderHeader:t,renderCell:o,renderFooter:l,renderData:i}={}){var d=e,n=e.$xeGrid,a=e.$xeGantt,s=n||a,{field:u,editRender:f}=r,g=n?n.computeProxyOpts:null,c=r.formatter,h=!_xeUtils.default.isBoolean(r.visible)||r.visible,p=["seq","checkbox","radio","expand","html"];r.type&&-1===p.indexOf(r.type)&&(0,_log.warnLog)("vxe.error.errProp",["type="+r.type,p.join(", ")]),(_xeUtils.default.isBoolean(r.cellRender)||r.cellRender&&!_xeUtils.default.isObject(r.cellRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.cell-render="+r.cellRender,"column.cell-render={}"]),(_xeUtils.default.isBoolean(r.editRender)||r.editRender&&!_xeUtils.default.isObject(r.editRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.edit-render="+r.editRender,"column.edit-render={}"]),"expand"===r.type&&(p=d.treeConfig,p)&&(e.treeOpts.showLine||e.treeOpts.line)&&(0,_log.errLog)("vxe.error.errConflicts",["tree-config.line","column.type=expand"]),r.remoteSort&&(0,_log.warnLog)("vxe.error.delProp",["column.remote-sort","sort-config.remote"]),r.sortMethod&&(0,_log.warnLog)("vxe.error.delProp",["column.sort-method","sort-config.sortMethod"]),c&&(_xeUtils.default.isString(c)?(d=formats.get(c)||_xeUtils.default[c])&&_xeUtils.default.isFunction(d.tableCellFormatMethod||d.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[c]):!_xeUtils.default.isArray(c)||(p=formats.get(c[0])||_xeUtils.default[c[0]])&&_xeUtils.default.isFunction(p.tableCellFormatMethod||p.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[c[0]])),r.aggFunc&&!e.handlePivotTableAggregateData&&!0!==r.aggFunc&&(0,_log.errLog)("vxe.error.errProp",["column.agg-func="+r.aggFunc,"column.agg-func=true"]),u&&f&&(f.startField&&0<=(""+f.startField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.startField="+f.startField]),f.endField)&&0<=(""+f.endField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.endField="+f.endField]),Object.assign(this,{type:r.type,property:r.field,field:u,title:r.title,width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth,resizable:r.resizable,fixed:r.fixed,align:r.align,headerAlign:r.headerAlign,footerAlign:r.footerAlign,showOverflow:r.showOverflow,showHeaderOverflow:r.showHeaderOverflow,showFooterOverflow:r.showFooterOverflow,className:r.className,headerClassName:r.headerClassName,footerClassName:r.footerClassName,formatter:c,headerFormatter:r.headerFormatter,footerFormatter:r.footerFormatter,padding:r.padding,verticalAlign:r.verticalAlign,sortable:r.sortable,sortBy:r.sortBy,sortType:r.sortType,sortMethod:r.sortMethod,remoteSort:r.remoteSort,filters:(0,_util.toFilters)(r.filters),filterMultiple:!_xeUtils.default.isBoolean(r.filterMultiple)||r.filterMultiple,filterMethod:r.filterMethod,filterResetMethod:r.filterResetMethod,filterRecoverMethod:r.filterRecoverMethod,filterRender:r.filterRender,rowGroupNode:r.rowGroupNode,treeNode:r.treeNode,dragSort:r.dragSort,rowResize:r.rowResize,cellType:r.cellType,cellRender:r.cellRender,editRender:f,contentRender:r.contentRender,headerExportMethod:r.headerExportMethod,exportMethod:r.exportMethod,footerExportMethod:r.footerExportMethod,titleHelp:r.titleHelp,titlePrefix:r.titlePrefix,titleSuffix:r.titleSuffix,aggFunc:r.aggFunc,params:r.params,id:r.colId||_xeUtils.default.uniqueId("col_"),parentId:null,visible:h,defaultParentId:null,halfVisible:!1,defaultVisible:h,defaultFixed:r.fixed,defaultAggGroup:r.aggGroup,defaultAggFunc:r.aggFunc,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,sortNumber:0,renderSortNumber:0,renderAggFn:"",renderFixed:"",renderVisible:!1,renderWidth:0,renderHeight:0,renderResizeWidth:0,renderAutoWidth:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:t||r.renderHeader,renderCell:o||r.renderCell,renderFooter:l||r.renderFooter,renderData:i,slots:r.slots}),s&&g&&g.beforeColumn&&g.beforeColumn({$table:e,$grid:n,$gantt:a,column:this})}getTitle(){return(0,_utils.getFuncText)(this.title||("seq"===this.type?getI18n("vxe.table.seqTitle"):""))}getKey(){var e=this.type;return this.field||(e?"type="+e:null)}update(e,r){"filters"!==e&&("field"===e&&(this.property=r),this[e]=r)}}exports.ColumnInfo=ColumnInfo;
@@ -298,8 +298,9 @@ var _default = exports.default = {
298
298
  elemStore[`${prefix}xSpace`] = _vm.$refs.refFooterXSpace;
299
299
  },
300
300
  destroyed() {
301
- const props = this;
302
- const $xeTable = this.$parent;
301
+ const _vm = this;
302
+ const props = _vm;
303
+ const $xeTable = _vm.$parent;
303
304
  const tableInternalData = $xeTable;
304
305
  const {
305
306
  fixedType
@@ -316,8 +317,9 @@ var _default = exports.default = {
316
317
  elemStore[`${prefix}xSpace`] = null;
317
318
  },
318
319
  render(h) {
319
- const props = this;
320
- const $xeTable = this.$parent;
320
+ const _vm = this;
321
+ const props = _vm;
322
+ const $xeTable = _vm.$parent;
321
323
  const tableProps = $xeTable;
322
324
  const tableReactData = $xeTable;
323
325
  const tableInternalData = $xeTable;
@@ -436,6 +438,6 @@ var _default = exports.default = {
436
438
  */
437
439
  h('tfoot', {
438
440
  ref: 'refFooterTFoot'
439
- }, renderHeads(h, this, isOptimizeMode, renderColumnList))])])]);
441
+ }, renderHeads(h, _vm, isOptimizeMode, renderColumnList))])])]);
440
442
  }
441
443
  };
@@ -14,7 +14,7 @@ const {
14
14
  renderEmptyElement
15
15
  } = _ui.VxeUI;
16
16
  const cellType = 'header';
17
- const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
17
+ function renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIndex, cols) {
18
18
  const props = _vm;
19
19
  const $xeTable = _vm.$parent;
20
20
  const $xeGrid = $xeTable.$xeGrid;
@@ -28,6 +28,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
28
28
  const {
29
29
  resizable: allResizable,
30
30
  columnKey,
31
+ showCustomHeader,
31
32
  headerCellClassName,
32
33
  headerCellStyle,
33
34
  showHeaderOverflow: allColumnHeaderOverflow,
@@ -41,11 +42,14 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
41
42
  scrollXLoad,
42
43
  scrollYLoad,
43
44
  overflowX,
45
+ mergeHeadFlag,
44
46
  tableColumn
45
47
  } = tableReactData;
46
48
  const {
47
49
  fullColumnIdData,
48
- scrollXStore
50
+ scrollXStore,
51
+ mergeHeaderList,
52
+ mergeHeaderCellMaps
49
53
  } = tableInternalData;
50
54
  const virtualXOpts = $xeTable.computeVirtualXOpts;
51
55
  const columnOpts = $xeTable.computeColumnOpts;
@@ -59,6 +63,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
59
63
  isCrossDrag,
60
64
  isPeerDrag
61
65
  } = columnDragOpts;
66
+ const isLastRow = $rowIndex === headerGroups.length - 1;
62
67
  return cols.map((column, $columnIndex) => {
63
68
  const {
64
69
  type,
@@ -91,7 +96,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
91
96
  hasFilter = filters.some(item => item.checked);
92
97
  }
93
98
  const columnIndex = colRest.index;
94
- const _columnIndex = colRest._index;
99
+ const _columnIndex = showCustomHeader ? $columnIndex : colRest._index;
95
100
  const cellParams = {
96
101
  $table: $xeTable,
97
102
  $grid: $xeGrid,
@@ -108,10 +113,34 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
108
113
  hasFilter
109
114
  };
110
115
  const thAttrs = {
111
- colid,
112
- colspan: column.colSpan > 1 ? column.colSpan : null,
113
- rowspan: column.rowSpan > 1 ? column.rowSpan : null
116
+ colid
114
117
  };
118
+ let isMergeCell = false;
119
+ // 合并行或列
120
+ if (!showCustomHeader) {
121
+ thAttrs.colspan = column.colSpan > 1 ? column.colSpan : null;
122
+ thAttrs.rowspan = column.rowSpan > 1 ? column.rowSpan : null;
123
+ }
124
+ if (mergeHeadFlag && mergeHeaderList.length && (showCustomHeader || isLastRow)) {
125
+ const spanRest = mergeHeaderCellMaps[`${$rowIndex}:${showCustomHeader ? $columnIndex : _columnIndex}`];
126
+ if (spanRest) {
127
+ const {
128
+ rowspan,
129
+ colspan
130
+ } = spanRest;
131
+ if (!rowspan || !colspan) {
132
+ return null;
133
+ }
134
+ if (rowspan > 1) {
135
+ isMergeCell = true;
136
+ thAttrs.rowspan = rowspan;
137
+ }
138
+ if (colspan > 1) {
139
+ isMergeCell = true;
140
+ thAttrs.colspan = colspan;
141
+ }
142
+ }
143
+ }
115
144
  const thOns = {
116
145
  click: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, cellParams),
117
146
  dblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, cellParams)
@@ -138,7 +167,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
138
167
  const showResizable = _xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable;
139
168
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
140
169
  let isVNPreEmptyStatus = false;
141
- if (isOptimizeMode && overflowX && !isGroup) {
170
+ if (isOptimizeMode && overflowX && !isGroup && !isMergeCell) {
142
171
  if (!dragCol || dragCol.id !== colid) {
143
172
  if (scrollXLoad && tableColumn.length > 10 && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
144
173
  isVNPreEmptyStatus = true;
@@ -152,7 +181,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
152
181
  tcStyle.minHeight = `${currCellHeight}px`;
153
182
  }
154
183
  return h('th', {
155
- class: ['vxe-table--column vxe-header--column', colid, {
184
+ class: ['vxe-table--column vxe-header--column', colid, fixedHiddenColumn ? 'fixed--hidden' : 'fixed--visible', {
156
185
  [`col--${headAlign}`]: headAlign,
157
186
  [`col--${type}`]: type,
158
187
  'col--last': isLastColumn,
@@ -160,7 +189,6 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
160
189
  'col--group': isColGroup,
161
190
  'col--ellipsis': hasEllipsis,
162
191
  'fixed--width': !isAutoCellWidth,
163
- 'fixed--hidden': fixedHiddenColumn,
164
192
  'is--padding': isPadding,
165
193
  'is--sortable': column.sortable,
166
194
  'col--filter': !!filters,
@@ -172,7 +200,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
172
200
  attrs: thAttrs,
173
201
  style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(cellParams) : headerCellStyle : undefined,
174
202
  on: thOns,
175
- key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
203
+ key: showCustomHeader ? `${colid}${$columnIndex}` : columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
176
204
  }, [h('div', {
177
205
  class: ['vxe-cell', {
178
206
  'c--title': showTitle,
@@ -187,9 +215,9 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
187
215
  class: 'vxe-cell--wrapper vxe-header-cell--wrapper'
188
216
  }, column.renderHeader(h, cellParams))]),
189
217
  /**
190
- * 列宽拖动
191
- */
192
- !fixedHiddenColumn && showResizable ? h('div', {
218
+ * 列宽拖动
219
+ */
220
+ !fixedHiddenColumn && showResizable && (!showCustomHeader || isLastRow) ? h('div', {
193
221
  class: 'vxe-cell--col-resizable',
194
222
  on: {
195
223
  mousedown: evnt => $xeTable.handleColResizeMousedownEvent(evnt, fixedType, cellParams),
@@ -197,7 +225,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
197
225
  }
198
226
  }) : renderEmptyElement($xeTable)]);
199
227
  });
200
- };
228
+ }
201
229
  function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
202
230
  const props = _vm;
203
231
  const $xeTable = _vm.$parent;
@@ -220,7 +248,7 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
220
248
  key: $rowIndex,
221
249
  class: ['vxe-header--row', headerRowClassName ? _xeUtils.default.isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''],
222
250
  style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : undefined
223
- }, renderRows(h, _vm, isGroup, isOptimizeMode, cols, $rowIndex));
251
+ }, renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIndex, cols));
224
252
  });
225
253
  }
226
254
  var _default = exports.default = {
@@ -242,11 +270,13 @@ var _default = exports.default = {
242
270
  },
243
271
  watch: {
244
272
  tableColumn() {
245
- this.uploadColumn();
273
+ const _vm = this;
274
+ _vm.uploadColumn();
246
275
  }
247
276
  },
248
277
  created() {
249
- this.uploadColumn();
278
+ const _vm = this;
279
+ _vm.uploadColumn();
250
280
  },
251
281
  mounted() {
252
282
  const _vm = this;
@@ -269,8 +299,9 @@ var _default = exports.default = {
269
299
  elemStore[`${prefix}repair`] = _vm.$refs.refHeaderBorderRepair;
270
300
  },
271
301
  destroyed() {
272
- const props = this;
273
- const $xeTable = this.$parent;
302
+ const _vm = this;
303
+ const props = _vm;
304
+ const $xeTable = _vm.$parent;
274
305
  const internalData = $xeTable;
275
306
  const {
276
307
  fixedType
@@ -288,8 +319,9 @@ var _default = exports.default = {
288
319
  elemStore[`${prefix}repair`] = null;
289
320
  },
290
321
  render(h) {
291
- const props = this;
292
- const $xeTable = this.$parent;
322
+ const _vm = this;
323
+ const props = _vm;
324
+ const $xeTable = _vm.$parent;
293
325
  const tableProps = $xeTable;
294
326
  const tableReactData = $xeTable;
295
327
  const tableInternalData = $xeTable;
@@ -303,7 +335,7 @@ var _default = exports.default = {
303
335
  } = props;
304
336
  const {
305
337
  headerColumn
306
- } = this;
338
+ } = _vm;
307
339
  const {
308
340
  mouseConfig,
309
341
  showHeaderOverflow: allColumnHeaderOverflow,
@@ -422,7 +454,7 @@ var _default = exports.default = {
422
454
  */
423
455
  h('thead', {
424
456
  ref: 'refHeaderTHead'
425
- }, renderHeads(h, this, isGroup, isOptimizeMode, renderHeaderList))]), mouseConfig && mouseOpts.area ? h('div', {
457
+ }, renderHeads(h, _vm, isGroup, isOptimizeMode, renderHeaderList))]), mouseConfig && mouseOpts.area ? h('div', {
426
458
  class: 'vxe-table--cell-area'
427
459
  }, [h('span', {
428
460
  class: 'vxe-table--cell-main-area'
@@ -440,12 +472,37 @@ var _default = exports.default = {
440
472
  },
441
473
  methods: {
442
474
  uploadColumn() {
443
- const $xeTable = this.$parent;
475
+ const _vm = this;
476
+ const $xeTable = _vm.$parent;
477
+ const tableProps = $xeTable;
444
478
  const tableReactData = $xeTable;
479
+ const tableInternalData = $xeTable;
480
+ const props = _vm;
481
+ const {
482
+ showCustomHeader
483
+ } = tableProps;
484
+ const {
485
+ collectColumn,
486
+ visibleColumn
487
+ } = tableInternalData;
488
+ const {
489
+ tableGroupColumn
490
+ } = props;
445
491
  const {
446
492
  isGroup
447
493
  } = tableReactData;
448
- this.headerColumn = isGroup ? (0, _util.convertHeaderColumnToRows)(this.tableGroupColumn) : [];
494
+ let spanColumns = isGroup ? (0, _util.convertHeaderColumnToRows)(tableGroupColumn) : [];
495
+ let visibleColgroups = [];
496
+ if (showCustomHeader && spanColumns.length > 1) {
497
+ visibleColgroups = (0, _util.convertHeaderToGridRows)(spanColumns);
498
+ spanColumns = visibleColgroups;
499
+ }
500
+ _vm.headerColumn = spanColumns;
501
+ $xeTable.dispatchEvent('columns-change', {
502
+ visibleColgroups,
503
+ collectColumn,
504
+ visibleColumn
505
+ }, null);
449
506
  }
450
507
  }
451
508
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=($,e,E,S,D,T)=>{let R=e.$parent,I=R.$xeGrid,O=R.$xeGantt;var l=R,r=R,a=R;let k=e.fixedType,{resizable:z,columnKey:U,headerCellClassName:M,headerCellStyle:A,showHeaderOverflow:X,headerAlign:q,align:G,mouseConfig:F}=l,{currentColumn:L,dragCol:N,scrollXLoad:B,scrollYLoad:V,overflowX:W,tableColumn:K}=r,{fullColumnIdData:P,scrollXStore:j}=a,Y=R.computeVirtualXOpts,J=R.computeColumnOpts,Q=R.computeColumnDragOpts,Z=R.computeCellOpts;e=R.computeDefaultRowHeight;let ee=R.computeHeaderCellOpts,le=(0,_util.getCalcHeight)(ee.height)||e,{disabledMethod:re,isCrossDrag:ae,isPeerDrag:te}=Q;return D.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:d,filters:i,headerClassName:n,editRender:s,cellRender:o}=e,u=e.id,c=P[u]||{},s=s||o,o=s?renderer.get(s.name):null,s=e.children&&e.children.length,p=W&&!s&&(k?e.fixed!==k:!!e.fixed),f=(_xeUtils.default.isBoolean(ee.padding)?ee:Z).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?X:a,t=t||(o?o.tableHeaderCellAlign:"")||q||d||(o?o.tableCellAlign:"")||G,d="ellipsis"===a,o="title"===a,a=!0===a||"tooltip"===a,x=o||a||d;let m=!1,h=null;i&&(h=i[0],m=i.some(e=>e.checked));var g=c.index,c=c._index;let v={$table:R,$grid:I,$gantt:O,$rowIndex:T,column:e,columnIndex:g,$columnIndex:l,_columnIndex:c,firstFilterOption:h,fixed:k,type:cellType,isHidden:p,hasFilter:m};var g={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},C={click:e=>R.triggerHeaderCellClickEvent(e,v),dblclick:e=>R.triggerHeaderCellDblclickEvent(e,v)},b=J.drag&&"cell"===Q.trigger;let w=!1;b&&(w=!(!re||!re(v))),(F||b)&&(C.mousedown=e=>R.triggerHeaderCellMousedownEvent(e,v)),J.drag&&(C.dragstart=R.handleHeaderCellDragDragstartEvent,C.dragend=R.handleHeaderCellDragDragendEvent,C.dragover=R.handleHeaderCellDragDragoverEvent,b)&&(C.mouseup=R.handleHeaderCellDragMouseupEvent);var b=l===D.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:J.resizable||z,H=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let _=!1;!S||!W||E||N&&N.id===u||B&&10<K.length&&!e.fixed&&!Y.immediate&&(c<j.visibleStartIndex-j.preloadSize||c>j.visibleEndIndex+j.preloadSize)&&(_=!0);c={};return x?c.height=le+"px":c.minHeight=le+"px",$("th",{class:["vxe-table--column vxe-header--column",u,{["col--"+t]:t,["col--"+r]:r,"col--last":b,"col--fixed":e.fixed,"col--group":s,"col--ellipsis":x,"fixed--width":!H,"fixed--hidden":p,"is--padding":f,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":m,"is--drag-active":J.drag&&!e.fixed&&!w&&(ae||te||!e.parentId),"is--drag-disabled":J.drag&&w,"col--current":L===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(M,v)],attrs:g,style:A?_xeUtils.default.isFunction(A)?A(v):A:void 0,on:C,key:U||B||V||J.useKey||J.drag||s?u:l},[$("div",{class:["vxe-cell",{"c--title":o,"c--tooltip":a,"c--ellipsis":d}],style:c},_||S&&p?[]:[$("div",{attrs:{colid:u},class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader($,v))]),!p&&y?$("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>R.handleColResizeMousedownEvent(e,k,v),dblclick:e=>R.handleColResizeDblclickEvent(e,v)}}):renderEmptyElement(R)])})};function renderHeads(a,t,d,i,e){let n=t.$parent;var l=n;let s=t.fixedType,{headerRowClassName:o,headerRowStyle:u}=l;return e.map((e,l)=>{var r={$table:n,$rowIndex:l,fixed:s,type:cellType};return a("tr",{key:l,class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(r):o:""],style:u?_xeUtils.default.isFunction(u)?u(r):u:void 0},renderRows(a,t,d,i,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,d=l.xID;let{fixedType:i,fixedColumn:n,tableColumn:s}=this;var o=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:f,overflowX:x,scrollXLoad:m,dragCol:h}=a,{visibleColumn:t,fullColumnIdData:g}=t,v=l.computeMouseOpts;let C=o,b=s,w=!1;return a?b=t:(m&&u&&(c||p||(w=!0)),w&&(f||!i&&x)||(b=t),i&&w&&(b=n||[]),C=[b]),i||a||m&&h&&2<b.length&&(o=g[h.id])&&(u=o._index,c=b[0],p=b[b.length-1],f=g[c.id],x=g[p.id],f)&&x&&(t=f._index,m=x._index,u<t?(b=[h].concat(b),C=[[h].concat(C[0])].concat(C.slice(1))):m<u&&(b=b.concat([h]),C=[C[0].concat([h])].concat(C.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",i?`fixed-${i}--wrapper`:"body--wrapper"],attrs:{xid:d}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,i)}}},[i?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:d,cellspacing:0,cellpadding:0,border:0,xvm:w?"1":null}},[r("colgroup",{ref:"refHeaderColgroup"},b.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,w,C))]),e&&v.area?r("div",{class:"vxe-table--cell-area"},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-clip-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])},methods:{uploadColumn(){var e=this.$parent.isGroup;this.headerColumn=e?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header";function renderRows(E,e,S,D,l,T,R){let I=e.$parent,O=I.$xeGrid,k=I.$xeGantt;var r=I,a=I,t=I;let z=e.fixedType,{resizable:M,columnKey:U,showCustomHeader:A,headerCellClassName:X,headerCellStyle:G,showHeaderOverflow:q,headerAlign:F,align:L,mouseConfig:N}=r,{currentColumn:B,dragCol:V,scrollXLoad:W,scrollYLoad:K,overflowX:P,mergeHeadFlag:j,tableColumn:ae}=a,{fullColumnIdData:te,scrollXStore:Y,mergeHeaderList:ie,mergeHeaderCellMaps:de}=t,ne=I.computeVirtualXOpts,J=I.computeColumnOpts,Q=I.computeColumnDragOpts,oe=I.computeCellOpts;e=I.computeDefaultRowHeight;let Z=I.computeHeaderCellOpts,ee=(0,_util.getCalcHeight)(Z.height)||e,{disabledMethod:le,isCrossDrag:se,isPeerDrag:ue}=Q,re=T===l.length-1;return R.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:i,filters:d,headerClassName:n,editRender:o,cellRender:s}=e,u=e.id,c=te[u]||{},o=o||s,s=o?renderer.get(o.name):null,o=e.children&&e.children.length,p=P&&!o&&(z?e.fixed!==z:!!e.fixed),f=(_xeUtils.default.isBoolean(Z.padding)?Z:oe).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?q:a,t=t||(s?s.tableHeaderCellAlign:"")||F||i||(s?s.tableCellAlign:"")||L,i="ellipsis"===a,s="title"===a,a=!0===a||"tooltip"===a,m=s||a||i;let g=!1,h=null;d&&(h=d[0],g=d.some(e=>e.checked));var x=c.index,c=A?l:c._index;let v={$table:I,$grid:O,$gantt:k,$rowIndex:T,column:e,columnIndex:x,$columnIndex:l,_columnIndex:c,firstFilterOption:h,fixed:z,type:cellType,isHidden:p,hasFilter:g};x={colid:u};let C=!1;if(A||(x.colspan=1<e.colSpan?e.colSpan:null,x.rowspan=1<e.rowSpan?e.rowSpan:null),j&&ie.length&&(A||re)){var b=de[T+":"+(A?l:c)];if(b){var{rowspan:b,colspan:w}=b;if(!b||!w)return null;1<b&&(C=!0,x.rowspan=b),1<w&&(C=!0,x.colspan=w)}}b={click:e=>I.triggerHeaderCellClickEvent(e,v),dblclick:e=>I.triggerHeaderCellDblclickEvent(e,v)},w=J.drag&&"cell"===Q.trigger;let H=!1;w&&(H=!(!le||!le(v))),(N||w)&&(b.mousedown=e=>I.triggerHeaderCellMousedownEvent(e,v)),J.drag&&(b.dragstart=I.handleHeaderCellDragDragstartEvent,b.dragend=I.handleHeaderCellDragDragendEvent,b.dragover=I.handleHeaderCellDragDragoverEvent,w)&&(b.mouseup=I.handleHeaderCellDragMouseupEvent);var w=l===R.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:J.resizable||M,_=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let $=!1;!D||!P||S||C||V&&V.id===u||W&&10<ae.length&&!e.fixed&&!ne.immediate&&(c<Y.visibleStartIndex-Y.preloadSize||c>Y.visibleEndIndex+Y.preloadSize)&&($=!0);c={};return m?c.height=ee+"px":c.minHeight=ee+"px",E("th",{class:["vxe-table--column vxe-header--column",u,p?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+r]:r,"col--last":w,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":m,"fixed--width":!_,"is--padding":f,"is--sortable":e.sortable,"col--filter":!!d,"is--filter-active":g,"is--drag-active":J.drag&&!e.fixed&&!H&&(se||ue||!e.parentId),"is--drag-disabled":J.drag&&H,"col--current":B===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(X,v)],attrs:x,style:G?_xeUtils.default.isFunction(G)?G(v):G:void 0,on:b,key:A?""+u+l:U||W||K||J.useKey||J.drag||o?u:l},[E("div",{class:["vxe-cell",{"c--title":s,"c--tooltip":a,"c--ellipsis":i}],style:c},$||D&&p?[]:[E("div",{attrs:{colid:u},class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(E,v))]),p||!y||A&&!re?renderEmptyElement(I):E("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>I.handleColResizeMousedownEvent(e,z,v),dblclick:e=>I.handleColResizeDblclickEvent(e,v)}})])})}function renderHeads(a,t,i,d,n){let o=t.$parent;var e=o;let s=t.fixedType,{headerRowClassName:u,headerRowStyle:c}=e;return n.map((e,l)=>{var r={$table:o,$rowIndex:l,fixed:s,type:cellType};return a("tr",{key:l,class:["vxe-header--row",u?_xeUtils.default.isFunction(u)?u(r):u:""],style:c?_xeUtils.default.isFunction(c)?c(r):c:void 0},renderRows(a,t,i,d,n,l,e))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,i=l.xID;let{fixedType:d,fixedColumn:n,tableColumn:o}=this;var s=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:f,overflowX:m,scrollXLoad:g,dragCol:h}=a,{visibleColumn:t,fullColumnIdData:x}=t,v=l.computeMouseOpts;let C=s,b=o,w=!1;return a?b=t:(g&&u&&(c||p||(w=!0)),w&&(f||!d&&m)||(b=t),d&&w&&(b=n||[]),C=[b]),d||a||g&&h&&2<b.length&&(s=x[h.id])&&(u=s._index,c=b[0],p=b[b.length-1],f=x[c.id],m=x[p.id],f)&&m&&(t=f._index,g=m._index,u<t?(b=[h].concat(b),C=[[h].concat(C[0])].concat(C.slice(1))):g<u&&(b=b.concat([h]),C=[C[0].concat([h])].concat(C.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,d)}}},[d?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0,xvm:w?"1":null}},[r("colgroup",{ref:"refHeaderColgroup"},b.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,w,C))]),e&&v.area?r("div",{class:"vxe-table--cell-area"},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-clip-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])},methods:{uploadColumn(){var e=this.$parent,l=e.showCustomHeader,{collectColumn:r,visibleColumn:a}=e,t=this.tableGroupColumn,i=e.isGroup;let d=i?(0,_util.convertHeaderColumnToRows)(t):[],n=[];l&&1<d.length&&(n=(0,_util.convertHeaderToGridRows)(d),d=n),this.headerColumn=d,e.dispatchEvent("columns-change",{visibleColgroups:n,collectColumn:r,visibleColumn:a},null)}}};