vxe-table 4.18.0-beta.8 → 4.18.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 (199) hide show
  1. package/README.md +10 -4
  2. package/es/grid/src/grid.js +23 -19
  3. package/es/index.css +1 -1
  4. package/es/index.min.css +1 -1
  5. package/es/locale/lang/ar-EG.js +6 -0
  6. package/es/locale/lang/de-DE.js +6 -0
  7. package/es/locale/lang/en-US.js +6 -0
  8. package/es/locale/lang/es-ES.js +6 -0
  9. package/es/locale/lang/fr-FR.js +6 -0
  10. package/es/locale/lang/hu-HU.js +6 -0
  11. package/es/locale/lang/hy-AM.js +6 -0
  12. package/es/locale/lang/id-ID.js +6 -0
  13. package/es/locale/lang/it-IT.js +6 -0
  14. package/es/locale/lang/ja-JP.js +6 -0
  15. package/es/locale/lang/ko-KR.js +6 -0
  16. package/es/locale/lang/ms-MY.js +6 -0
  17. package/es/locale/lang/nb-NO.js +6 -0
  18. package/es/locale/lang/pt-BR.js +6 -0
  19. package/es/locale/lang/ru-RU.js +6 -0
  20. package/es/locale/lang/th-TH.js +6 -0
  21. package/es/locale/lang/ug-CN.js +6 -0
  22. package/es/locale/lang/uk-UA.js +6 -0
  23. package/es/locale/lang/uz-UZ.js +6 -0
  24. package/es/locale/lang/vi-VN.js +6 -0
  25. package/es/locale/lang/zh-CHT.js +6 -0
  26. package/es/locale/lang/zh-CN.js +6 -0
  27. package/es/style.css +1 -1
  28. package/es/style.min.css +1 -1
  29. package/es/table/module/export/hook.js +15 -1
  30. package/es/table/module/filter/panel.js +11 -3
  31. package/es/table/module/keyboard/hook.js +19 -9
  32. package/es/table/module/validator/hook.js +7 -6
  33. package/es/table/render/index.js +11 -0
  34. package/es/table/src/body.js +12 -5
  35. package/es/table/src/columnInfo.js +2 -0
  36. package/es/table/src/emits.js +1 -0
  37. package/es/table/src/props.js +4 -0
  38. package/es/table/src/table.js +239 -74
  39. package/es/table/src/util.js +39 -20
  40. package/es/table/style.css +11 -17
  41. package/es/table/style.min.css +1 -1
  42. package/es/toolbar/src/toolbar.js +11 -7
  43. package/es/ui/index.js +7 -1
  44. package/es/ui/src/log.js +1 -1
  45. package/es/vxe-table/style.css +11 -17
  46. package/es/vxe-table/style.min.css +1 -1
  47. package/lib/grid/src/grid.js +22 -18
  48. package/lib/grid/src/grid.min.js +1 -1
  49. package/lib/index.css +1 -1
  50. package/lib/index.min.css +1 -1
  51. package/lib/index.umd.js +219 -105
  52. package/lib/index.umd.min.js +1 -1
  53. package/lib/locale/lang/ar-EG.js +6 -0
  54. package/lib/locale/lang/ar-EG.min.js +1 -1
  55. package/lib/locale/lang/ar-EG.umd.js +6 -0
  56. package/lib/locale/lang/de-DE.js +6 -0
  57. package/lib/locale/lang/de-DE.min.js +1 -1
  58. package/lib/locale/lang/de-DE.umd.js +6 -0
  59. package/lib/locale/lang/en-US.js +6 -0
  60. package/lib/locale/lang/en-US.min.js +1 -1
  61. package/lib/locale/lang/en-US.umd.js +6 -0
  62. package/lib/locale/lang/es-ES.js +6 -0
  63. package/lib/locale/lang/es-ES.min.js +1 -1
  64. package/lib/locale/lang/es-ES.umd.js +6 -0
  65. package/lib/locale/lang/fr-FR.js +6 -0
  66. package/lib/locale/lang/fr-FR.min.js +1 -1
  67. package/lib/locale/lang/fr-FR.umd.js +6 -0
  68. package/lib/locale/lang/hu-HU.js +6 -0
  69. package/lib/locale/lang/hu-HU.min.js +1 -1
  70. package/lib/locale/lang/hu-HU.umd.js +6 -0
  71. package/lib/locale/lang/hy-AM.js +6 -0
  72. package/lib/locale/lang/hy-AM.min.js +1 -1
  73. package/lib/locale/lang/hy-AM.umd.js +6 -0
  74. package/lib/locale/lang/id-ID.js +6 -0
  75. package/lib/locale/lang/id-ID.min.js +1 -1
  76. package/lib/locale/lang/id-ID.umd.js +6 -0
  77. package/lib/locale/lang/it-IT.js +6 -0
  78. package/lib/locale/lang/it-IT.min.js +1 -1
  79. package/lib/locale/lang/it-IT.umd.js +6 -0
  80. package/lib/locale/lang/ja-JP.js +6 -0
  81. package/lib/locale/lang/ja-JP.min.js +1 -1
  82. package/lib/locale/lang/ja-JP.umd.js +6 -0
  83. package/lib/locale/lang/ko-KR.js +6 -0
  84. package/lib/locale/lang/ko-KR.min.js +1 -1
  85. package/lib/locale/lang/ko-KR.umd.js +6 -0
  86. package/lib/locale/lang/ms-MY.js +6 -0
  87. package/lib/locale/lang/ms-MY.min.js +1 -1
  88. package/lib/locale/lang/ms-MY.umd.js +6 -0
  89. package/lib/locale/lang/nb-NO.js +6 -0
  90. package/lib/locale/lang/nb-NO.min.js +1 -1
  91. package/lib/locale/lang/nb-NO.umd.js +6 -0
  92. package/lib/locale/lang/pt-BR.js +6 -0
  93. package/lib/locale/lang/pt-BR.min.js +1 -1
  94. package/lib/locale/lang/pt-BR.umd.js +6 -0
  95. package/lib/locale/lang/ru-RU.js +6 -0
  96. package/lib/locale/lang/ru-RU.min.js +1 -1
  97. package/lib/locale/lang/ru-RU.umd.js +6 -0
  98. package/lib/locale/lang/th-TH.js +6 -0
  99. package/lib/locale/lang/th-TH.min.js +1 -1
  100. package/lib/locale/lang/th-TH.umd.js +6 -0
  101. package/lib/locale/lang/ug-CN.js +6 -0
  102. package/lib/locale/lang/ug-CN.min.js +1 -1
  103. package/lib/locale/lang/ug-CN.umd.js +6 -0
  104. package/lib/locale/lang/uk-UA.js +6 -0
  105. package/lib/locale/lang/uk-UA.min.js +1 -1
  106. package/lib/locale/lang/uk-UA.umd.js +6 -0
  107. package/lib/locale/lang/uz-UZ.js +6 -0
  108. package/lib/locale/lang/uz-UZ.min.js +1 -1
  109. package/lib/locale/lang/uz-UZ.umd.js +6 -0
  110. package/lib/locale/lang/vi-VN.js +6 -0
  111. package/lib/locale/lang/vi-VN.min.js +1 -1
  112. package/lib/locale/lang/vi-VN.umd.js +6 -0
  113. package/lib/locale/lang/zh-CHT.js +6 -0
  114. package/lib/locale/lang/zh-CHT.min.js +1 -1
  115. package/lib/locale/lang/zh-CHT.umd.js +6 -0
  116. package/lib/locale/lang/zh-CN.js +6 -0
  117. package/lib/locale/lang/zh-CN.min.js +1 -1
  118. package/lib/locale/lang/zh-CN.umd.js +6 -0
  119. package/lib/style.css +1 -1
  120. package/lib/style.min.css +1 -1
  121. package/lib/table/module/export/hook.js +18 -6
  122. package/lib/table/module/export/hook.min.js +1 -1
  123. package/lib/table/module/filter/panel.js +14 -3
  124. package/lib/table/module/filter/panel.min.js +1 -1
  125. package/lib/table/module/keyboard/hook.js +20 -5
  126. package/lib/table/module/keyboard/hook.min.js +1 -1
  127. package/lib/table/module/validator/hook.js +8 -6
  128. package/lib/table/module/validator/hook.min.js +1 -1
  129. package/lib/table/render/index.js +15 -0
  130. package/lib/table/render/index.min.js +1 -1
  131. package/lib/table/src/body.js +13 -4
  132. package/lib/table/src/body.min.js +1 -1
  133. package/lib/table/src/columnInfo.js +2 -0
  134. package/lib/table/src/columnInfo.min.js +1 -1
  135. package/lib/table/src/emits.js +1 -1
  136. package/lib/table/src/emits.min.js +1 -1
  137. package/lib/table/src/props.js +4 -0
  138. package/lib/table/src/props.min.js +1 -1
  139. package/lib/table/src/table.js +36 -36
  140. package/lib/table/src/table.min.js +1 -1
  141. package/lib/table/src/util.js +44 -21
  142. package/lib/table/src/util.min.js +1 -1
  143. package/lib/table/style/style.css +11 -17
  144. package/lib/table/style/style.min.css +1 -1
  145. package/lib/toolbar/src/toolbar.js +10 -6
  146. package/lib/toolbar/src/toolbar.min.js +1 -1
  147. package/lib/ui/index.js +7 -1
  148. package/lib/ui/index.min.js +1 -1
  149. package/lib/ui/src/log.js +1 -1
  150. package/lib/ui/src/log.min.js +1 -1
  151. package/lib/vxe-table/style/style.css +11 -17
  152. package/lib/vxe-table/style/style.min.css +1 -1
  153. package/package.json +2 -2
  154. package/packages/grid/src/grid.ts +23 -18
  155. package/packages/locale/lang/ar-EG.ts +6 -0
  156. package/packages/locale/lang/de-DE.ts +6 -0
  157. package/packages/locale/lang/en-US.ts +6 -0
  158. package/packages/locale/lang/es-ES.ts +6 -0
  159. package/packages/locale/lang/fr-FR.ts +6 -0
  160. package/packages/locale/lang/hu-HU.ts +6 -0
  161. package/packages/locale/lang/hy-AM.ts +6 -0
  162. package/packages/locale/lang/id-ID.ts +6 -0
  163. package/packages/locale/lang/it-IT.ts +6 -0
  164. package/packages/locale/lang/ja-JP.ts +6 -0
  165. package/packages/locale/lang/ko-KR.ts +6 -0
  166. package/packages/locale/lang/ms-MY.ts +6 -0
  167. package/packages/locale/lang/nb-NO.ts +6 -0
  168. package/packages/locale/lang/pt-BR.ts +6 -0
  169. package/packages/locale/lang/ru-RU.ts +6 -0
  170. package/packages/locale/lang/th-TH.ts +6 -0
  171. package/packages/locale/lang/ug-CN.ts +6 -0
  172. package/packages/locale/lang/uk-UA.ts +6 -0
  173. package/packages/locale/lang/uz-UZ.ts +6 -0
  174. package/packages/locale/lang/vi-VN.ts +6 -0
  175. package/packages/locale/lang/zh-CHT.ts +6 -0
  176. package/packages/locale/lang/zh-CN.ts +6 -0
  177. package/packages/table/module/export/hook.ts +13 -1
  178. package/packages/table/module/filter/panel.ts +10 -3
  179. package/packages/table/module/keyboard/hook.ts +22 -13
  180. package/packages/table/module/validator/hook.ts +7 -6
  181. package/packages/table/render/index.ts +13 -0
  182. package/packages/table/src/body.ts +12 -5
  183. package/packages/table/src/columnInfo.ts +2 -0
  184. package/packages/table/src/emits.ts +1 -0
  185. package/packages/table/src/props.ts +7 -3
  186. package/packages/table/src/table.ts +236 -73
  187. package/packages/table/src/util.ts +44 -19
  188. package/packages/toolbar/src/toolbar.ts +12 -7
  189. package/packages/ui/index.ts +6 -0
  190. package/styles/components/table-module/filter.scss +1 -1
  191. package/styles/components/table-module/menu.scss +4 -9
  192. package/styles/components/table.scss +8 -2
  193. package/styles/theme/base.scss +0 -1
  194. /package/es/{iconfont.1768463295835.ttf → iconfont.1773027275628.ttf} +0 -0
  195. /package/es/{iconfont.1768463295835.woff → iconfont.1773027275628.woff} +0 -0
  196. /package/es/{iconfont.1768463295835.woff2 → iconfont.1773027275628.woff2} +0 -0
  197. /package/lib/{iconfont.1768463295835.ttf → iconfont.1773027275628.ttf} +0 -0
  198. /package/lib/{iconfont.1768463295835.woff → iconfont.1773027275628.woff} +0 -0
  199. /package/lib/{iconfont.1768463295835.woff2 → iconfont.1773027275628.woff2} +0 -0
package/README.md CHANGED
@@ -22,9 +22,12 @@
22
22
 
23
23
  * 版本说明
24
24
  * **V4**
25
- * [x] v3.17 优化触摸板操作;重构筛选渲染,配置更简单功能更强大
26
- * [x] v3.16 适配 Gantt 甘特图
27
- * [x] v3.15 优化虚拟渲染,降低内存的占用率
25
+ * [ ] v4.20 功能需求收集中,大福提升渲染性能,优化百万级渲染量
26
+ * [ ] v4.19 增加对增删改操作撤销回退的支持,预计发布 2026-05
27
+ * [x] v4.18 内部优化,优化键盘操作
28
+ * [x] v4.17 优化触摸板操作;重构筛选渲染,筛选配置更简单功能更强大
29
+ * [x] v4.16 适配 Gantt 甘特图
30
+ * [x] v4.15 优化虚拟渲染,降低内存的占用率
28
31
  * [x] v4.14 重构虚拟渲染,提高渲染与拖拽效果流畅度
29
32
  * [x] v4.13 优化虚拟渲染,提升 Chrome、Safari、Firefox 流畅度极兼容性
30
33
  * [x] v4.12 重构虚拟渲染,支持百万级数据渲染、渲染性能及流畅度大幅提升
@@ -32,7 +35,10 @@
32
35
  * [x] v4.7 基于 vue3.2+,内部重构,拆分 Table 库和 UI 库,只支持现代浏览器,不支持 IE
33
36
  * [x] ~~v4.0 基于 vue3.2+,只支持现代浏览器,不支持 IE(2020-03-01 ~ 2024-12-01 已停止维护)~~
34
37
  * **V3**
35
- * [x] v3.19 优化触摸板操作;重构筛选渲染,配置更简单功能更强大
38
+ * [ ] v3.22 功能需求收集中,大福提升渲染性能,优化百万级渲染量
39
+ * [ ] v3.21 增加对增删改操作撤销回退的支持,预计发布 2026-05
40
+ * [x] v3.20 优化渲染性能,优化键盘操作
41
+ * [x] v3.19 优化触摸板操作;重构筛选渲染,筛选配置更简单功能更强大
36
42
  * [x] v3.18 适配 Gantt 甘特图
37
43
  * [x] v3.17 优化虚拟渲染,降低内存的占用率
38
44
  * [x] v3.16 重构虚拟渲染,提高渲染与拖拽效果流畅度
@@ -1,4 +1,4 @@
1
- import { h, ref, computed, provide, reactive, onUnmounted, watch, nextTick, onMounted } from 'vue';
1
+ import { h, ref, computed, provide, reactive, onBeforeUnmount, watch, nextTick, onMounted } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import XEUtils from 'xe-utils';
4
4
  import { getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils';
@@ -15,6 +15,25 @@ import VxeToolbarComponent from '../../toolbar/src/toolbar';
15
15
  const { getConfig, getI18n, commands, hooks, useFns, createEvent, globalEvents, GLOBAL_EVENT_KEYS, renderEmptyElement } = VxeUI;
16
16
  const tableComponentPropKeys = Object.keys(tableProps);
17
17
  const tableComponentMethodKeys = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'setRow', 'createData', 'createRow', 'revertData', 'clearData', 'isRemoveByRow', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', 'getTreeRowChildren', 'getTreeRowLevel', 'getTreeParentRow', 'getRowSeq', 'getRowById', 'getRowid', 'getTableData', 'getFullData', 'setColumnFixed', 'clearColumnFixed', 'setColumnWidth', 'getColumnWidth', 'recalcRowHeight', 'setRowHeightConf', 'getRowHeightConf', 'setRowHeight', 'getRowHeight', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'setCheckboxRowKey', 'isCheckedByCheckboxRow', 'isCheckedByCheckboxRowKey', 'isIndeterminateByCheckboxRow', 'isIndeterminateByCheckboxRowKey', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'isCheckedByRadioRowKey', 'setRadioRow', 'setRadioRowKey', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'setPendingRow', 'togglePendingRow', 'hasPendingByRow', 'isPendingByRow', 'getPendingRecords', 'clearPendingRow', 'setFilterByEvent', 'sort', 'setSort', 'setSortByEvent', 'clearSort', 'clearSortByEvent', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'clearFilterByEvent', 'isActiveFilterByColumn', 'isRowExpandLoaded', 'clearRowExpandLoaded', 'reloadRowExpand', 'reloadRowExpand', 'toggleRowExpand', 'setAllRowExpand', 'setRowExpand', 'isExpandByRow', 'isRowExpandByRow', 'clearRowExpand', 'clearRowExpandReserve', 'getRowExpandRecords', 'getTreeExpandRecords', 'isTreeExpandLoaded', 'clearTreeExpandLoaded', 'reloadTreeExpand', 'reloadTreeChilds', 'toggleTreeExpand', 'setAllTreeExpand', 'setTreeExpand', 'isTreeExpandByRow', 'clearTreeExpand', 'clearTreeExpandReserve', 'getScroll', 'getScrollData', 'scrollTo', 'scrollToStartRow', 'scrollToEndRow', 'scrollToRow', 'scrollToStartColumn', 'scrollToEndColumn', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeInsertRow', 'removeMergeCells', 'getMergeCells', 'setMergeHeaderCells', 'removeMergeHeaderCells', 'getMergeHeaderCells', 'clearMergeHeaderCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'getCustomStoreData', 'setRowGroupExpand', 'setRowGroupExpandByField', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'isAggregateRecord', 'isAggregateExpandByRow', 'getAggregateContentByRow', 'getAggregateRowChildren', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect', 'connectToolbar'];
18
+ function createReactData() {
19
+ var _a;
20
+ return {
21
+ tableLoading: false,
22
+ proxyInited: false,
23
+ isZMax: false,
24
+ tableData: [],
25
+ filterData: [],
26
+ formData: {},
27
+ sortData: [],
28
+ footerData: [],
29
+ tZindex: 0,
30
+ tablePage: {
31
+ total: 0,
32
+ pageSize: ((_a = getConfig().pager) === null || _a === void 0 ? void 0 : _a.pageSize) || 10,
33
+ currentPage: 1
34
+ }
35
+ };
36
+ }
18
37
  function createInternalData() {
19
38
  return {
20
39
  uFoot: false
@@ -25,7 +44,6 @@ export default defineVxeComponent({
25
44
  props: gridProps,
26
45
  emits: gridEmits,
27
46
  setup(props, context) {
28
- var _a;
29
47
  const { slots, emit } = context;
30
48
  const xID = XEUtils.uniqueId();
31
49
  // 使用已安装的组件,如果未安装则不渲染
@@ -33,22 +51,7 @@ export default defineVxeComponent({
33
51
  const VxeUIPagerComponent = VxeUI.getComponent('VxePager');
34
52
  const defaultLayouts = [['Form'], ['Toolbar', 'Top', 'Table', 'Bottom', 'Pager']];
35
53
  const { computeSize } = useFns.useSize(props);
36
- const reactData = reactive({
37
- tableLoading: false,
38
- proxyInited: false,
39
- isZMax: false,
40
- tableData: [],
41
- filterData: [],
42
- formData: {},
43
- sortData: [],
44
- footerData: [],
45
- tZindex: 0,
46
- tablePage: {
47
- total: 0,
48
- pageSize: ((_a = getConfig().pager) === null || _a === void 0 ? void 0 : _a.pageSize) || 10,
49
- currentPage: 1
50
- }
51
- });
54
+ const reactData = reactive(createReactData());
52
55
  const internalData = createInternalData();
53
56
  const refElem = ref();
54
57
  const refTable = ref();
@@ -1642,8 +1645,9 @@ export default defineVxeComponent({
1642
1645
  });
1643
1646
  globalEvents.on($xeGrid, 'keydown', handleGlobalKeydownEvent);
1644
1647
  });
1645
- onUnmounted(() => {
1648
+ onBeforeUnmount(() => {
1646
1649
  globalEvents.off($xeGrid, 'keydown');
1650
+ XEUtils.assign(reactData, createReactData());
1647
1651
  XEUtils.assign(internalData, createInternalData());
1648
1652
  });
1649
1653
  $xeGrid.renderVN = renderVN;