vxe-table 3.24.0-beta.0 → 3.24.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 (73) hide show
  1. package/es/grid/src/grid.js +2 -2
  2. package/es/style.css +1 -1
  3. package/es/table/module/edit/mixin.js +3 -1
  4. package/es/table/module/export/mixin.js +6 -4
  5. package/es/table/module/filter/mixin.js +4 -2
  6. package/es/table/module/filter/panel.js +4 -2
  7. package/es/table/src/body.js +4 -2
  8. package/es/table/src/cell.js +11 -6
  9. package/es/table/src/columnInfo.js +2 -1
  10. package/es/table/src/footer.js +2 -1
  11. package/es/table/src/header.js +5 -3
  12. package/es/table/src/methods.js +7 -4
  13. package/es/table/src/props.js +4 -0
  14. package/es/table/src/table.js +7 -1
  15. package/es/toolbar/src/toolbar.js +5 -4
  16. package/es/ui/index.js +1 -1
  17. package/es/ui/src/log.js +1 -1
  18. package/lib/grid/src/grid.js +2 -2
  19. package/lib/grid/src/grid.min.js +1 -1
  20. package/lib/index.umd.js +66 -36
  21. package/lib/index.umd.min.js +1 -1
  22. package/lib/style.css +1 -1
  23. package/lib/table/module/edit/mixin.js +3 -1
  24. package/lib/table/module/edit/mixin.min.js +1 -1
  25. package/lib/table/module/export/mixin.js +6 -4
  26. package/lib/table/module/export/mixin.min.js +1 -1
  27. package/lib/table/module/filter/mixin.js +4 -2
  28. package/lib/table/module/filter/mixin.min.js +1 -1
  29. package/lib/table/module/filter/panel.js +4 -2
  30. package/lib/table/module/filter/panel.min.js +1 -1
  31. package/lib/table/src/body.js +4 -2
  32. package/lib/table/src/body.min.js +1 -1
  33. package/lib/table/src/cell.js +11 -6
  34. package/lib/table/src/cell.min.js +1 -1
  35. package/lib/table/src/columnInfo.js +2 -1
  36. package/lib/table/src/columnInfo.min.js +1 -1
  37. package/lib/table/src/footer.js +2 -1
  38. package/lib/table/src/footer.min.js +1 -1
  39. package/lib/table/src/header.js +5 -3
  40. package/lib/table/src/header.min.js +1 -1
  41. package/lib/table/src/methods.js +5 -5
  42. package/lib/table/src/methods.min.js +1 -1
  43. package/lib/table/src/props.js +4 -0
  44. package/lib/table/src/props.min.js +1 -1
  45. package/lib/table/src/table.js +7 -1
  46. package/lib/table/src/table.min.js +1 -1
  47. package/lib/toolbar/src/toolbar.js +5 -4
  48. package/lib/toolbar/src/toolbar.min.js +1 -1
  49. package/lib/ui/index.js +1 -1
  50. package/lib/ui/index.min.js +1 -1
  51. package/lib/ui/src/log.js +1 -1
  52. package/lib/ui/src/log.min.js +1 -1
  53. package/package.json +2 -2
  54. package/packages/grid/src/grid.ts +2 -2
  55. package/packages/table/module/edit/mixin.ts +3 -1
  56. package/packages/table/module/export/mixin.ts +6 -4
  57. package/packages/table/module/filter/mixin.ts +6 -4
  58. package/packages/table/module/filter/panel.ts +4 -2
  59. package/packages/table/src/body.ts +4 -2
  60. package/packages/table/src/cell.ts +11 -6
  61. package/packages/table/src/columnInfo.ts +2 -1
  62. package/packages/table/src/footer.ts +2 -1
  63. package/packages/table/src/header.ts +5 -3
  64. package/packages/table/src/methods.ts +7 -4
  65. package/packages/table/src/props.ts +4 -0
  66. package/packages/table/src/table.ts +8 -1
  67. package/packages/toolbar/src/toolbar.ts +5 -4
  68. /package/es/{iconfont.1789131659648.ttf → iconfont.1789914697948.ttf} +0 -0
  69. /package/es/{iconfont.1789131659648.woff → iconfont.1789914697948.woff} +0 -0
  70. /package/es/{iconfont.1789131659648.woff2 → iconfont.1789914697948.woff2} +0 -0
  71. /package/lib/{iconfont.1789131659648.ttf → iconfont.1789914697948.ttf} +0 -0
  72. /package/lib/{iconfont.1789131659648.woff → iconfont.1789914697948.woff} +0 -0
  73. /package/lib/{iconfont.1789131659648.woff2 → iconfont.1789914697948.woff2} +0 -0
@@ -925,7 +925,9 @@ export default {
925
925
  const { editRender } = column;
926
926
  const editOpts = $xeTable.computeEditOpts;
927
927
  if (editConfig && isEnableConf(editRender)) {
928
- const compRender = renderer.get(editRender.name);
928
+ const rendererOpts = $xeTable.computeRendererOpts;
929
+ const renderName = editRender.name;
930
+ const compRender = renderName ? (rendererOpts[renderName] || renderer.get(renderName)) : null;
929
931
  let autoFocus = editRender.autofocus || editRender.autoFocus;
930
932
  let autoSelect = editRender.autoSelect || editRender.autoselect;
931
933
  let inputElem = null;
@@ -59,6 +59,7 @@ function getBodyLabelData($xeTable, opts, columns, datas) {
59
59
  const treeOpts = $xeTable.computeTreeOpts;
60
60
  const columnOpts = $xeTable.computeColumnOpts;
61
61
  const aggregateOpts = $xeTable.computeAggregateOpts;
62
+ const rendererOpts = $xeTable.computeRendererOpts;
62
63
  if (!htmlCellElem) {
63
64
  htmlCellElem = document.createElement('div');
64
65
  }
@@ -91,7 +92,7 @@ function getBodyLabelData($xeTable, opts, columns, datas) {
91
92
  const renderOpts = editRender || cellRender;
92
93
  let bodyExportMethod = column.exportMethod || columnOpts.exportMethod;
93
94
  if (!bodyExportMethod && renderOpts && renderOpts.name) {
94
- const compConf = renderer.get(renderOpts.name);
95
+ const compConf = rendererOpts[renderOpts.name] || renderer.get(renderOpts.name);
95
96
  if (compConf) {
96
97
  bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod;
97
98
  }
@@ -236,7 +237,7 @@ function getBodyLabelData($xeTable, opts, columns, datas) {
236
237
  const renderOpts = column.editRender || column.cellRender;
237
238
  let bodyExportMethod = column.exportMethod || columnOpts.exportMethod;
238
239
  if (!bodyExportMethod && renderOpts && renderOpts.name) {
239
- const compConf = renderer.get(renderOpts.name);
240
+ const compConf = rendererOpts[renderOpts.name] || renderer.get(renderOpts.name);
240
241
  if (compConf) {
241
242
  bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod;
242
243
  }
@@ -306,7 +307,7 @@ function getBodyLabelData($xeTable, opts, columns, datas) {
306
307
  const renderOpts = column.editRender || column.cellRender;
307
308
  let bodyExportMethod = column.exportMethod || columnOpts.exportMethod;
308
309
  if (!bodyExportMethod && renderOpts && renderOpts.name) {
309
- const compConf = renderer.get(renderOpts.name);
310
+ const compConf = rendererOpts[renderOpts.name] || renderer.get(renderOpts.name);
310
311
  if (compConf) {
311
312
  bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod;
312
313
  }
@@ -375,10 +376,11 @@ function getHeaderTitle($xeTable, opts, column) {
375
376
  }
376
377
  function getFooterCellValue($xeTable, opts, row, column) {
377
378
  const columnOpts = $xeTable.computeColumnOpts;
379
+ const rendererOpts = $xeTable.computeRendererOpts;
378
380
  const renderOpts = column.editRender || column.cellRender;
379
381
  let footLabelMethod = column.footerExportMethod;
380
382
  if (!footLabelMethod && renderOpts && renderOpts.name) {
381
- const compConf = renderer.get(renderOpts.name);
383
+ const compConf = rendererOpts[renderOpts.name] || renderer.get(renderOpts.name);
382
384
  if (compConf) {
383
385
  footLabelMethod = compConf.tableFooterExportMethod || compConf.footerExportMethod || compConf.footerCellExportMethod;
384
386
  }
@@ -19,9 +19,10 @@ function updatePopupStyle($xeTable) {
19
19
  }
20
20
  const tableEl = $xeTable.$refs.refElem;
21
21
  const filterOpts = $xeTable.computeFilterOpts;
22
+ const rendererOpts = $xeTable.computeRendererOpts;
22
23
  const { maxHeight: customMaxHeight, transfer, zIndex } = filterOpts;
23
24
  const filterRender = column ? column.filterRender : null;
24
- const compConf = filterRender && isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
25
+ const compConf = filterRender && isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null;
25
26
  const headerScrollElem = getRefElem(elemStore['main-header-scroll']);
26
27
  if (!headerScrollElem) {
27
28
  return $xeTable.$nextTick();
@@ -445,7 +446,8 @@ export default {
445
446
  if (column) {
446
447
  const { filters, filterRender } = column;
447
448
  if (filters) {
448
- const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
449
+ const rendererOpts = $xeTable.computeRendererOpts;
450
+ const compConf = isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null;
449
451
  const filterResetMethod = column.filterResetMethod || (compConf ? (compConf.tableFilterResetMethod || compConf.filterResetMethod) : null);
450
452
  filters.forEach((item) => {
451
453
  item._checked = false;
@@ -233,9 +233,10 @@ export default {
233
233
  return [];
234
234
  }
235
235
  const filterOpts = $xeTable.computeFilterOpts;
236
+ const rendererOpts = $xeTable.computeRendererOpts;
236
237
  const hasCheckOption = $xeFilterPanel.computeHasCheckOption;
237
238
  const { filterRender, filterMultiple } = column;
238
- const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
239
+ const compConf = filterRender && isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null;
239
240
  const isDisabled = !hasCheckOption && !filterStore.isAllSelected && !filterStore.isIndeterminate;
240
241
  return filterMultiple && (compConf ? !(compConf.showTableFilterFooter === false || compConf.showFilterFooter === false || compConf.isFooter === false) : true)
241
242
  ? [
@@ -272,8 +273,9 @@ export default {
272
273
  if (!column) {
273
274
  return renderEmptyElement($xeFilterPanel);
274
275
  }
276
+ const rendererOpts = $xeTable.computeRendererOpts;
275
277
  const filterRender = column ? column.filterRender : null;
276
- const compConf = filterRender && isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
278
+ const compConf = filterRender && isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null;
277
279
  const filterClassName = compConf ? (compConf.tableFilterClassName || compConf.filterClassName) : '';
278
280
  const params = Object.assign({}, tableInternalData._currFilterParams, { $panel: $xeFilterPanel, $table: $xeTable });
279
281
  const tableProps = $xeTable;
@@ -91,6 +91,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
91
91
  const tooltipOpts = $xeTable.computeTooltipOpts;
92
92
  const virtualXOpts = $xeTable.computeVirtualXOpts;
93
93
  const virtualYOpts = $xeTable.computeVirtualYOpts;
94
+ const rendererOpts = $xeTable.computeRendererOpts;
94
95
  const { isAllColumnDrag, isAllRowDrag } = $xeTable.resizableOpts;
95
96
  const rowOpts = $xeTable.computeRowOpts;
96
97
  const rowDragOpts = $xeTable.computeRowDragOpts;
@@ -109,7 +110,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
109
110
  const colid = column.id;
110
111
  const colRest = fullColumnIdData[colid] || {};
111
112
  const renderOpts = editRender || cellRender;
112
- const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
113
+ const compConf = renderOpts && renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null;
113
114
  const compCellClassName = compConf ? (compConf.tableCellClassName || compConf.cellClassName) : null;
114
115
  const compCellStyle = compConf ? (compConf.tableCellStyle || compConf.cellStyle) : '';
115
116
  const showAllTip = tooltipOpts.showAll;
@@ -801,7 +802,8 @@ export default {
801
802
  emptyContent = emptySlot.call($xeTable, emptyParams);
802
803
  }
803
804
  else {
804
- const compConf = emptyOpts.name ? renderer.get(emptyOpts.name) : null;
805
+ const rendererOpts = $xeTable.computeRendererOpts;
806
+ const compConf = emptyOpts.name ? (rendererOpts[emptyOpts.name] || renderer.get(emptyOpts.name)) : null;
805
807
  const rtEmptyView = compConf ? (compConf.renderTableEmpty || compConf.renderTableEmptyView || compConf.renderEmpty) : null;
806
808
  if (rtEmptyView) {
807
809
  emptyContent = getSlotVNs(rtEmptyView.call($xeTable, h, emptyOpts, emptyParams));
@@ -230,7 +230,8 @@ function getFooterContent(h, params) {
230
230
  const renderOpts = editRenderOpts || cellRenderOpts;
231
231
  const itemValue = $table.getFooterCellLabel(row, column);
232
232
  if (renderOpts) {
233
- const compConf = renderer.get(renderOpts.name);
233
+ const rendererOpts = $table.computeRendererOpts;
234
+ const compConf = renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null;
234
235
  const rtFooter = compConf ? (compConf.renderTableFooter || compConf.renderFooter) : null;
235
236
  if (rtFooter) {
236
237
  const footParams = Object.assign(params, {
@@ -362,7 +363,8 @@ export const Cell = {
362
363
  }
363
364
  }
364
365
  if (renderOpts) {
365
- const compConf = renderer.get(renderOpts.name);
366
+ const rendererOpts = $table.computeRendererOpts;
367
+ const compConf = renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null;
366
368
  const rtHeader = compConf ? (compConf.renderTableHeader || compConf.renderHeader) : null;
367
369
  if (rtHeader) {
368
370
  return getSlotVNs(renderTitleContent(h, params, rtHeader.call($table, h, renderOpts, params)));
@@ -454,9 +456,10 @@ export const Cell = {
454
456
  if (defaultSlot) {
455
457
  return renderCellBaseVNs(h, params, $table.callSlot(defaultSlot, params, h));
456
458
  }
459
+ const rendererOpts = $table.computeRendererOpts;
457
460
  // 如果是编辑模式-查看:slot default > formatter > cellRender.renderTableDefault > editRender.renderTableCell > editRender.renderTableDefault > cellRender.tableCellFormatter > editRender.tableCellFormatter > field
458
461
  // 如果是查看表格:slot default > formatter > cellRender。renderTableDefault > cellRender.tableCellFormatter > field
459
- const cellCompConf = cellRenderOpts ? renderer.get(cellRenderOpts.name) : null;
462
+ const cellCompConf = cellRenderOpts && cellRenderOpts.name ? (rendererOpts[cellRenderOpts.name] || renderer.get(cellRenderOpts.name)) : null;
460
463
  if (cellRenderOpts) {
461
464
  const cellDefaultRenderFn = cellCompConf ? (cellCompConf.renderTableDefault || cellCompConf.renderDefault) : null;
462
465
  if (cellDefaultRenderFn && cellRenderOpts) {
@@ -464,7 +467,7 @@ export const Cell = {
464
467
  }
465
468
  }
466
469
  if (editRenderOpts) {
467
- const editCompConf = editRenderOpts ? renderer.get(editRenderOpts.name) : null;
470
+ const editCompConf = editRenderOpts && editRenderOpts.name ? (rendererOpts[editRenderOpts.name] || renderer.get(editRenderOpts.name)) : null;
468
471
  const editCellRenderFn = editCompConf
469
472
  ? ((editCompConf.renderTableCell || editCompConf.renderCell) ||
470
473
  (editCompConf.renderTableDefault || editCompConf.renderDefault))
@@ -1013,7 +1016,8 @@ export const Cell = {
1013
1016
  return $table.callSlot(slots.content, params, h);
1014
1017
  }
1015
1018
  if (contentRender) {
1016
- const compConf = renderer.get(contentRender.name);
1019
+ const rendererOpts = $table.computeRendererOpts;
1020
+ const compConf = contentRender.name ? (rendererOpts[contentRender.name] || renderer.get(contentRender.name)) : null;
1017
1021
  const rtExpand = compConf ? (compConf.renderTableExpand || compConf.renderExpand) : null;
1018
1022
  if (rtExpand) {
1019
1023
  return getSlotVNs(rtExpand.call($table, h, contentRender, params));
@@ -1237,7 +1241,8 @@ export const Cell = {
1237
1241
  if (slots && slots.edit) {
1238
1242
  return $table.callSlot(slots.edit, cellParams, h);
1239
1243
  }
1240
- const compConf = renderer.get(editRender.name);
1244
+ const rendererOpts = $table.computeRendererOpts;
1245
+ const compConf = editRenderOpts.name ? (rendererOpts[editRenderOpts.name] || renderer.get(editRenderOpts.name)) : null;
1241
1246
  const rtEdit = compConf ? (compConf.renderTableEdit || compConf.renderEdit) : null;
1242
1247
  if (rtEdit) {
1243
1248
  return getSlotVNs(rtEdit.call($table, h, editRender, cellParams));
@@ -18,7 +18,8 @@ export class ColumnInfo {
18
18
  const proxyOpts = $xeGrid ? $xeGrid.computeProxyOpts : null;
19
19
  const defaultVisible = XEUtils.isBoolean(visible) ? visible : true;
20
20
  const defaultRenderWidth = width && isPx(width) && width !== 'auto' ? Math.max(0, XEUtils.toInteger(width)) : 0;
21
- const flCompConf = filterRender && isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
21
+ const rendererOpts = $xeTable.computeRendererOpts;
22
+ const flCompConf = filterRender && isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null;
22
23
  const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null;
23
24
  const filters = toFilters(colConfs.filters, colId);
24
25
  const types = ['seq', 'checkbox', 'radio', 'expand', 'html'];
@@ -28,12 +28,13 @@ function renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData, row, $
28
28
  const cellOpts = $xeTable.computeCellOpts;
29
29
  const footerCellOpts = $xeTable.computeFooterCellOpts;
30
30
  const currCellHeight = getCalcHeight(footerCellOpts.height) || defaultRowHeight;
31
+ const rendererOpts = $xeTable.computeRendererOpts;
31
32
  return tableColumn.map((column, $columnIndex) => {
32
33
  const { type, showFooterOverflow, footerAlign, align, footerClassName, editRender, cellRender } = column;
33
34
  const colid = column.id;
34
35
  const colRest = fullColumnIdData[colid] || {};
35
36
  const renderOpts = editRender || cellRender;
36
- const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
37
+ const compConf = renderOpts && renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null;
37
38
  const showAllTip = footerTooltipOpts.showAll;
38
39
  const fixedHiddenColumn = overflowX && (fixedType ? column.fixed !== fixedType : !!column.fixed);
39
40
  const cellPadding = getDefaultConfig(footerCellOpts.padding, cellOpts.padding);
@@ -26,6 +26,7 @@ function renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, _rowIndex, co
26
26
  const cellOpts = $xeTable.computeCellOpts;
27
27
  const defaultRowHeight = $xeTable.computeDefaultRowHeight;
28
28
  const headerCellOpts = $xeTable.computeHeaderCellOpts;
29
+ const rendererOpts = $xeTable.computeRendererOpts;
29
30
  const currCellHeight = getCalcHeight(headerCellOpts.height) || defaultRowHeight;
30
31
  const { disabledMethod: dragDisabledMethod, isCrossDrag, isPeerDrag } = columnDragOpts;
31
32
  const isLastRow = _rowIndex === headerGroups.length - 1;
@@ -35,7 +36,7 @@ function renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, _rowIndex, co
35
36
  const colid = column.id;
36
37
  const colRest = fullColumnIdData[colid] || {};
37
38
  const renderOpts = editRender || cellRender;
38
- const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
39
+ const compConf = renderOpts && renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null;
39
40
  const isColGroup = column.children && column.children.length;
40
41
  const fixedHiddenColumn = overflowX && !isColGroup && (fixedType ? column.fixed !== fixedType : !!column.fixed);
41
42
  const cellPadding = getDefaultConfig(headerCellOpts.padding, cellOpts.padding);
@@ -228,6 +229,7 @@ function renderFilterRows(h, _vm, isOptimizeMode, cols) {
228
229
  const defaultRowHeight = $xeTable.computeDefaultRowHeight;
229
230
  const headerCellOpts = $xeTable.computeHeaderCellOpts;
230
231
  const floatingFilterOpts = $xeTable.computeFloatingFilterOpts;
232
+ const rendererOpts = $xeTable.computeRendererOpts;
231
233
  const { cellClassName } = floatingFilterOpts;
232
234
  const currCellHeight = getCalcHeight(headerCellOpts.height) || defaultRowHeight;
233
235
  return cols.map((column, $columnIndex) => {
@@ -235,8 +237,8 @@ function renderFilterRows(h, _vm, isOptimizeMode, cols) {
235
237
  const colid = column.id;
236
238
  const colRest = fullColumnIdData[colid] || {};
237
239
  const renderOpts = editRender || cellRender;
238
- const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
239
- const flCompConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
240
+ const compConf = renderOpts && renderOpts.name ? (rendererOpts[renderOpts.name] || renderer.get(renderOpts.name)) : null;
241
+ const flCompConf = isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null;
240
242
  const rtFloatingFilter = flCompConf ? flCompConf.renderTableFloatingFilter : null;
241
243
  const flSlot = slots ? (slots.floatingFilter || slots['floating-filter']) : null;
242
244
  const fixedHiddenColumn = overflowX && (fixedType ? column.fixed !== fixedType : !!column.fixed);
@@ -764,6 +764,7 @@ function updateAfterFullData($xeTable) {
764
764
  const filterOpts = $xeTable.computeFilterOpts;
765
765
  const sortOpts = $xeTable.computeSortOpts;
766
766
  const aggregateOpts = $xeTable.computeAggregateOpts;
767
+ const rendererOpts = $xeTable.computeRendererOpts;
767
768
  const treeOpts = $xeTable.computeTreeOpts;
768
769
  const childrenField = treeOpts.children || treeOpts.childrenField;
769
770
  const { transform, rowField, parentField, mapChildrenField } = treeOpts;
@@ -803,7 +804,7 @@ function updateAfterFullData($xeTable) {
803
804
  const handleFilter = (row) => {
804
805
  return filterColumns.every(({ column, valueList, itemList }) => {
805
806
  const { filterMethod, filterRender } = column;
806
- const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
807
+ const compConf = isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null;
807
808
  const compFilterMethod = compConf ? (compConf.tableFilterMethod || compConf.filterMethod) : null;
808
809
  const tdFilterMethod = compConf ? (compConf.tableFilterDefaultMethod || compConf.defaultTableFilterMethod || compConf.defaultFilterMethod) : null;
809
810
  const cellValue = getCellValue(row, column);
@@ -5525,6 +5526,7 @@ const tableMethods = {
5525
5526
  }
5526
5527
  const { editConfig } = props;
5527
5528
  const { formatter, editRender, cellRender } = column;
5529
+ const rendererOpts = $xeTable.computeRendererOpts;
5528
5530
  let etOpSize = null;
5529
5531
  let etOgSize = null;
5530
5532
  let clOpSize = null;
@@ -5541,8 +5543,8 @@ const tableMethods = {
5541
5543
  const editRenderOpts = formatter ? null : (isEnableEdit && isEnableConf(editRender) ? editRender : null);
5542
5544
  const cellRenderOpts = formatter ? null : (isEnableConf(cellRender) ? cellRender : null);
5543
5545
  // formatter > cellRender.tableCellFormatter > editRender.tableCellFormatter
5544
- const cellCompConf = cellRenderOpts ? renderer.get(cellRenderOpts.name) : null;
5545
- const editCompConf = editRenderOpts ? renderer.get(editRenderOpts.name) : null;
5546
+ const cellCompConf = cellRenderOpts && cellRenderOpts.name ? (rendererOpts[cellRenderOpts.name] || renderer.get(cellRenderOpts.name)) : null;
5547
+ const editCompConf = editRenderOpts && editRenderOpts.name ? (rendererOpts[editRenderOpts.name] || renderer.get(editRenderOpts.name)) : null;
5546
5548
  const cellDfFormatter = cellCompConf ? cellCompConf.tableCellFormatter : null;
5547
5549
  const editDfFormatter = editCompConf ? editCompConf.tableCellFormatter : null;
5548
5550
  const cellValue = getCellValue(row, column);
@@ -6784,8 +6786,9 @@ const tableMethods = {
6784
6786
  if (column) {
6785
6787
  const { filterStore } = reactData;
6786
6788
  const { filterRender, filters } = column;
6789
+ const rendererOpts = $xeTable.computeRendererOpts;
6787
6790
  const filterOptions = filters || [];
6788
- const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
6791
+ const compConf = isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null;
6789
6792
  const frMethod = column.filterRecoverMethod || (compConf ? (compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod) : null);
6790
6793
  filterStore.column = column;
6791
6794
  // 复原状态
@@ -300,6 +300,10 @@ export const tableProps = {
300
300
  animat: { type: Boolean, default: () => getConfig().table.animat },
301
301
  // (可能会被废弃的参数,不要使用)
302
302
  delayHover: { type: Number, default: () => getConfig().table.delayHover },
303
+ /**
304
+ * 渲染器配置项
305
+ */
306
+ rendererConfig: Object,
303
307
  // 额外的参数
304
308
  params: Object
305
309
  };
@@ -154,7 +154,8 @@ function renderEmptyBody(h, $xeTable) {
154
154
  emptyContent = emptySlot.call($xeTable, emptyParams);
155
155
  }
156
156
  else {
157
- const compConf = emptyOpts.name ? renderer.get(emptyOpts.name) : null;
157
+ const rendererOpts = $xeTable.computeRendererOpts;
158
+ const compConf = emptyOpts.name ? (rendererOpts[emptyOpts.name] || renderer.get(emptyOpts.name)) : null;
158
159
  const rtEmptyView = compConf ? (compConf.renderTableEmpty || compConf.renderTableEmptyView || compConf.renderEmpty) : null;
159
160
  if (rtEmptyView) {
160
161
  emptyContent = getSlotVNs(rtEmptyView.call($xeTable, h, emptyOpts, emptyParams));
@@ -1376,6 +1377,11 @@ export default {
1376
1377
  const props = $xeTable;
1377
1378
  return Object.assign({}, getConfig().table.undoRedoHistoryConfig, props.undoRedoHistoryConfig);
1378
1379
  },
1380
+ computeRendererOpts() {
1381
+ const $xeTable = this;
1382
+ const props = $xeTable;
1383
+ return Object.assign({}, getConfig().table.rendererConfig, props.rendererConfig);
1384
+ },
1379
1385
  combineTabsResizeFlag() {
1380
1386
  const $xeTable = this;
1381
1387
  const $xeTabs = $xeTable.$xeTabs;
@@ -439,10 +439,11 @@ export default {
439
439
  const buttonSuffixSlot = slots.buttonSuffix || slots['button-suffix'];
440
440
  const btnVNs = [];
441
441
  if (buttons) {
442
+ const rendererOpts = ($table ? $table.computeRendererOpts : null) || {};
442
443
  buttons.forEach((item) => {
443
444
  const { dropdowns, buttonRender } = item;
444
445
  if (item.visible !== false) {
445
- const compConf = buttonRender ? renderer.get(buttonRender.name) : null;
446
+ const compConf = buttonRender && buttonRender.name ? (rendererOpts[buttonRender.name] || renderer.get(buttonRender.name)) : null;
446
447
  if (buttonRender && compConf && compConf.renderToolbarButton) {
447
448
  const toolbarButtonClassName = compConf.toolbarButtonClassName;
448
449
  const params = { $grid: $xeGrid, $gantt: $xeGantt, $table: $table, button: item };
@@ -503,16 +504,16 @@ export default {
503
504
  const toolSuffixSlot = slots.toolSuffix || slots['tool-suffix'];
504
505
  const btnVNs = [];
505
506
  if (tools) {
507
+ const rendererOpts = ($table ? $table.computeRendererOpts : null) || {};
506
508
  tools.forEach((item, tIndex) => {
507
509
  const { dropdowns, toolRender } = item;
508
510
  if (item.visible !== false) {
509
- const rdName = toolRender ? toolRender.name : null;
510
- const compConf = toolRender ? renderer.get(rdName) : null;
511
+ const compConf = toolRender && toolRender.name ? (rendererOpts[toolRender.name] || renderer.get(toolRender.name)) : null;
511
512
  if (toolRender && compConf && compConf.renderToolbarTool) {
512
513
  const toolbarToolClassName = compConf.toolbarToolClassName;
513
514
  const params = { $grid: $xeGrid, $gantt: $xeGantt, $table: $table, tool: item };
514
515
  btnVNs.push(h('span', {
515
- key: rdName,
516
+ key: tIndex,
516
517
  class: ['vxe-tool--item', toolbarToolClassName ? (XEUtils.isFunction(toolbarToolClassName) ? toolbarToolClassName(params) : toolbarToolClassName) : '']
517
518
  }, getSlotVNs(compConf.renderToolbarTool(h, toolRender, params))));
518
519
  }
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "3.24.0-beta.0";
3
+ export const version = "3.24.0";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
package/es/ui/src/log.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const tableVersion = `table v${"3.24.0-beta.0"}`;
3
+ const tableVersion = `table v${"3.24.0"}`;
4
4
  export function createComponentLog(name) {
5
5
  const uiVersion = VxeUI.uiVersion ? `ui v${VxeUI.uiVersion}` : '';
6
6
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
@@ -1766,7 +1766,7 @@ var _default = exports.default = /* define-vxe-component start */(0, _comp.defin
1766
1766
  _xeUtils.default.eachTree(columns, column => {
1767
1767
  if (column.slots) {
1768
1768
  _xeUtils.default.each(column.slots, func => {
1769
- if (!_xeUtils.default.isFunction(func)) {
1769
+ if (func && !_xeUtils.default.isFunction(func)) {
1770
1770
  if (!slots[func]) {
1771
1771
  errLog('vxe.error.notSlot', [func]);
1772
1772
  }
@@ -1893,7 +1893,7 @@ var _default = exports.default = /* define-vxe-component start */(0, _comp.defin
1893
1893
  // 处理插槽
1894
1894
  formOpts.items.forEach(item => {
1895
1895
  _xeUtils.default.each(item.slots, func => {
1896
- if (!_xeUtils.default.isFunction(func)) {
1896
+ if (func && !_xeUtils.default.isFunction(func)) {
1897
1897
  if (slots[func]) {
1898
1898
  formSlots[func] = slots[func];
1899
1899
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_props=require("../../table/src/props"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/toolbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("grid"),{getConfig,getI18n,commands,globalEvents,globalMixins,createEvent,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableMethods={},propKeys=Object.keys(_props.tableProps),defaultLayouts=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]];function getTableOns(r){var{$listeners:e,proxyConfig:t,proxyOpts:a}=r;let o={};return _xeUtils.default.each(e,(e,t)=>{o[t]=(...e)=>{r.$emit(t,...e)}}),t&&(a.sort&&(o["sort-change"]=r.sortChangeEvent,o["clear-all-sort"]=r.clearAllSortEvent),a.filter)&&(o["filter-change"]=r.filterChangeEvent,o["clear-all-filter"]=r.clearAllFilterEvent),o}function createReactData(){var e;return{tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],footerData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(e=getConfig().pager)?void 0:e.pageSize)||10,currentPage:1}}}function createInternalData(){return{uFoot:!1}}_xeUtils.default.each(_table.default.methods,(e,r)=>{tableMethods[r]=function(...e){var t=this.$refs.refTable;return t&&t[r](...e)}});var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGrid",mixins:[globalMixins.sizeMixin],props:Object.assign(Object.assign({},_props.tableProps),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),provide(){return{$xeGrid:this,$xeGantt:null}},data(){var e=_xeUtils.default.uniqueId(),t=createReactData();return Object.assign(Object.assign({},{}),{xID:e,reactData:t})},computed:Object.assign(Object.assign({},{}),{isRespMsg(){return this.computeIsRespMsg},computeIsRespMsg(){var e=this.computeProxyOpts;return!!(_xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg)},isActiveMsg(){return this.computeIsActiveMsg},computeIsActiveMsg(){var e=this.computeProxyOpts;return _xeUtils.default.isBoolean(e.showActionMsg)?e.showActionMsg:!!e.showActiveMsg},proxyOpts(){return this.computeProxyOpts},computeProxyOpts(){return _xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),this.proxyConfig)},pagerOpts(){return this.computePagerOpts},computePagerOpts(){return Object.assign({},getConfig().grid.pagerConfig,this.pagerConfig)},formOpts(){return this.computeFormOpts},computeFormOpts(){return Object.assign({},getConfig().grid.formConfig,this.formConfig)},toolbarOpts(){return this.computeToolbarOpts},computeToolbarOpts(){return Object.assign({},getConfig().grid.toolbarConfig,this.toolbarConfig)},zoomOpts(){return this.computeZoomOpts},computeZoomOpts(){return Object.assign({},getConfig().grid.zoomConfig,this.zoomConfig)},computeStyles(){var{height:e,maxHeight:t}=this,{isZMax:r,tZindex:a}=this.reactData,o={};return r?o.zIndex=a:(e&&(o.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(o.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),o},computeTableExtendProps(){let t={},r=this;return propKeys.forEach(e=>{void 0!==r[e]&&(t[e]=r[e])}),t},computeTableProps(){var e=this,{showFooter:t,seqConfig:r,pagerConfig:a,editConfig:o,proxyConfig:s}=e,{isZMax:i,tablePage:n,footerData:l}=e.reactData,u=e.computeProxyOpts,g=e.computePagerOpts,c=e.computeIsLoading,e=Object.assign({},e.computeTableExtendProps);return(t&&!e.footerData||u.footer&&l.length)&&(e.footerData=l),i&&(e.maxHeight?e.maxHeight="100%":e.height="100%"),s&&(0,_utils.isEnableConf)(u)&&(e.loading=c,a)&&u.seq&&(0,_utils.isEnableConf)(g)&&(e.seqConfig=Object.assign({},r,{startIndex:(n.currentPage-1)*n.pageSize})),o&&(e.editConfig=Object.assign({},o)),e},tableProps(){return this.computeTableProps},computeCurrLayoutConf(){var e=this.layouts;let t=[],r=[],a=[],o=[];return(t=e&&e.length?e:getConfig().grid.layouts||defaultLayouts).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],a=t[1]||[],o=t[2]||[]):a=t),{headKeys:r,bodyKeys:a,footKeys:o}},computeCustomCurrentPageFlag(){return this.computePagerOpts.currentPage},computeCustomPageSizeFlag(){return this.computePagerOpts.pageSize},computeCustomTotalFlag(){return this.computePagerOpts.total},computePageCount(){var e=this.reactData.tablePage;return Math.max(Math.ceil(e.total/e.pageSize),1)},computeIsLoading(){var{loading:e,proxyConfig:t}=this,r=this.reactData.tableLoading,a=this.computeProxyOpts,o=a.showLoading;return e||r&&o&&t&&(0,_utils.isEnableConf)(a)}}),watch:{columns(e){let t=this;t.$nextTick(()=>t.loadColumn(e))},toolbar(e){e&&this.initToolbar()},toolbarConfig(e){e&&this.initToolbar()},proxyConfig(){this.initProxy()},computeCustomCurrentPageFlag(){this.initPages("currentPage")},computeCustomPageSizeFlag(){this.initPages("pageSize")},computeCustomTotalFlag(){this.initPages("total")}},methods:Object.assign(Object.assign({},tableMethods),{dispatchEvent(e,t,r){this.$emit(e,createEvent(r,{$grid:this,$gantt:null},t))},initPages(e){var t=this.reactData.tablePage,r=this.pagerConfig,a=this.computePagerOpts;r&&(0,_utils.isEnableConf)(a)&&(e?a[e]&&(t[e]=_xeUtils.default.toNumber(a[e])):({currentPage:r,pageSize:e,total:a}=a,r&&(t.currentPage=r),e&&(t.pageSize=e),a&&(t.total=a)))},callSlot(e,t,r){var a=this.$scopedSlots;return e&&(_xeUtils.default.isString(e)&&(e=a[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e.call(this,t,r)):[]},getEl(){return this.$refs.refElem},getExcludeHeight(){var t=this,r=t.height,a=t.reactData.isZMax,o=t.$refs.refElem;if(o){var s=t.$refs.refFormWrapper,i=t.$refs.refToolbarWrapper,n=t.$refs.refTopWrapper,l=t.$refs.refBottomWrapper,t=t.$refs.refPagerWrapper,u=o.parentElement;let e=0;return(e=!u||"100%"!==r&&"auto"!==r?e:a?0:(0,_dom.getPaddingTopBottomSize)(u))+(0,_dom.getPaddingTopBottomSize)(o)+(0,_dom.getOffsetHeight)(s)+(0,_dom.getOffsetHeight)(i)+(0,_dom.getOffsetHeight)(n)+(0,_dom.getOffsetHeight)(l)+(0,_dom.getOffsetHeight)(t)}return 0},getParentHeight(){var e=this.reactData,t=this.$refs.refElem;return t?(t=t.parentElement,(e.isZMax?(0,_dom.getDomNode)().visibleHeight:t?_xeUtils.default.toNumber(getComputedStyle(t).height):0)-this.getExcludeHeight()):0},initToolbar(){let r=this;r.$nextTick(()=>{var e=r.$refs.refTable,t=r.$refs.refToolbar;e&&t&&e.connectToolbar(t)})},getDefaultFormData(){var e=this.computeFormOpts;if(e.items){let i={};return e.items.forEach(t=>{var r,a,{field:o,itemRender:s}=t;if(o){let e=null;s&&({startField:s,endField:r,defaultValue:a}=s,_xeUtils.default.isFunction(a)?e=a({item:t}):_xeUtils.default.isUndefined(a)||(e=a),s)&&r&&(_xeUtils.default.set(i,s,null),_xeUtils.default.set(i,r,null)),i[o]=e}}),i}return{}},initProxy(){let t=this;var e=t,r=t.reactData;let a=t.internalData;var{proxyConfig:e,formConfig:o}=e,s=r.proxyInited,i=t.computeProxyOpts,n=t.computeFormOpts;e&&((0,_utils.isEnableConf)(o)&&i.form&&n.items&&(r.formData=t.getDefaultFormData()),s||!(r.proxyInited=!0)!==i.autoLoad&&t.$nextTick().then(()=>{a.uFoot=!0;var e=t.commitProxy("initial");return a.uFoot=!1,t.updateQueryFooter(),e}).then(e=>{t.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("initial"))}))},updateQueryFooter(){var e=this.computeProxyOpts.ajax;if(e&&e.queryFooter)return this.commitProxy("queryFooter")},handleGlobalKeydownEvent(e){var t=this.reactData,r=this.computeZoomOpts;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&t.isZMax&&!1!==r.escRestore&&this.triggerZoomEvent(e)},getRespMsg(e,t){var r=this.computeProxyOpts,r=(r.response||r.props||{}).message,a=this.$refs.refTable;let o;return(o=e&&r?_xeUtils.default.isFunction(r)?r({data:e,$table:a,$grid:this,$gantt:null}):_xeUtils.default.get(e,r):o)||getI18n(t)},handleDeleteRow(e,t,r){var a=this.computeIsActiveMsg,o=this.getCheckboxRecords();if(a)if(o.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return r()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else o.length&&r();return Promise.resolve()},triggerPendingEvent(e){var t=this.computeIsActiveMsg,r=this.$refs.refTable,a=r.getCheckboxRecords();a.length?(r.togglePendingRow(a),this.clearCheckboxRow()):t&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})},commitProxy(t,...d){let p=this;var e=p;let f=p.reactData,m=p.internalData;var r=e.toolbar;let{showFooter:g,proxyConfig:c,toolbarConfig:a,pagerConfig:h,editRules:b,validConfig:v}=e,x=f.tablePage,y=p.computeIsActiveMsg,P=p.computeIsRespMsg;var E=p.computeProxyOpts;let C=p.computePagerOpts;var o,e=p.computeToolbarOpts;let{beforeQuery:_,afterQuery:O,beforeQueryFooter:l,afterQueryFooter:u,beforeDelete:F,afterDelete:$,beforeSave:w,afterSave:D,ajax:S={}}=E,T=E.response||E.props||{},j=p.$refs.refTable,U=p.getFormData(),I=null,R=null;R=_xeUtils.default.isString(t)?(o=e.buttons,r=(a||r)&&(0,_utils.isEnableConf)(e)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,I=r?r.item:null,t):(I=t).code;var s=I?I.params:null;switch(R){case"insert":return j.insert({});case"insert_edit":return j.insert({}).then(({row:e})=>j.setEditRow(e,!0));case"insert_actived":return j.insert({}).then(({row:e})=>j.setEditRow(e,!0));case"mark_cancel":p.triggerPendingEvent(R);break;case"remove":return p.handleDeleteRow(R,"vxe.grid.removeSelectRecord",()=>j.removeCheckboxRow());case"import":j.importData(s);break;case"open_import":j.openImport(s);break;case"export":j.exportData(s);break;case"open_export":j.openExport(s);break;case"reset_custom":j.resetCustom(!0);break;case"initial":case"reload":case"query":{var L=S.beforeQuery;let s=S.query,n=S.afterQuery,l=S.querySuccess,u=S.queryError;if(s){var k="initial"===R,M="reload"===R;if(!k&&f.tableLoading)return p.$nextTick();let e=null,r=[],o=[],t={};if(h&&((k||M)&&(x.currentPage=1),(0,_utils.isEnableConf)(h))&&(t=Object.assign({},x)),k){if(c&&(0,_utils.isEnableConf)(E)&&E.form&&(U=p.getDefaultFormData(),f.formData=U),j){let{tableFullColumn:e,fullColumnFieldData:a}=j,t=j.computeSortOpts.defaultSort;e.forEach(e=>{e.order=null}),t&&(_xeUtils.default.isArray(t)||(t=[t]),r=t.map(e=>{var{field:e,order:t}=e,r=a[e];return r&&(r=r.column)&&(r.order=t),{field:e,property:e,order:t}})),o=j.getCheckedFilters()}}else j&&(M?e=j.clearAll():(r=j.getSortColumns(),o=j.getCheckedFilters()));let i={$table:j,$grid:p,$gantt:null,code:R,button:I,isInited:k,isReload:M,page:t,sort:r.length?r[0]:{},sorts:r,filters:o,form:U,options:s},a=()=>(f.sortData=r,f.filterData=o,f.tableLoading=!0,Promise.all([Promise.resolve((_||s)(i,...d)),e]).then(([e])=>{if(f.tableLoading=!1,n)n(Object.assign(Object.assign({},i),{response:e,status:"success"}),...d);else{let t=[];var r,a,o,s;e&&(r=T.list,s=T.result,a={data:e,$table:j,$grid:p,$gantt:null},h&&(0,_utils.isEnableConf)(C)?(o=T.total,o=(_xeUtils.default.isFunction(o)?o(a):_xeUtils.default.get(e,o||"page.total"))||0,x.total=_xeUtils.default.toNumber(o),t=(_xeUtils.default.isFunction(s)?s(a):_xeUtils.default.get(e,s||"result"))||[],s=Math.max(Math.ceil(o/x.pageSize),1),x.currentPage>s&&(x.currentPage=s)):_xeUtils.default.isArray(e)?t=e:r&&(t=(_xeUtils.default.isFunction(r)?r(a):_xeUtils.default.get(e,r))||[]),g)&&(s=(o=T.footerData)?_xeUtils.default.isFunction(o)?o(a):_xeUtils.default.get(e,o):[],_xeUtils.default.isArray(s))&&(f.footerData=s),j?j.loadData(t):p.$nextTick(()=>{var e=p.$refs.refTable;e&&e.loadData(t)}),O&&O(Object.assign(Object.assign({},i),{response:e}),...d)}return l&&l(Object.assign(Object.assign({},i),{response:e})),{status:!0}}).catch(e=>(f.tableLoading=!1,n&&n(Object.assign(Object.assign({},i),{response:e,status:"error"}),...d),u&&u(Object.assign(Object.assign({},i),{response:e})),{status:!1})));return L?Promise.resolve(L(i,...d)).then(e=>{if(!1!==e)return a()}):a()}errLog("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"queryFooter":{k=S.beforeQueryFooter;let o=S.queryFooter,s=S.afterQueryFooter,i=S.queryFooterSuccess,n=S.queryFooterError;if(o){let e=[],t=(j&&(e=j.getCheckedFilters()),{}),r=(h&&(0,_utils.isEnableConf)(h)&&(t=Object.assign({},x)),{$table:j,$grid:p,$gantt:null,code:R,button:I,page:t,filters:e,form:U,options:o}),a=()=>Promise.resolve((l||o)(r,...d)).then(e=>(s?s(Object.assign(Object.assign({},r),{response:e,status:"success"}),...d):(f.footerData=_xeUtils.default.isArray(e)?e:[],u&&u(Object.assign(Object.assign({},r),{response:e}),...d)),i&&i(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(s&&s(Object.assign(Object.assign({},r),{response:e,status:"error"}),...d),n&&n(Object.assign(Object.assign({},r),{response:e})),{status:!1}));return k?Promise.resolve(k(r,...d)).then(e=>{if(!1!==e)return a()}):a()}errLog("vxe.error.notFunc",["proxy-config.ajax.queryFooter"]);break}case"delete":{let o=S.beforeDelete,s=S.delete,i=S.afterDelete,n=S.deleteSuccess,l=S.deleteError;if(s){let e=j.getCheckboxRecords(),r=e.filter(e=>!j.isInsertByRow(e));M={removeRecords:r};let a={$table:j,$grid:p,$gantt:null,code:R,button:I,body:M,form:U,options:s};if(e.length)return p.handleDeleteRow(R,"vxe.grid.deleteSelectRecord",()=>{if(!r.length)return j.remove(e);let t=()=>(f.tableLoading=!0,Promise.resolve((F||s)(a,...d)).then(e=>(f.tableLoading=!1,i?i(Object.assign(Object.assign({},a),{response:e,status:"success"}),...d):(j.setPendingRow(r,!1),P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:p.getRespMsg(e,"vxe.grid.delSuccess"),status:"success"}),$?$(Object.assign(Object.assign({},a),{response:e}),...d):(m.uFoot=!0,p.commitProxy("query"),m.uFoot=!1,p.updateQueryFooter())),n&&n(Object.assign(Object.assign({},a),{response:e})),{status:!0})).catch(e=>(f.tableLoading=!1,i?i(Object.assign(Object.assign({},a),{response:e,status:"error"}),...d):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:R,content:p.getRespMsg(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},a),{response:e})),{status:!1})));return o?Promise.resolve(o(a,...d)).then(e=>{if(!1!==e)return t()}):t()});y&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:R,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else errLog("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=S.beforeSave,l=S.save,u=S.afterSave,g=S.saveSuccess,c=S.saveError;if(l){let t=p.getRecordset(),{insertRecords:r,removeRecords:a,updateRecords:o,pendingRecords:s}=t,i={$table:j,$grid:p,$gantt:null,code:R,button:I,body:t,form:U,options:l},e=(r.length&&(t.pendingRecords=s.filter(e=>-1===r.indexOf(e))),s.length&&(t.insertRecords=r.filter(e=>-1===s.indexOf(e))),Promise.resolve());return(e=b?p[v&&"full"===v.msgMode?"fullValidate":"validate"](t.insertRecords.concat(o)):e).then(e=>{if(!e){if(t.insertRecords.length||a.length||o.length||t.pendingRecords.length){let t=()=>(f.tableLoading=!0,Promise.resolve((w||l)(i,...d)).then(e=>(f.tableLoading=!1,u?u(Object.assign(Object.assign({},i),{response:e,status:"success"}),...d):(j.clearPendingRow(),P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:p.getRespMsg(e,"vxe.grid.saveSuccess"),status:"success"}),D?D(Object.assign(Object.assign({},i),{response:e}),...d):(m.uFoot=!0,p.commitProxy("query"),m.uFoot=!1,p.updateQueryFooter())),g&&g(Object.assign(Object.assign({},i),{response:e})),{status:!0})).catch(e=>(f.tableLoading=!1,u?u(Object.assign(Object.assign({},i),{response:e,status:"error"}),...d):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:R,content:p.getRespMsg(e,"vxe.grid.operError"),status:"error"}),c&&c(Object.assign(Object.assign({},i),{response:e})),{status:!1})));return n?Promise.resolve(n(i,...d)).then(e=>{if(!1!==e)return t()}):t()}y&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:R,content:getI18n("vxe.grid.dataUnchanged"),status:"info"})}})}errLog("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:L=commands.get(R);L&&((k=L.tableCommandMethod||L.commandMethod)?k({code:R,button:I,$grid:p,$table:j,$gantt:null},...d):errLog("vxe.error.notCommands",[R]))}return p.$nextTick()},getFormData(){var e=this.proxyConfig,t=this.reactData.formData,r=this.computeProxyOpts,a=this.computeFormOpts;return e&&(0,_utils.isEnableConf)(r)&&r.form?t:a.data},getFormItems(e){var t=this.computeFormOpts,r=this.formConfig,a=t.items;let o=[];return _xeUtils.default.eachTree(r&&(0,_utils.isEnableConf)(t)&&a?a:[],e=>{o.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?o:o[e]},getFormFlatItems(){var e=this.$refs.refForm;return e?e.getFlatItems():[]},getFormNestedItems(){var e=this.$refs.refForm;return e?e.getNestedItems():[]},getFormItemByField(e){var t=this.$refs.refForm;return t?t.getItemByField(e):null},resetForm(){var e=this.$refs.refForm;return e?e.reset():this.$nextTick()},validateForm(){var e=this.$refs.refForm;return e?e.validate():this.$nextTick()},validateFormField(e){var t=this.$refs.refForm;return t?t.validateField(e):this.$nextTick()},clearFormValidate(e){var t=this.$refs.refForm;return t?t.clearValidate(e):this.$nextTick()},homePage(){var e=this.reactData.tablePage;return e.currentPage=1,this.$nextTick()},homePageByEvent(e){var t=this.$refs.refPager;t&&t.homePageByEvent(e)},endPage(){var e=this.reactData.tablePage,t=this.computePageCount;return e.currentPage=t,this.$nextTick()},endPageByEvent(e){var t=this.$refs.refPager;t&&t.endPageByEvent(e)},getCurrentPage(){var e=this.reactData.tablePage;return e.currentPage},setCurrentPage(e){var t=this.reactData.tablePage,r=this.computePageCount;return t.currentPage=Math.min(r,Math.max(1,_xeUtils.default.toNumber(e))),this.$nextTick()},setCurrentPageByEvent(e,t){var r=this.$refs.refPager;r&&r.setCurrentPageByEvent(e,t)},getPageSize(){var e=this.reactData.tablePage;return e.pageSize},setPageSize(e){var t=this.reactData.tablePage;return t.pageSize=Math.max(1,_xeUtils.default.toNumber(e)),this.$nextTick()},setPageSizeByEvent(e,t){var r=this.$refs.refPager;r&&r.setPageSizeByEvent(e,t)},triggerToolbarCommitEvent(e,t){let r=this;var a,o=r.internalData;let s=e.code;return s?((a=["reload","delete","save"].includes(s))&&(o.uFoot=!0),e=r.commitProxy(e,t).then(e=>{s&&e&&e.status&&["query","reload","delete","save"].includes(s)&&r.dispatchEvent("delete"===s||"save"===s?"proxy-"+s:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===s}),t)}),a&&r.updateQueryFooter(),o.uFoot=!1,e):r.$nextTick()},triggerToolbarBtnEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},pageChangeEvent(e){let t=this;var r=t.proxyConfig,a=t.reactData.tablePage;let{$event:o,currentPage:s,pageSize:i}=e;var n=t.computeProxyOpts;a.currentPage=s,a.pageSize=i,t.dispatchEvent("page-change",e,o),r&&(0,_utils.isEnableConf)(n)&&t.commitProxy("query").then(e=>{t.dispatchEvent("proxy-query",e,o)})},handleSortEvent(t){let r=this;var e=r,a=r.reactData,o=r.$refs.refTable,e=e.proxyConfig,s=r.computeProxyOpts;o.computeSortOpts.remote&&(a.sortData=t.sortList,e)&&(0,_utils.isEnableConf)(s)&&(a.tablePage.currentPage=1,r.commitProxy("query").then(e=>{r.dispatchEvent("proxy-query",e,t.$event)}))},sortChangeEvent(e){this.handleSortEvent(e),this.dispatchEvent("sort-change",e,e.$event)},clearAllSortEvent(e){this.handleSortEvent(e),this.dispatchEvent("clear-all-sort",e,e.$event)},handleFilterEvent(t){let r=this;var e=r,a=r.reactData,o=r.internalData,s=r.$refs.refTable,e=e.proxyConfig,i=r.computeProxyOpts;s.computeFilterOpts.remote&&(a.filterData=t.filterList,e)&&(0,_utils.isEnableConf)(i)&&(a.tablePage.currentPage=1,o.uFoot=!0,r.commitProxy("query").then(e=>{r.dispatchEvent("proxy-query",e,t.$event)}),o.uFoot=!1,r.updateQueryFooter())},filterChangeEvent(e){this.handleFilterEvent(e),this.dispatchEvent("filter-change",e,e.$event)},clearAllFilterEvent(e){this.handleFilterEvent(e),this.dispatchEvent("clear-all-filter",e,e.$event)},submitFormEvent(t){let r=this;var e=r,a=r.reactData,o=r.internalData,e=e.proxyConfig,s=r.computeProxyOpts;a.tableLoading||(e&&(0,_utils.isEnableConf)(s)?(r.dispatchEvent("form-submit",t,t.$event),o.uFoot=!0,r.commitProxy("reload").then(e=>{r.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),o.uFoot=!1,r.updateQueryFooter()):r.dispatchEvent("form-submit",t,t.$event))},resetFormEvent(e){let t=this;var r=t,a=t.internalData,o=t.$refs.refTable,r=r.proxyConfig;let s=e.$event;var i=t.computeProxyOpts;r&&(0,_utils.isEnableConf)(i)?(t.dispatchEvent("form-reset",e,s),o&&o.clearScroll(),a.uFoot=!0,t.commitProxy("reload").then(e=>{t.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),s)}),a.uFoot=!1,t.updateQueryFooter()):t.dispatchEvent("form-reset",e,s)},submitInvalidEvent(e){this.dispatchEvent("form-submit-invalid",e,e.$event)},collapseEvent(e){var t=e.$event;this.dispatchEvent("form-toggle-collapse",e,t),this.dispatchEvent("form-collapse",e,t)},triggerZoomEvent(e){var t=this.reactData;this.zoom(),this.dispatchEvent("zoom",{type:t.isZMax?"max":"revert"},e)},getParams(){return this.params},zoom(){return this.reactData.isZMax?this.revert():this.maximize()},isMaximized(){return this.reactData.isZMax},maximize(){return this.handleZoom(!0)},revert(){return this.handleZoom()},handleZoom(e){let t=this,r=t.reactData;var a=r.isZMax;return(e?!a:a)&&(r.isZMax=!a,r.tZindex<(0,_utils.getLastZIndex)())&&(r.tZindex=(0,_utils.nextZIndex)()),t.$nextTick().then(()=>t.recalculate(!0)).then(()=>(setTimeout(()=>t.recalculate(!0),15),r.isZMax))},getProxyInfo(){var e,t=this.$refs.refTable,r=this.reactData;return this.proxyConfig?(e=r.sortData,{data:t?t.getFullData():[],filter:r.filterData,form:this.getFormData(),sort:e.length?e[0]:{},sorts:e,pager:r.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null},getCustomPagerData(){var e=this.pagerConfig,t=this.reactData.tablePage,r=this.computePagerOpts;return e&&(0,_utils.isEnableConf)(r)?{pSize:t.pageSize}:{}},loadColumn(e){let t=this.$scopedSlots;var r=this.$refs.refTable;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||t[e]||errLog("vxe.error.notSlot",[e])})}),r.loadColumn(e)},reloadColumn(e){return this.clearAll(),this.loadColumn(e)},getConfigSlot(e){let r=this.$scopedSlots,a={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?r[e]?a[t]=r[e]:errLog("vxe.error.notSlot",[e]):a[t]=e)}),a},getToolbarSlots(){var e,t,r,a,o=this,s=o.$scopedSlots,i=o.computeToolbarOpts.slots,n={};return!s.buttons||i&&"buttons"===i.buttons||warnLog("vxe.error.reqProp",["[grid] toolbar-config.slots.buttons"]),!s.tools||i&&"tools"===i.tools||warnLog("vxe.error.reqProp",["[grid] toolbar-config.slots.tools"]),i&&(s=o.getFuncSlot(i,"buttons"),e=o.getFuncSlot(i,"buttonPrefix"),t=o.getFuncSlot(i,"buttonSuffix"),r=o.getFuncSlot(i,"tools"),a=o.getFuncSlot(i,"toolPrefix"),o=o.getFuncSlot(i,"toolSuffix"),s&&(n.buttons=s),e&&(n.buttonPrefix=e),t&&(n.buttonSuffix=t),r&&(n.tools=r),a&&(n.toolPrefix=a),o)&&(n.toolSuffix=o),n},getFuncSlot(e,t){var r=this.$scopedSlots,e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(r[e])return r[e];errLog("vxe.error.notSlot",[e])}return null},renderDefaultForm(e){var r=_ui.VxeUI.getComponent("VxeForm");let a=this;var o=a;let s=a.$scopedSlots;var{proxyConfig:o,formConfig:t}=o,i=a.reactData.formData,n=a.computeProxyOpts,l=a.computeFormOpts;if((0,_utils.isEnableConf)(t)&&l.items&&l.items.length){let t={};if(!l.inited){l.inited=!0;let t=n.beforeItem;n&&t&&l.items.forEach(e=>{t.call(a,{$grid:a,$gantt:null,item:e})})}return l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),[r?e(r,{ref:"refForm",props:Object.assign({},l,{data:o&&n.form?i:l.data}),on:{submit:a.submitFormEvent,reset:a.resetFormEvent,collapse:a.collapseEvent,"submit-invalid":a.submitInvalidEvent},scopedSlots:t}):renderEmptyElement(a)]}return[]},renderForm(e){var t=this,r=t.formConfig,a=t.$scopedSlots.form;return!a&&!(0,_utils.isEnableConf)(r)?renderEmptyElement(t):e("div",{key:"form",ref:"refFormWrapper",class:"vxe-grid--form-wrapper"},a?a.call(t,{$grid:t,$gantt:null}):t.renderDefaultForm(e))},renderToolbar(e){var t=this,r=t.toolbarConfig,a=t.$scopedSlots.toolbar,o=t.computeToolbarOpts;return r&&(0,_utils.isEnableConf)(o)||a?e("div",{key:"toolbar",ref:"refToolbarWrapper",class:"vxe-grid--toolbar-wrapper"},a?a.call(t,{$grid:t,$gantt:null}):[e(_toolbar.default,{props:Object.assign({},o,{slots:void 0}),ref:"refToolbar",scopedSlots:t.getToolbarSlots()})]):renderEmptyElement(t)},renderTop(e){var t=this.$scopedSlots.top;return t?e("div",{key:"top",ref:"refTopWrapper",class:"vxe-grid--top-wrapper"},t.call(this,{$grid:this,$gantt:null})):renderEmptyElement(this)},renderTableLeft(e){var t=this.$scopedSlots.left;return t?e("div",{class:"vxe-grid--left-wrapper"},t({$grid:this,$gantt:null})):renderEmptyElement(this)},renderTableRight(e){var t=this.$scopedSlots.right;return t?e("div",{class:"vxe-grid--right-wrapper"},t({$grid:this,$gantt:null})):renderEmptyElement(this)},renderTable(e){var t=this.$scopedSlots,r=this.computeTableProps;return e("div",{class:"vxe-grid--table-wrapper"},[e(_table.default,{key:"table",props:r,on:getTableOns(this),scopedSlots:t,ref:"refTable"})])},renderBottom(e){var t=this.$scopedSlots.bottom;return t?e("div",{key:"bottom",ref:"refBottomWrapper",class:"vxe-grid--bottom-wrapper"},t.call(this,{$grid:this,$gantt:null})):renderEmptyElement(this)},renderPager(e){var t=_ui.VxeUI.getComponent("VxePager"),r=this,a=r.$scopedSlots,o=r.reactData,{proxyConfig:s,pagerConfig:i}=r,n=r.computeProxyOpts,l=r.computePagerOpts,u=a.pager;return i&&(0,_utils.isEnableConf)(l)||a.pager?e("div",{ref:"refPagerWrapper",key:"pager",class:"vxe-grid--pager-wrapper"},u?u.call(r,{$grid:r,$gantt:null}):[t?e(t,{ref:"refPager",props:Object.assign(Object.assign({},l),s&&(0,_utils.isEnableConf)(n)?o.tablePage:{}),on:{"page-change":r.pageChangeEvent},scopedSlots:r.getConfigSlot(l.slots)}):renderEmptyElement(r)]):renderEmptyElement(r)},renderChildLayout(t,e){let r=this,a=[];return e.forEach(e=>{switch(e){case"Form":a.push(r.renderForm(t));break;case"Toolbar":a.push(r.renderToolbar(t));break;case"Top":a.push(r.renderTop(t));break;case"Table":a.push(t("div",{key:"table",class:"vxe-grid--table-container"},[r.renderTableLeft(t),r.renderTable(t),r.renderTableRight(t)]));break;case"Bottom":a.push(r.renderBottom(t));break;case"Pager":a.push(r.renderPager(t));break;default:errLog("vxe.error.notProp",["layouts -> "+e])}}),a},renderLayout(e){var t=this,r=t.$scopedSlots,{headKeys:a,bodyKeys:o,footKeys:s}=t.computeCurrLayoutConf,i=r.asideLeft||r["aside-left"],r=r.asideRight||r["aside-right"];return[e("div",{class:"vxe-grid--layout-header-wrapper"},t.renderChildLayout(e,a)),e("div",{class:"vxe-grid--layout-body-wrapper"},[i?e("div",{class:"vxe-grid--layout-aside-left-wrapper"},i({})):renderEmptyElement(t),e("div",{class:"vxe-grid--layout-body-content-wrapper"},t.renderChildLayout(e,o)),r?e("div",{class:"vxe-grid--layout-aside-right-wrapper"},r({})):renderEmptyElement(t)]),e("div",{class:"vxe-grid--layout-footer-wrapper"},t.renderChildLayout(e,s)),e("div",{ref:"refPopupContainerElem"})]},renderVN(e){var t=this,r=t.reactData,a=t.computeSize;return e("div",{ref:"refElem",class:["vxe-grid",{["size--"+a]:a,"is--animat":!!t.animat,"is--round":t.round,"is--maximize":r.isZMax,"is--loading":t.computeIsLoading}],style:t.computeStyles},t.renderLayout(e))}}),created(){let e=_ui.VxeUI.getComponent("VxeForm"),t=_ui.VxeUI.getComponent("VxePager");var r=this;let a=r;r.internalData=createInternalData();var o=r.computeProxyOpts;a.toolbar&&errLog("vxe.error.delProp",["toolbar","toolbar-config"]),a.toolbarConfig&&!_xeUtils.default.isObject(a.toolbarConfig)&&errLog("vxe.error.errProp",["toolbar-config="+a.toolbarConfig,"toolbar-config={}"]),o.props&&warnLog("vxe.error.delProp",["proxy-config.props","proxy-config.response"]),r.$nextTick(()=>{a.formConfig&&!e&&errLog("vxe.error.reqComp",["vxe-form"]),a.pagerConfig&&!t&&errLog("vxe.error.reqComp",["vxe-pager"])}),r.initPages(),globalEvents.on(r,"keydown",r.handleGlobalKeydownEvent)},mounted(){var e=this.columns;e&&e.length&&this.loadColumn(e),this.initToolbar(),this.initProxy()},beforeDestroy(){var e=this.reactData,t=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createReactData()),_xeUtils.default.assign(t,createInternalData())},render(e){return this.renderVN(e)}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_props=require("../../table/src/props"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/toolbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{warnLog,errLog}=(0,_log.createComponentLog)("grid"),{getConfig,getI18n,commands,globalEvents,globalMixins,createEvent,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableMethods={},propKeys=Object.keys(_props.tableProps),defaultLayouts=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]];function getTableOns(r){var{$listeners:e,proxyConfig:t,proxyOpts:a}=r;let o={};return _xeUtils.default.each(e,(e,t)=>{o[t]=(...e)=>{r.$emit(t,...e)}}),t&&(a.sort&&(o["sort-change"]=r.sortChangeEvent,o["clear-all-sort"]=r.clearAllSortEvent),a.filter)&&(o["filter-change"]=r.filterChangeEvent,o["clear-all-filter"]=r.clearAllFilterEvent),o}function createReactData(){var e;return{tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],footerData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(e=getConfig().pager)?void 0:e.pageSize)||10,currentPage:1}}}function createInternalData(){return{uFoot:!1}}_xeUtils.default.each(_table.default.methods,(e,r)=>{tableMethods[r]=function(...e){var t=this.$refs.refTable;return t&&t[r](...e)}});var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGrid",mixins:[globalMixins.sizeMixin],props:Object.assign(Object.assign({},_props.tableProps),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),provide(){return{$xeGrid:this,$xeGantt:null}},data(){var e=_xeUtils.default.uniqueId(),t=createReactData();return Object.assign(Object.assign({},{}),{xID:e,reactData:t})},computed:Object.assign(Object.assign({},{}),{isRespMsg(){return this.computeIsRespMsg},computeIsRespMsg(){var e=this.computeProxyOpts;return!!(_xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg)},isActiveMsg(){return this.computeIsActiveMsg},computeIsActiveMsg(){var e=this.computeProxyOpts;return _xeUtils.default.isBoolean(e.showActionMsg)?e.showActionMsg:!!e.showActiveMsg},proxyOpts(){return this.computeProxyOpts},computeProxyOpts(){return _xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),this.proxyConfig)},pagerOpts(){return this.computePagerOpts},computePagerOpts(){return Object.assign({},getConfig().grid.pagerConfig,this.pagerConfig)},formOpts(){return this.computeFormOpts},computeFormOpts(){return Object.assign({},getConfig().grid.formConfig,this.formConfig)},toolbarOpts(){return this.computeToolbarOpts},computeToolbarOpts(){return Object.assign({},getConfig().grid.toolbarConfig,this.toolbarConfig)},zoomOpts(){return this.computeZoomOpts},computeZoomOpts(){return Object.assign({},getConfig().grid.zoomConfig,this.zoomConfig)},computeStyles(){var{height:e,maxHeight:t}=this,{isZMax:r,tZindex:a}=this.reactData,o={};return r?o.zIndex=a:(e&&(o.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(o.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),o},computeTableExtendProps(){let t={},r=this;return propKeys.forEach(e=>{void 0!==r[e]&&(t[e]=r[e])}),t},computeTableProps(){var e=this,{showFooter:t,seqConfig:r,pagerConfig:a,editConfig:o,proxyConfig:s}=e,{isZMax:i,tablePage:n,footerData:l}=e.reactData,u=e.computeProxyOpts,g=e.computePagerOpts,c=e.computeIsLoading,e=Object.assign({},e.computeTableExtendProps);return(t&&!e.footerData||u.footer&&l.length)&&(e.footerData=l),i&&(e.maxHeight?e.maxHeight="100%":e.height="100%"),s&&(0,_utils.isEnableConf)(u)&&(e.loading=c,a)&&u.seq&&(0,_utils.isEnableConf)(g)&&(e.seqConfig=Object.assign({},r,{startIndex:(n.currentPage-1)*n.pageSize})),o&&(e.editConfig=Object.assign({},o)),e},tableProps(){return this.computeTableProps},computeCurrLayoutConf(){var e=this.layouts;let t=[],r=[],a=[],o=[];return(t=e&&e.length?e:getConfig().grid.layouts||defaultLayouts).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],a=t[1]||[],o=t[2]||[]):a=t),{headKeys:r,bodyKeys:a,footKeys:o}},computeCustomCurrentPageFlag(){return this.computePagerOpts.currentPage},computeCustomPageSizeFlag(){return this.computePagerOpts.pageSize},computeCustomTotalFlag(){return this.computePagerOpts.total},computePageCount(){var e=this.reactData.tablePage;return Math.max(Math.ceil(e.total/e.pageSize),1)},computeIsLoading(){var{loading:e,proxyConfig:t}=this,r=this.reactData.tableLoading,a=this.computeProxyOpts,o=a.showLoading;return e||r&&o&&t&&(0,_utils.isEnableConf)(a)}}),watch:{columns(e){let t=this;t.$nextTick(()=>t.loadColumn(e))},toolbar(e){e&&this.initToolbar()},toolbarConfig(e){e&&this.initToolbar()},proxyConfig(){this.initProxy()},computeCustomCurrentPageFlag(){this.initPages("currentPage")},computeCustomPageSizeFlag(){this.initPages("pageSize")},computeCustomTotalFlag(){this.initPages("total")}},methods:Object.assign(Object.assign({},tableMethods),{dispatchEvent(e,t,r){this.$emit(e,createEvent(r,{$grid:this,$gantt:null},t))},initPages(e){var t=this.reactData.tablePage,r=this.pagerConfig,a=this.computePagerOpts;r&&(0,_utils.isEnableConf)(a)&&(e?a[e]&&(t[e]=_xeUtils.default.toNumber(a[e])):({currentPage:r,pageSize:e,total:a}=a,r&&(t.currentPage=r),e&&(t.pageSize=e),a&&(t.total=a)))},callSlot(e,t,r){var a=this.$scopedSlots;return e&&(_xeUtils.default.isString(e)&&(e=a[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e.call(this,t,r)):[]},getEl(){return this.$refs.refElem},getExcludeHeight(){var t=this,r=t.height,a=t.reactData.isZMax,o=t.$refs.refElem;if(o){var s=t.$refs.refFormWrapper,i=t.$refs.refToolbarWrapper,n=t.$refs.refTopWrapper,l=t.$refs.refBottomWrapper,t=t.$refs.refPagerWrapper,u=o.parentElement;let e=0;return(e=!u||"100%"!==r&&"auto"!==r?e:a?0:(0,_dom.getPaddingTopBottomSize)(u))+(0,_dom.getPaddingTopBottomSize)(o)+(0,_dom.getOffsetHeight)(s)+(0,_dom.getOffsetHeight)(i)+(0,_dom.getOffsetHeight)(n)+(0,_dom.getOffsetHeight)(l)+(0,_dom.getOffsetHeight)(t)}return 0},getParentHeight(){var e=this.reactData,t=this.$refs.refElem;return t?(t=t.parentElement,(e.isZMax?(0,_dom.getDomNode)().visibleHeight:t?_xeUtils.default.toNumber(getComputedStyle(t).height):0)-this.getExcludeHeight()):0},initToolbar(){let r=this;r.$nextTick(()=>{var e=r.$refs.refTable,t=r.$refs.refToolbar;e&&t&&e.connectToolbar(t)})},getDefaultFormData(){var e=this.computeFormOpts;if(e.items){let i={};return e.items.forEach(t=>{var r,a,{field:o,itemRender:s}=t;if(o){let e=null;s&&({startField:s,endField:r,defaultValue:a}=s,_xeUtils.default.isFunction(a)?e=a({item:t}):_xeUtils.default.isUndefined(a)||(e=a),s)&&r&&(_xeUtils.default.set(i,s,null),_xeUtils.default.set(i,r,null)),i[o]=e}}),i}return{}},initProxy(){let t=this;var e=t,r=t.reactData;let a=t.internalData;var{proxyConfig:e,formConfig:o}=e,s=r.proxyInited,i=t.computeProxyOpts,n=t.computeFormOpts;e&&((0,_utils.isEnableConf)(o)&&i.form&&n.items&&(r.formData=t.getDefaultFormData()),s||!(r.proxyInited=!0)!==i.autoLoad&&t.$nextTick().then(()=>{a.uFoot=!0;var e=t.commitProxy("initial");return a.uFoot=!1,t.updateQueryFooter(),e}).then(e=>{t.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("initial"))}))},updateQueryFooter(){var e=this.computeProxyOpts.ajax;if(e&&e.queryFooter)return this.commitProxy("queryFooter")},handleGlobalKeydownEvent(e){var t=this.reactData,r=this.computeZoomOpts;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&t.isZMax&&!1!==r.escRestore&&this.triggerZoomEvent(e)},getRespMsg(e,t){var r=this.computeProxyOpts,r=(r.response||r.props||{}).message,a=this.$refs.refTable;let o;return(o=e&&r?_xeUtils.default.isFunction(r)?r({data:e,$table:a,$grid:this,$gantt:null}):_xeUtils.default.get(e,r):o)||getI18n(t)},handleDeleteRow(e,t,r){var a=this.computeIsActiveMsg,o=this.getCheckboxRecords();if(a)if(o.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return r()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else o.length&&r();return Promise.resolve()},triggerPendingEvent(e){var t=this.computeIsActiveMsg,r=this.$refs.refTable,a=r.getCheckboxRecords();a.length?(r.togglePendingRow(a),this.clearCheckboxRow()):t&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})},commitProxy(t,...d){let p=this;var e=p;let f=p.reactData,m=p.internalData;var r=e.toolbar;let{showFooter:g,proxyConfig:c,toolbarConfig:a,pagerConfig:h,editRules:b,validConfig:v}=e,x=f.tablePage,y=p.computeIsActiveMsg,P=p.computeIsRespMsg;var E=p.computeProxyOpts;let C=p.computePagerOpts;var o,e=p.computeToolbarOpts;let{beforeQuery:_,afterQuery:O,beforeQueryFooter:l,afterQueryFooter:u,beforeDelete:F,afterDelete:$,beforeSave:w,afterSave:D,ajax:S={}}=E,T=E.response||E.props||{},j=p.$refs.refTable,U=p.getFormData(),I=null,R=null;R=_xeUtils.default.isString(t)?(o=e.buttons,r=(a||r)&&(0,_utils.isEnableConf)(e)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,I=r?r.item:null,t):(I=t).code;var s=I?I.params:null;switch(R){case"insert":return j.insert({});case"insert_edit":return j.insert({}).then(({row:e})=>j.setEditRow(e,!0));case"insert_actived":return j.insert({}).then(({row:e})=>j.setEditRow(e,!0));case"mark_cancel":p.triggerPendingEvent(R);break;case"remove":return p.handleDeleteRow(R,"vxe.grid.removeSelectRecord",()=>j.removeCheckboxRow());case"import":j.importData(s);break;case"open_import":j.openImport(s);break;case"export":j.exportData(s);break;case"open_export":j.openExport(s);break;case"reset_custom":j.resetCustom(!0);break;case"initial":case"reload":case"query":{var L=S.beforeQuery;let s=S.query,n=S.afterQuery,l=S.querySuccess,u=S.queryError;if(s){var k="initial"===R,M="reload"===R;if(!k&&f.tableLoading)return p.$nextTick();let e=null,r=[],o=[],t={};if(h&&((k||M)&&(x.currentPage=1),(0,_utils.isEnableConf)(h))&&(t=Object.assign({},x)),k){if(c&&(0,_utils.isEnableConf)(E)&&E.form&&(U=p.getDefaultFormData(),f.formData=U),j){let{tableFullColumn:e,fullColumnFieldData:a}=j,t=j.computeSortOpts.defaultSort;e.forEach(e=>{e.order=null}),t&&(_xeUtils.default.isArray(t)||(t=[t]),r=t.map(e=>{var{field:e,order:t}=e,r=a[e];return r&&(r=r.column)&&(r.order=t),{field:e,property:e,order:t}})),o=j.getCheckedFilters()}}else j&&(M?e=j.clearAll():(r=j.getSortColumns(),o=j.getCheckedFilters()));let i={$table:j,$grid:p,$gantt:null,code:R,button:I,isInited:k,isReload:M,page:t,sort:r.length?r[0]:{},sorts:r,filters:o,form:U,options:s},a=()=>(f.sortData=r,f.filterData=o,f.tableLoading=!0,Promise.all([Promise.resolve((_||s)(i,...d)),e]).then(([e])=>{if(f.tableLoading=!1,n)n(Object.assign(Object.assign({},i),{response:e,status:"success"}),...d);else{let t=[];var r,a,o,s;e&&(r=T.list,s=T.result,a={data:e,$table:j,$grid:p,$gantt:null},h&&(0,_utils.isEnableConf)(C)?(o=T.total,o=(_xeUtils.default.isFunction(o)?o(a):_xeUtils.default.get(e,o||"page.total"))||0,x.total=_xeUtils.default.toNumber(o),t=(_xeUtils.default.isFunction(s)?s(a):_xeUtils.default.get(e,s||"result"))||[],s=Math.max(Math.ceil(o/x.pageSize),1),x.currentPage>s&&(x.currentPage=s)):_xeUtils.default.isArray(e)?t=e:r&&(t=(_xeUtils.default.isFunction(r)?r(a):_xeUtils.default.get(e,r))||[]),g)&&(s=(o=T.footerData)?_xeUtils.default.isFunction(o)?o(a):_xeUtils.default.get(e,o):[],_xeUtils.default.isArray(s))&&(f.footerData=s),j?j.loadData(t):p.$nextTick(()=>{var e=p.$refs.refTable;e&&e.loadData(t)}),O&&O(Object.assign(Object.assign({},i),{response:e}),...d)}return l&&l(Object.assign(Object.assign({},i),{response:e})),{status:!0}}).catch(e=>(f.tableLoading=!1,n&&n(Object.assign(Object.assign({},i),{response:e,status:"error"}),...d),u&&u(Object.assign(Object.assign({},i),{response:e})),{status:!1})));return L?Promise.resolve(L(i,...d)).then(e=>{if(!1!==e)return a()}):a()}errLog("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"queryFooter":{k=S.beforeQueryFooter;let o=S.queryFooter,s=S.afterQueryFooter,i=S.queryFooterSuccess,n=S.queryFooterError;if(o){let e=[],t=(j&&(e=j.getCheckedFilters()),{}),r=(h&&(0,_utils.isEnableConf)(h)&&(t=Object.assign({},x)),{$table:j,$grid:p,$gantt:null,code:R,button:I,page:t,filters:e,form:U,options:o}),a=()=>Promise.resolve((l||o)(r,...d)).then(e=>(s?s(Object.assign(Object.assign({},r),{response:e,status:"success"}),...d):(f.footerData=_xeUtils.default.isArray(e)?e:[],u&&u(Object.assign(Object.assign({},r),{response:e}),...d)),i&&i(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(s&&s(Object.assign(Object.assign({},r),{response:e,status:"error"}),...d),n&&n(Object.assign(Object.assign({},r),{response:e})),{status:!1}));return k?Promise.resolve(k(r,...d)).then(e=>{if(!1!==e)return a()}):a()}errLog("vxe.error.notFunc",["proxy-config.ajax.queryFooter"]);break}case"delete":{let o=S.beforeDelete,s=S.delete,i=S.afterDelete,n=S.deleteSuccess,l=S.deleteError;if(s){let e=j.getCheckboxRecords(),r=e.filter(e=>!j.isInsertByRow(e));M={removeRecords:r};let a={$table:j,$grid:p,$gantt:null,code:R,button:I,body:M,form:U,options:s};if(e.length)return p.handleDeleteRow(R,"vxe.grid.deleteSelectRecord",()=>{if(!r.length)return j.remove(e);let t=()=>(f.tableLoading=!0,Promise.resolve((F||s)(a,...d)).then(e=>(f.tableLoading=!1,i?i(Object.assign(Object.assign({},a),{response:e,status:"success"}),...d):(j.setPendingRow(r,!1),P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:p.getRespMsg(e,"vxe.grid.delSuccess"),status:"success"}),$?$(Object.assign(Object.assign({},a),{response:e}),...d):(m.uFoot=!0,p.commitProxy("query"),m.uFoot=!1,p.updateQueryFooter())),n&&n(Object.assign(Object.assign({},a),{response:e})),{status:!0})).catch(e=>(f.tableLoading=!1,i?i(Object.assign(Object.assign({},a),{response:e,status:"error"}),...d):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:R,content:p.getRespMsg(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},a),{response:e})),{status:!1})));return o?Promise.resolve(o(a,...d)).then(e=>{if(!1!==e)return t()}):t()});y&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:R,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else errLog("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=S.beforeSave,l=S.save,u=S.afterSave,g=S.saveSuccess,c=S.saveError;if(l){let t=p.getRecordset(),{insertRecords:r,removeRecords:a,updateRecords:o,pendingRecords:s}=t,i={$table:j,$grid:p,$gantt:null,code:R,button:I,body:t,form:U,options:l},e=(r.length&&(t.pendingRecords=s.filter(e=>-1===r.indexOf(e))),s.length&&(t.insertRecords=r.filter(e=>-1===s.indexOf(e))),Promise.resolve());return(e=b?p[v&&"full"===v.msgMode?"fullValidate":"validate"](t.insertRecords.concat(o)):e).then(e=>{if(!e){if(t.insertRecords.length||a.length||o.length||t.pendingRecords.length){let t=()=>(f.tableLoading=!0,Promise.resolve((w||l)(i,...d)).then(e=>(f.tableLoading=!1,u?u(Object.assign(Object.assign({},i),{response:e,status:"success"}),...d):(j.clearPendingRow(),P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:p.getRespMsg(e,"vxe.grid.saveSuccess"),status:"success"}),D?D(Object.assign(Object.assign({},i),{response:e}),...d):(m.uFoot=!0,p.commitProxy("query"),m.uFoot=!1,p.updateQueryFooter())),g&&g(Object.assign(Object.assign({},i),{response:e})),{status:!0})).catch(e=>(f.tableLoading=!1,u?u(Object.assign(Object.assign({},i),{response:e,status:"error"}),...d):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:R,content:p.getRespMsg(e,"vxe.grid.operError"),status:"error"}),c&&c(Object.assign(Object.assign({},i),{response:e})),{status:!1})));return n?Promise.resolve(n(i,...d)).then(e=>{if(!1!==e)return t()}):t()}y&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:R,content:getI18n("vxe.grid.dataUnchanged"),status:"info"})}})}errLog("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:L=commands.get(R);L&&((k=L.tableCommandMethod||L.commandMethod)?k({code:R,button:I,$grid:p,$table:j,$gantt:null},...d):errLog("vxe.error.notCommands",[R]))}return p.$nextTick()},getFormData(){var e=this.proxyConfig,t=this.reactData.formData,r=this.computeProxyOpts,a=this.computeFormOpts;return e&&(0,_utils.isEnableConf)(r)&&r.form?t:a.data},getFormItems(e){var t=this.computeFormOpts,r=this.formConfig,a=t.items;let o=[];return _xeUtils.default.eachTree(r&&(0,_utils.isEnableConf)(t)&&a?a:[],e=>{o.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?o:o[e]},getFormFlatItems(){var e=this.$refs.refForm;return e?e.getFlatItems():[]},getFormNestedItems(){var e=this.$refs.refForm;return e?e.getNestedItems():[]},getFormItemByField(e){var t=this.$refs.refForm;return t?t.getItemByField(e):null},resetForm(){var e=this.$refs.refForm;return e?e.reset():this.$nextTick()},validateForm(){var e=this.$refs.refForm;return e?e.validate():this.$nextTick()},validateFormField(e){var t=this.$refs.refForm;return t?t.validateField(e):this.$nextTick()},clearFormValidate(e){var t=this.$refs.refForm;return t?t.clearValidate(e):this.$nextTick()},homePage(){var e=this.reactData.tablePage;return e.currentPage=1,this.$nextTick()},homePageByEvent(e){var t=this.$refs.refPager;t&&t.homePageByEvent(e)},endPage(){var e=this.reactData.tablePage,t=this.computePageCount;return e.currentPage=t,this.$nextTick()},endPageByEvent(e){var t=this.$refs.refPager;t&&t.endPageByEvent(e)},getCurrentPage(){var e=this.reactData.tablePage;return e.currentPage},setCurrentPage(e){var t=this.reactData.tablePage,r=this.computePageCount;return t.currentPage=Math.min(r,Math.max(1,_xeUtils.default.toNumber(e))),this.$nextTick()},setCurrentPageByEvent(e,t){var r=this.$refs.refPager;r&&r.setCurrentPageByEvent(e,t)},getPageSize(){var e=this.reactData.tablePage;return e.pageSize},setPageSize(e){var t=this.reactData.tablePage;return t.pageSize=Math.max(1,_xeUtils.default.toNumber(e)),this.$nextTick()},setPageSizeByEvent(e,t){var r=this.$refs.refPager;r&&r.setPageSizeByEvent(e,t)},triggerToolbarCommitEvent(e,t){let r=this;var a,o=r.internalData;let s=e.code;return s?((a=["reload","delete","save"].includes(s))&&(o.uFoot=!0),e=r.commitProxy(e,t).then(e=>{s&&e&&e.status&&["query","reload","delete","save"].includes(s)&&r.dispatchEvent("delete"===s||"save"===s?"proxy-"+s:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===s}),t)}),a&&r.updateQueryFooter(),o.uFoot=!1,e):r.$nextTick()},triggerToolbarBtnEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},pageChangeEvent(e){let t=this;var r=t.proxyConfig,a=t.reactData.tablePage;let{$event:o,currentPage:s,pageSize:i}=e;var n=t.computeProxyOpts;a.currentPage=s,a.pageSize=i,t.dispatchEvent("page-change",e,o),r&&(0,_utils.isEnableConf)(n)&&t.commitProxy("query").then(e=>{t.dispatchEvent("proxy-query",e,o)})},handleSortEvent(t){let r=this;var e=r,a=r.reactData,o=r.$refs.refTable,e=e.proxyConfig,s=r.computeProxyOpts;o.computeSortOpts.remote&&(a.sortData=t.sortList,e)&&(0,_utils.isEnableConf)(s)&&(a.tablePage.currentPage=1,r.commitProxy("query").then(e=>{r.dispatchEvent("proxy-query",e,t.$event)}))},sortChangeEvent(e){this.handleSortEvent(e),this.dispatchEvent("sort-change",e,e.$event)},clearAllSortEvent(e){this.handleSortEvent(e),this.dispatchEvent("clear-all-sort",e,e.$event)},handleFilterEvent(t){let r=this;var e=r,a=r.reactData,o=r.internalData,s=r.$refs.refTable,e=e.proxyConfig,i=r.computeProxyOpts;s.computeFilterOpts.remote&&(a.filterData=t.filterList,e)&&(0,_utils.isEnableConf)(i)&&(a.tablePage.currentPage=1,o.uFoot=!0,r.commitProxy("query").then(e=>{r.dispatchEvent("proxy-query",e,t.$event)}),o.uFoot=!1,r.updateQueryFooter())},filterChangeEvent(e){this.handleFilterEvent(e),this.dispatchEvent("filter-change",e,e.$event)},clearAllFilterEvent(e){this.handleFilterEvent(e),this.dispatchEvent("clear-all-filter",e,e.$event)},submitFormEvent(t){let r=this;var e=r,a=r.reactData,o=r.internalData,e=e.proxyConfig,s=r.computeProxyOpts;a.tableLoading||(e&&(0,_utils.isEnableConf)(s)?(r.dispatchEvent("form-submit",t,t.$event),o.uFoot=!0,r.commitProxy("reload").then(e=>{r.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),o.uFoot=!1,r.updateQueryFooter()):r.dispatchEvent("form-submit",t,t.$event))},resetFormEvent(e){let t=this;var r=t,a=t.internalData,o=t.$refs.refTable,r=r.proxyConfig;let s=e.$event;var i=t.computeProxyOpts;r&&(0,_utils.isEnableConf)(i)?(t.dispatchEvent("form-reset",e,s),o&&o.clearScroll(),a.uFoot=!0,t.commitProxy("reload").then(e=>{t.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),s)}),a.uFoot=!1,t.updateQueryFooter()):t.dispatchEvent("form-reset",e,s)},submitInvalidEvent(e){this.dispatchEvent("form-submit-invalid",e,e.$event)},collapseEvent(e){var t=e.$event;this.dispatchEvent("form-toggle-collapse",e,t),this.dispatchEvent("form-collapse",e,t)},triggerZoomEvent(e){var t=this.reactData;this.zoom(),this.dispatchEvent("zoom",{type:t.isZMax?"max":"revert"},e)},getParams(){return this.params},zoom(){return this.reactData.isZMax?this.revert():this.maximize()},isMaximized(){return this.reactData.isZMax},maximize(){return this.handleZoom(!0)},revert(){return this.handleZoom()},handleZoom(e){let t=this,r=t.reactData;var a=r.isZMax;return(e?!a:a)&&(r.isZMax=!a,r.tZindex<(0,_utils.getLastZIndex)())&&(r.tZindex=(0,_utils.nextZIndex)()),t.$nextTick().then(()=>t.recalculate(!0)).then(()=>(setTimeout(()=>t.recalculate(!0),15),r.isZMax))},getProxyInfo(){var e,t=this.$refs.refTable,r=this.reactData;return this.proxyConfig?(e=r.sortData,{data:t?t.getFullData():[],filter:r.filterData,form:this.getFormData(),sort:e.length?e[0]:{},sorts:e,pager:r.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null},getCustomPagerData(){var e=this.pagerConfig,t=this.reactData.tablePage,r=this.computePagerOpts;return e&&(0,_utils.isEnableConf)(r)?{pSize:t.pageSize}:{}},loadColumn(e){let t=this.$scopedSlots;var r=this.$refs.refTable;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{!e||_xeUtils.default.isFunction(e)||t[e]||errLog("vxe.error.notSlot",[e])})}),r.loadColumn(e)},reloadColumn(e){return this.clearAll(),this.loadColumn(e)},getConfigSlot(e){let r=this.$scopedSlots,a={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?r[e]?a[t]=r[e]:errLog("vxe.error.notSlot",[e]):a[t]=e)}),a},getToolbarSlots(){var e,t,r,a,o=this,s=o.$scopedSlots,i=o.computeToolbarOpts.slots,n={};return!s.buttons||i&&"buttons"===i.buttons||warnLog("vxe.error.reqProp",["[grid] toolbar-config.slots.buttons"]),!s.tools||i&&"tools"===i.tools||warnLog("vxe.error.reqProp",["[grid] toolbar-config.slots.tools"]),i&&(s=o.getFuncSlot(i,"buttons"),e=o.getFuncSlot(i,"buttonPrefix"),t=o.getFuncSlot(i,"buttonSuffix"),r=o.getFuncSlot(i,"tools"),a=o.getFuncSlot(i,"toolPrefix"),o=o.getFuncSlot(i,"toolSuffix"),s&&(n.buttons=s),e&&(n.buttonPrefix=e),t&&(n.buttonSuffix=t),r&&(n.tools=r),a&&(n.toolPrefix=a),o)&&(n.toolSuffix=o),n},getFuncSlot(e,t){var r=this.$scopedSlots,e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(r[e])return r[e];errLog("vxe.error.notSlot",[e])}return null},renderDefaultForm(e){var r=_ui.VxeUI.getComponent("VxeForm");let a=this;var o=a;let s=a.$scopedSlots;var{proxyConfig:o,formConfig:t}=o,i=a.reactData.formData,n=a.computeProxyOpts,l=a.computeFormOpts;if((0,_utils.isEnableConf)(t)&&l.items&&l.items.length){let t={};if(!l.inited){l.inited=!0;let t=n.beforeItem;n&&t&&l.items.forEach(e=>{t.call(a,{$grid:a,$gantt:null,item:e})})}return l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{e&&!_xeUtils.default.isFunction(e)&&s[e]&&(t[e]=s[e])})}),[r?e(r,{ref:"refForm",props:Object.assign({},l,{data:o&&n.form?i:l.data}),on:{submit:a.submitFormEvent,reset:a.resetFormEvent,collapse:a.collapseEvent,"submit-invalid":a.submitInvalidEvent},scopedSlots:t}):renderEmptyElement(a)]}return[]},renderForm(e){var t=this,r=t.formConfig,a=t.$scopedSlots.form;return!a&&!(0,_utils.isEnableConf)(r)?renderEmptyElement(t):e("div",{key:"form",ref:"refFormWrapper",class:"vxe-grid--form-wrapper"},a?a.call(t,{$grid:t,$gantt:null}):t.renderDefaultForm(e))},renderToolbar(e){var t=this,r=t.toolbarConfig,a=t.$scopedSlots.toolbar,o=t.computeToolbarOpts;return r&&(0,_utils.isEnableConf)(o)||a?e("div",{key:"toolbar",ref:"refToolbarWrapper",class:"vxe-grid--toolbar-wrapper"},a?a.call(t,{$grid:t,$gantt:null}):[e(_toolbar.default,{props:Object.assign({},o,{slots:void 0}),ref:"refToolbar",scopedSlots:t.getToolbarSlots()})]):renderEmptyElement(t)},renderTop(e){var t=this.$scopedSlots.top;return t?e("div",{key:"top",ref:"refTopWrapper",class:"vxe-grid--top-wrapper"},t.call(this,{$grid:this,$gantt:null})):renderEmptyElement(this)},renderTableLeft(e){var t=this.$scopedSlots.left;return t?e("div",{class:"vxe-grid--left-wrapper"},t({$grid:this,$gantt:null})):renderEmptyElement(this)},renderTableRight(e){var t=this.$scopedSlots.right;return t?e("div",{class:"vxe-grid--right-wrapper"},t({$grid:this,$gantt:null})):renderEmptyElement(this)},renderTable(e){var t=this.$scopedSlots,r=this.computeTableProps;return e("div",{class:"vxe-grid--table-wrapper"},[e(_table.default,{key:"table",props:r,on:getTableOns(this),scopedSlots:t,ref:"refTable"})])},renderBottom(e){var t=this.$scopedSlots.bottom;return t?e("div",{key:"bottom",ref:"refBottomWrapper",class:"vxe-grid--bottom-wrapper"},t.call(this,{$grid:this,$gantt:null})):renderEmptyElement(this)},renderPager(e){var t=_ui.VxeUI.getComponent("VxePager"),r=this,a=r.$scopedSlots,o=r.reactData,{proxyConfig:s,pagerConfig:i}=r,n=r.computeProxyOpts,l=r.computePagerOpts,u=a.pager;return i&&(0,_utils.isEnableConf)(l)||a.pager?e("div",{ref:"refPagerWrapper",key:"pager",class:"vxe-grid--pager-wrapper"},u?u.call(r,{$grid:r,$gantt:null}):[t?e(t,{ref:"refPager",props:Object.assign(Object.assign({},l),s&&(0,_utils.isEnableConf)(n)?o.tablePage:{}),on:{"page-change":r.pageChangeEvent},scopedSlots:r.getConfigSlot(l.slots)}):renderEmptyElement(r)]):renderEmptyElement(r)},renderChildLayout(t,e){let r=this,a=[];return e.forEach(e=>{switch(e){case"Form":a.push(r.renderForm(t));break;case"Toolbar":a.push(r.renderToolbar(t));break;case"Top":a.push(r.renderTop(t));break;case"Table":a.push(t("div",{key:"table",class:"vxe-grid--table-container"},[r.renderTableLeft(t),r.renderTable(t),r.renderTableRight(t)]));break;case"Bottom":a.push(r.renderBottom(t));break;case"Pager":a.push(r.renderPager(t));break;default:errLog("vxe.error.notProp",["layouts -> "+e])}}),a},renderLayout(e){var t=this,r=t.$scopedSlots,{headKeys:a,bodyKeys:o,footKeys:s}=t.computeCurrLayoutConf,i=r.asideLeft||r["aside-left"],r=r.asideRight||r["aside-right"];return[e("div",{class:"vxe-grid--layout-header-wrapper"},t.renderChildLayout(e,a)),e("div",{class:"vxe-grid--layout-body-wrapper"},[i?e("div",{class:"vxe-grid--layout-aside-left-wrapper"},i({})):renderEmptyElement(t),e("div",{class:"vxe-grid--layout-body-content-wrapper"},t.renderChildLayout(e,o)),r?e("div",{class:"vxe-grid--layout-aside-right-wrapper"},r({})):renderEmptyElement(t)]),e("div",{class:"vxe-grid--layout-footer-wrapper"},t.renderChildLayout(e,s)),e("div",{ref:"refPopupContainerElem"})]},renderVN(e){var t=this,r=t.reactData,a=t.computeSize;return e("div",{ref:"refElem",class:["vxe-grid",{["size--"+a]:a,"is--animat":!!t.animat,"is--round":t.round,"is--maximize":r.isZMax,"is--loading":t.computeIsLoading}],style:t.computeStyles},t.renderLayout(e))}}),created(){let e=_ui.VxeUI.getComponent("VxeForm"),t=_ui.VxeUI.getComponent("VxePager");var r=this;let a=r;r.internalData=createInternalData();var o=r.computeProxyOpts;a.toolbar&&errLog("vxe.error.delProp",["toolbar","toolbar-config"]),a.toolbarConfig&&!_xeUtils.default.isObject(a.toolbarConfig)&&errLog("vxe.error.errProp",["toolbar-config="+a.toolbarConfig,"toolbar-config={}"]),o.props&&warnLog("vxe.error.delProp",["proxy-config.props","proxy-config.response"]),r.$nextTick(()=>{a.formConfig&&!e&&errLog("vxe.error.reqComp",["vxe-form"]),a.pagerConfig&&!t&&errLog("vxe.error.reqComp",["vxe-pager"])}),r.initPages(),globalEvents.on(r,"keydown",r.handleGlobalKeydownEvent)},mounted(){var e=this.columns;e&&e.length&&this.loadColumn(e),this.initToolbar(),this.initProxy()},beforeDestroy(){var e=this.reactData,t=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createReactData()),_xeUtils.default.assign(t,createInternalData())},render(e){return this.renderVN(e)}});