vxe-table 3.16.0-beta.0 → 3.16.0-beta.10

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 (202) hide show
  1. package/README.md +3 -1
  2. package/es/grid/src/grid.js +866 -692
  3. package/es/index.css +1 -1
  4. package/es/index.min.css +1 -1
  5. package/es/locale/lang/ar-EG.js +4 -1
  6. package/es/locale/lang/de-DE.js +4 -1
  7. package/es/locale/lang/en-US.js +4 -1
  8. package/es/locale/lang/es-ES.js +4 -1
  9. package/es/locale/lang/fr-FR.js +4 -1
  10. package/es/locale/lang/hu-HU.js +4 -1
  11. package/es/locale/lang/hy-AM.js +4 -1
  12. package/es/locale/lang/id-ID.js +4 -1
  13. package/es/locale/lang/it-IT.js +4 -1
  14. package/es/locale/lang/ja-JP.js +4 -1
  15. package/es/locale/lang/ko-KR.js +4 -1
  16. package/es/locale/lang/ms-MY.js +4 -1
  17. package/es/locale/lang/nb-NO.js +4 -1
  18. package/es/locale/lang/pt-BR.js +4 -1
  19. package/es/locale/lang/ru-RU.js +4 -1
  20. package/es/locale/lang/th-TH.js +4 -1
  21. package/es/locale/lang/ug-CN.js +4 -1
  22. package/es/locale/lang/uk-UA.js +4 -1
  23. package/es/locale/lang/uz-UZ.js +4 -1
  24. package/es/locale/lang/vi-VN.js +4 -1
  25. package/es/locale/lang/zh-CHT.js +4 -1
  26. package/es/locale/lang/zh-CN.js +4 -1
  27. package/es/style.css +1 -1
  28. package/es/style.min.css +1 -1
  29. package/es/table/module/custom/mixin.js +0 -4
  30. package/es/table/module/custom/panel.js +0 -1
  31. package/es/table/module/edit/mixin.js +31 -1
  32. package/es/table/module/keyboard/mixin.js +2 -2
  33. package/es/table/src/anime.js +46 -0
  34. package/es/table/src/body.js +18 -43
  35. package/es/table/src/cell.js +6 -3
  36. package/es/table/src/columnInfo.js +6 -1
  37. package/es/table/src/footer.js +4 -22
  38. package/es/table/src/header.js +2 -20
  39. package/es/table/src/methods.js +569 -362
  40. package/es/table/src/table.js +49 -18
  41. package/es/table/src/util.js +5 -1
  42. package/es/table/style.css +8 -8
  43. package/es/table/style.min.css +1 -1
  44. package/es/ui/index.js +3 -2
  45. package/es/ui/src/log.js +1 -1
  46. package/es/vxe-table/style.css +8 -8
  47. package/es/vxe-table/style.min.css +1 -1
  48. package/lib/grid/src/grid.js +971 -810
  49. package/lib/grid/src/grid.min.js +1 -1
  50. package/lib/index.css +1 -1
  51. package/lib/index.min.css +1 -1
  52. package/lib/index.umd.js +1725 -1292
  53. package/lib/index.umd.min.js +1 -1
  54. package/lib/locale/lang/ar-EG.js +4 -1
  55. package/lib/locale/lang/ar-EG.min.js +1 -1
  56. package/lib/locale/lang/ar-EG.umd.js +4 -1
  57. package/lib/locale/lang/de-DE.js +4 -1
  58. package/lib/locale/lang/de-DE.min.js +1 -1
  59. package/lib/locale/lang/de-DE.umd.js +4 -1
  60. package/lib/locale/lang/en-US.js +4 -1
  61. package/lib/locale/lang/en-US.min.js +1 -1
  62. package/lib/locale/lang/en-US.umd.js +4 -1
  63. package/lib/locale/lang/es-ES.js +4 -1
  64. package/lib/locale/lang/es-ES.min.js +1 -1
  65. package/lib/locale/lang/es-ES.umd.js +4 -1
  66. package/lib/locale/lang/fr-FR.js +4 -1
  67. package/lib/locale/lang/fr-FR.min.js +1 -1
  68. package/lib/locale/lang/fr-FR.umd.js +4 -1
  69. package/lib/locale/lang/hu-HU.js +4 -1
  70. package/lib/locale/lang/hu-HU.min.js +1 -1
  71. package/lib/locale/lang/hu-HU.umd.js +4 -1
  72. package/lib/locale/lang/hy-AM.js +4 -1
  73. package/lib/locale/lang/hy-AM.min.js +1 -1
  74. package/lib/locale/lang/hy-AM.umd.js +4 -1
  75. package/lib/locale/lang/id-ID.js +4 -1
  76. package/lib/locale/lang/id-ID.min.js +1 -1
  77. package/lib/locale/lang/id-ID.umd.js +4 -1
  78. package/lib/locale/lang/it-IT.js +4 -1
  79. package/lib/locale/lang/it-IT.min.js +1 -1
  80. package/lib/locale/lang/it-IT.umd.js +4 -1
  81. package/lib/locale/lang/ja-JP.js +4 -1
  82. package/lib/locale/lang/ja-JP.min.js +1 -1
  83. package/lib/locale/lang/ja-JP.umd.js +4 -1
  84. package/lib/locale/lang/ko-KR.js +4 -1
  85. package/lib/locale/lang/ko-KR.min.js +1 -1
  86. package/lib/locale/lang/ko-KR.umd.js +4 -1
  87. package/lib/locale/lang/ms-MY.js +4 -1
  88. package/lib/locale/lang/ms-MY.min.js +1 -1
  89. package/lib/locale/lang/ms-MY.umd.js +4 -1
  90. package/lib/locale/lang/nb-NO.js +4 -1
  91. package/lib/locale/lang/nb-NO.min.js +1 -1
  92. package/lib/locale/lang/nb-NO.umd.js +4 -1
  93. package/lib/locale/lang/pt-BR.js +4 -1
  94. package/lib/locale/lang/pt-BR.min.js +1 -1
  95. package/lib/locale/lang/pt-BR.umd.js +4 -1
  96. package/lib/locale/lang/ru-RU.js +4 -1
  97. package/lib/locale/lang/ru-RU.min.js +1 -1
  98. package/lib/locale/lang/ru-RU.umd.js +4 -1
  99. package/lib/locale/lang/th-TH.js +4 -1
  100. package/lib/locale/lang/th-TH.min.js +1 -1
  101. package/lib/locale/lang/th-TH.umd.js +4 -1
  102. package/lib/locale/lang/ug-CN.js +4 -1
  103. package/lib/locale/lang/ug-CN.min.js +1 -1
  104. package/lib/locale/lang/ug-CN.umd.js +4 -1
  105. package/lib/locale/lang/uk-UA.js +4 -1
  106. package/lib/locale/lang/uk-UA.min.js +1 -1
  107. package/lib/locale/lang/uk-UA.umd.js +4 -1
  108. package/lib/locale/lang/uz-UZ.js +4 -1
  109. package/lib/locale/lang/uz-UZ.min.js +1 -1
  110. package/lib/locale/lang/uz-UZ.umd.js +4 -1
  111. package/lib/locale/lang/vi-VN.js +4 -1
  112. package/lib/locale/lang/vi-VN.min.js +1 -1
  113. package/lib/locale/lang/vi-VN.umd.js +4 -1
  114. package/lib/locale/lang/zh-CHT.js +4 -1
  115. package/lib/locale/lang/zh-CHT.min.js +1 -1
  116. package/lib/locale/lang/zh-CHT.umd.js +4 -1
  117. package/lib/locale/lang/zh-CN.js +4 -1
  118. package/lib/locale/lang/zh-CN.min.js +1 -1
  119. package/lib/locale/lang/zh-CN.umd.js +4 -1
  120. package/lib/style.css +1 -1
  121. package/lib/style.min.css +1 -1
  122. package/lib/table/module/custom/mixin.js +0 -4
  123. package/lib/table/module/custom/mixin.min.js +1 -1
  124. package/lib/table/module/custom/panel.js +0 -1
  125. package/lib/table/module/custom/panel.min.js +1 -1
  126. package/lib/table/module/edit/mixin.js +30 -1
  127. package/lib/table/module/edit/mixin.min.js +1 -1
  128. package/lib/table/module/keyboard/mixin.js +2 -2
  129. package/lib/table/module/keyboard/mixin.min.js +1 -1
  130. package/lib/table/src/anime.js +56 -0
  131. package/lib/table/src/anime.min.js +1 -0
  132. package/lib/table/src/body.js +5 -31
  133. package/lib/table/src/body.min.js +1 -1
  134. package/lib/table/src/cell.js +8 -7
  135. package/lib/table/src/cell.min.js +1 -1
  136. package/lib/table/src/columnInfo.js +6 -1
  137. package/lib/table/src/columnInfo.min.js +1 -1
  138. package/lib/table/src/footer.js +5 -22
  139. package/lib/table/src/footer.min.js +1 -1
  140. package/lib/table/src/header.js +2 -20
  141. package/lib/table/src/header.min.js +1 -1
  142. package/lib/table/src/methods.js +586 -371
  143. package/lib/table/src/methods.min.js +1 -1
  144. package/lib/table/src/table.js +49 -17
  145. package/lib/table/src/table.min.js +1 -1
  146. package/lib/table/src/util.js +9 -1
  147. package/lib/table/src/util.min.js +1 -1
  148. package/lib/table/style/style.css +8 -8
  149. package/lib/table/style/style.min.css +1 -1
  150. package/lib/ui/index.js +3 -2
  151. package/lib/ui/index.min.js +1 -1
  152. package/lib/ui/src/log.js +1 -1
  153. package/lib/ui/src/log.min.js +1 -1
  154. package/lib/vxe-table/style/style.css +8 -8
  155. package/lib/vxe-table/style/style.min.css +1 -1
  156. package/package.json +2 -2
  157. package/packages/grid/src/grid.ts +1007 -779
  158. package/packages/locale/lang/ar-EG.ts +4 -1
  159. package/packages/locale/lang/de-DE.ts +4 -1
  160. package/packages/locale/lang/en-US.ts +4 -1
  161. package/packages/locale/lang/es-ES.ts +4 -1
  162. package/packages/locale/lang/fr-FR.ts +4 -1
  163. package/packages/locale/lang/hu-HU.ts +4 -1
  164. package/packages/locale/lang/hy-AM.ts +4 -1
  165. package/packages/locale/lang/id-ID.ts +4 -1
  166. package/packages/locale/lang/it-IT.ts +4 -1
  167. package/packages/locale/lang/ja-JP.ts +4 -1
  168. package/packages/locale/lang/ko-KR.ts +4 -1
  169. package/packages/locale/lang/ms-MY.ts +4 -1
  170. package/packages/locale/lang/nb-NO.ts +4 -1
  171. package/packages/locale/lang/pt-BR.ts +4 -1
  172. package/packages/locale/lang/ru-RU.ts +4 -1
  173. package/packages/locale/lang/th-TH.ts +4 -1
  174. package/packages/locale/lang/ug-CN.ts +4 -1
  175. package/packages/locale/lang/uk-UA.ts +4 -1
  176. package/packages/locale/lang/uz-UZ.ts +4 -1
  177. package/packages/locale/lang/vi-VN.ts +4 -1
  178. package/packages/locale/lang/zh-CHT.ts +4 -1
  179. package/packages/locale/lang/zh-CN.ts +4 -1
  180. package/packages/table/module/custom/mixin.ts +0 -4
  181. package/packages/table/module/custom/panel.ts +0 -1
  182. package/packages/table/module/edit/mixin.ts +30 -2
  183. package/packages/table/module/keyboard/mixin.ts +2 -2
  184. package/packages/table/src/anime.ts +52 -0
  185. package/packages/table/src/body.ts +18 -43
  186. package/packages/table/src/cell.ts +3 -3
  187. package/packages/table/src/columnInfo.ts +6 -1
  188. package/packages/table/src/footer.ts +4 -22
  189. package/packages/table/src/header.ts +2 -21
  190. package/packages/table/src/methods.ts +589 -374
  191. package/packages/table/src/props.ts +4 -4
  192. package/packages/table/src/table.ts +55 -18
  193. package/packages/table/src/util.ts +5 -1
  194. package/packages/ui/index.ts +2 -1
  195. package/styles/components/table.scss +9 -9
  196. package/types/all.d.ts +3 -2
  197. /package/es/{iconfont.1750770351840.ttf → iconfont.1751970594233.ttf} +0 -0
  198. /package/es/{iconfont.1750770351840.woff → iconfont.1751970594233.woff} +0 -0
  199. /package/es/{iconfont.1750770351840.woff2 → iconfont.1751970594233.woff2} +0 -0
  200. /package/lib/{iconfont.1750770351840.ttf → iconfont.1751970594233.ttf} +0 -0
  201. /package/lib/{iconfont.1750770351840.woff → iconfont.1751970594233.woff} +0 -0
  202. /package/lib/{iconfont.1750770351840.woff2 → iconfont.1751970594233.woff2} +0 -0
@@ -86,11 +86,14 @@ function insertTreeRow($xeTable, newRecords, isAppend) {
86
86
  }
87
87
  });
88
88
  }
89
+ // function insertGroupRow ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, newRecords: any[], isAppend: boolean) {
90
+ // }
89
91
  function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
90
92
  const props = $xeTable;
91
93
  const reactData = $xeTable;
92
94
  const internalData = $xeTable;
93
95
  const { treeConfig } = props;
96
+ const { isRowGroupStatus } = reactData;
94
97
  const { tableFullTreeData, afterFullData, mergeBodyList, tableFullData, fullDataRowIdData, fullAllDataRowIdData, insertRowMaps } = internalData;
95
98
  const treeOpts = $xeTable.computeTreeOpts;
96
99
  const { transform, rowField, mapChildrenField } = treeOpts;
@@ -104,6 +107,14 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
104
107
  if (treeConfig && transform) {
105
108
  insertTreeRow($xeTable, newRecords, false);
106
109
  }
110
+ else if (isRowGroupStatus) {
111
+ // 如果分组
112
+ if (treeConfig) {
113
+ throw new Error(getI18n('vxe.error.noTree', ['insert']));
114
+ }
115
+ warnLog(getI18n('vxe.error.noGroup', ['remove']));
116
+ // insertGroupRow($xeTable, newRecords, false)
117
+ }
107
118
  else {
108
119
  newRecords.forEach(item => {
109
120
  const rowid = getRowid($xeTable, item);
@@ -128,6 +139,14 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
128
139
  if (treeConfig && transform) {
129
140
  insertTreeRow($xeTable, newRecords, true);
130
141
  }
142
+ else if (isRowGroupStatus) {
143
+ // 如果分组
144
+ if (treeConfig) {
145
+ throw new Error(getI18n('vxe.error.noTree', ['insert']));
146
+ }
147
+ warnLog(getI18n('vxe.error.noGroup', ['remove']));
148
+ // insertGroupRow($xeTable, newRecords, true)
149
+ }
131
150
  else {
132
151
  newRecords.forEach(item => {
133
152
  const rowid = getRowid($xeTable, item);
@@ -192,6 +211,13 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
192
211
  insertTreeRow($xeTable, newRecords, true);
193
212
  }
194
213
  }
214
+ else if (isRowGroupStatus) {
215
+ // 如果分组
216
+ if (treeConfig) {
217
+ throw new Error(getI18n('vxe.error.noTree', ['insert']));
218
+ }
219
+ warnLog(getI18n('vxe.error.noGroup', ['remove']));
220
+ }
195
221
  else {
196
222
  if (treeConfig) {
197
223
  throw new Error(getI18n('vxe.error.noTree', ['insert']));
@@ -489,7 +515,7 @@ export default {
489
515
  const reactData = $xeTable;
490
516
  const internalData = $xeTable;
491
517
  const { treeConfig } = props;
492
- const { editStore } = reactData;
518
+ const { editStore, isRowGroupStatus } = reactData;
493
519
  const { tableFullTreeData, selectCheckboxMaps, afterFullData, mergeBodyList, tableFullData, pendingRowMaps, insertRowMaps, removeRowMaps } = internalData;
494
520
  const checkboxOpts = $xeTable.computeCheckboxOpts;
495
521
  const treeOpts = $xeTable.computeTreeOpts;
@@ -548,6 +574,10 @@ export default {
548
574
  }
549
575
  });
550
576
  }
577
+ else if (isRowGroupStatus) {
578
+ // 如果分组
579
+ warnLog(getI18n('vxe.error.noGroup', ['remove']));
580
+ }
551
581
  else {
552
582
  rows.forEach((row) => {
553
583
  const tfIndex = this.findRowIndexOf(tableFullData, row);
@@ -352,8 +352,8 @@ export default {
352
352
  handleCellMousedownEvent(evnt, params) {
353
353
  const $xeTable = this;
354
354
  const { editConfig, editOpts, handleSelected, checkboxConfig, checkboxOpts, mouseConfig, mouseOpts } = this;
355
- if (mouseConfig && mouseOpts.area && $xeTable.triggerCellAreaMousedownEvent) {
356
- return $xeTable.triggerCellAreaMousedownEvent(evnt, params);
355
+ if (mouseConfig && mouseOpts.area && $xeTable.triggerCellAreaMousednEvent) {
356
+ return $xeTable.triggerCellAreaMousednEvent(evnt, params);
357
357
  }
358
358
  else {
359
359
  if (checkboxConfig && checkboxOpts.range) {
@@ -0,0 +1,46 @@
1
+ import XEUtils from 'xe-utils';
2
+ import { addClass, removeClass } from '../../ui/src/dom';
3
+ const rowMoveCls = 'row--drag-move';
4
+ const colMoveClass = 'col--drag-move';
5
+ /**
6
+ * 上下拖拽
7
+ */
8
+ export function moveRowAnimateToTb(elemList, offsetTop) {
9
+ XEUtils.arrayEach(elemList, trEl => {
10
+ trEl.style.transform = `translateY(${offsetTop}px)`;
11
+ });
12
+ requestAnimationFrame(() => {
13
+ XEUtils.arrayEach(elemList, trEl => {
14
+ addClass(trEl, rowMoveCls);
15
+ trEl.style.transform = '';
16
+ });
17
+ });
18
+ }
19
+ export function clearRowAnimate(elem) {
20
+ setTimeout(() => {
21
+ if (elem) {
22
+ XEUtils.arrayEach(elem.querySelectorAll(`.vxe-body--row.${rowMoveCls}`), elem => removeClass(elem, rowMoveCls));
23
+ }
24
+ }, 500);
25
+ }
26
+ /**
27
+ * 左右拖拽
28
+ */
29
+ export function moveColAnimateToLr(elemList, offsetLeft) {
30
+ XEUtils.arrayEach(elemList, trEl => {
31
+ trEl.style.transform = `translateX(${offsetLeft}px)`;
32
+ });
33
+ requestAnimationFrame(() => {
34
+ XEUtils.arrayEach(elemList, trEl => {
35
+ addClass(trEl, colMoveClass);
36
+ trEl.style.transform = '';
37
+ });
38
+ });
39
+ }
40
+ export function clearColAnimate(elem) {
41
+ setTimeout(() => {
42
+ if (elem) {
43
+ XEUtils.arrayEach(elem.querySelectorAll(`.vxe-table--column.${colMoveClass}`), elem => removeClass(elem, colMoveClass));
44
+ }
45
+ }, 500);
46
+ }
@@ -17,7 +17,7 @@ const isVMScrollProcess = ($xeTable) => {
17
17
  function renderLine(h, $xeTable, rowid, params, cellHeight) {
18
18
  const tableProps = $xeTable;
19
19
  const tableInternalData = $xeTable;
20
- const { row, column } = params;
20
+ const { column } = params;
21
21
  const { afterFullData } = tableInternalData;
22
22
  const { treeConfig } = tableProps;
23
23
  const treeOpts = $xeTable.computeTreeOpts;
@@ -42,7 +42,7 @@ function renderLine(h, $xeTable, rowid, params, cellHeight) {
42
42
  h('div', {
43
43
  class: 'vxe-tree--line',
44
44
  style: {
45
- height: `${$xeTable.eqRow(afterFullData[0], row) ? 1 : calcTreeLine(params, prevRow)}px`,
45
+ height: `${getRowid($xeTable, afterFullData[0]) === rowid ? 1 : calcTreeLine(params, prevRow)}px`,
46
46
  bottom: `-${Math.floor(cellHeight / 2)}px`,
47
47
  left: `${(rLevel * treeOpts.indent) + (rLevel ? 2 - getOffsetSize($xeTable) : 0) + 16}px`
48
48
  }
@@ -318,7 +318,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
318
318
  colid,
319
319
  rowid
320
320
  },
321
- class: 'vxe-cell--wrapper'
321
+ class: 'vxe-cell--wrapper vxe-body-cell--wrapper'
322
322
  }, column.renderCell(h, cellParams))
323
323
  ]));
324
324
  if (showValidTip && errorValidItem) {
@@ -379,7 +379,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
379
379
  }
380
380
  return h('td', {
381
381
  class: [
382
- 'vxe-body--column',
382
+ 'vxe-table--column vxe-body--column',
383
383
  colid,
384
384
  cellVerticalAlign ? `col--vertical-${cellVerticalAlign}` : '',
385
385
  cellAlign ? `col--${cellAlign}` : '',
@@ -421,7 +421,7 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
421
421
  const tableInternalData = $xeTable;
422
422
  const $xeGrid = $xeTable.$xeGrid;
423
423
  const { stripe, rowKey, highlightHoverRow, rowClassName, rowStyle, editConfig, treeConfig } = tableProps;
424
- const { hasFixedColumn, treeExpandedFlag, isColLoading, scrollXLoad, scrollYLoad, isAllOverflow, rowExpandedFlag, expandColumn, selectRadioRow, pendingRowFlag, isDragColMove, rowExpandHeightFlag, isRowGroupStatus } = tableReactData;
424
+ const { hasFixedColumn, treeExpandedFlag, scrollXLoad, scrollYLoad, isAllOverflow, rowExpandedFlag, expandColumn, selectRadioRow, pendingRowFlag, rowExpandHeightFlag, isRowGroupStatus } = tableReactData;
425
425
  const { fullAllDataRowIdData, fullColumnIdData, treeExpandedMaps, pendingRowMaps, rowExpandedMaps } = tableInternalData;
426
426
  const checkboxOpts = $xeTable.computeCheckboxOpts;
427
427
  const radioOpts = $xeTable.computeRadioOpts;
@@ -429,7 +429,6 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
429
429
  const editOpts = $xeTable.computeEditOpts;
430
430
  const rowOpts = $xeTable.computeRowOpts;
431
431
  const columnOpts = $xeTable.computeColumnOpts;
432
- const columnDragOpts = $xeTable.computeColumnDragOpts;
433
432
  const { transform, seqMode } = treeOpts;
434
433
  const childrenField = treeOpts.children || treeOpts.childrenField;
435
434
  const rows = [];
@@ -510,29 +509,15 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
510
509
  const tdVNs = tableColumn.map((column, $columnIndex) => {
511
510
  return renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, tableColumn, tableData);
512
511
  });
513
- rows.push(!isColLoading && (columnOpts.drag && columnDragOpts.animation)
514
- ? h('transition-group', {
515
- props: {
516
- tag: 'tr',
517
- name: `vxe-header--col-list${isDragColMove ? '' : '-disabled'}`
518
- },
519
- class: trClass,
520
- attrs: {
521
- rowid
522
- },
523
- style: rowStyle ? (XEUtils.isFunction(rowStyle) ? rowStyle(params) : rowStyle) : undefined,
524
- key: rowKey || scrollXLoad || scrollYLoad || rowOpts.useKey || rowOpts.drag || columnOpts.drag || isRowGroupStatus || treeConfig ? rowid : $rowIndex,
525
- nativeOn: trOn
526
- }, tdVNs)
527
- : h('tr', {
528
- class: trClass,
529
- attrs: {
530
- rowid
531
- },
532
- style: rowStyle ? (XEUtils.isFunction(rowStyle) ? rowStyle(params) : rowStyle) : undefined,
533
- key: rowKey || scrollXLoad || scrollYLoad || rowOpts.useKey || rowOpts.drag || columnOpts.drag || isRowGroupStatus || treeConfig ? rowid : $rowIndex,
534
- on: trOn
535
- }, tdVNs));
512
+ rows.push(h('tr', {
513
+ class: trClass,
514
+ attrs: {
515
+ rowid
516
+ },
517
+ style: rowStyle ? (XEUtils.isFunction(rowStyle) ? rowStyle(params) : rowStyle) : undefined,
518
+ key: rowKey || scrollXLoad || scrollYLoad || rowOpts.useKey || rowOpts.drag || columnOpts.drag || isRowGroupStatus || treeConfig ? rowid : $rowIndex,
519
+ on: trOn
520
+ }, tdVNs));
536
521
  // 如果行被展开了
537
522
  if (isExpandRow) {
538
523
  const expandOpts = $xeTable.computeExpandOpts;
@@ -687,12 +672,10 @@ export default {
687
672
  const { xID } = $xeTable;
688
673
  const { fixedColumn, fixedType, tableColumn } = props;
689
674
  const { spanMethod, footerSpanMethod, mouseConfig } = tableProps;
690
- const { isGroup, tableData, isRowLoading, isColLoading, overflowX, scrollXLoad, scrollYLoad, isAllOverflow, isDragRowMove, expandColumn, dragRow, dragCol } = tableReactData;
675
+ const { isGroup, tableData, isColLoading, overflowX, scrollXLoad, scrollYLoad, isAllOverflow, expandColumn, dragRow, dragCol } = tableReactData;
691
676
  const { visibleColumn, fullAllDataRowIdData, fullColumnIdData } = tableInternalData;
692
- const rowOpts = $xeTable.computeRowOpts;
693
677
  const emptyOpts = $xeTable.computeEmptyOpts;
694
678
  const mouseOpts = $xeTable.computeMouseOpts;
695
- const rowDragOpts = $xeTable.computeRowDragOpts;
696
679
  const expandOpts = $xeTable.computeExpandOpts;
697
680
  let renderDataList = tableData;
698
681
  let renderColumnList = tableColumn;
@@ -835,17 +818,9 @@ export default {
835
818
  /**
836
819
  * 内容
837
820
  */
838
- !(isRowLoading || isColLoading) && (rowOpts.drag && rowDragOpts.animation)
839
- ? h('transition-group', {
840
- ref: 'refBodyTBody',
841
- props: {
842
- tag: 'tbody',
843
- name: `vxe-body--row-list${isDragRowMove ? '' : '-disabled'}`
844
- }
845
- }, renderRows(h, this, fixedType, isOptimizeMode, renderDataList, renderColumnList))
846
- : h('tbody', {
847
- ref: 'refBodyTBody'
848
- }, renderRows(h, this, fixedType, isOptimizeMode, renderDataList, renderColumnList))
821
+ h('tbody', {
822
+ ref: 'refBodyTBody'
823
+ }, renderRows(h, this, fixedType, isOptimizeMode, renderDataList, renderColumnList))
849
824
  ]),
850
825
  h('div', {
851
826
  class: 'vxe-table--checkbox-range'
@@ -166,14 +166,14 @@ function getRenderDefaultColumnTitle(h, column, content) {
166
166
  }
167
167
  function renderTitleContent(h, params, content) {
168
168
  const { $table, column } = params;
169
- const { showHeaderOverflow } = column;
170
169
  const tableProps = $table;
171
170
  const tableReactData = $table;
172
171
  const { showHeaderOverflow: allColumnHeaderOverflow } = tableProps;
173
172
  const { isRowGroupStatus } = tableReactData;
173
+ const { showHeaderOverflow } = column;
174
174
  const tooltipOpts = $table.computeTooltipOpts;
175
175
  const showAllTip = tooltipOpts.showAll;
176
- const headOverflow = XEUtils.isUndefined(showHeaderOverflow) || XEUtils.isNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
176
+ const headOverflow = XEUtils.eqNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
177
177
  const showTitle = headOverflow === 'title';
178
178
  const showTooltip = headOverflow === true || headOverflow === 'tooltip';
179
179
  const ons = {};
@@ -202,7 +202,10 @@ function renderTitleContent(h, params, content) {
202
202
  }
203
203
  const titleVN = getRenderDefaultColumnTitle(h, column, content);
204
204
  return [
205
- h('span', Object.assign({ class: 'vxe-cell--title' }, ons), isRowGroupStatus && column.aggFunc && $table.getPivotTableAggregateRenderColTitles
205
+ h('span', {
206
+ class: 'vxe-cell--title',
207
+ on: ons
208
+ }, isRowGroupStatus && column.aggFunc && $table.getPivotTableAggregateRenderColTitles
206
209
  ? $table.getPivotTableAggregateRenderColTitles(h, column, titleVN)
207
210
  : [
208
211
  titleVN
@@ -9,7 +9,7 @@ export class ColumnInfo {
9
9
  constructor($xeTable, _vm, { renderHeader, renderCell, renderFooter, renderData } = {}) {
10
10
  const tableProps = $xeTable;
11
11
  const $xeGrid = $xeTable.$xeGrid;
12
- const proxyOpts = $xeGrid ? $xeGrid.proxyOpts : null;
12
+ const proxyOpts = $xeGrid ? $xeGrid.computeProxyOpts : null;
13
13
  const formatter = _vm.formatter;
14
14
  const visible = XEUtils.isBoolean(_vm.visible) ? _vm.visible : true;
15
15
  const types = ['seq', 'checkbox', 'radio', 'expand', 'html'];
@@ -48,6 +48,11 @@ export class ColumnInfo {
48
48
  }
49
49
  }
50
50
  }
51
+ if (_vm.aggFunc) {
52
+ if (!$xeTable.handlePivotTableAggregateData && _vm.aggFunc !== true) {
53
+ errLog('vxe.error.errProp', [`column.agg-func=${_vm.aggFunc}`, 'column.agg-func=true']);
54
+ }
55
+ }
51
56
  Object.assign(this, {
52
57
  // 基本属性
53
58
  type: _vm.type,
@@ -14,7 +14,7 @@ function renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData, row, $
14
14
  const $xeGrid = $xeTable.$xeGrid;
15
15
  const { fixedType } = props;
16
16
  const { resizable: allResizable, border, footerCellClassName, footerCellStyle, footerAlign: allFooterAlign, footerSpanMethod, align: allAlign, columnKey, showFooterOverflow: allColumnFooterOverflow } = tableProps;
17
- const { scrollXLoad, scrollYLoad, overflowX, currentColumn } = tableReactData;
17
+ const { scrollXLoad, scrollYLoad, overflowX, currentColumn, mergeFootFlag } = tableReactData;
18
18
  const { fullColumnIdData, mergeFooterList, mergeFooterCellMaps, scrollXStore } = tableInternalData;
19
19
  const virtualXOpts = $xeTable.computeVirtualXOpts;
20
20
  const tooltipOpts = $xeTable.computeTooltipOpts;
@@ -89,7 +89,7 @@ function renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData, row, $
89
89
  };
90
90
  let isMergeCell = false;
91
91
  // 合并行或列
92
- if (mergeFooterList.length) {
92
+ if (mergeFootFlag && mergeFooterList.length) {
93
93
  const spanRest = mergeFooterCellMaps[`${_rowIndex}:${_columnIndex}`];
94
94
  if (spanRest) {
95
95
  const { rowspan, colspan } = spanRest;
@@ -135,7 +135,7 @@ function renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData, row, $
135
135
  tcStyle.minHeight = `${currCellHeight}px`;
136
136
  }
137
137
  return h('td', {
138
- class: ['vxe-footer--column', column.id, {
138
+ class: ['vxe-table--column vxe-footer--column', column.id, {
139
139
  [`col--${footAlign}`]: footAlign,
140
140
  [`col--${type}`]: type,
141
141
  'col--last': isLastColumn,
@@ -164,7 +164,7 @@ function renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData, row, $
164
164
  attrs: {
165
165
  colid
166
166
  },
167
- class: 'vxe-cell--wrapper'
167
+ class: 'vxe-cell--wrapper vxe-footer-cell--wrapper'
168
168
  }, column.renderFooter(h, cellParams))
169
169
  ]),
170
170
  /**
@@ -188,29 +188,11 @@ function renderHeads(h, _vm, isOptimizeMode, renderColumnList) {
188
188
  const props = _vm;
189
189
  const $xeTable = _vm.$parent;
190
190
  const tableProps = $xeTable;
191
- const tableReactData = $xeTable;
192
191
  const { fixedType, footerTableData } = props;
193
192
  const { footerRowClassName, footerRowStyle } = tableProps;
194
- const { isColLoading, isDragColMove } = tableReactData;
195
- const columnOpts = $xeTable.computeColumnOpts;
196
- const columnDragOpts = $xeTable.computeColumnDragOpts;
197
193
  return footerTableData.map((row, $rowIndex) => {
198
194
  const _rowIndex = $rowIndex;
199
195
  const rowParams = { $table: $xeTable, row, _rowIndex, $rowIndex, fixed: fixedType, type: renderType };
200
- if (!isColLoading && columnOpts.drag && columnDragOpts.animation) {
201
- return h('transition-group', {
202
- key: $rowIndex,
203
- props: {
204
- tag: 'tr',
205
- name: `vxe-header--col-list${isDragColMove ? '' : '-disabled'}`,
206
- class: [
207
- 'vxe-footer--row',
208
- footerRowClassName ? XEUtils.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''
209
- ],
210
- style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : undefined
211
- }
212
- }, renderRows(h, _vm, isOptimizeMode, renderColumnList, footerTableData, row, $rowIndex, _rowIndex));
213
- }
214
196
  return h('tr', {
215
197
  key: $rowIndex,
216
198
  class: [
@@ -107,7 +107,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
107
107
  tcStyle.minHeight = `${currCellHeight}px`;
108
108
  }
109
109
  return h('th', {
110
- class: ['vxe-header--column', colid, {
110
+ class: ['vxe-table--column vxe-header--column', colid, {
111
111
  [`col--${headAlign}`]: headAlign,
112
112
  [`col--${type}`]: type,
113
113
  'col--last': isLastColumn,
@@ -143,7 +143,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
143
143
  attrs: {
144
144
  colid
145
145
  },
146
- class: 'vxe-cell--wrapper'
146
+ class: 'vxe-cell--wrapper vxe-header-cell--wrapper'
147
147
  }, column.renderHeader(h, cellParams))
148
148
  ]),
149
149
  /**
@@ -165,28 +165,10 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
165
165
  const props = _vm;
166
166
  const $xeTable = _vm.$parent;
167
167
  const tableProps = $xeTable;
168
- const tableReactData = $xeTable;
169
168
  const { fixedType } = props;
170
- const columnOpts = $xeTable.computeColumnOpts;
171
- const columnDragOpts = $xeTable.computeColumnDragOpts;
172
169
  const { headerRowClassName, headerRowStyle } = tableProps;
173
- const { isColLoading, isDragColMove } = tableReactData;
174
170
  return headerGroups.map((cols, $rowIndex) => {
175
171
  const params = { $table: $xeTable, $rowIndex, fixed: fixedType, type: cellType };
176
- if (!isColLoading && columnOpts.drag && columnDragOpts.animation) {
177
- return h('transition-group', {
178
- key: $rowIndex,
179
- props: {
180
- tag: 'tr',
181
- name: `vxe-header--col-list${isDragColMove ? '' : '-disabled'}`,
182
- class: [
183
- 'vxe-header--row',
184
- headerRowClassName ? XEUtils.isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''
185
- ],
186
- style: headerRowStyle ? (XEUtils.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle) : null
187
- }
188
- }, renderRows(h, _vm, isGroup, isOptimizeMode, cols, $rowIndex));
189
- }
190
172
  return h('tr', {
191
173
  key: $rowIndex,
192
174
  class: [