vxe-table 4.14.0-beta.0 → 4.14.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 (207) hide show
  1. package/README.en.md +1 -70
  2. package/README.ja-JP.md +1 -70
  3. package/README.md +9 -18
  4. package/README.zh-TW.md +1 -69
  5. package/es/grid/src/grid.js +129 -96
  6. package/es/index.css +1 -1
  7. package/es/index.esm.js +2 -2
  8. package/es/index.min.css +1 -1
  9. package/es/locale/lang/ar-EG.js +4 -1
  10. package/es/locale/lang/de-DE.js +4 -1
  11. package/es/locale/lang/en-US.js +4 -1
  12. package/es/locale/lang/es-ES.js +4 -1
  13. package/es/locale/lang/fr-FR.js +4 -1
  14. package/es/locale/lang/hu-HU.js +4 -1
  15. package/es/locale/lang/hy-AM.js +4 -1
  16. package/es/locale/lang/id-ID.js +4 -1
  17. package/es/locale/lang/it-IT.js +4 -1
  18. package/es/locale/lang/ja-JP.js +4 -1
  19. package/es/locale/lang/ko-KR.js +4 -1
  20. package/es/locale/lang/ms-MY.js +4 -1
  21. package/es/locale/lang/nb-NO.js +4 -1
  22. package/es/locale/lang/pt-BR.js +4 -1
  23. package/es/locale/lang/ru-RU.js +4 -1
  24. package/es/locale/lang/th-TH.js +4 -1
  25. package/es/locale/lang/ug-CN.js +4 -1
  26. package/es/locale/lang/uk-UA.js +4 -1
  27. package/es/locale/lang/uz-UZ.js +4 -1
  28. package/es/locale/lang/vi-VN.js +4 -1
  29. package/es/locale/lang/zh-CHT.js +4 -1
  30. package/es/locale/lang/zh-CN.js +4 -1
  31. package/es/style.css +1 -1
  32. package/es/style.min.css +1 -1
  33. package/es/table/module/custom/hook.js +0 -4
  34. package/es/table/module/custom/panel.js +0 -1
  35. package/es/table/module/edit/hook.js +31 -1
  36. package/es/table/module/filter/hook.js +1 -1
  37. package/es/table/module/keyboard/hook.js +2 -2
  38. package/es/table/src/anime.js +46 -0
  39. package/es/table/src/body.js +13 -27
  40. package/es/table/src/cell.js +1 -1
  41. package/es/table/src/columnInfo.js +5 -0
  42. package/es/table/src/footer.js +8 -25
  43. package/es/table/src/header.js +5 -22
  44. package/es/table/src/table.js +610 -382
  45. package/es/table/src/util.js +6 -2
  46. package/es/table/style.css +8 -8
  47. package/es/table/style.min.css +1 -1
  48. package/es/ui/index.js +8 -2
  49. package/es/ui/src/log.js +1 -1
  50. package/es/vxe-table/style.css +8 -8
  51. package/es/vxe-table/style.min.css +1 -1
  52. package/lib/grid/src/grid.js +145 -100
  53. package/lib/grid/src/grid.min.js +1 -1
  54. package/lib/index.common.js +5 -5
  55. package/lib/index.css +1 -1
  56. package/lib/index.min.css +1 -1
  57. package/lib/index.umd.js +325 -234
  58. package/lib/index.umd.min.js +1 -1
  59. package/lib/locale/lang/ar-EG.js +4 -1
  60. package/lib/locale/lang/ar-EG.min.js +1 -1
  61. package/lib/locale/lang/ar-EG.umd.js +4 -1
  62. package/lib/locale/lang/de-DE.js +4 -1
  63. package/lib/locale/lang/de-DE.min.js +1 -1
  64. package/lib/locale/lang/de-DE.umd.js +4 -1
  65. package/lib/locale/lang/en-US.js +4 -1
  66. package/lib/locale/lang/en-US.min.js +1 -1
  67. package/lib/locale/lang/en-US.umd.js +4 -1
  68. package/lib/locale/lang/es-ES.js +4 -1
  69. package/lib/locale/lang/es-ES.min.js +1 -1
  70. package/lib/locale/lang/es-ES.umd.js +4 -1
  71. package/lib/locale/lang/fr-FR.js +4 -1
  72. package/lib/locale/lang/fr-FR.min.js +1 -1
  73. package/lib/locale/lang/fr-FR.umd.js +4 -1
  74. package/lib/locale/lang/hu-HU.js +4 -1
  75. package/lib/locale/lang/hu-HU.min.js +1 -1
  76. package/lib/locale/lang/hu-HU.umd.js +4 -1
  77. package/lib/locale/lang/hy-AM.js +4 -1
  78. package/lib/locale/lang/hy-AM.min.js +1 -1
  79. package/lib/locale/lang/hy-AM.umd.js +4 -1
  80. package/lib/locale/lang/id-ID.js +4 -1
  81. package/lib/locale/lang/id-ID.min.js +1 -1
  82. package/lib/locale/lang/id-ID.umd.js +4 -1
  83. package/lib/locale/lang/it-IT.js +4 -1
  84. package/lib/locale/lang/it-IT.min.js +1 -1
  85. package/lib/locale/lang/it-IT.umd.js +4 -1
  86. package/lib/locale/lang/ja-JP.js +4 -1
  87. package/lib/locale/lang/ja-JP.min.js +1 -1
  88. package/lib/locale/lang/ja-JP.umd.js +4 -1
  89. package/lib/locale/lang/ko-KR.js +4 -1
  90. package/lib/locale/lang/ko-KR.min.js +1 -1
  91. package/lib/locale/lang/ko-KR.umd.js +4 -1
  92. package/lib/locale/lang/ms-MY.js +4 -1
  93. package/lib/locale/lang/ms-MY.min.js +1 -1
  94. package/lib/locale/lang/ms-MY.umd.js +4 -1
  95. package/lib/locale/lang/nb-NO.js +4 -1
  96. package/lib/locale/lang/nb-NO.min.js +1 -1
  97. package/lib/locale/lang/nb-NO.umd.js +4 -1
  98. package/lib/locale/lang/pt-BR.js +4 -1
  99. package/lib/locale/lang/pt-BR.min.js +1 -1
  100. package/lib/locale/lang/pt-BR.umd.js +4 -1
  101. package/lib/locale/lang/ru-RU.js +4 -1
  102. package/lib/locale/lang/ru-RU.min.js +1 -1
  103. package/lib/locale/lang/ru-RU.umd.js +4 -1
  104. package/lib/locale/lang/th-TH.js +4 -1
  105. package/lib/locale/lang/th-TH.min.js +1 -1
  106. package/lib/locale/lang/th-TH.umd.js +4 -1
  107. package/lib/locale/lang/ug-CN.js +4 -1
  108. package/lib/locale/lang/ug-CN.min.js +1 -1
  109. package/lib/locale/lang/ug-CN.umd.js +4 -1
  110. package/lib/locale/lang/uk-UA.js +4 -1
  111. package/lib/locale/lang/uk-UA.min.js +1 -1
  112. package/lib/locale/lang/uk-UA.umd.js +4 -1
  113. package/lib/locale/lang/uz-UZ.js +4 -1
  114. package/lib/locale/lang/uz-UZ.min.js +1 -1
  115. package/lib/locale/lang/uz-UZ.umd.js +4 -1
  116. package/lib/locale/lang/vi-VN.js +4 -1
  117. package/lib/locale/lang/vi-VN.min.js +1 -1
  118. package/lib/locale/lang/vi-VN.umd.js +4 -1
  119. package/lib/locale/lang/zh-CHT.js +4 -1
  120. package/lib/locale/lang/zh-CHT.min.js +1 -1
  121. package/lib/locale/lang/zh-CHT.umd.js +4 -1
  122. package/lib/locale/lang/zh-CN.js +4 -1
  123. package/lib/locale/lang/zh-CN.min.js +1 -1
  124. package/lib/locale/lang/zh-CN.umd.js +4 -1
  125. package/lib/style.css +1 -1
  126. package/lib/style.min.css +1 -1
  127. package/lib/table/module/custom/hook.js +0 -4
  128. package/lib/table/module/custom/hook.min.js +1 -1
  129. package/lib/table/module/custom/panel.js +0 -1
  130. package/lib/table/module/custom/panel.min.js +1 -1
  131. package/lib/table/module/edit/hook.js +30 -1
  132. package/lib/table/module/edit/hook.min.js +1 -1
  133. package/lib/table/module/filter/hook.js +1 -1
  134. package/lib/table/module/filter/hook.min.js +1 -1
  135. package/lib/table/module/keyboard/hook.js +2 -2
  136. package/lib/table/module/keyboard/hook.min.js +1 -1
  137. package/lib/table/src/anime.js +56 -0
  138. package/lib/table/src/anime.min.js +1 -0
  139. package/lib/table/src/body.js +6 -29
  140. package/lib/table/src/body.min.js +1 -1
  141. package/lib/table/src/cell.js +1 -1
  142. package/lib/table/src/cell.min.js +1 -1
  143. package/lib/table/src/columnInfo.js +5 -0
  144. package/lib/table/src/columnInfo.min.js +1 -1
  145. package/lib/table/src/footer.js +6 -23
  146. package/lib/table/src/footer.min.js +1 -1
  147. package/lib/table/src/header.js +3 -20
  148. package/lib/table/src/header.min.js +1 -1
  149. package/lib/table/src/table.js +57 -46
  150. package/lib/table/src/table.min.js +1 -1
  151. package/lib/table/src/util.js +11 -3
  152. package/lib/table/src/util.min.js +1 -1
  153. package/lib/table/style/style.css +8 -8
  154. package/lib/table/style/style.min.css +1 -1
  155. package/lib/ui/index.js +8 -2
  156. package/lib/ui/index.min.js +1 -1
  157. package/lib/ui/src/log.js +1 -1
  158. package/lib/ui/src/log.min.js +1 -1
  159. package/lib/vxe-table/style/style.css +8 -8
  160. package/lib/vxe-table/style/style.min.css +1 -1
  161. package/package.json +2 -2
  162. package/packages/grid/src/grid.ts +138 -103
  163. package/packages/index.ts +2 -2
  164. package/packages/locale/lang/ar-EG.ts +4 -1
  165. package/packages/locale/lang/de-DE.ts +4 -1
  166. package/packages/locale/lang/en-US.ts +4 -1
  167. package/packages/locale/lang/es-ES.ts +4 -1
  168. package/packages/locale/lang/fr-FR.ts +4 -1
  169. package/packages/locale/lang/hu-HU.ts +4 -1
  170. package/packages/locale/lang/hy-AM.ts +4 -1
  171. package/packages/locale/lang/id-ID.ts +4 -1
  172. package/packages/locale/lang/it-IT.ts +4 -1
  173. package/packages/locale/lang/ja-JP.ts +4 -1
  174. package/packages/locale/lang/ko-KR.ts +4 -1
  175. package/packages/locale/lang/ms-MY.ts +4 -1
  176. package/packages/locale/lang/nb-NO.ts +4 -1
  177. package/packages/locale/lang/pt-BR.ts +4 -1
  178. package/packages/locale/lang/ru-RU.ts +4 -1
  179. package/packages/locale/lang/th-TH.ts +4 -1
  180. package/packages/locale/lang/ug-CN.ts +4 -1
  181. package/packages/locale/lang/uk-UA.ts +4 -1
  182. package/packages/locale/lang/uz-UZ.ts +4 -1
  183. package/packages/locale/lang/vi-VN.ts +4 -1
  184. package/packages/locale/lang/zh-CHT.ts +4 -1
  185. package/packages/locale/lang/zh-CN.ts +4 -1
  186. package/packages/table/module/custom/hook.ts +0 -4
  187. package/packages/table/module/custom/panel.ts +0 -1
  188. package/packages/table/module/edit/hook.ts +29 -1
  189. package/packages/table/module/filter/hook.ts +1 -1
  190. package/packages/table/module/keyboard/hook.ts +2 -2
  191. package/packages/table/src/anime.ts +52 -0
  192. package/packages/table/src/body.ts +20 -41
  193. package/packages/table/src/cell.ts +1 -1
  194. package/packages/table/src/columnInfo.ts +5 -0
  195. package/packages/table/src/footer.ts +8 -25
  196. package/packages/table/src/header.ts +5 -22
  197. package/packages/table/src/table.ts +621 -385
  198. package/packages/table/src/util.ts +6 -2
  199. package/packages/ui/index.ts +7 -1
  200. package/styles/components/table.scss +9 -9
  201. package/types/all.d.ts +3 -18
  202. /package/es/{iconfont.1750770364548.ttf → iconfont.1751970630744.ttf} +0 -0
  203. /package/es/{iconfont.1750770364548.woff → iconfont.1751970630744.woff} +0 -0
  204. /package/es/{iconfont.1750770364548.woff2 → iconfont.1751970630744.woff2} +0 -0
  205. /package/lib/{iconfont.1750770364548.ttf → iconfont.1751970630744.ttf} +0 -0
  206. /package/lib/{iconfont.1750770364548.woff → iconfont.1751970630744.woff} +0 -0
  207. /package/lib/{iconfont.1750770364548.woff2 → iconfont.1751970630744.woff2} +0 -0
@@ -9,7 +9,7 @@ import VxeToolbarComponent from '../../toolbar/src/toolbar';
9
9
  import tableComponentProps from '../../table/src/props';
10
10
  import tableComponentEmits from '../../table/src/emits';
11
11
  import { getSlotVNs } from '../../ui/src/vn';
12
- import { errLog } from '../../ui/src/log';
12
+ import { warnLog, errLog } from '../../ui/src/log';
13
13
  const { getConfig, getI18n, commands, hooks, useFns, createEvent, globalEvents, GLOBAL_EVENT_KEYS, renderEmptyElement } = VxeUI;
14
14
  const tableComponentPropKeys = Object.keys(tableComponentProps);
15
15
  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', 'getTreeParentRow', 'getRowSeq', 'getRowById', 'getRowid', 'getTableData', 'getFullData', 'setColumnFixed', 'clearColumnFixed', 'setColumnWidth', 'getColumnWidth', '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', 'sort', 'setSort', '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', 'scrollTo', 'scrollToRow', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeInsertRow', 'removeMergeCells', 'getMergeCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'getCustomStoreData', 'setRowGroupExpand', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'isAggregateRecord', 'isAggregateExpandByRow', 'getAggregateContentByRow', 'getAggregateRowChildren', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect'];
@@ -95,11 +95,11 @@ export default defineVxeComponent({
95
95
  });
96
96
  const computeIsRespMsg = computed(() => {
97
97
  const proxyOpts = computeProxyOpts.value;
98
- return XEUtils.isBoolean(proxyOpts.message) ? proxyOpts.message : proxyOpts.showResponseMsg;
98
+ return !!(XEUtils.isBoolean(proxyOpts.message) ? proxyOpts.message : proxyOpts.showResponseMsg);
99
99
  });
100
100
  const computeIsActiveMsg = computed(() => {
101
101
  const proxyOpts = computeProxyOpts.value;
102
- return proxyOpts.showActiveMsg;
102
+ return !!proxyOpts.showActiveMsg;
103
103
  });
104
104
  const computePagerOpts = computed(() => {
105
105
  return Object.assign({}, getConfig().grid.pagerConfig, props.pagerConfig);
@@ -139,11 +139,12 @@ export default defineVxeComponent({
139
139
  return rest;
140
140
  });
141
141
  const computeTableProps = computed(() => {
142
- const { seqConfig, pagerConfig, loading, editConfig, proxyConfig } = props;
143
- const { isZMax, tableLoading, tablePage } = reactData;
142
+ const { seqConfig, pagerConfig, editConfig, proxyConfig } = props;
143
+ const { isZMax, tablePage } = reactData;
144
144
  const tableExtendProps = computeTableExtendProps.value;
145
145
  const proxyOpts = computeProxyOpts.value;
146
146
  const pagerOpts = computePagerOpts.value;
147
+ const isLoading = computeIsLoading.value;
147
148
  const tProps = Object.assign({}, tableExtendProps);
148
149
  if (isZMax) {
149
150
  if (tableExtendProps.maxHeight) {
@@ -154,7 +155,7 @@ export default defineVxeComponent({
154
155
  }
155
156
  }
156
157
  if (proxyConfig && isEnableConf(proxyOpts)) {
157
- tProps.loading = loading || tableLoading;
158
+ tProps.loading = isLoading;
158
159
  if (pagerConfig && proxyOpts.seq && isEnableConf(pagerOpts)) {
159
160
  tProps.seqConfig = Object.assign({}, seqConfig, { startIndex: (tablePage.currentPage - 1) * tablePage.pageSize });
160
161
  }
@@ -204,6 +205,13 @@ export default defineVxeComponent({
204
205
  const pagerOpts = computePagerOpts.value;
205
206
  return pagerOpts.total;
206
207
  });
208
+ const computeIsLoading = computed(() => {
209
+ const { loading, proxyConfig } = props;
210
+ const { tableLoading } = reactData;
211
+ const proxyOpts = computeProxyOpts.value;
212
+ const { showLoading } = proxyOpts;
213
+ return loading || (tableLoading && showLoading && proxyConfig && isEnableConf(proxyOpts));
214
+ });
207
215
  const refMaps = {
208
216
  refElem,
209
217
  refTable,
@@ -346,12 +354,12 @@ export default defineVxeComponent({
346
354
  reactData.sortData = params.sortList;
347
355
  if (proxyConfig && isEnableConf(proxyOpts)) {
348
356
  reactData.tablePage.currentPage = 1;
349
- gridMethods.commitProxy('query').then((rest) => {
350
- gridMethods.dispatchEvent('proxy-query', rest, params.$event);
357
+ $xeGrid.commitProxy('query').then((rest) => {
358
+ $xeGrid.dispatchEvent('proxy-query', rest, params.$event);
351
359
  });
352
360
  }
353
361
  }
354
- gridMethods.dispatchEvent('sort-change', params, params.$event);
362
+ $xeGrid.dispatchEvent('sort-change', params, params.$event);
355
363
  };
356
364
  const filterChangeEvent = (params) => {
357
365
  const $xeTable = refTable.value;
@@ -364,12 +372,12 @@ export default defineVxeComponent({
364
372
  reactData.filterData = params.filterList;
365
373
  if (proxyConfig && isEnableConf(proxyOpts)) {
366
374
  reactData.tablePage.currentPage = 1;
367
- gridMethods.commitProxy('query').then((rest) => {
368
- gridMethods.dispatchEvent('proxy-query', rest, params.$event);
375
+ $xeGrid.commitProxy('query').then((rest) => {
376
+ $xeGrid.dispatchEvent('proxy-query', rest, params.$event);
369
377
  });
370
378
  }
371
379
  }
372
- gridMethods.dispatchEvent('filter-change', params, params.$event);
380
+ $xeGrid.dispatchEvent('filter-change', params, params.$event);
373
381
  };
374
382
  const submitFormEvent = (params) => {
375
383
  const { proxyConfig } = props;
@@ -378,32 +386,32 @@ export default defineVxeComponent({
378
386
  return;
379
387
  }
380
388
  if (proxyConfig && isEnableConf(proxyOpts)) {
381
- gridMethods.commitProxy('reload').then((rest) => {
382
- gridMethods.dispatchEvent('proxy-query', Object.assign(Object.assign({}, rest), { isReload: true }), params.$event);
389
+ $xeGrid.commitProxy('reload').then((rest) => {
390
+ $xeGrid.dispatchEvent('proxy-query', Object.assign(Object.assign({}, rest), { isReload: true }), params.$event);
383
391
  });
384
392
  }
385
- gridMethods.dispatchEvent('form-submit', params, params.$event);
393
+ $xeGrid.dispatchEvent('form-submit', params, params.$event);
386
394
  };
387
395
  const resetFormEvent = (params) => {
396
+ const $xeTable = refTable.value;
388
397
  const { proxyConfig } = props;
389
398
  const { $event } = params;
390
399
  const proxyOpts = computeProxyOpts.value;
391
- const $xeTable = refTable.value;
392
400
  if (proxyConfig && isEnableConf(proxyOpts)) {
393
401
  $xeTable.clearScroll();
394
- gridMethods.commitProxy('reload').then((rest) => {
395
- gridMethods.dispatchEvent('proxy-query', Object.assign(Object.assign({}, rest), { isReload: true }), $event);
402
+ $xeGrid.commitProxy('reload').then((rest) => {
403
+ $xeGrid.dispatchEvent('proxy-query', Object.assign(Object.assign({}, rest), { isReload: true }), $event);
396
404
  });
397
405
  }
398
- gridMethods.dispatchEvent('form-reset', params, $event);
406
+ $xeGrid.dispatchEvent('form-reset', params, $event);
399
407
  };
400
408
  const submitInvalidEvent = (params) => {
401
- gridMethods.dispatchEvent('form-submit-invalid', params, params.$event);
409
+ $xeGrid.dispatchEvent('form-submit-invalid', params, params.$event);
402
410
  };
403
411
  const collapseEvent = (params) => {
404
412
  const { $event } = params;
405
- gridMethods.dispatchEvent('form-toggle-collapse', params, $event);
406
- gridMethods.dispatchEvent('form-collapse', params, $event);
413
+ $xeGrid.dispatchEvent('form-toggle-collapse', params, $event);
414
+ $xeGrid.dispatchEvent('form-collapse', params, $event);
407
415
  };
408
416
  const handleZoom = (isMax) => {
409
417
  const { isZMax } = reactData;
@@ -414,9 +422,9 @@ export default defineVxeComponent({
414
422
  }
415
423
  }
416
424
  return nextTick()
417
- .then(() => gridExtendTableMethods.recalculate(true))
425
+ .then(() => $xeGrid.recalculate(true))
418
426
  .then(() => {
419
- setTimeout(() => gridExtendTableMethods.recalculate(true), 15);
427
+ setTimeout(() => $xeGrid.recalculate(true), 15);
420
428
  return reactData.isZMax;
421
429
  });
422
430
  };
@@ -560,12 +568,13 @@ export default defineVxeComponent({
560
568
  * 渲染表格顶部区域
561
569
  */
562
570
  const renderTop = () => {
563
- if (slots.top) {
571
+ const topSlot = slots.top;
572
+ if (topSlot) {
564
573
  return h('div', {
565
574
  ref: refTopWrapper,
566
575
  key: 'top',
567
576
  class: 'vxe-grid--top-wrapper'
568
- }, slots.top({ $grid: $xeGrid }));
577
+ }, topSlot({ $grid: $xeGrid }));
569
578
  }
570
579
  return renderEmptyElement($xeGrid);
571
580
  };
@@ -734,6 +743,30 @@ export default defineVxeComponent({
734
743
  const type = XEUtils.camelCase(`on-${name}`);
735
744
  tableCompEvents[type] = (...args) => emit(name, ...args);
736
745
  });
746
+ const getDefaultFormData = () => {
747
+ const formOpts = computeFormOpts.value;
748
+ if (formOpts.items) {
749
+ const fData = {};
750
+ formOpts.items.forEach(item => {
751
+ const { field, itemRender } = item;
752
+ if (field) {
753
+ let itemValue = null;
754
+ if (itemRender) {
755
+ const { defaultValue } = itemRender;
756
+ if (XEUtils.isFunction(defaultValue)) {
757
+ itemValue = defaultValue({ item });
758
+ }
759
+ else if (!XEUtils.isUndefined(defaultValue)) {
760
+ itemValue = defaultValue;
761
+ }
762
+ }
763
+ fData[field] = itemValue;
764
+ }
765
+ });
766
+ return fData;
767
+ }
768
+ return {};
769
+ };
737
770
  const initProxy = () => {
738
771
  const { proxyConfig, formConfig } = props;
739
772
  const { proxyInited } = reactData;
@@ -741,30 +774,13 @@ export default defineVxeComponent({
741
774
  const formOpts = computeFormOpts.value;
742
775
  if (proxyConfig && isEnableConf(proxyOpts)) {
743
776
  if (formConfig && isEnableConf(formOpts) && proxyOpts.form && formOpts.items) {
744
- const fData = {};
745
- formOpts.items.forEach(item => {
746
- const { field, itemRender } = item;
747
- if (field) {
748
- let itemValue = null;
749
- if (itemRender) {
750
- const { defaultValue } = itemRender;
751
- if (XEUtils.isFunction(defaultValue)) {
752
- itemValue = defaultValue({ item });
753
- }
754
- else if (!XEUtils.isUndefined(defaultValue)) {
755
- itemValue = defaultValue;
756
- }
757
- }
758
- fData[field] = itemValue;
759
- }
760
- });
761
- reactData.formData = fData;
777
+ reactData.formData = getDefaultFormData();
762
778
  }
763
779
  if (!proxyInited) {
764
780
  reactData.proxyInited = true;
765
781
  if (proxyOpts.autoLoad !== false) {
766
- nextTick().then(() => gridMethods.commitProxy('_init')).then((rest) => {
767
- gridMethods.dispatchEvent('proxy-query', Object.assign(Object.assign({}, rest), { isInited: true }), new Event('init'));
782
+ nextTick().then(() => gridMethods.commitProxy('initial')).then((rest) => {
783
+ gridMethods.dispatchEvent('proxy-query', Object.assign(Object.assign({}, rest), { isInited: true }), new Event('initial'));
768
784
  });
769
785
  }
770
786
  }
@@ -774,7 +790,7 @@ export default defineVxeComponent({
774
790
  const zoomOpts = computeZoomOpts.value;
775
791
  const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
776
792
  if (isEsc && reactData.isZMax && zoomOpts.escRestore !== false) {
777
- gridPrivateMethods.triggerZoomEvent(evnt);
793
+ $xeGrid.triggerZoomEvent(evnt);
778
794
  }
779
795
  };
780
796
  const dispatchEvent = (type, params, evnt) => {
@@ -790,7 +806,7 @@ export default defineVxeComponent({
790
806
  * @param {String/Object} code 字符串或对象
791
807
  */
792
808
  commitProxy(proxyTarget, ...args) {
793
- const { toolbarConfig, pagerConfig, editRules, validConfig } = props;
809
+ const { proxyConfig, toolbarConfig, pagerConfig, editRules, validConfig } = props;
794
810
  const { tablePage } = reactData;
795
811
  const isActiveMsg = computeIsActiveMsg.value;
796
812
  const isRespMsg = computeIsRespMsg.value;
@@ -800,7 +816,7 @@ export default defineVxeComponent({
800
816
  const { beforeQuery, afterQuery, beforeDelete, afterDelete, beforeSave, afterSave, ajax = {} } = proxyOpts;
801
817
  const resConfigs = proxyOpts.response || proxyOpts.props || {};
802
818
  const $xeTable = refTable.value;
803
- const formData = getFormData();
819
+ let formData = getFormData();
804
820
  let button = null;
805
821
  let code = null;
806
822
  if (XEUtils.isString(proxyTarget)) {
@@ -818,10 +834,10 @@ export default defineVxeComponent({
818
834
  case 'insert':
819
835
  return $xeTable.insert({});
820
836
  case 'insert_edit':
821
- return $xeTable.insert({}).then(({ row }) => $xeTable.setEditRow(row));
837
+ return $xeTable.insert({}).then(({ row }) => $xeTable.setEditRow(row, true));
822
838
  // 已废弃
823
839
  case 'insert_actived':
824
- return $xeTable.insert({}).then(({ row }) => $xeTable.setEditRow(row));
840
+ return $xeTable.insert({}).then(({ row }) => $xeTable.setEditRow(row, true));
825
841
  // 已废弃
826
842
  case 'mark_cancel':
827
843
  triggerPendingEvent(code);
@@ -842,14 +858,14 @@ export default defineVxeComponent({
842
858
  break;
843
859
  case 'reset_custom':
844
860
  return $xeTable.resetCustom(true);
845
- case '_init':
861
+ case 'initial':
846
862
  case 'reload':
847
863
  case 'query': {
848
864
  const ajaxMethods = ajax.query;
849
865
  const querySuccessMethods = ajax.querySuccess;
850
866
  const queryErrorMethods = ajax.queryError;
851
867
  if (ajaxMethods) {
852
- const isInited = code === '_init';
868
+ const isInited = code === 'initial';
853
869
  const isReload = code === 'reload';
854
870
  if (!isInited && reactData.tableLoading) {
855
871
  return nextTick();
@@ -859,6 +875,7 @@ export default defineVxeComponent({
859
875
  let pageParams = {};
860
876
  if (pagerConfig) {
861
877
  if (isInited || isReload) {
878
+ // 重置分页
862
879
  tablePage.currentPage = 1;
863
880
  }
864
881
  if (isEnableConf(pagerOpts)) {
@@ -866,26 +883,41 @@ export default defineVxeComponent({
866
883
  }
867
884
  }
868
885
  if (isInited) {
869
- let defaultSort = null;
886
+ // 重置代理表单数据
887
+ if (proxyConfig && isEnableConf(proxyOpts) && proxyOpts.form) {
888
+ formData = getDefaultFormData();
889
+ reactData.formData = formData;
890
+ }
870
891
  if ($xeTable) {
892
+ const tableInternalData = $xeTable.internalData;
893
+ const { tableFullColumn, fullColumnFieldData } = tableInternalData;
871
894
  const { computeSortOpts } = $xeTable.getComputeMaps();
872
895
  const sortOpts = computeSortOpts.value;
873
- defaultSort = sortOpts.defaultSort;
874
- }
875
- // 如果使用默认排序
876
- if (defaultSort) {
877
- if (!XEUtils.isArray(defaultSort)) {
878
- defaultSort = [defaultSort];
879
- }
880
- sortList = defaultSort.map((item) => {
881
- return {
882
- field: item.field,
883
- property: item.field,
884
- order: item.order
885
- };
896
+ let defaultSort = sortOpts.defaultSort;
897
+ tableFullColumn.forEach((column) => {
898
+ column.order = null;
886
899
  });
887
- }
888
- if ($xeTable) {
900
+ // 如果使用默认排序
901
+ if (defaultSort) {
902
+ if (!XEUtils.isArray(defaultSort)) {
903
+ defaultSort = [defaultSort];
904
+ }
905
+ sortList = defaultSort.map((item) => {
906
+ const { field, order } = item;
907
+ const colRest = fullColumnFieldData[field];
908
+ if (colRest) {
909
+ const column = colRest.column;
910
+ if (column) {
911
+ column.order = order;
912
+ }
913
+ }
914
+ return {
915
+ field,
916
+ property: field,
917
+ order
918
+ };
919
+ });
920
+ }
889
921
  filterList = $xeTable.getCheckedFilters();
890
922
  }
891
923
  }
@@ -1222,23 +1254,23 @@ export default defineVxeComponent({
1222
1254
  },
1223
1255
  triggerToolbarCommitEvent(params, evnt) {
1224
1256
  const { code } = params;
1225
- return gridMethods.commitProxy(params, evnt).then((rest) => {
1257
+ return $xeGrid.commitProxy(params, evnt).then((rest) => {
1226
1258
  if (code && rest && rest.status && ['query', 'reload', 'delete', 'save'].includes(code)) {
1227
- gridMethods.dispatchEvent(code === 'delete' || code === 'save' ? `proxy-${code}` : 'proxy-query', Object.assign(Object.assign({}, rest), { isReload: code === 'reload' }), evnt);
1259
+ $xeGrid.dispatchEvent(code === 'delete' || code === 'save' ? `proxy-${code}` : 'proxy-query', Object.assign(Object.assign({}, rest), { isReload: code === 'reload' }), evnt);
1228
1260
  }
1229
1261
  });
1230
1262
  },
1231
1263
  triggerToolbarBtnEvent(button, evnt) {
1232
- gridPrivateMethods.triggerToolbarCommitEvent(button, evnt);
1233
- gridMethods.dispatchEvent('toolbar-button-click', { code: button.code, button }, evnt);
1264
+ $xeGrid.triggerToolbarCommitEvent(button, evnt);
1265
+ $xeGrid.dispatchEvent('toolbar-button-click', { code: button.code, button }, evnt);
1234
1266
  },
1235
1267
  triggerToolbarTolEvent(tool, evnt) {
1236
- gridPrivateMethods.triggerToolbarCommitEvent(tool, evnt);
1237
- gridMethods.dispatchEvent('toolbar-tool-click', { code: tool.code, tool }, evnt);
1268
+ $xeGrid.triggerToolbarCommitEvent(tool, evnt);
1269
+ $xeGrid.dispatchEvent('toolbar-tool-click', { code: tool.code, tool }, evnt);
1238
1270
  },
1239
1271
  triggerZoomEvent(evnt) {
1240
- gridMethods.zoom();
1241
- gridMethods.dispatchEvent('zoom', { type: reactData.isZMax ? 'max' : 'revert' }, evnt);
1272
+ $xeGrid.zoom();
1273
+ $xeGrid.dispatchEvent('zoom', { type: reactData.isZMax ? 'max' : 'revert' }, evnt);
1242
1274
  }
1243
1275
  };
1244
1276
  Object.assign($xeGrid, gridExtendTableMethods, gridMethods, gridPrivateMethods, {
@@ -1266,6 +1298,22 @@ export default defineVxeComponent({
1266
1298
  return $xeGrid.loadColumn(columns);
1267
1299
  }
1268
1300
  });
1301
+ const renderVN = () => {
1302
+ const vSize = computeSize.value;
1303
+ const styles = computeStyles.value;
1304
+ const isLoading = computeIsLoading.value;
1305
+ return h('div', {
1306
+ ref: refElem,
1307
+ class: ['vxe-grid', {
1308
+ [`size--${vSize}`]: vSize,
1309
+ 'is--animat': !!props.animat,
1310
+ 'is--round': props.round,
1311
+ 'is--maximize': reactData.isZMax,
1312
+ 'is--loading': isLoading
1313
+ }],
1314
+ style: styles
1315
+ }, renderLayout());
1316
+ };
1269
1317
  const columnFlag = ref(0);
1270
1318
  watch(() => props.columns ? props.columns.length : -1, () => {
1271
1319
  columnFlag.value++;
@@ -1304,6 +1352,7 @@ export default defineVxeComponent({
1304
1352
  onMounted(() => {
1305
1353
  nextTick(() => {
1306
1354
  const { columns } = props;
1355
+ const proxyOpts = computeProxyOpts.value;
1307
1356
  if (props.formConfig) {
1308
1357
  if (!VxeUIFormComponent) {
1309
1358
  errLog('vxe.error.reqComp', ['vxe-form']);
@@ -1315,14 +1364,13 @@ export default defineVxeComponent({
1315
1364
  }
1316
1365
  }
1317
1366
  // const { data, columns, proxyConfig } = props
1318
- // const proxyOpts = computeProxyOpts.value
1319
1367
  // const formOpts = computeFormOpts.value
1320
1368
  // if (isEnableConf(proxyConfig) && (data || (proxyOpts.form && formOpts.data))) {
1321
1369
  // errLog('vxe.error.errConflicts', ['grid.data', 'grid.proxy-config'])
1322
1370
  // }
1323
- // if (proxyOpts.props) {
1324
- // warnLog('vxe.error.delProp', ['proxy-config.props', 'proxy-config.response'])
1325
- // }
1371
+ if (proxyOpts.props) {
1372
+ warnLog('vxe.error.delProp', ['proxy-config.props', 'proxy-config.response']);
1373
+ }
1326
1374
  if (columns && columns.length) {
1327
1375
  $xeGrid.loadColumn(columns);
1328
1376
  }
@@ -1334,21 +1382,6 @@ export default defineVxeComponent({
1334
1382
  onUnmounted(() => {
1335
1383
  globalEvents.off($xeGrid, 'keydown');
1336
1384
  });
1337
- const renderVN = () => {
1338
- const vSize = computeSize.value;
1339
- const styles = computeStyles.value;
1340
- return h('div', {
1341
- ref: refElem,
1342
- class: ['vxe-grid', {
1343
- [`size--${vSize}`]: vSize,
1344
- 'is--animat': !!props.animat,
1345
- 'is--round': props.round,
1346
- 'is--maximize': reactData.isZMax,
1347
- 'is--loading': props.loading || reactData.tableLoading
1348
- }],
1349
- style: styles
1350
- }, renderLayout());
1351
- };
1352
1385
  $xeGrid.renderVN = renderVN;
1353
1386
  provide('$xeGrid', $xeGrid);
1354
1387
  return $xeGrid;