vxe-table 3.11.38 → 3.12.0-beta.0

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 (57) 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/render/index.js +47 -12
  6. package/es/table/src/body.js +81 -35
  7. package/es/table/src/footer.js +54 -18
  8. package/es/table/src/header.js +58 -10
  9. package/es/table/src/methods.js +159 -118
  10. package/es/table/src/table.js +5 -13
  11. package/es/table/style.css +3 -5
  12. package/es/table/style.min.css +1 -1
  13. package/es/ui/index.js +5 -3
  14. package/es/ui/src/log.js +1 -1
  15. package/es/vxe-table/style.css +3 -5
  16. package/es/vxe-table/style.min.css +1 -1
  17. package/lib/index.css +1 -1
  18. package/lib/index.min.css +1 -1
  19. package/lib/index.umd.js +464 -272
  20. package/lib/index.umd.min.js +1 -1
  21. package/lib/style.css +1 -1
  22. package/lib/style.min.css +1 -1
  23. package/lib/table/render/index.js +47 -12
  24. package/lib/table/render/index.min.js +1 -1
  25. package/lib/table/src/body.js +101 -56
  26. package/lib/table/src/body.min.js +1 -1
  27. package/lib/table/src/footer.js +67 -30
  28. package/lib/table/src/footer.min.js +1 -1
  29. package/lib/table/src/header.js +71 -18
  30. package/lib/table/src/header.min.js +1 -1
  31. package/lib/table/src/methods.js +167 -137
  32. package/lib/table/src/methods.min.js +1 -1
  33. package/lib/table/src/table.js +5 -15
  34. package/lib/table/src/table.min.js +1 -1
  35. package/lib/table/style/style.css +3 -5
  36. package/lib/table/style/style.min.css +1 -1
  37. package/lib/ui/index.js +5 -3
  38. package/lib/ui/index.min.js +1 -1
  39. package/lib/ui/src/log.js +1 -1
  40. package/lib/ui/src/log.min.js +1 -1
  41. package/lib/vxe-table/style/style.css +3 -5
  42. package/lib/vxe-table/style/style.min.css +1 -1
  43. package/package.json +2 -2
  44. package/packages/table/render/index.ts +48 -12
  45. package/packages/table/src/body.ts +84 -35
  46. package/packages/table/src/footer.ts +58 -18
  47. package/packages/table/src/header.ts +62 -11
  48. package/packages/table/src/methods.ts +163 -126
  49. package/packages/table/src/table.ts +6 -15
  50. package/packages/ui/index.ts +4 -2
  51. package/styles/components/table.scss +1 -3
  52. /package/es/{iconfont.1735003904481.ttf → iconfont.1735106128767.ttf} +0 -0
  53. /package/es/{iconfont.1735003904481.woff → iconfont.1735106128767.woff} +0 -0
  54. /package/es/{iconfont.1735003904481.woff2 → iconfont.1735106128767.woff2} +0 -0
  55. /package/lib/{iconfont.1735003904481.ttf → iconfont.1735106128767.ttf} +0 -0
  56. /package/lib/{iconfont.1735003904481.woff → iconfont.1735106128767.woff} +0 -0
  57. /package/lib/{iconfont.1735003904481.woff2 → iconfont.1735106128767.woff2} +0 -0
@@ -428,15 +428,9 @@ function renderRows (h: CreateElement, _vm: any, $xeTable: any, fixedType: any,
428
428
  }
429
429
  // 拖拽行事件
430
430
  if (rowOpts.drag && (!treeConfig || transform)) {
431
- trOn.dragstart = (evnt: DragEvent) => {
432
- $xeTable.handleRowDragDragstartEvent(evnt)
433
- }
434
- trOn.dragover = (evnt: DragEvent) => {
435
- $xeTable.handleRowDragDragoverEvent(evnt)
436
- }
437
- trOn.dragend = (evnt: DragEvent) => {
438
- $xeTable.handleRowDragDragendEvent(evnt)
439
- }
431
+ trOn.dragstart = $xeTable.handleRowDragDragstartEvent
432
+ trOn.dragend = $xeTable.handleRowDragDragendEvent
433
+ trOn.dragover = $xeTable.handleRowDragDragoverEvent
440
434
  }
441
435
  const trClass = [
442
436
  'vxe-body--row',
@@ -579,44 +573,99 @@ export default {
579
573
  elemStore[`${prefix}emptyBlock`] = null
580
574
  },
581
575
  render (this: any, h: CreateElement) {
576
+ const props = this
582
577
  const $xeTable = this.$parent
578
+ const tableProps = $xeTable
579
+ const tableReactData = $xeTable
580
+ const tableInternalData = $xeTable
583
581
 
584
- const { _e, $parent: $xetable, fixedColumn, fixedType } = this
582
+ const { tId, $scopedSlots } = $xeTable
583
+ const { fixedColumn, fixedType, tableColumn } = props
585
584
 
585
+ const { showOverflow: allColumnOverflow, spanMethod, footerSpanMethod, mouseConfig } = tableProps
586
+ const { tableData, scrollXLoad, scrollYLoad, isAllOverflow, isDragRowMove, expandColumn, dragRow, dragCol } = tableReactData
587
+ const { visibleColumn, fullAllDataRowIdData, fullColumnIdData } = tableInternalData
586
588
  const rowOpts = $xeTable.computeRowOpts
589
+ const sYOpts = $xeTable.computeSYOpts
590
+ const emptyOpts = $xeTable.computeEmptyOpts
591
+ const mouseOpts = $xeTable.computeMouseOpts
587
592
  const rowDragOpts = $xeTable.computeRowDragOpts
588
- let { $scopedSlots, tId, tableData, tableColumn, visibleColumn, expandColumn, showOverflow: allColumnOverflow, keyboardConfig, keyboardOpts, mergeList, spanMethod, scrollXLoad, scrollYLoad, isAllOverflow, emptyOpts, mouseConfig, mouseOpts, sYOpts, isDragRowMove } = $xetable
589
- // 如果是使用优化模式
593
+
594
+ let renderDataList = tableData
595
+ let renderColumnList = tableColumn
596
+
590
597
  if (fixedType) {
591
- // 如果存在展开行使用全量渲染
592
- if (!expandColumn && (scrollXLoad || scrollYLoad || (allColumnOverflow ? isAllOverflow : allColumnOverflow))) {
593
- if (!mergeList.length && !spanMethod && !(keyboardConfig && keyboardOpts.isMerge)) {
594
- tableColumn = fixedColumn
598
+ // 如果是使用优化模式
599
+ if (scrollXLoad || scrollYLoad || (allColumnOverflow && isAllOverflow)) {
600
+ // 如果不支持优化模式
601
+ if (expandColumn || spanMethod || footerSpanMethod) {
602
+ renderColumnList = visibleColumn
595
603
  } else {
596
- tableColumn = visibleColumn
597
- // 检查固定列是否被合并,合并范围是否超出固定列
598
- // if (mergeList.length && !isMergeLeftFixedExceeded && fixedType === 'left') {
599
- // tableColumn = fixedColumn
600
- // } else if (mergeList.length && !isMergeRightFixedExceeded && fixedType === 'right') {
601
- // tableColumn = fixedColumn
602
- // } else {
603
- // tableColumn = visibleColumn
604
- // }
604
+ renderColumnList = fixedColumn || []
605
605
  }
606
606
  } else {
607
- tableColumn = visibleColumn
607
+ renderColumnList = visibleColumn
608
608
  }
609
609
  }
610
+
611
+ // 行拖拽
612
+ if (scrollYLoad && dragRow) {
613
+ if (renderDataList.length > 2) {
614
+ const dRowRest = fullAllDataRowIdData[getRowid($xeTable, dragRow)]
615
+ if (dRowRest) {
616
+ const drIndex = dRowRest._index
617
+ const firstRow = renderDataList[0]
618
+ const lastRow = renderDataList[renderDataList.length - 1]
619
+ const firstRowRest = fullAllDataRowIdData[getRowid($xeTable, firstRow)]
620
+ const lastRowRest = fullAllDataRowIdData[getRowid($xeTable, lastRow)]
621
+ if (firstRowRest && lastRowRest) {
622
+ const frIndex = firstRowRest._index
623
+ const lrIndex = lastRowRest._index
624
+ if (drIndex < frIndex) {
625
+ renderDataList = [dragRow].concat(renderDataList)
626
+ } else if (drIndex > lrIndex) {
627
+ renderDataList = renderDataList.concat([dragRow])
628
+ }
629
+ }
630
+ }
631
+ }
632
+ }
633
+
634
+ if (!fixedType) {
635
+ // 列拖拽
636
+ if (scrollXLoad && dragCol) {
637
+ if (renderColumnList.length > 2) {
638
+ const dCowRest = fullColumnIdData[dragCol.id]
639
+ if (dCowRest) {
640
+ const dcIndex = dCowRest._index
641
+ const firstCol = renderColumnList[0]
642
+ const lastCol = renderColumnList[renderColumnList.length - 1]
643
+ const firstColRest = fullColumnIdData[firstCol.id]
644
+ const lastColRest = fullColumnIdData[lastCol.id]
645
+ if (firstColRest && lastColRest) {
646
+ const fcIndex = firstColRest._index
647
+ const lcIndex = lastColRest._index
648
+ if (dcIndex < fcIndex) {
649
+ renderColumnList = [dragCol].concat(renderColumnList)
650
+ } else if (dcIndex > lcIndex) {
651
+ renderColumnList = renderColumnList.concat([dragCol])
652
+ }
653
+ }
654
+ }
655
+ }
656
+ }
657
+ }
658
+
610
659
  let emptyContent
611
660
  if ($scopedSlots.empty) {
612
- emptyContent = $scopedSlots.empty.call(this, { $table: $xetable }, h)
661
+ emptyContent = $scopedSlots.empty.call(this, { $table: $xeTable, $grid: $xeTable.xegrid }, h)
613
662
  } else {
614
663
  const compConf = emptyOpts.name ? renderer.get(emptyOpts.name) : null
615
664
  const rtEmptyView = compConf ? (compConf.renderTableEmpty || compConf.renderTableEmptyView || compConf.renderEmpty) : null
616
665
  if (rtEmptyView) {
617
- emptyContent = getSlotVNs(rtEmptyView.call(this, h, emptyOpts, { $table: $xetable }))
666
+ emptyContent = getSlotVNs(rtEmptyView.call(this, h, emptyOpts, { $table: $xeTable }))
618
667
  } else {
619
- emptyContent = $xetable.emptyText || getI18n('vxe.table.emptyText')
668
+ emptyContent = tableProps.emptyText || getI18n('vxe.table.emptyText')
620
669
  }
621
670
  }
622
671
 
@@ -636,7 +685,7 @@ export default {
636
685
  on: ons
637
686
  }, [
638
687
  fixedType
639
- ? _e()
688
+ ? renderEmptyElement($xeTable)
640
689
  : h('div', {
641
690
  class: 'vxe-body--x-space',
642
691
  ref: 'xSpace'
@@ -660,7 +709,7 @@ export default {
660
709
  */
661
710
  h('colgroup', {
662
711
  ref: 'colgroup'
663
- }, tableColumn.map((column: any, $columnIndex: any) => {
712
+ }, renderColumnList.map((column: any, $columnIndex: any) => {
664
713
  return h('col', {
665
714
  attrs: {
666
715
  name: column.id
@@ -677,10 +726,10 @@ export default {
677
726
  tag: 'tbody',
678
727
  name: `vxe-body--row-list${isDragRowMove ? '' : '-disabled'}`
679
728
  }
680
- }, renderRows(h, this, $xetable, fixedType, tableData, tableColumn))
729
+ }, renderRows(h, this, $xeTable, fixedType, renderDataList, renderColumnList))
681
730
  : h('tbody', {
682
731
  ref: 'tbody'
683
- }, renderRows(h, this, $xetable, fixedType, tableData, tableColumn))
732
+ }, renderRows(h, this, $xeTable, fixedType, renderDataList, renderColumnList))
684
733
  ]),
685
734
  h('div', {
686
735
  class: 'vxe-table--checkbox-range'
@@ -697,8 +746,8 @@ export default {
697
746
  class: 'vxe-table--cell-main-area-btn',
698
747
  on: {
699
748
  mousedown (evnt: any) {
700
- if ($xetable.triggerCellAreaExtendMousedownEvent) {
701
- $xetable.triggerCellAreaExtendMousedownEvent(evnt, { $table: $xetable, fixed: fixedType, type: renderType })
749
+ if ($xeTable.triggerCellAreaExtendMousedownEvent) {
750
+ $xeTable.triggerCellAreaExtendMousedownEvent(evnt, { $table: $xeTable, fixed: fixedType, type: renderType })
702
751
  }
703
752
  }
704
753
  }
@@ -8,7 +8,7 @@ import type { VxeTableDefines } from '../../../types'
8
8
 
9
9
  const renderType = 'footer'
10
10
 
11
- const { renderer } = VxeUI
11
+ const { renderer, renderEmptyElement } = VxeUI
12
12
 
13
13
  function mergeFooterMethod (mergeFooterList: any, _rowIndex: any, _columnIndex: any) {
14
14
  for (let mIndex = 0; mIndex < mergeFooterList.length; mIndex++) {
@@ -155,18 +155,19 @@ function renderRows (h: CreateElement, _vm: any, tableColumn: VxeTableDefines.Co
155
155
  : [])
156
156
  }
157
157
 
158
- function renderHeads (h: CreateElement, _vm: any, footerTableData: any[]) {
158
+ function renderHeads (h: CreateElement, _vm: any, renderColumnList: VxeTableDefines.ColumnInfo[]) {
159
159
  const $xeTable = _vm.$parent
160
+ const props = _vm
160
161
 
161
162
  const columnOpts = $xeTable.computeColumnOpts
162
163
  const columnDragOpts = $xeTable.computeColumnDragOpts
163
164
 
164
- const { $parent: $xetable, fixedType, tableColumn } = _vm
165
- const { footerRowClassName, footerRowStyle, isDragColMove } = $xetable
165
+ const { fixedType, footerTableData } = props
166
+ const { footerRowClassName, footerRowStyle, isDragColMove } = $xeTable
166
167
 
167
168
  return footerTableData.map((row: any, $rowIndex: any) => {
168
169
  const _rowIndex = $rowIndex
169
- const rowParams = { $table: $xetable, row, _rowIndex, $rowIndex, fixed: fixedType, type: renderType }
170
+ const rowParams = { $table: $xeTable, row, _rowIndex, $rowIndex, fixed: fixedType, type: renderType }
170
171
 
171
172
  if (columnOpts.drag && columnDragOpts.animation) {
172
173
  return h('transition-group', {
@@ -180,7 +181,7 @@ function renderHeads (h: CreateElement, _vm: any, footerTableData: any[]) {
180
181
  ],
181
182
  style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
182
183
  }
183
- }, renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIndex))
184
+ }, renderRows(h, _vm, renderColumnList, footerTableData, row, $rowIndex, _rowIndex))
184
185
  }
185
186
  return h('tr', {
186
187
  key: $rowIndex,
@@ -189,7 +190,7 @@ function renderHeads (h: CreateElement, _vm: any, footerTableData: any[]) {
189
190
  footerRowClassName ? XEUtils.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''
190
191
  ],
191
192
  style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
192
- }, renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIndex))
193
+ }, renderRows(h, _vm, renderColumnList, footerTableData, row, $rowIndex, _rowIndex))
193
194
  })
194
195
  }
195
196
 
@@ -223,19 +224,58 @@ export default {
223
224
  elemStore[`${prefix}xSpace`] = null
224
225
  },
225
226
  render (h: CreateElement) {
226
- let { _e, $parent: $xetable, fixedType, fixedColumn, tableColumn, footerTableData } = this
227
- const { tId, mergeFooterList, footerSpanMethod, scrollXLoad, showFooterOverflow: allColumnFooterOverflow, scrollbarWidth, visibleColumn, expandColumn } = $xetable
227
+ const props = this
228
+ const $xeTable = this.$parent
229
+ const tableProps = $xeTable
230
+ const tableReactData = $xeTable
231
+ const tableInternalData = $xeTable
232
+
233
+ const { tId } = $xeTable
234
+ const { fixedType, fixedColumn, tableColumn } = props
235
+
236
+ const { spanMethod, footerSpanMethod, showFooterOverflow: allColumnFooterOverflow } = tableProps
237
+ const { visibleColumn, fullColumnIdData } = tableInternalData
238
+ const { scrollXLoad, scrollYLoad, scrollbarWidth, dragCol } = tableReactData
239
+
240
+ let renderColumnList = tableColumn
241
+
228
242
  // 如果是使用优化模式
229
243
  if (fixedType) {
230
- // 如果存在展开行使用全量渲染
231
- if (!expandColumn && (scrollXLoad || allColumnFooterOverflow)) {
232
- if (!mergeFooterList.length || !footerSpanMethod) {
233
- tableColumn = fixedColumn
244
+ // 如果是使用优化模式
245
+ if (scrollXLoad || scrollYLoad || allColumnFooterOverflow) {
246
+ // 如果不支持优化模式
247
+ if (spanMethod || footerSpanMethod) {
248
+ renderColumnList = visibleColumn
234
249
  } else {
235
- tableColumn = visibleColumn
250
+ renderColumnList = fixedColumn || []
236
251
  }
237
252
  } else {
238
- tableColumn = visibleColumn
253
+ renderColumnList = visibleColumn
254
+ }
255
+ }
256
+
257
+ if (!fixedType) {
258
+ // 列拖拽
259
+ if (scrollXLoad && dragCol) {
260
+ if (renderColumnList.length > 2) {
261
+ const dCowRest = fullColumnIdData[dragCol.id]
262
+ if (dCowRest) {
263
+ const dcIndex = dCowRest._index
264
+ const firstCol = renderColumnList[0]
265
+ const lastCol = renderColumnList[renderColumnList.length - 1]
266
+ const firstColRest = fullColumnIdData[firstCol.id]
267
+ const lastColRest = fullColumnIdData[lastCol.id]
268
+ if (firstColRest && lastColRest) {
269
+ const fcIndex = firstColRest._index
270
+ const lcIndex = lastColRest._index
271
+ if (dcIndex < fcIndex) {
272
+ renderColumnList = [dragCol].concat(renderColumnList)
273
+ } else if (dcIndex > lcIndex) {
274
+ renderColumnList = renderColumnList.concat([dragCol])
275
+ }
276
+ }
277
+ }
278
+ }
239
279
  }
240
280
  }
241
281
 
@@ -252,7 +292,7 @@ export default {
252
292
  on: ons
253
293
  }, [
254
294
  fixedType
255
- ? _e()
295
+ ? renderEmptyElement($xeTable)
256
296
  : h('div', {
257
297
  class: 'vxe-body--x-space',
258
298
  ref: 'xSpace'
@@ -272,7 +312,7 @@ export default {
272
312
  */
273
313
  h('colgroup', {
274
314
  ref: 'colgroup'
275
- }, tableColumn.map((column: any, $columnIndex: any) => {
315
+ }, renderColumnList.map((column: any, $columnIndex: any) => {
276
316
  return h('col', {
277
317
  attrs: {
278
318
  name: column.id
@@ -293,7 +333,7 @@ export default {
293
333
  */
294
334
  h('tfoot', {
295
335
  ref: 'tfoot'
296
- }, renderHeads(h, this, footerTableData))
336
+ }, renderHeads(h, this, renderColumnList))
297
337
  ])
298
338
  ])
299
339
  },
@@ -7,7 +7,7 @@ import { convertHeaderColumnToRows, getColReMinWidth } from './util'
7
7
 
8
8
  import type { VxeTableDefines } from '../../../types'
9
9
 
10
- const { renderer } = VxeUI
10
+ const { renderer, renderEmptyElement } = VxeUI
11
11
 
12
12
  const cellType = 'header'
13
13
 
@@ -84,6 +84,7 @@ const renderRows = (h: CreateElement, _vm: any, cols: VxeTableDefines.ColumnInfo
84
84
  'is--sortable': column.sortable,
85
85
  'col--filter': !!column.filters,
86
86
  'is--filter-active': hasFilter,
87
+ 'is--drag-active': !column.fixed && !isDisabledDrag,
87
88
  'is--drag-disabled': isDisabledDrag,
88
89
  'col--current': currentColumn === column
89
90
  }, getClass(headerClassName, params), getClass(headerCellClassName, params)],
@@ -209,21 +210,71 @@ export default {
209
210
  elemStore[`${prefix}repair`] = null
210
211
  },
211
212
  render (h: CreateElement) {
212
- const { _e, $parent: $xetable, fixedType, headerColumn, tableColumn, fixedColumn } = this
213
- const { tId, isGroup, visibleColumn, showHeaderOverflow: allColumnHeaderOverflow, scrollXLoad, scrollbarWidth } = $xetable
214
- let headerGroups = headerColumn
215
- let renderColumnList = tableColumn
213
+ const props = this
214
+ const $xeTable = this.$parent
215
+ const tableProps = $xeTable
216
+ const tableReactData = $xeTable
217
+ const tableInternalData = $xeTable
218
+
219
+ const { tId } = $xeTable
220
+ const { fixedType, fixedColumn, tableColumn } = props
221
+ const { headerColumn } = this
222
+
223
+ const { showHeaderOverflow: allColumnHeaderOverflow, spanMethod, footerSpanMethod } = tableProps
224
+ const { isGroup, scrollXLoad, scrollYLoad, scrollbarWidth, dragCol } = tableReactData
225
+ const { visibleColumn, fullColumnIdData } = tableInternalData
226
+
227
+ let renderHeaderList: VxeTableDefines.ColumnInfo[][] = headerColumn
228
+ let renderColumnList: VxeTableDefines.ColumnInfo[] = tableColumn
229
+
216
230
  if (isGroup) {
217
231
  renderColumnList = visibleColumn
218
232
  } else {
219
- // 如果是使用优化模式
220
233
  if (fixedType) {
221
- if (scrollXLoad || allColumnHeaderOverflow) {
222
- renderColumnList = fixedColumn
234
+ // 如果是使用优化模式
235
+ if (scrollXLoad || scrollYLoad || allColumnHeaderOverflow) {
236
+ // 如果不支持优化模式
237
+ if (spanMethod || footerSpanMethod) {
238
+ renderColumnList = visibleColumn
239
+ } else {
240
+ renderColumnList = fixedColumn || []
241
+ }
242
+ } else {
243
+ renderColumnList = visibleColumn
244
+ }
245
+ }
246
+ renderHeaderList = [renderColumnList]
247
+ }
248
+
249
+ if (!fixedType) {
250
+ // 列拖拽
251
+ if (scrollXLoad && dragCol) {
252
+ if (renderColumnList.length > 2) {
253
+ const dCowRest = fullColumnIdData[dragCol.id]
254
+ if (dCowRest) {
255
+ const dcIndex = dCowRest._index
256
+ const firstCol = renderColumnList[0]
257
+ const lastCol = renderColumnList[renderColumnList.length - 1]
258
+ const firstColRest = fullColumnIdData[firstCol.id]
259
+ const lastColRest = fullColumnIdData[lastCol.id]
260
+ if (firstColRest && lastColRest) {
261
+ const fcIndex = firstColRest._index
262
+ const lcIndex = lastColRest._index
263
+ console.log(dragCol.id, dcIndex, fcIndex, lcIndex, renderColumnList.length)
264
+ if (dcIndex < fcIndex) {
265
+ renderColumnList = [dragCol].concat(renderColumnList)
266
+ renderHeaderList = [[dragCol].concat(renderHeaderList[0])].concat(renderHeaderList.slice(1))
267
+ } else if (dcIndex > lcIndex) {
268
+ renderColumnList = renderColumnList.concat([dragCol])
269
+ renderHeaderList = [renderHeaderList[0].concat([dragCol])].concat(renderHeaderList.slice(1))
270
+ }
271
+ console.log(renderColumnList.length)
272
+ }
273
+ }
223
274
  }
224
275
  }
225
- headerGroups = [renderColumnList]
226
276
  }
277
+
227
278
  return h('div', {
228
279
  class: ['vxe-table--header-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'],
229
280
  attrs: {
@@ -231,7 +282,7 @@ export default {
231
282
  }
232
283
  }, [
233
284
  fixedType
234
- ? _e()
285
+ ? renderEmptyElement($xeTable)
235
286
  : h('div', {
236
287
  class: 'vxe-body--x-space',
237
288
  ref: 'xSpace'
@@ -272,7 +323,7 @@ export default {
272
323
  */
273
324
  h('thead', {
274
325
  ref: 'thead'
275
- }, renderHeads(h, this, headerGroups))
326
+ }, renderHeads(h, this, renderHeaderList))
276
327
  ]),
277
328
  /**
278
329
  * 其他