vxe-table 4.13.39 → 4.13.40

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 (216) hide show
  1. package/README.en.md +2 -0
  2. package/README.ja-JP.md +2 -0
  3. package/README.md +3 -0
  4. package/README.zh-TW.md +3 -1
  5. package/es/grid/src/grid.js +21 -6
  6. package/es/{iconfont.1749800539928.ttf → iconfont.1750082858834.ttf} +0 -0
  7. package/es/iconfont.1750082858834.woff +0 -0
  8. package/es/iconfont.1750082858834.woff2 +0 -0
  9. package/es/index.css +1 -1
  10. package/es/index.min.css +1 -1
  11. package/es/locale/lang/ar-EG.js +6 -0
  12. package/es/locale/lang/de-DE.js +6 -0
  13. package/es/locale/lang/en-US.js +6 -0
  14. package/es/locale/lang/es-ES.js +6 -0
  15. package/es/locale/lang/fr-FR.js +6 -0
  16. package/es/locale/lang/hu-HU.js +6 -0
  17. package/es/locale/lang/hy-AM.js +6 -0
  18. package/es/locale/lang/id-ID.js +6 -0
  19. package/es/locale/lang/it-IT.js +6 -0
  20. package/es/locale/lang/ja-JP.js +6 -0
  21. package/es/locale/lang/ko-KR.js +6 -0
  22. package/es/locale/lang/ms-MY.js +6 -0
  23. package/es/locale/lang/nb-NO.js +6 -0
  24. package/es/locale/lang/pt-BR.js +6 -0
  25. package/es/locale/lang/ru-RU.js +6 -0
  26. package/es/locale/lang/th-TH.js +6 -0
  27. package/es/locale/lang/ug-CN.js +6 -0
  28. package/es/locale/lang/uk-UA.js +6 -0
  29. package/es/locale/lang/uz-UZ.js +6 -0
  30. package/es/locale/lang/vi-VN.js +6 -0
  31. package/es/locale/lang/zh-CHT.js +6 -0
  32. package/es/locale/lang/zh-CN.js +6 -0
  33. package/es/style.css +1 -1
  34. package/es/style.min.css +1 -1
  35. package/es/table/module/custom/hook.js +29 -4
  36. package/es/table/module/custom/panel.js +105 -93
  37. package/es/table/module/export/export-panel.js +3 -2
  38. package/es/table/module/export/import-panel.js +3 -2
  39. package/es/table/module/filter/panel.js +3 -2
  40. package/es/table/module/menu/panel.js +3 -2
  41. package/es/table/src/body.js +7 -5
  42. package/es/table/src/column.js +3 -2
  43. package/es/table/src/footer.js +3 -2
  44. package/es/table/src/group.js +3 -2
  45. package/es/table/src/header.js +3 -2
  46. package/es/table/src/props.js +28 -7
  47. package/es/table/src/table.js +64 -47
  48. package/es/table/style.css +22 -3
  49. package/es/table/style.min.css +1 -1
  50. package/es/toolbar/src/toolbar.js +3 -2
  51. package/es/ui/index.js +3 -0
  52. package/es/ui/src/comp.js +2 -0
  53. package/es/vxe-table/style.css +22 -3
  54. package/es/vxe-table/style.min.css +1 -1
  55. package/lib/grid/src/grid.js +20 -5
  56. package/lib/grid/src/grid.min.js +1 -1
  57. package/lib/{iconfont.1749800539928.ttf → iconfont.1750082858834.ttf} +0 -0
  58. package/lib/iconfont.1750082858834.woff +0 -0
  59. package/lib/iconfont.1750082858834.woff2 +0 -0
  60. package/lib/index.css +1 -1
  61. package/lib/index.min.css +1 -1
  62. package/lib/index.umd.js +146 -48
  63. package/lib/index.umd.min.js +1 -1
  64. package/lib/locale/lang/ar-EG.js +6 -0
  65. package/lib/locale/lang/ar-EG.min.js +1 -1
  66. package/lib/locale/lang/ar-EG.umd.js +6 -0
  67. package/lib/locale/lang/de-DE.js +6 -0
  68. package/lib/locale/lang/de-DE.min.js +1 -1
  69. package/lib/locale/lang/de-DE.umd.js +6 -0
  70. package/lib/locale/lang/en-US.js +6 -0
  71. package/lib/locale/lang/en-US.min.js +1 -1
  72. package/lib/locale/lang/en-US.umd.js +6 -0
  73. package/lib/locale/lang/es-ES.js +6 -0
  74. package/lib/locale/lang/es-ES.min.js +1 -1
  75. package/lib/locale/lang/es-ES.umd.js +6 -0
  76. package/lib/locale/lang/fr-FR.js +6 -0
  77. package/lib/locale/lang/fr-FR.min.js +1 -1
  78. package/lib/locale/lang/fr-FR.umd.js +6 -0
  79. package/lib/locale/lang/hu-HU.js +6 -0
  80. package/lib/locale/lang/hu-HU.min.js +1 -1
  81. package/lib/locale/lang/hu-HU.umd.js +6 -0
  82. package/lib/locale/lang/hy-AM.js +6 -0
  83. package/lib/locale/lang/hy-AM.min.js +1 -1
  84. package/lib/locale/lang/hy-AM.umd.js +6 -0
  85. package/lib/locale/lang/id-ID.js +6 -0
  86. package/lib/locale/lang/id-ID.min.js +1 -1
  87. package/lib/locale/lang/id-ID.umd.js +6 -0
  88. package/lib/locale/lang/it-IT.js +6 -0
  89. package/lib/locale/lang/it-IT.min.js +1 -1
  90. package/lib/locale/lang/it-IT.umd.js +6 -0
  91. package/lib/locale/lang/ja-JP.js +6 -0
  92. package/lib/locale/lang/ja-JP.min.js +1 -1
  93. package/lib/locale/lang/ja-JP.umd.js +6 -0
  94. package/lib/locale/lang/ko-KR.js +6 -0
  95. package/lib/locale/lang/ko-KR.min.js +1 -1
  96. package/lib/locale/lang/ko-KR.umd.js +6 -0
  97. package/lib/locale/lang/ms-MY.js +6 -0
  98. package/lib/locale/lang/ms-MY.min.js +1 -1
  99. package/lib/locale/lang/ms-MY.umd.js +6 -0
  100. package/lib/locale/lang/nb-NO.js +6 -0
  101. package/lib/locale/lang/nb-NO.min.js +1 -1
  102. package/lib/locale/lang/nb-NO.umd.js +6 -0
  103. package/lib/locale/lang/pt-BR.js +6 -0
  104. package/lib/locale/lang/pt-BR.min.js +1 -1
  105. package/lib/locale/lang/pt-BR.umd.js +6 -0
  106. package/lib/locale/lang/ru-RU.js +6 -0
  107. package/lib/locale/lang/ru-RU.min.js +1 -1
  108. package/lib/locale/lang/ru-RU.umd.js +6 -0
  109. package/lib/locale/lang/th-TH.js +6 -0
  110. package/lib/locale/lang/th-TH.min.js +1 -1
  111. package/lib/locale/lang/th-TH.umd.js +6 -0
  112. package/lib/locale/lang/ug-CN.js +6 -0
  113. package/lib/locale/lang/ug-CN.min.js +1 -1
  114. package/lib/locale/lang/ug-CN.umd.js +6 -0
  115. package/lib/locale/lang/uk-UA.js +6 -0
  116. package/lib/locale/lang/uk-UA.min.js +1 -1
  117. package/lib/locale/lang/uk-UA.umd.js +6 -0
  118. package/lib/locale/lang/uz-UZ.js +6 -0
  119. package/lib/locale/lang/uz-UZ.min.js +1 -1
  120. package/lib/locale/lang/uz-UZ.umd.js +6 -0
  121. package/lib/locale/lang/vi-VN.js +6 -0
  122. package/lib/locale/lang/vi-VN.min.js +1 -1
  123. package/lib/locale/lang/vi-VN.umd.js +6 -0
  124. package/lib/locale/lang/zh-CHT.js +6 -0
  125. package/lib/locale/lang/zh-CHT.min.js +1 -1
  126. package/lib/locale/lang/zh-CHT.umd.js +6 -0
  127. package/lib/locale/lang/zh-CN.js +6 -0
  128. package/lib/locale/lang/zh-CN.min.js +1 -1
  129. package/lib/locale/lang/zh-CN.umd.js +6 -0
  130. package/lib/style.css +1 -1
  131. package/lib/style.min.css +1 -1
  132. package/lib/table/module/custom/hook.js +32 -4
  133. package/lib/table/module/custom/hook.min.js +1 -1
  134. package/lib/table/module/custom/panel.js +14 -3
  135. package/lib/table/module/custom/panel.min.js +1 -1
  136. package/lib/table/module/export/export-panel.js +2 -1
  137. package/lib/table/module/export/export-panel.min.js +1 -1
  138. package/lib/table/module/export/import-panel.js +2 -1
  139. package/lib/table/module/export/import-panel.min.js +1 -1
  140. package/lib/table/module/filter/panel.js +2 -1
  141. package/lib/table/module/filter/panel.min.js +1 -1
  142. package/lib/table/module/menu/panel.js +2 -1
  143. package/lib/table/module/menu/panel.min.js +1 -1
  144. package/lib/table/src/body.js +9 -9
  145. package/lib/table/src/body.min.js +1 -1
  146. package/lib/table/src/column.js +2 -1
  147. package/lib/table/src/column.min.js +1 -1
  148. package/lib/table/src/footer.js +2 -1
  149. package/lib/table/src/footer.min.js +1 -1
  150. package/lib/table/src/group.js +2 -1
  151. package/lib/table/src/group.min.js +1 -1
  152. package/lib/table/src/header.js +2 -1
  153. package/lib/table/src/header.min.js +1 -1
  154. package/lib/table/src/props.js +28 -7
  155. package/lib/table/src/table.js +13 -11
  156. package/lib/table/src/table.min.js +1 -1
  157. package/lib/table/style/style.css +22 -3
  158. package/lib/table/style/style.min.css +1 -1
  159. package/lib/toolbar/src/toolbar.js +2 -1
  160. package/lib/toolbar/src/toolbar.min.js +1 -1
  161. package/lib/ui/index.js +3 -0
  162. package/lib/ui/index.min.js +1 -1
  163. package/lib/ui/src/comp.js +8 -0
  164. package/lib/ui/src/comp.min.js +1 -0
  165. package/lib/vxe-table/style/style.css +22 -3
  166. package/lib/vxe-table/style/style.min.css +1 -1
  167. package/package.json +1 -1
  168. package/packages/grid/src/grid.ts +29 -7
  169. package/packages/locale/lang/ar-EG.ts +6 -0
  170. package/packages/locale/lang/de-DE.ts +6 -0
  171. package/packages/locale/lang/en-US.ts +6 -0
  172. package/packages/locale/lang/es-ES.ts +6 -0
  173. package/packages/locale/lang/fr-FR.ts +6 -0
  174. package/packages/locale/lang/hu-HU.ts +6 -0
  175. package/packages/locale/lang/hy-AM.ts +6 -0
  176. package/packages/locale/lang/id-ID.ts +6 -0
  177. package/packages/locale/lang/it-IT.ts +6 -0
  178. package/packages/locale/lang/ja-JP.ts +6 -0
  179. package/packages/locale/lang/ko-KR.ts +6 -0
  180. package/packages/locale/lang/ms-MY.ts +6 -0
  181. package/packages/locale/lang/nb-NO.ts +6 -0
  182. package/packages/locale/lang/pt-BR.ts +6 -0
  183. package/packages/locale/lang/ru-RU.ts +6 -0
  184. package/packages/locale/lang/th-TH.ts +6 -0
  185. package/packages/locale/lang/ug-CN.ts +6 -0
  186. package/packages/locale/lang/uk-UA.ts +6 -0
  187. package/packages/locale/lang/uz-UZ.ts +6 -0
  188. package/packages/locale/lang/vi-VN.ts +6 -0
  189. package/packages/locale/lang/zh-CHT.ts +6 -0
  190. package/packages/locale/lang/zh-CN.ts +6 -0
  191. package/packages/table/module/custom/hook.ts +27 -4
  192. package/packages/table/module/custom/panel.ts +114 -102
  193. package/packages/table/module/export/export-panel.ts +3 -2
  194. package/packages/table/module/export/import-panel.ts +3 -2
  195. package/packages/table/module/filter/panel.ts +3 -2
  196. package/packages/table/module/menu/panel.ts +3 -2
  197. package/packages/table/src/body.ts +10 -8
  198. package/packages/table/src/cell.ts +14 -14
  199. package/packages/table/src/column.ts +3 -2
  200. package/packages/table/src/footer.ts +3 -2
  201. package/packages/table/src/group.ts +3 -2
  202. package/packages/table/src/header.ts +3 -2
  203. package/packages/table/src/props.ts +28 -7
  204. package/packages/table/src/table.ts +66 -46
  205. package/packages/toolbar/src/toolbar.ts +3 -2
  206. package/packages/ui/index.ts +11 -0
  207. package/packages/ui/src/comp.ts +3 -0
  208. package/styles/components/icon.scss +13 -1
  209. package/styles/components/table-module/custom.scss +9 -2
  210. package/styles/icon/iconfont.ttf +0 -0
  211. package/styles/icon/iconfont.woff +0 -0
  212. package/styles/icon/iconfont.woff2 +0 -0
  213. package/es/iconfont.1749800539928.woff +0 -0
  214. package/es/iconfont.1749800539928.woff2 +0 -0
  215. package/lib/iconfont.1749800539928.woff +0 -0
  216. package/lib/iconfont.1749800539928.woff2 +0 -0
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'تم استبدال خلايا {0} بنجاح'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'عمود تجميد',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Erfolgreich ersetzt {0} Zellen'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Einfrierensäule',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Successfully replaced {0} cells'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: 'Group',
564
+ values: 'Values'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Freeze column',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Reemplazó con éxito {0} celdas'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Columna de congelación',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Cellules {0} remplacées avec succès'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Colonne de gel',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Sikeresen cserélte a {0} sejteket'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Fagyasztási oszlop',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: '成功替换 {0} 个单元格'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: '冻结列',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Berhasil menggantikan {0} sel'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Kolom beku',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Sostituire correttamente le celle {0}'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Colonna di congelamento',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: '{0}セルを正常に交換しました'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'フリーズコラム',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: '{0} 세포를 성공적으로 대체했습니다'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: '동결 열',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: '{0} sel berjaya diganti'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Lajur membekukan',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Vellykket erstattet {0} celler'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Frysekolonne',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Células substituídas com sucesso {0}'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Coluna de congelamento',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Успешно заменен {0} ячейки'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Замораживание колонки',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'แทนที่เซลล์ {0} สำเร็จ'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'คอลัมน์แช่แข็ง',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'جەمئىي {0} دانە ئۇچۇر ئالماشتۇرۇلدى'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'قۇر توڭلىتىش',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Успішно замінив {0} комірок'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Заморожування стовпчика',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: '{0} hujayralar muvaffaqiyatli almashtirildi'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Muzlatish ustuni',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: 'Đã thay thế thành công {0} ô'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: 'Đóng băng cột',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: '成功替換 {0} 個單元格'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: '凍結列',
@@ -558,6 +558,12 @@ export default {
558
558
  replaceSuccess: '成功替换 {0} 个单元格'
559
559
  }
560
560
  },
561
+ extendPivotTable: {
562
+ aggregation: {
563
+ grouping: '分组',
564
+ values: '值'
565
+ }
566
+ },
561
567
  filterComplexInput: {
562
568
  menus: {
563
569
  fixedColumn: '冻结列',
@@ -9,7 +9,7 @@ const tableCustomMethodKeys: (keyof TableCustomMethods)[] = ['openCustom', 'clos
9
9
  VxeUI.hooks.add('tableCustomModule', {
10
10
  setupTable ($xeTable) {
11
11
  const { reactData, internalData } = $xeTable
12
- const { computeCustomOpts } = $xeTable.getComputeMaps()
12
+ const { computeCustomOpts, computeRowGroupFields } = $xeTable.getComputeMaps()
13
13
  const { refElem } = $xeTable.getRefMaps()
14
14
 
15
15
  const $xeGrid = $xeTable.xeGrid
@@ -71,7 +71,7 @@ VxeUI.hooks.add('tableCustomModule', {
71
71
  }
72
72
 
73
73
  const saveCustom = () => {
74
- const { customColumnList } = reactData
74
+ const { customColumnList, aggHandleFields, rowGroupList } = reactData
75
75
  const customOpts = computeCustomOpts.value
76
76
  const { allowVisible, allowSort, allowFixed, allowResizable } = customOpts
77
77
  XEUtils.eachTree(customColumnList, (column, index, items, path, parentColumn) => {
@@ -104,7 +104,18 @@ VxeUI.hooks.add('tableCustomModule', {
104
104
  setTimeout(() => {
105
105
  reactData.isDragColMove = false
106
106
  }, 1000)
107
- return $xeTable.saveCustomStore('confirm')
107
+ return $xeTable.saveCustomStore('confirm').then(() => {
108
+ if (($xeTable as any).handlePivotTableAggregateData) {
109
+ if (rowGroupList.length !== aggHandleFields.length || rowGroupList.some((conf, i) => conf.field !== aggHandleFields[i])) {
110
+ // 改动聚合分组
111
+ if (aggHandleFields.length) {
112
+ $xeTable.setRowGroups(aggHandleFields)
113
+ } else {
114
+ $xeTable.clearRowGroups()
115
+ }
116
+ }
117
+ }
118
+ })
108
119
  }
109
120
 
110
121
  const cancelCustom = () => {
@@ -179,6 +190,7 @@ VxeUI.hooks.add('tableCustomModule', {
179
190
  saveCustom,
180
191
  cancelCustom,
181
192
  resetCustom (options) {
193
+ const { rowGroupList } = reactData
182
194
  const { collectColumn } = internalData
183
195
  const customOpts = computeCustomOpts.value
184
196
  const { checkMethod } = customOpts
@@ -205,7 +217,18 @@ VxeUI.hooks.add('tableCustomModule', {
205
217
  })
206
218
  reactData.isCustomStatus = false
207
219
  $xeTable.saveCustomStore('reset')
208
- return $xeTable.handleCustom()
220
+ return $xeTable.handleCustom().then(() => {
221
+ if (($xeTable as any).handlePivotTableAggregateData) {
222
+ const rowGroupFields = computeRowGroupFields.value
223
+ if (rowGroupFields ? rowGroupFields.length : rowGroupList.length) {
224
+ if (rowGroupFields && rowGroupFields.length) {
225
+ $xeTable.setRowGroups(rowGroupFields)
226
+ } else {
227
+ $xeTable.clearRowGroups()
228
+ }
229
+ }
230
+ }
231
+ })
209
232
  },
210
233
  toggleCustomAllCheckbox () {
211
234
  const { customStore } = reactData
@@ -1,4 +1,5 @@
1
- import { defineComponent, h, inject, ref, Ref, VNode, PropType, nextTick, TransitionGroup, createCommentVNode } from 'vue'
1
+ import { h, inject, ref, Ref, VNode, PropType, nextTick, TransitionGroup, createCommentVNode } from 'vue'
2
+ import { defineVxeComponent } from '../../../ui/src/comp'
2
3
  import { VxeUI } from '../../../ui'
3
4
  import { formatText } from '../../../ui/src/utils'
4
5
  import { getTpImg, addClass, removeClass, hasControlKey } from '../../../ui/src/dom'
@@ -10,7 +11,7 @@ import type { VxeTableDefines, VxeTablePrivateMethods, VxeTableConstructor, VxeT
10
11
 
11
12
  const { getI18n, getIcon, renderEmptyElement } = VxeUI
12
13
 
13
- export default defineComponent({
14
+ export default defineVxeComponent({
14
15
  name: 'TableCustomPanel',
15
16
  props: {
16
17
  customStore: {
@@ -509,8 +510,10 @@ export default defineComponent({
509
510
 
510
511
  const renderSimplePanel = () => {
511
512
  const $xeGrid = $xeTable.xeGrid
513
+ const tableProps = $xeTable.props
512
514
 
513
515
  const { customStore } = props
516
+ const { treeConfig, rowGroupConfig, aggregateConfig } = tableProps
514
517
  const { isCustomStatus, customColumnList } = reactData
515
518
  const customOpts = computeCustomOpts.value
516
519
  const { immediate } = customOpts
@@ -665,112 +668,121 @@ export default defineComponent({
665
668
  : {}
666
669
  }, customStore.visible
667
670
  ? [
671
+ !treeConfig && (aggregateConfig || rowGroupConfig) && $xeTable.getPivotTableAggregateSimplePanel
672
+ ? h($xeTable.getPivotTableAggregateSimplePanel(), {
673
+ customStore
674
+ })
675
+ : renderEmptyElement($xeTable),
668
676
  h('div', {
669
- class: 'vxe-table-custom--header'
670
- }, headerSlot
671
- ? $xeTable.callSlot(headerSlot, params)
672
- : [
673
- h('ul', {
674
- class: 'vxe-table-custom--panel-list'
675
- }, [
676
- h('li', {
677
- class: 'vxe-table-custom--option'
677
+ class: 'vxe-table-custom--handle-wrapper'
678
+ }, [
679
+ h('div', {
680
+ class: 'vxe-table-custom--header'
681
+ }, headerSlot
682
+ ? $xeTable.callSlot(headerSlot, params)
683
+ : [
684
+ h('ul', {
685
+ class: 'vxe-table-custom--panel-list'
678
686
  }, [
679
- allowVisible
680
- ? h('div', {
681
- class: ['vxe-table-custom--checkbox-option', {
682
- 'is--checked': isAllChecked,
683
- 'is--indeterminate': isAllIndeterminate
684
- }],
685
- title: getI18n('vxe.table.allTitle'),
686
- onClick: allOptionEvent
687
- }, [
688
- h('span', {
689
- class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
690
- }),
691
- h('span', {
687
+ h('li', {
688
+ class: 'vxe-table-custom--option'
689
+ }, [
690
+ allowVisible
691
+ ? h('div', {
692
+ class: ['vxe-table-custom--checkbox-option', {
693
+ 'is--checked': isAllChecked,
694
+ 'is--indeterminate': isAllIndeterminate
695
+ }],
696
+ title: getI18n('vxe.table.allTitle'),
697
+ onClick: allOptionEvent
698
+ }, [
699
+ h('span', {
700
+ class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
701
+ }),
702
+ h('span', {
703
+ class: 'vxe-checkbox--label'
704
+ }, getI18n('vxe.toolbar.customAll'))
705
+ ])
706
+ : h('span', {
692
707
  class: 'vxe-checkbox--label'
693
- }, getI18n('vxe.toolbar.customAll'))
694
- ])
695
- : h('span', {
696
- class: 'vxe-checkbox--label'
697
- }, getI18n('vxe.table.customTitle'))
708
+ }, getI18n('vxe.table.customTitle'))
709
+ ])
698
710
  ])
699
- ])
700
- ]),
701
- h('div', {
702
- ref: bodyElemRef,
703
- class: 'vxe-table-custom--body'
704
- }, [
705
- topSlot
706
- ? h('div', {
707
- class: 'vxe-table-custom--panel-top'
708
- }, $xeTable.callSlot(topSlot, params))
709
- : renderEmptyElement($xeTable),
710
- defaultSlot
711
- ? h('div', {
712
- class: 'vxe-table-custom--panel-body'
713
- }, $xeTable.callSlot(defaultSlot, params))
714
- : h(TransitionGroup, {
715
- class: 'vxe-table-custom--panel-list',
716
- name: 'vxe-table-custom--list',
717
- tag: 'ul',
718
- ...customWrapperOns
719
- }, {
720
- default: () => colVNs
721
- }),
722
- bottomSlot
711
+ ]),
712
+ h('div', {
713
+ ref: bodyElemRef,
714
+ class: 'vxe-table-custom--body'
715
+ }, [
716
+ topSlot
717
+ ? h('div', {
718
+ class: 'vxe-table-custom--panel-top'
719
+ }, $xeTable.callSlot(topSlot, params))
720
+ : renderEmptyElement($xeTable),
721
+ defaultSlot
722
+ ? h('div', {
723
+ class: 'vxe-table-custom--panel-body'
724
+ }, $xeTable.callSlot(defaultSlot, params))
725
+ : h(TransitionGroup, {
726
+ class: 'vxe-table-custom--panel-list',
727
+ name: 'vxe-table-custom--list',
728
+ tag: 'ul',
729
+ ...customWrapperOns
730
+ }, {
731
+ default: () => colVNs
732
+ }),
733
+ bottomSlot
734
+ ? h('div', {
735
+ class: 'vxe-table-custom--panel-bottom'
736
+ }, $xeTable.callSlot(bottomSlot, params))
737
+ : renderEmptyElement($xeTable),
738
+ renderDragTip()
739
+ ]),
740
+ customOpts.showFooter
723
741
  ? h('div', {
724
- class: 'vxe-table-custom--panel-bottom'
725
- }, $xeTable.callSlot(bottomSlot, params))
726
- : renderEmptyElement($xeTable),
727
- renderDragTip()
728
- ]),
729
- customOpts.showFooter
730
- ? h('div', {
731
- class: 'vxe-table-custom--footer'
732
- }, footerSlot
733
- ? $xeTable.callSlot(footerSlot, params)
734
- : [
735
- h('div', {
736
- class: 'vxe-table-custom--footer-buttons'
737
- }, [
738
- VxeUIButtonComponent
739
- ? h(VxeUIButtonComponent, {
740
- mode: 'text',
741
- content: customOpts.resetButtonText || getI18n('vxe.table.customRestore'),
742
- disabled: !isCustomStatus,
743
- onClick: resetCustomEvent
744
- })
745
- : createCommentVNode(),
746
- immediate
747
- ? (VxeUIButtonComponent
748
- ? h(VxeUIButtonComponent, {
749
- mode: 'text',
750
- content: customOpts.closeButtonText || getI18n('vxe.table.customClose'),
751
- onClick: cancelCloseEvent
752
- })
753
- : createCommentVNode())
754
- : (VxeUIButtonComponent
755
- ? h(VxeUIButtonComponent, {
756
- mode: 'text',
757
- content: customOpts.cancelButtonText || getI18n('vxe.table.customCancel'),
758
- onClick: cancelCustomEvent
759
- })
760
- : createCommentVNode()),
761
- immediate
762
- ? createCommentVNode()
763
- : (VxeUIButtonComponent
764
- ? h(VxeUIButtonComponent, {
765
- mode: 'text',
766
- status: 'primary',
767
- content: customOpts.confirmButtonText || getI18n('vxe.table.customConfirm'),
768
- onClick: confirmCustomEvent
769
- })
770
- : createCommentVNode())
742
+ class: 'vxe-table-custom--footer'
743
+ }, footerSlot
744
+ ? $xeTable.callSlot(footerSlot, params)
745
+ : [
746
+ h('div', {
747
+ class: 'vxe-table-custom--footer-buttons'
748
+ }, [
749
+ VxeUIButtonComponent
750
+ ? h(VxeUIButtonComponent, {
751
+ mode: 'text',
752
+ content: customOpts.resetButtonText || getI18n('vxe.table.customRestore'),
753
+ disabled: !isCustomStatus,
754
+ onClick: resetCustomEvent
755
+ })
756
+ : createCommentVNode(),
757
+ immediate
758
+ ? (VxeUIButtonComponent
759
+ ? h(VxeUIButtonComponent, {
760
+ mode: 'text',
761
+ content: customOpts.closeButtonText || getI18n('vxe.table.customClose'),
762
+ onClick: cancelCloseEvent
763
+ })
764
+ : createCommentVNode())
765
+ : (VxeUIButtonComponent
766
+ ? h(VxeUIButtonComponent, {
767
+ mode: 'text',
768
+ content: customOpts.cancelButtonText || getI18n('vxe.table.customCancel'),
769
+ onClick: cancelCustomEvent
770
+ })
771
+ : createCommentVNode()),
772
+ immediate
773
+ ? createCommentVNode()
774
+ : (VxeUIButtonComponent
775
+ ? h(VxeUIButtonComponent, {
776
+ mode: 'text',
777
+ status: 'primary',
778
+ content: customOpts.confirmButtonText || getI18n('vxe.table.customConfirm'),
779
+ onClick: confirmCustomEvent
780
+ })
781
+ : createCommentVNode())
782
+ ])
771
783
  ])
772
- ])
773
- : null
784
+ : null
785
+ ])
774
786
  ]
775
787
  : [])
776
788
  }
@@ -1,4 +1,5 @@
1
- import { defineComponent, h, createCommentVNode, ref, Ref, computed, reactive, inject, nextTick } from 'vue'
1
+ import { h, createCommentVNode, ref, Ref, computed, reactive, inject, nextTick } from 'vue'
2
+ import { defineVxeComponent } from '../../../ui/src/comp'
2
3
  import { VxeUI } from '../../../ui'
3
4
  import XEUtils from 'xe-utils'
4
5
  import { formatText } from '../../../ui/src/utils'
@@ -9,7 +10,7 @@ import type { VxeTablePrivateMethods, VxeTableConstructor, VxeTableMethods } fro
9
10
 
10
11
  const { getI18n, getIcon } = VxeUI
11
12
 
12
- export default defineComponent({
13
+ export default defineVxeComponent({
13
14
  name: 'VxeTableExportPanel',
14
15
  props: {
15
16
  defaultOptions: Object as any,
@@ -1,4 +1,5 @@
1
- import { defineComponent, h, ref, Ref, computed, inject, reactive, nextTick, createCommentVNode } from 'vue'
1
+ import { h, ref, Ref, computed, inject, reactive, nextTick, createCommentVNode } from 'vue'
2
+ import { defineVxeComponent } from '../../../ui/src/comp'
2
3
  import { VxeUI } from '../../../ui'
3
4
  import XEUtils from 'xe-utils'
4
5
  import { parseFile } from '../../../ui/src/utils'
@@ -9,7 +10,7 @@ import type { VxeTablePrivateMethods, VxeTableConstructor, VxeTableMethods } fro
9
10
 
10
11
  const { getI18n, getIcon } = VxeUI
11
12
 
12
- export default defineComponent({
13
+ export default defineVxeComponent({
13
14
  name: 'VxeTableImportPanel',
14
15
  props: {
15
16
  defaultOptions: Object as any,