vxe-table 3.23.10 → 3.24.0-beta.1

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 (98) hide show
  1. package/es/grid/src/grid.js +29 -0
  2. package/es/iconfont.1789279209327.ttf +0 -0
  3. package/es/iconfont.1789279209327.woff +0 -0
  4. package/es/iconfont.1789279209327.woff2 +0 -0
  5. package/es/index.css +1 -1
  6. package/es/index.min.css +1 -1
  7. package/es/style.css +1 -1
  8. package/es/style.min.css +1 -1
  9. package/es/table/module/edit/mixin.js +3 -1
  10. package/es/table/module/export/mixin.js +14 -7
  11. package/es/table/module/filter/mixin.js +4 -2
  12. package/es/table/module/filter/panel.js +4 -2
  13. package/es/table/src/body.js +4 -2
  14. package/es/table/src/cell.js +27 -14
  15. package/es/table/src/columnInfo.js +2 -1
  16. package/es/table/src/footer.js +2 -1
  17. package/es/table/src/header.js +5 -3
  18. package/es/table/src/methods.js +19 -9
  19. package/es/table/src/props.js +4 -0
  20. package/es/table/src/table.js +7 -1
  21. package/es/table/style.css +3 -3
  22. package/es/table/style.min.css +1 -1
  23. package/es/toolbar/src/toolbar.js +5 -4
  24. package/es/ui/index.js +1 -1
  25. package/es/ui/src/log.js +1 -1
  26. package/es/vxe-table/style.css +3 -3
  27. package/es/vxe-table/style.min.css +1 -1
  28. package/lib/grid/src/grid.js +29 -0
  29. package/lib/grid/src/grid.min.js +1 -1
  30. package/lib/iconfont.1789279209327.ttf +0 -0
  31. package/lib/iconfont.1789279209327.woff +0 -0
  32. package/lib/iconfont.1789279209327.woff2 +0 -0
  33. package/lib/index.css +1 -1
  34. package/lib/index.min.css +1 -1
  35. package/lib/index.umd.js +121 -47
  36. package/lib/index.umd.min.js +1 -1
  37. package/lib/style.css +1 -1
  38. package/lib/style.min.css +1 -1
  39. package/lib/table/module/edit/mixin.js +3 -1
  40. package/lib/table/module/edit/mixin.min.js +1 -1
  41. package/lib/table/module/export/mixin.js +17 -7
  42. package/lib/table/module/export/mixin.min.js +1 -1
  43. package/lib/table/module/filter/mixin.js +4 -2
  44. package/lib/table/module/filter/mixin.min.js +1 -1
  45. package/lib/table/module/filter/panel.js +4 -2
  46. package/lib/table/module/filter/panel.min.js +1 -1
  47. package/lib/table/src/body.js +4 -2
  48. package/lib/table/src/body.min.js +1 -1
  49. package/lib/table/src/cell.js +28 -16
  50. package/lib/table/src/cell.min.js +1 -1
  51. package/lib/table/src/columnInfo.js +2 -1
  52. package/lib/table/src/columnInfo.min.js +1 -1
  53. package/lib/table/src/footer.js +2 -1
  54. package/lib/table/src/footer.min.js +1 -1
  55. package/lib/table/src/header.js +5 -3
  56. package/lib/table/src/header.min.js +1 -1
  57. package/lib/table/src/methods.js +5 -5
  58. package/lib/table/src/methods.min.js +1 -1
  59. package/lib/table/src/props.js +4 -0
  60. package/lib/table/src/props.min.js +1 -1
  61. package/lib/table/src/table.js +7 -1
  62. package/lib/table/src/table.min.js +1 -1
  63. package/lib/table/style/style.css +3 -3
  64. package/lib/table/style/style.min.css +1 -1
  65. package/lib/toolbar/src/toolbar.js +5 -4
  66. package/lib/toolbar/src/toolbar.min.js +1 -1
  67. package/lib/ui/index.js +1 -1
  68. package/lib/ui/index.min.js +1 -1
  69. package/lib/ui/src/log.js +1 -1
  70. package/lib/ui/src/log.min.js +1 -1
  71. package/lib/vxe-table/style/style.css +3 -3
  72. package/lib/vxe-table/style/style.min.css +1 -1
  73. package/package.json +2 -2
  74. package/packages/grid/src/grid.ts +32 -0
  75. package/packages/table/module/edit/mixin.ts +3 -1
  76. package/packages/table/module/export/mixin.ts +14 -7
  77. package/packages/table/module/filter/mixin.ts +6 -4
  78. package/packages/table/module/filter/panel.ts +4 -2
  79. package/packages/table/src/body.ts +4 -2
  80. package/packages/table/src/cell.ts +28 -14
  81. package/packages/table/src/columnInfo.ts +2 -1
  82. package/packages/table/src/footer.ts +2 -1
  83. package/packages/table/src/header.ts +5 -3
  84. package/packages/table/src/methods.ts +18 -9
  85. package/packages/table/src/props.ts +4 -0
  86. package/packages/table/src/table.ts +8 -1
  87. package/packages/toolbar/src/toolbar.ts +5 -4
  88. package/styles/components/icon.scss +2 -2
  89. package/styles/components/table.scss +1 -1
  90. package/styles/icon/iconfont.ttf +0 -0
  91. package/styles/icon/iconfont.woff +0 -0
  92. package/styles/icon/iconfont.woff2 +0 -0
  93. package/es/iconfont.1789034993794.ttf +0 -0
  94. package/es/iconfont.1789034993794.woff +0 -0
  95. package/es/iconfont.1789034993794.woff2 +0 -0
  96. package/lib/iconfont.1789034993794.ttf +0 -0
  97. package/lib/iconfont.1789034993794.woff +0 -0
  98. package/lib/iconfont.1789034993794.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;
@@ -53,12 +53,13 @@ function getBodyLabelData($xeTable, opts, columns, datas) {
53
53
  const { isTreeAllExpanded, isRowGroupAllExpanded, mode: expMode } = opts;
54
54
  const { treeConfig } = props;
55
55
  const { isRowGroupStatus } = reactData;
56
- const { fullColumnFieldData } = internalData;
56
+ const { fullColumnFieldData, fullAllDataRowIdData } = internalData;
57
57
  const radioOpts = $xeTable.computeRadioOpts;
58
58
  const checkboxOpts = $xeTable.computeCheckboxOpts;
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
  }
@@ -208,8 +209,9 @@ function getBodyLabelData($xeTable, opts, columns, datas) {
208
209
  return rest;
209
210
  }
210
211
  if (treeConfig) {
211
- const childrenField = treeOpts.children || treeOpts.childrenField;
212
212
  // 如果是树结构
213
+ const { seqMode } = treeOpts;
214
+ const childrenField = treeOpts.children || treeOpts.childrenField;
213
215
  const rest = [];
214
216
  const expandMaps = {};
215
217
  const useMaps = {};
@@ -229,12 +231,13 @@ function getBodyLabelData($xeTable, opts, columns, datas) {
229
231
  _hasChild: hasRowChild,
230
232
  _expand: hasRowChild && $xeTable.isTreeExpandByRow(row)
231
233
  };
234
+ const rowRest = fullAllDataRowIdData[rowid] || {};
232
235
  columns.forEach((column, $columnIndex) => {
233
236
  let cellValue = '';
234
237
  const renderOpts = column.editRender || column.cellRender;
235
238
  let bodyExportMethod = column.exportMethod || columnOpts.exportMethod;
236
239
  if (!bodyExportMethod && renderOpts && renderOpts.name) {
237
- const compConf = renderer.get(renderOpts.name);
240
+ const compConf = rendererOpts[renderOpts.name] || renderer.get(renderOpts.name);
238
241
  if (compConf) {
239
242
  bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod;
240
243
  }
@@ -248,7 +251,10 @@ function getBodyLabelData($xeTable, opts, columns, datas) {
248
251
  else {
249
252
  switch (column.type) {
250
253
  case 'seq': {
251
- const seqVal = path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('');
254
+ let seqVal = path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('');
255
+ if (seqMode === 'increasing') {
256
+ seqVal = rowRest ? (rowRest._index + 1) : -1;
257
+ }
252
258
  cellValue = expMode === 'all' ? seqVal : getSeq($xeTable, seqVal, row, $rowIndex, column, $columnIndex);
253
259
  break;
254
260
  }
@@ -301,7 +307,7 @@ function getBodyLabelData($xeTable, opts, columns, datas) {
301
307
  const renderOpts = column.editRender || column.cellRender;
302
308
  let bodyExportMethod = column.exportMethod || columnOpts.exportMethod;
303
309
  if (!bodyExportMethod && renderOpts && renderOpts.name) {
304
- const compConf = renderer.get(renderOpts.name);
310
+ const compConf = rendererOpts[renderOpts.name] || renderer.get(renderOpts.name);
305
311
  if (compConf) {
306
312
  bodyExportMethod = compConf.tableExportMethod || compConf.exportMethod;
307
313
  }
@@ -370,10 +376,11 @@ function getHeaderTitle($xeTable, opts, column) {
370
376
  }
371
377
  function getFooterCellValue($xeTable, opts, row, column) {
372
378
  const columnOpts = $xeTable.computeColumnOpts;
379
+ const rendererOpts = $xeTable.computeRendererOpts;
373
380
  const renderOpts = column.editRender || column.cellRender;
374
381
  let footLabelMethod = column.footerExportMethod;
375
382
  if (!footLabelMethod && renderOpts && renderOpts.name) {
376
- const compConf = renderer.get(renderOpts.name);
383
+ const compConf = rendererOpts[renderOpts.name] || renderer.get(renderOpts.name);
377
384
  if (compConf) {
378
385
  footLabelMethod = compConf.tableFooterExportMethod || compConf.footerExportMethod || compConf.footerCellExportMethod;
379
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,16 +456,24 @@ export const Cell = {
454
456
  if (defaultSlot) {
455
457
  return renderCellBaseVNs(h, params, $table.callSlot(defaultSlot, params, h));
456
458
  }
457
- const renderOpts = editRenderOpts || cellRenderOpts;
458
- // 如果是编辑表格:renderTableCell > formatter
459
- // 如果是查看表格:renderTableDefault > formatter
460
- if (renderOpts) {
461
- const compConf = renderer.get(renderOpts.name);
462
- if (compConf) {
463
- const renderFn = editRenderOpts ? (compConf.renderTableCell || compConf.renderCell) : (compConf.renderTableDefault || compConf.renderDefault);
464
- if (renderFn) {
465
- return renderCellBaseVNs(h, params, getSlotVNs(renderFn.call($table, h, renderOpts, Object.assign({ $type: editRenderOpts ? 'edit' : 'cell' }, params))));
466
- }
459
+ const rendererOpts = $table.computeRendererOpts;
460
+ // 如果是编辑模式-查看:slot default > formatter > cellRender.renderTableDefault > editRender.renderTableCell > editRender.renderTableDefault > cellRender.tableCellFormatter > editRender.tableCellFormatter > field
461
+ // 如果是查看表格:slot default > formatter > cellRender。renderTableDefault > cellRender.tableCellFormatter > field
462
+ const cellCompConf = cellRenderOpts && cellRenderOpts.name ? (rendererOpts[cellRenderOpts.name] || renderer.get(cellRenderOpts.name)) : null;
463
+ if (cellRenderOpts) {
464
+ const cellDefaultRenderFn = cellCompConf ? (cellCompConf.renderTableDefault || cellCompConf.renderDefault) : null;
465
+ if (cellDefaultRenderFn && cellRenderOpts) {
466
+ return renderCellBaseVNs(h, params, getSlotVNs(cellDefaultRenderFn(h, cellRenderOpts, Object.assign({ $type: editRenderOpts ? 'edit' : 'cell' }, params))));
467
+ }
468
+ }
469
+ if (editRenderOpts) {
470
+ const editCompConf = editRenderOpts && editRenderOpts.name ? (rendererOpts[editRenderOpts.name] || renderer.get(editRenderOpts.name)) : null;
471
+ const editCellRenderFn = editCompConf
472
+ ? ((editCompConf.renderTableCell || editCompConf.renderCell) ||
473
+ (editCompConf.renderTableDefault || editCompConf.renderDefault))
474
+ : null;
475
+ if (editCellRenderFn) {
476
+ return renderCellBaseVNs(h, params, getSlotVNs(editCellRenderFn(h, editRenderOpts, Object.assign({ $type: editRenderOpts ? 'edit' : 'cell' }, params))));
467
477
  }
468
478
  }
469
479
  cellValue = $table.getCellLabel(row, column);
@@ -1006,7 +1016,8 @@ export const Cell = {
1006
1016
  return $table.callSlot(slots.content, params, h);
1007
1017
  }
1008
1018
  if (contentRender) {
1009
- const compConf = renderer.get(contentRender.name);
1019
+ const rendererOpts = $table.computeRendererOpts;
1020
+ const compConf = contentRender.name ? (rendererOpts[contentRender.name] || renderer.get(contentRender.name)) : null;
1010
1021
  const rtExpand = compConf ? (compConf.renderTableExpand || compConf.renderExpand) : null;
1011
1022
  if (rtExpand) {
1012
1023
  return getSlotVNs(rtExpand.call($table, h, contentRender, params));
@@ -1230,7 +1241,8 @@ export const Cell = {
1230
1241
  if (slots && slots.edit) {
1231
1242
  return $table.callSlot(slots.edit, cellParams, h);
1232
1243
  }
1233
- const compConf = renderer.get(editRender.name);
1244
+ const rendererOpts = $table.computeRendererOpts;
1245
+ const compConf = editRenderOpts.name ? (rendererOpts[editRenderOpts.name] || renderer.get(editRenderOpts.name)) : null;
1234
1246
  const rtEdit = compConf ? (compConf.renderTableEdit || compConf.renderEdit) : null;
1235
1247
  if (rtEdit) {
1236
1248
  return getSlotVNs(rtEdit.call($table, h, editRender, cellParams));
@@ -1254,6 +1266,7 @@ export const Cell = {
1254
1266
  return renderCellBaseVNs(h, params, $table.callSlot(defaultSlot, cellParams, h));
1255
1267
  }
1256
1268
  }
1269
+ // slot default > formatter
1257
1270
  if (formatter) {
1258
1271
  return renderCellBaseVNs(h, params, [
1259
1272
  h('span', {
@@ -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;
@@ -5537,13 +5539,17 @@ const tableMethods = {
5537
5539
  clOpSize = cellRender.options ? cellRender.options.length : 0;
5538
5540
  clOgSize = cellRender.optionGroups ? cellRender.optionGroups.length : 0;
5539
5541
  }
5540
- // formatter > tableCellFormatter
5541
- const renderOpts = formatter ? null : (editConfig && isEnableConf(editRender) ? editRender : (isEnableConf(cellRender) ? cellRender : null));
5542
- const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
5543
- const tcFormatter = compConf ? compConf.tableCellFormatter : null;
5542
+ const isEnableEdit = editConfig && isEnableConf(editConfig);
5543
+ const editRenderOpts = formatter ? null : (isEnableEdit && isEnableConf(editRender) ? editRender : null);
5544
+ const cellRenderOpts = formatter ? null : (isEnableConf(cellRender) ? cellRender : null);
5545
+ // formatter > cellRender.tableCellFormatter > editRender.tableCellFormatter
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;
5548
+ const cellDfFormatter = cellCompConf ? cellCompConf.tableCellFormatter : null;
5549
+ const editDfFormatter = editCompConf ? editCompConf.tableCellFormatter : null;
5544
5550
  const cellValue = getCellValue(row, column);
5545
5551
  let cellLabel = cellValue;
5546
- if (formatter || tcFormatter) {
5552
+ if (formatter || cellDfFormatter || editDfFormatter) {
5547
5553
  let formatData;
5548
5554
  const { fullAllDataRowIdData } = internalData;
5549
5555
  const rowid = getRowid($xeTable, row);
@@ -5584,8 +5590,11 @@ const tableMethods = {
5584
5590
  cellLabel = formatter(formatParams);
5585
5591
  }
5586
5592
  }
5587
- else if (renderOpts && tcFormatter) {
5588
- cellLabel = tcFormatter(renderOpts, formatParams);
5593
+ else if (cellRenderOpts && cellDfFormatter) {
5594
+ cellLabel = cellDfFormatter(cellRenderOpts, formatParams);
5595
+ }
5596
+ else if (editRenderOpts && editDfFormatter) {
5597
+ cellLabel = editDfFormatter(editRenderOpts, formatParams);
5589
5598
  }
5590
5599
  if (formatData) {
5591
5600
  const ftValue = [cellValue, etOpSize, etOgSize, clOpSize, clOgSize];
@@ -6777,8 +6786,9 @@ const tableMethods = {
6777
6786
  if (column) {
6778
6787
  const { filterStore } = reactData;
6779
6788
  const { filterRender, filters } = column;
6789
+ const rendererOpts = $xeTable.computeRendererOpts;
6780
6790
  const filterOptions = filters || [];
6781
- const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
6791
+ const compConf = isEnableConf(filterRender) && filterRender.name ? (rendererOpts[filterRender.name] || renderer.get(filterRender.name)) : null;
6782
6792
  const frMethod = column.filterRecoverMethod || (compConf ? (compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod) : null);
6783
6793
  filterStore.column = column;
6784
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;
@@ -543,7 +543,7 @@
543
543
 
544
544
  @font-face {
545
545
  font-family: "vxetableiconfont";
546
- src: url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2");
546
+ src: url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2");
547
547
  }
548
548
  @keyframes rollCircle {
549
549
  0% {
@@ -557,7 +557,7 @@
557
557
  font-family: "vxetableiconfont" !important;
558
558
  font-style: normal;
559
559
  font-weight: 400;
560
- font-size: 1.1em;
560
+ font-size: 1em;
561
561
  line-height: 1em;
562
562
  -webkit-font-smoothing: antialiased;
563
563
  -moz-osx-font-smoothing: grayscale;
@@ -2651,7 +2651,7 @@
2651
2651
  }
2652
2652
  .vxe-table .vxe-cell--sort-vertical-layout .vxe-sort--asc-btn,
2653
2653
  .vxe-table .vxe-cell--sort-vertical-layout .vxe-sort--desc-btn {
2654
- height: 0.6em;
2654
+ height: 0.68em;
2655
2655
  }
2656
2656
  .vxe-table .vxe-cell--sort-horizontal-layout {
2657
2657
  display: inline-flex;