vxe-table 3.15.46 → 3.15.48

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 (171) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/locale/lang/ar-EG.js +16 -2
  4. package/es/locale/lang/de-DE.js +16 -2
  5. package/es/locale/lang/en-US.js +16 -2
  6. package/es/locale/lang/es-ES.js +16 -2
  7. package/es/locale/lang/fr-FR.js +16 -2
  8. package/es/locale/lang/hu-HU.js +16 -2
  9. package/es/locale/lang/hy-AM.js +16 -2
  10. package/es/locale/lang/id-ID.js +16 -2
  11. package/es/locale/lang/it-IT.js +16 -2
  12. package/es/locale/lang/ja-JP.js +16 -2
  13. package/es/locale/lang/ko-KR.js +16 -2
  14. package/es/locale/lang/ms-MY.js +16 -2
  15. package/es/locale/lang/nb-NO.js +16 -2
  16. package/es/locale/lang/pt-BR.js +16 -2
  17. package/es/locale/lang/ru-RU.js +16 -2
  18. package/es/locale/lang/th-TH.js +16 -2
  19. package/es/locale/lang/ug-CN.js +16 -2
  20. package/es/locale/lang/uk-UA.js +16 -2
  21. package/es/locale/lang/uz-UZ.js +16 -2
  22. package/es/locale/lang/vi-VN.js +16 -2
  23. package/es/locale/lang/zh-CHT.js +17 -3
  24. package/es/locale/lang/zh-CN.js +16 -2
  25. package/es/style.css +1 -1
  26. package/es/style.min.css +1 -1
  27. package/es/table/module/custom/mixin.js +20 -5
  28. package/es/table/module/custom/panel.js +36 -15
  29. package/es/table/src/body.js +8 -5
  30. package/es/table/src/cell.js +21 -13
  31. package/es/table/src/columnInfo.js +1 -0
  32. package/es/table/src/methods.js +62 -17
  33. package/es/table/src/table.js +14 -3
  34. package/es/table/style.css +5 -1
  35. package/es/table/style.min.css +1 -1
  36. package/es/ui/index.js +9 -5
  37. package/es/ui/src/log.js +1 -1
  38. package/es/vxe-table/style.css +5 -1
  39. package/es/vxe-table/style.min.css +1 -1
  40. package/lib/index.css +1 -1
  41. package/lib/index.min.css +1 -1
  42. package/lib/index.umd.js +190 -66
  43. package/lib/index.umd.min.js +1 -1
  44. package/lib/locale/lang/ar-EG.js +16 -2
  45. package/lib/locale/lang/ar-EG.min.js +1 -1
  46. package/lib/locale/lang/ar-EG.umd.js +16 -2
  47. package/lib/locale/lang/de-DE.js +16 -2
  48. package/lib/locale/lang/de-DE.min.js +1 -1
  49. package/lib/locale/lang/de-DE.umd.js +16 -2
  50. package/lib/locale/lang/en-US.js +16 -2
  51. package/lib/locale/lang/en-US.min.js +1 -1
  52. package/lib/locale/lang/en-US.umd.js +16 -2
  53. package/lib/locale/lang/es-ES.js +16 -2
  54. package/lib/locale/lang/es-ES.min.js +1 -1
  55. package/lib/locale/lang/es-ES.umd.js +16 -2
  56. package/lib/locale/lang/fr-FR.js +16 -2
  57. package/lib/locale/lang/fr-FR.min.js +1 -1
  58. package/lib/locale/lang/fr-FR.umd.js +16 -2
  59. package/lib/locale/lang/hu-HU.js +16 -2
  60. package/lib/locale/lang/hu-HU.min.js +1 -1
  61. package/lib/locale/lang/hu-HU.umd.js +16 -2
  62. package/lib/locale/lang/hy-AM.js +16 -2
  63. package/lib/locale/lang/hy-AM.min.js +1 -1
  64. package/lib/locale/lang/hy-AM.umd.js +16 -2
  65. package/lib/locale/lang/id-ID.js +16 -2
  66. package/lib/locale/lang/id-ID.min.js +1 -1
  67. package/lib/locale/lang/id-ID.umd.js +16 -2
  68. package/lib/locale/lang/it-IT.js +16 -2
  69. package/lib/locale/lang/it-IT.min.js +1 -1
  70. package/lib/locale/lang/it-IT.umd.js +16 -2
  71. package/lib/locale/lang/ja-JP.js +16 -2
  72. package/lib/locale/lang/ja-JP.min.js +1 -1
  73. package/lib/locale/lang/ja-JP.umd.js +16 -2
  74. package/lib/locale/lang/ko-KR.js +16 -2
  75. package/lib/locale/lang/ko-KR.min.js +1 -1
  76. package/lib/locale/lang/ko-KR.umd.js +16 -2
  77. package/lib/locale/lang/ms-MY.js +16 -2
  78. package/lib/locale/lang/ms-MY.min.js +1 -1
  79. package/lib/locale/lang/ms-MY.umd.js +16 -2
  80. package/lib/locale/lang/nb-NO.js +16 -2
  81. package/lib/locale/lang/nb-NO.min.js +1 -1
  82. package/lib/locale/lang/nb-NO.umd.js +16 -2
  83. package/lib/locale/lang/pt-BR.js +16 -2
  84. package/lib/locale/lang/pt-BR.min.js +1 -1
  85. package/lib/locale/lang/pt-BR.umd.js +16 -2
  86. package/lib/locale/lang/ru-RU.js +16 -2
  87. package/lib/locale/lang/ru-RU.min.js +1 -1
  88. package/lib/locale/lang/ru-RU.umd.js +16 -2
  89. package/lib/locale/lang/th-TH.js +16 -2
  90. package/lib/locale/lang/th-TH.min.js +1 -1
  91. package/lib/locale/lang/th-TH.umd.js +16 -2
  92. package/lib/locale/lang/ug-CN.js +16 -2
  93. package/lib/locale/lang/ug-CN.min.js +1 -1
  94. package/lib/locale/lang/ug-CN.umd.js +16 -2
  95. package/lib/locale/lang/uk-UA.js +16 -2
  96. package/lib/locale/lang/uk-UA.min.js +1 -1
  97. package/lib/locale/lang/uk-UA.umd.js +16 -2
  98. package/lib/locale/lang/uz-UZ.js +16 -2
  99. package/lib/locale/lang/uz-UZ.min.js +1 -1
  100. package/lib/locale/lang/uz-UZ.umd.js +16 -2
  101. package/lib/locale/lang/vi-VN.js +16 -2
  102. package/lib/locale/lang/vi-VN.min.js +1 -1
  103. package/lib/locale/lang/vi-VN.umd.js +16 -2
  104. package/lib/locale/lang/zh-CHT.js +17 -3
  105. package/lib/locale/lang/zh-CHT.min.js +1 -1
  106. package/lib/locale/lang/zh-CHT.umd.js +17 -3
  107. package/lib/locale/lang/zh-CN.js +16 -2
  108. package/lib/locale/lang/zh-CN.min.js +1 -1
  109. package/lib/locale/lang/zh-CN.umd.js +16 -2
  110. package/lib/style.css +1 -1
  111. package/lib/style.min.css +1 -1
  112. package/lib/table/module/custom/mixin.js +20 -5
  113. package/lib/table/module/custom/mixin.min.js +1 -1
  114. package/lib/table/module/custom/panel.js +34 -15
  115. package/lib/table/module/custom/panel.min.js +1 -1
  116. package/lib/table/src/body.js +8 -5
  117. package/lib/table/src/body.min.js +1 -1
  118. package/lib/table/src/cell.js +20 -11
  119. package/lib/table/src/cell.min.js +1 -1
  120. package/lib/table/src/columnInfo.js +1 -0
  121. package/lib/table/src/columnInfo.min.js +1 -1
  122. package/lib/table/src/methods.js +67 -20
  123. package/lib/table/src/methods.min.js +1 -1
  124. package/lib/table/src/table.js +14 -3
  125. package/lib/table/src/table.min.js +1 -1
  126. package/lib/table/style/style.css +5 -1
  127. package/lib/table/style/style.min.css +1 -1
  128. package/lib/ui/index.js +9 -5
  129. package/lib/ui/index.min.js +1 -1
  130. package/lib/ui/src/log.js +1 -1
  131. package/lib/ui/src/log.min.js +1 -1
  132. package/lib/vxe-table/style/style.css +5 -1
  133. package/lib/vxe-table/style/style.min.css +1 -1
  134. package/package.json +1 -1
  135. package/packages/locale/lang/ar-EG.ts +16 -2
  136. package/packages/locale/lang/de-DE.ts +16 -2
  137. package/packages/locale/lang/en-US.ts +16 -2
  138. package/packages/locale/lang/es-ES.ts +16 -2
  139. package/packages/locale/lang/fr-FR.ts +16 -2
  140. package/packages/locale/lang/hu-HU.ts +16 -2
  141. package/packages/locale/lang/hy-AM.ts +16 -2
  142. package/packages/locale/lang/id-ID.ts +16 -2
  143. package/packages/locale/lang/it-IT.ts +16 -2
  144. package/packages/locale/lang/ja-JP.ts +16 -2
  145. package/packages/locale/lang/ko-KR.ts +16 -2
  146. package/packages/locale/lang/ms-MY.ts +16 -2
  147. package/packages/locale/lang/nb-NO.ts +16 -2
  148. package/packages/locale/lang/pt-BR.ts +16 -2
  149. package/packages/locale/lang/ru-RU.ts +16 -2
  150. package/packages/locale/lang/th-TH.ts +16 -2
  151. package/packages/locale/lang/ug-CN.ts +16 -2
  152. package/packages/locale/lang/uk-UA.ts +16 -2
  153. package/packages/locale/lang/uz-UZ.ts +16 -2
  154. package/packages/locale/lang/vi-VN.ts +16 -2
  155. package/packages/locale/lang/zh-CHT.ts +17 -3
  156. package/packages/locale/lang/zh-CN.ts +16 -2
  157. package/packages/table/module/custom/mixin.ts +18 -5
  158. package/packages/table/module/custom/panel.ts +34 -14
  159. package/packages/table/src/body.ts +8 -5
  160. package/packages/table/src/cell.ts +25 -13
  161. package/packages/table/src/columnInfo.ts +1 -0
  162. package/packages/table/src/methods.ts +64 -16
  163. package/packages/table/src/table.ts +14 -3
  164. package/packages/ui/index.ts +8 -4
  165. package/styles/components/table-module/custom.scss +5 -1
  166. /package/es/{iconfont.1750651550655.ttf → iconfont.1750813664386.ttf} +0 -0
  167. /package/es/{iconfont.1750651550655.woff → iconfont.1750813664386.woff} +0 -0
  168. /package/es/{iconfont.1750651550655.woff2 → iconfont.1750813664386.woff2} +0 -0
  169. /package/lib/{iconfont.1750651550655.ttf → iconfont.1750813664386.ttf} +0 -0
  170. /package/lib/{iconfont.1750651550655.woff → iconfont.1750813664386.woff} +0 -0
  171. /package/lib/{iconfont.1750651550655.woff2 → iconfont.1750813664386.woff2} +0 -0
@@ -79,6 +79,7 @@ export default {
79
79
  customCancel: 'Bekor qilmoq',
80
80
  customRestore: 'Standartni tiklash',
81
81
  maxFixedCol: 'Muzlatilgan ustunlarning maksimal soni {0} dan oshmaydi',
82
+ maxGroupCol: '最大分组字段的数量不能超过 {0} 个',
82
83
  dragTip: "Ko'chiring: {0}",
83
84
  resizeColTip: 'Kengligi: {0} piksel',
84
85
  resizeRowTip: 'Yuqori: {0} piksel',
@@ -137,7 +138,7 @@ export default {
137
138
  cstmDragTarget: "Ko'chiring: {0}",
138
139
  setting: {
139
140
  colSort: 'Tartib',
140
- sortHelpTip: 'Ustunlar turini sozlash uchun ikonkani bosing va torting',
141
+ sortHelpTip: '点击并拖动图标可以调整顺序',
141
142
  colTitle: 'Ustun unvon',
142
143
  colResizable: 'Ustun kengligi (piksellar)',
143
144
  colVisible: "Ko'rsatish kerakmi",
@@ -561,7 +562,20 @@ export default {
561
562
  extendPivotTable: {
562
563
  aggregation: {
563
564
  grouping: '分组',
564
- values: '值'
565
+ values: '值',
566
+ groupPlaceholder: '拖至此处进行分组',
567
+ valuesPlaceholder: '拖至此处进行聚合',
568
+ dragExistCol: '该列已存在',
569
+ sortHelpTip: '点击并拖动图标可以调整顺序'
570
+ },
571
+ aggFuncs: {
572
+ sum: '求和',
573
+ count: '计数',
574
+ avg: '平均值',
575
+ min: '最小值',
576
+ max: '最大值',
577
+ first: '首个值',
578
+ last: '末尾值'
565
579
  }
566
580
  },
567
581
  filterComplexInput: {
@@ -79,6 +79,7 @@ export default {
79
79
  customCancel: 'Hủy bỏ',
80
80
  customRestore: 'Khôi phục mặc định',
81
81
  maxFixedCol: 'Số lượng cột đóng băng tối đa không thể vượt quá {0}',
82
+ maxGroupCol: '最大分组字段的数量不能超过 {0} 个',
82
83
  dragTip: 'Di chuyển: {0}',
83
84
  resizeColTip: 'Chiều rộng: {0} pixel',
84
85
  resizeRowTip: 'Chiều cao: {0} pixel',
@@ -137,7 +138,7 @@ export default {
137
138
  cstmDragTarget: 'Di chuyển: {0}',
138
139
  setting: {
139
140
  colSort: 'Loại',
140
- sortHelpTip: 'Nhấp và kéo biểu tượng để điều chỉnh các loại cột',
141
+ sortHelpTip: '点击并拖动图标可以调整顺序',
141
142
  colTitle: 'Tiêu đề cột',
142
143
  colResizable: 'Chiều rộng cột (pixel)',
143
144
  colVisible: 'Có hiển thị không',
@@ -561,7 +562,20 @@ export default {
561
562
  extendPivotTable: {
562
563
  aggregation: {
563
564
  grouping: '分组',
564
- values: '值'
565
+ values: '值',
566
+ groupPlaceholder: '拖至此处进行分组',
567
+ valuesPlaceholder: '拖至此处进行聚合',
568
+ dragExistCol: '该列已存在',
569
+ sortHelpTip: '点击并拖动图标可以调整顺序'
570
+ },
571
+ aggFuncs: {
572
+ sum: '求和',
573
+ count: '计数',
574
+ avg: '平均值',
575
+ min: '最小值',
576
+ max: '最大值',
577
+ first: '首个值',
578
+ last: '末尾值'
565
579
  }
566
580
  },
567
581
  filterComplexInput: {
@@ -79,6 +79,7 @@ export default {
79
79
  customCancel: '取消',
80
80
  customRestore: '恢復默認',
81
81
  maxFixedCol: '最大凍結列的數量不能超過 {0} 個',
82
+ maxGroupCol: '最大分組欄位的數量不能超過 {0} 個',
82
83
  dragTip: '移動:{0}',
83
84
  resizeColTip: '寬:{0} 像素',
84
85
  resizeRowTip: '高:{0} 像素',
@@ -137,7 +138,7 @@ export default {
137
138
  cstmDragTarget: '移動:{0}',
138
139
  setting: {
139
140
  colSort: '排序',
140
- sortHelpTip: '點擊並拖動圖標可以調整列的排序',
141
+ sortHelpTip: '點擊並拖動圖標可以調整順序',
141
142
  colTitle: '列標題',
142
143
  colResizable: '列寬(像素)',
143
144
  colVisible: '是否顯示',
@@ -560,8 +561,21 @@ export default {
560
561
  },
561
562
  extendPivotTable: {
562
563
  aggregation: {
563
- grouping: '分组',
564
- values: '值'
564
+ grouping: '分組',
565
+ values: '值',
566
+ groupPlaceholder: '拖曳至此處進行分組',
567
+ valuesPlaceholder: '拖曳至此處進行聚合',
568
+ dragExistCol: '該列已存在',
569
+ sortHelpTip: '點擊並拖動圖標可以調整順序'
570
+ },
571
+ aggFuncs: {
572
+ sum: '求和',
573
+ count: '计数',
574
+ avg: '平均值',
575
+ min: '最小值',
576
+ max: '最大值',
577
+ first: '首个值',
578
+ last: '末尾值'
565
579
  }
566
580
  },
567
581
  filterComplexInput: {
@@ -79,6 +79,7 @@ export default {
79
79
  customCancel: '取消',
80
80
  customRestore: '恢复默认',
81
81
  maxFixedCol: '最大冻结列的数量不能超过 {0} 个',
82
+ maxGroupCol: '最大分组字段的数量不能超过 {0} 个',
82
83
  dragTip: '移动:{0}',
83
84
  resizeColTip: '宽:{0} 像素',
84
85
  resizeRowTip: '高:{0} 像素',
@@ -137,7 +138,7 @@ export default {
137
138
  cstmDragTarget: '移动:{0}',
138
139
  setting: {
139
140
  colSort: '排序',
140
- sortHelpTip: '点击并拖动图标可以调整列的排序',
141
+ sortHelpTip: '点击并拖动图标可以调整顺序',
141
142
  colTitle: '列标题',
142
143
  colResizable: '列宽(像素)',
143
144
  colVisible: '是否显示',
@@ -561,7 +562,20 @@ export default {
561
562
  extendPivotTable: {
562
563
  aggregation: {
563
564
  grouping: '分组',
564
- values: '值'
565
+ values: '值',
566
+ groupPlaceholder: '拖至此处进行分组',
567
+ valuesPlaceholder: '拖至此处进行聚合',
568
+ dragExistCol: '该列已存在',
569
+ sortHelpTip: '点击并拖动图标可以调整顺序'
570
+ },
571
+ aggFuncs: {
572
+ sum: '求和',
573
+ count: '计数',
574
+ avg: '平均值',
575
+ min: '最小值',
576
+ max: '最大值',
577
+ first: '首个值',
578
+ last: '末尾值'
565
579
  }
566
580
  },
567
581
  filterComplexInput: {
@@ -66,7 +66,7 @@ export default {
66
66
 
67
67
  const { customColumnList, aggHandleFields, rowGroupList } = reactData
68
68
  const customOpts = $xeTable.computeCustomOpts
69
- const { allowVisible, allowSort, allowFixed, allowResizable } = customOpts
69
+ const { allowVisible, allowSort, allowFixed, allowResizable, allowGroup, allowValues } = customOpts
70
70
  XEUtils.eachTree(customColumnList, (column, index, items, path, parentColumn) => {
71
71
  if (parentColumn) {
72
72
  // 更新子列信息
@@ -91,6 +91,9 @@ export default {
91
91
  if (allowVisible) {
92
92
  column.visible = column.renderVisible
93
93
  }
94
+ if (allowGroup && allowValues) {
95
+ column.aggFunc = column.renderAggFn
96
+ }
94
97
  })
95
98
  reactData.isCustomStatus = true
96
99
  reactData.isDragColMove = true
@@ -98,14 +101,17 @@ export default {
98
101
  reactData.isDragColMove = false
99
102
  }, 1000)
100
103
  return $xeTable.saveCustomStore('confirm').then(() => {
101
- if (($xeTable as any).handlePivotTableAggregateData) {
104
+ if (allowGroup && allowValues && ($xeTable as any).handlePivotTableAggregateData) {
102
105
  if (rowGroupList.length !== aggHandleFields.length || rowGroupList.some((conf, i) => conf.field !== aggHandleFields[i])) {
103
- // 改动聚合分组
106
+ // 更新数据分组
104
107
  if (aggHandleFields.length) {
105
108
  $xeTable.setRowGroups(aggHandleFields)
106
109
  } else {
107
110
  $xeTable.clearRowGroups()
108
111
  }
112
+ } else {
113
+ // 更新聚合函数
114
+ $xeTable.handleUpdateAggData()
109
115
  }
110
116
  }
111
117
  })
@@ -152,7 +158,8 @@ export default {
152
158
  visible: true,
153
159
  resizable: options === true,
154
160
  fixed: options === true,
155
- sort: options === true
161
+ sort: options === true,
162
+ aggFunc: options === true
156
163
  }, options)
157
164
  XEUtils.eachTree(collectColumn, (column) => {
158
165
  if (opts.resizable) {
@@ -167,12 +174,16 @@ export default {
167
174
  if (!checkMethod || checkMethod({ $table: $xeTable, column })) {
168
175
  column.visible = column.defaultVisible
169
176
  }
177
+ if (opts.aggFunc) {
178
+ column.aggFunc = column.defaultAggFunc
179
+ column.renderAggFn = column.defaultAggFunc
180
+ }
170
181
  column.renderResizeWidth = column.renderWidth
171
182
  })
172
183
  reactData.isCustomStatus = false
173
184
  $xeTable.saveCustomStore('reset')
174
185
  return $xeTable.handleCustom().then(() => {
175
- if (($xeTable as any).handlePivotTableAggregateData) {
186
+ if (opts.aggFunc && ($xeTable as any).handlePivotTableAggregateData) {
176
187
  const rowGroupFields = $xeTable.computeRowGroupFields
177
188
  if (rowGroupFields ? rowGroupFields.length : rowGroupList.length) {
178
189
  if (rowGroupFields && rowGroupFields.length) {
@@ -180,6 +191,8 @@ export default {
180
191
  } else {
181
192
  $xeTable.clearRowGroups()
182
193
  }
194
+ } else {
195
+ $xeTable.handleUpdateAggData()
183
196
  }
184
197
  }
185
198
  })
@@ -24,8 +24,8 @@ function showDropTip ($xeTableCustomPanel: VxeTableCustomPanelConstructor, evnt:
24
24
  const { prevDragToChild } = customPanelInternalData
25
25
  const bodyWrapperRect = bodyWrapperElem.getBoundingClientRect()
26
26
  const customBodyRect = customBodyElem.getBoundingClientRect()
27
+ const dragLineEl = $xeTableCustomPanel.$refs.refDragLineElem as HTMLDivElement
27
28
  if (optEl) {
28
- const dragLineEl = $xeTableCustomPanel.$refs.refDragLineElem as HTMLDivElement
29
29
  if (dragLineEl) {
30
30
  if (showLine) {
31
31
  const optRect = optEl.getBoundingClientRect()
@@ -40,6 +40,10 @@ function showDropTip ($xeTableCustomPanel: VxeTableCustomPanelConstructor, evnt:
40
40
  dragLineEl.style.display = ''
41
41
  }
42
42
  }
43
+ } else {
44
+ if (dragLineEl) {
45
+ dragLineEl.style.display = 'node'
46
+ }
43
47
  }
44
48
  const dragTipEl = $xeTableCustomPanel.$refs.refDragTipElem as HTMLDivElement
45
49
  if (dragTipEl) {
@@ -294,7 +298,7 @@ const renderSimplePanel = (h: CreateElement, _vm: any) => {
294
298
  ? [
295
299
  h('div', {
296
300
  ref: 'refBodyWrapperElem',
297
- class: 'vxe-table-custom-body-wrapper'
301
+ class: 'vxe-table-custom-simple--body-wrapper'
298
302
  }, [
299
303
  !treeConfig && (aggregateConfig || rowGroupConfig) && $xeTable.getPivotTableAggregateSimplePanel
300
304
  ? h($xeTable.getPivotTableAggregateSimplePanel(), {
@@ -445,7 +449,7 @@ const renderPopupPanel = (h: CreateElement, $xeTableCustomPanel: VxeTableCustomP
445
449
  const $xeGrid = $xeTable.$xeGrid
446
450
 
447
451
  const { customStore } = props
448
- const { resizable: allResizable } = tableProps
452
+ const { treeConfig, rowGroupConfig, aggregateConfig, resizable: allResizable } = tableProps
449
453
  const { isCustomStatus, customColumnList } = tableReactData
450
454
  const customOpts = $xeTable.computeCustomOpts
451
455
  const { immediate } = customOpts
@@ -746,7 +750,14 @@ const renderPopupPanel = (h: CreateElement, $xeTableCustomPanel: VxeTableCustomP
746
750
  }, $xeTable.callSlot(bottomSlot, params, h))
747
751
  : renderEmptyElement($xeTable),
748
752
  renderDragTip(h, _vm)
749
- ])
753
+ ]),
754
+ !treeConfig && (aggregateConfig || rowGroupConfig) && $xeTable.getPivotTableAggregatePopupPanel
755
+ ? h($xeTable.getPivotTableAggregatePopupPanel(), {
756
+ props: {
757
+ customStore
758
+ }
759
+ })
760
+ : renderEmptyElement($xeTable)
750
761
  ])
751
762
  },
752
763
  footer: () => {
@@ -879,13 +890,15 @@ export default {
879
890
  data () {
880
891
  const reactData: TableCustomPanelReactData = {
881
892
  dragCol: null,
893
+ dragGroupField: null,
894
+ dragAggFnCol: null,
882
895
  dragTipText: ''
883
896
  }
884
897
 
885
898
  const internalData: TableCustomPanelInternalData = {
886
899
  // prevDragCol: undefined,
887
- // prevDragGroup: undefined,
888
- // prevDragValues: undefined,
900
+ // prevDragGroupField: undefined,
901
+ // prevDragAggFnColid: undefined,
889
902
  // prevDragToChild: false,
890
903
  // prevDragPos: null
891
904
  }
@@ -1158,6 +1171,8 @@ export default {
1158
1171
  const column = $xeTable.getColumnById(colid)
1159
1172
  trEl.draggable = true
1160
1173
  customPanelReactData.dragCol = column
1174
+ customPanelReactData.dragGroupField = null
1175
+ customPanelReactData.dragAggFnCol = null
1161
1176
  this.updateColDropTipContent()
1162
1177
  addClass(trEl, 'active--drag-origin')
1163
1178
  },
@@ -1172,6 +1187,8 @@ export default {
1172
1187
  hideDropTip($xeTableCustomPanel)
1173
1188
  trEl.draggable = false
1174
1189
  customPanelReactData.dragCol = null
1190
+ customPanelReactData.dragGroupField = null
1191
+ customPanelReactData.dragAggFnCol = null
1175
1192
  removeClass(trEl, 'active--drag-origin')
1176
1193
  },
1177
1194
  sortDragstartEvent (evnt: any) {
@@ -1181,8 +1198,8 @@ export default {
1181
1198
  if (evnt.dataTransfer) {
1182
1199
  evnt.dataTransfer.setDragImage(getTpImg(), 0, 0)
1183
1200
  }
1184
- customPanelInternalData.prevDragGroup = null
1185
- customPanelInternalData.prevDragValues = null
1201
+ customPanelInternalData.prevDragGroupField = null
1202
+ customPanelInternalData.prevDragAggFnColid = null
1186
1203
  },
1187
1204
  sortDragendEvent (evnt: any) {
1188
1205
  const $xeTableCustomPanel = this as unknown as VxeTableCustomPanelConstructor
@@ -1202,10 +1219,10 @@ export default {
1202
1219
  const columnDragOpts = $xeTable.computeColumnDragOpts
1203
1220
  const { isCrossDrag, isSelfToChildDrag, isToChildDrag, dragEndMethod } = columnDragOpts
1204
1221
  const { dragCol } = customPanelReactData
1205
- const { prevDragCol, prevDragGroup, prevDragValues, prevDragPos, prevDragToChild } = customPanelInternalData
1222
+ const { prevDragCol, prevDragGroupField, prevDragAggFnColid, prevDragPos, prevDragToChild } = customPanelInternalData
1206
1223
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0
1207
1224
 
1208
- if (prevDragGroup || prevDragValues) {
1225
+ if (prevDragGroupField || prevDragAggFnColid) {
1209
1226
  if ($xeTable.handlePivotTableAggregatePanelDragendEvent) {
1210
1227
  $xeTable.handlePivotTableAggregatePanelDragendEvent(evnt)
1211
1228
  }
@@ -1375,8 +1392,10 @@ export default {
1375
1392
 
1376
1393
  hideDropTip($xeTableCustomPanel)
1377
1394
  customPanelReactData.dragCol = null
1378
- customPanelInternalData.prevDragGroup = null
1379
- customPanelInternalData.prevDragValues = null
1395
+ customPanelReactData.dragGroupField = null
1396
+ customPanelReactData.dragAggFnCol = null
1397
+ customPanelInternalData.prevDragGroupField = null
1398
+ customPanelInternalData.prevDragAggFnColid = null
1380
1399
  trEl.draggable = false
1381
1400
  trEl.removeAttribute('drag-pos')
1382
1401
  removeClass(trEl, 'active--drag-target')
@@ -1397,14 +1416,15 @@ export default {
1397
1416
  const isControlKey = hasControlKey(evnt)
1398
1417
  const colid = optEl.getAttribute('colid')
1399
1418
  const column = $xeTable.getColumnById(colid)
1400
- customPanelInternalData.prevDragGroup = null
1401
- customPanelInternalData.prevDragValues = null
1419
+ customPanelInternalData.prevDragGroupField = null
1420
+ customPanelInternalData.prevDragAggFnColid = null
1402
1421
  // 是否移入有效列
1403
1422
  if (column && (isCrossDrag || column.level === 1)) {
1404
1423
  evnt.preventDefault()
1405
1424
  const offsetY = evnt.clientY - optEl.getBoundingClientRect().y
1406
1425
  const dragPos = offsetY < optEl.clientHeight / 2 ? 'top' : 'bottom'
1407
1426
  if (
1427
+ !dragCol ||
1408
1428
  (dragCol && dragCol.id === column.id) ||
1409
1429
  (!isCrossDrag && column.level > 1) ||
1410
1430
  (!immediate && column.level > 1) ||
@@ -218,6 +218,7 @@ function renderTdColumn (
218
218
  $xeTable.triggerCellDblclickEvent(evnt, cellParams)
219
219
  }
220
220
  let isMergeCell = false
221
+ let mergeColspan = 1
221
222
  let mergeRowspan = 1
222
223
  // 合并行或列
223
224
  if (mergeBodyFlag && mergeBodyList.length) {
@@ -234,6 +235,7 @@ function renderTdColumn (
234
235
  }
235
236
  if (colspan > 1) {
236
237
  isMergeCell = true
238
+ mergeColspan = colspan
237
239
  tdAttrs.colspan = colspan
238
240
  }
239
241
  }
@@ -250,6 +252,7 @@ function renderTdColumn (
250
252
  }
251
253
  if (colspan > 1) {
252
254
  isMergeCell = true
255
+ mergeColspan = colspan
253
256
  tdAttrs.colspan = colspan
254
257
  }
255
258
  }
@@ -293,16 +296,16 @@ function renderTdColumn (
293
296
 
294
297
  const tcStyle: Record<string, string> = {}
295
298
  if (hasEllipsis && resizeWidthFlag) {
296
- let tsColspan = tdAttrs.colspan || 0
297
- if (tsColspan > 1) {
298
- for (let index = 1; index < tsColspan; index++) {
299
+ let mergeColWidth = 0
300
+ if (mergeColspan > 1) {
301
+ for (let index = 1; index < mergeColspan; index++) {
299
302
  const nextColumn = visibleColumn[columnIndex + index]
300
303
  if (nextColumn) {
301
- tsColspan += nextColumn.renderWidth
304
+ mergeColWidth += nextColumn.renderWidth
302
305
  }
303
306
  }
304
307
  }
305
- tcStyle.width = `${column.renderWidth - (cellOffsetWidth * tsColspan)}px`
308
+ tcStyle.width = `${column.renderWidth + mergeColWidth - cellOffsetWidth}px`
306
309
  }
307
310
  if (scrollYLoad || hasEllipsis || isCsHeight || isRsHeight) {
308
311
  tcStyle.height = `${cellHeight}px`
@@ -165,12 +165,27 @@ function renderHeaderCellBaseVNs (h: CreateElement, params: VxeTableDefines.Cell
165
165
  return vns
166
166
  }
167
167
 
168
+ function getRenderDefaultColumnTitle (h: CreateElement, column: VxeTableDefines.ColumnInfo, content: VxeComponentSlotType | VxeComponentSlotType[]) {
169
+ if (column.type === 'html' && XEUtils.isString(content)) {
170
+ return h('span', {
171
+ key: 'ch',
172
+ domProps: {
173
+ innerHTML: content
174
+ }
175
+ })
176
+ }
177
+ return h('span', {
178
+ key: 'ct'
179
+ }, getSlotVNs(content))
180
+ }
181
+
168
182
  function renderTitleContent (h: CreateElement, params: VxeTableDefines.CellRenderHeaderParams & { $table: VxeTableConstructor & VxeTablePrivateMethods }, content: VxeComponentSlotType | VxeComponentSlotType[]) {
169
183
  const { $table, column } = params
170
- const { type, showHeaderOverflow } = column
184
+ const { showHeaderOverflow } = column
171
185
  const tableProps = $table
172
186
  const tableReactData = $table as unknown as TableReactData
173
187
  const { showHeaderOverflow: allColumnHeaderOverflow } = tableProps
188
+ const { isRowGroupStatus } = tableReactData
174
189
  const tooltipOpts = $table.computeTooltipOpts
175
190
  const showAllTip = tooltipOpts.showAll
176
191
  const headOverflow = XEUtils.isUndefined(showHeaderOverflow) || XEUtils.isNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow
@@ -199,19 +214,16 @@ function renderTitleContent (h: CreateElement, params: VxeTableDefines.CellRende
199
214
  }
200
215
  }
201
216
  }
217
+ const titleVN = getRenderDefaultColumnTitle(h, column, content)
202
218
  return [
203
- type === 'html' && XEUtils.isString(content)
204
- ? h('span', {
205
- class: 'vxe-cell--title',
206
- domProps: {
207
- innerHTML: content
208
- },
209
- on: ons
210
- })
211
- : h('span', {
212
- class: 'vxe-cell--title',
213
- on: ons
214
- }, getSlotVNs(content))
219
+ h('span', {
220
+ class: 'vxe-cell--title',
221
+ ...ons
222
+ }, isRowGroupStatus && column.aggFunc && $table.getPivotTableAggregateRenderColTitles
223
+ ? $table.getPivotTableAggregateRenderColTitles(h, column, titleVN)
224
+ : [
225
+ titleVN
226
+ ])
215
227
  ]
216
228
  }
217
229
 
@@ -114,6 +114,7 @@ export class ColumnInfo {
114
114
  halfVisible: false,
115
115
  defaultVisible: visible,
116
116
  defaultFixed: _vm.fixed,
117
+ defaultAggFunc: _vm.aggFunc,
117
118
  checked: false,
118
119
  halfChecked: false,
119
120
  disabled: false,