vxe-table 4.19.4 → 4.19.5

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 (39) hide show
  1. package/dist/all.esm.js +88 -16
  2. package/dist/style.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/table/module/export/hook.js +3 -3
  5. package/es/table/src/cell.js +8 -7
  6. package/es/table/src/columnInfo.js +1 -4
  7. package/es/table/src/table.js +77 -0
  8. package/es/table/src/util.js +1 -0
  9. package/es/ui/index.js +1 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/lib/index.umd.js +18 -21
  12. package/lib/index.umd.min.js +1 -1
  13. package/lib/style.css +1 -1
  14. package/lib/table/module/export/hook.js +3 -3
  15. package/lib/table/module/export/hook.min.js +1 -1
  16. package/lib/table/src/cell.js +8 -8
  17. package/lib/table/src/cell.min.js +1 -1
  18. package/lib/table/src/columnInfo.js +1 -5
  19. package/lib/table/src/columnInfo.min.js +1 -1
  20. package/lib/table/src/table.js +3 -3
  21. package/lib/table/src/table.min.js +1 -1
  22. package/lib/table/src/util.js +1 -0
  23. package/lib/table/src/util.min.js +1 -1
  24. package/lib/ui/index.js +1 -1
  25. package/lib/ui/index.min.js +1 -1
  26. package/lib/ui/src/log.js +1 -1
  27. package/lib/ui/src/log.min.js +1 -1
  28. package/package.json +2 -2
  29. package/packages/table/module/export/hook.ts +3 -3
  30. package/packages/table/src/cell.ts +8 -7
  31. package/packages/table/src/columnInfo.ts +1 -5
  32. package/packages/table/src/table.ts +75 -0
  33. package/packages/table/src/util.ts +1 -0
  34. /package/es/{iconfont.1779936744129.ttf → iconfont.1780200147870.ttf} +0 -0
  35. /package/es/{iconfont.1779936744129.woff → iconfont.1780200147870.woff} +0 -0
  36. /package/es/{iconfont.1779936744129.woff2 → iconfont.1780200147870.woff2} +0 -0
  37. /package/lib/{iconfont.1779936744129.ttf → iconfont.1780200147870.ttf} +0 -0
  38. /package/lib/{iconfont.1779936744129.woff → iconfont.1780200147870.woff} +0 -0
  39. /package/lib/{iconfont.1779936744129.woff2 → iconfont.1780200147870.woff2} +0 -0
@@ -278,7 +278,7 @@ hooks.add('tableExportModule', {
278
278
  function getHeaderTitle(opts, column) {
279
279
  const columnOpts = computeColumnOpts.value;
280
280
  const headExportMethod = column.headerExportMethod || columnOpts.headerExportMethod;
281
- return headExportMethod ? headExportMethod({ column, options: opts, $table: $xeTable }) : ((opts.isTitle ? column.getTitle() : column.field) || '');
281
+ return headExportMethod ? headExportMethod({ column, options: opts, $table: $xeTable }) : ((opts.isTitle ? $xeTable.getHeaderCellLabel(column) : column.field) || '');
282
282
  }
283
283
  const toBooleanValue = (cellValue) => {
284
284
  return XEUtils.isBoolean(cellValue) ? (cellValue ? 'TRUE' : 'FALSE') : cellValue;
@@ -932,12 +932,12 @@ hooks.add('tableExportModule', {
932
932
  const tableTitleMaps = {};
933
933
  tableFullColumn.forEach((column) => {
934
934
  const field = column.field;
935
- const title = column.getTitle();
935
+ const title = $xeTable.getHeaderCellLabel(column);
936
936
  if (field) {
937
937
  tableFieldMaps[field] = column;
938
938
  }
939
939
  if (title) {
940
- tableTitleMaps[column.getTitle()] = column;
940
+ tableTitleMaps[title] = column;
941
941
  }
942
942
  });
943
943
  const tableConf = {
@@ -356,7 +356,7 @@ export const Cell = {
356
356
  }
357
357
  }
358
358
  }
359
- return renderTitleContent(params, formatText(column.getTitle(), 1));
359
+ return renderTitleContent(params, $table.getHeaderCellLabel(column));
360
360
  },
361
361
  renderDefaultHeader(params) {
362
362
  return renderHeaderCellBaseVNs(params, Cell.renderHeaderTitle(params));
@@ -368,7 +368,7 @@ export const Cell = {
368
368
  const tableInternalData = $table.internalData;
369
369
  const { isRowGroupStatus } = tableReactData;
370
370
  const { editConfig } = tableProps;
371
- const { field, slots, editRender, cellRender, rowGroupNode, aggFunc, formatter } = column;
371
+ const { field, slots, editRender, cellRender, rowGroupNode, aggFunc } = column;
372
372
  const isEnableEdit = editConfig && isEnableConf(editConfig);
373
373
  const editRenderOpts = isEnableEdit && isEnableConf(editRender) ? editRender : null;
374
374
  const cellRenderOpts = isEnableConf(cellRender) ? cellRender : null;
@@ -444,8 +444,9 @@ export const Cell = {
444
444
  return renderCellBaseVNs(params, $table.callSlot(defaultSlot, params));
445
445
  }
446
446
  const renderOpts = editRenderOpts || cellRenderOpts;
447
- // formatter > (renderTableCell | renderTableDefault)
448
- if (renderOpts && !formatter) {
447
+ // 如果是编辑表格:renderTableCell > formatter
448
+ // 如果是查看表格:renderTableDefault > formatter
449
+ if (renderOpts) {
449
450
  const compConf = renderer.get(renderOpts.name);
450
451
  if (compConf) {
451
452
  const renderFn = editRenderOpts ? (compConf.renderTableCell || compConf.renderCell) : (compConf.renderTableDefault || compConf.renderDefault);
@@ -616,7 +617,7 @@ export const Cell = {
616
617
  const { $table, column } = params;
617
618
  const { slots } = column;
618
619
  const headerSlot = slots ? slots.header : null;
619
- return renderHeaderCellBaseVNs(params, renderTitleContent(params, headerSlot ? $table.callSlot(headerSlot, params) : formatText(column.getTitle(), 1)));
620
+ return renderHeaderCellBaseVNs(params, renderTitleContent(params, headerSlot ? $table.callSlot(headerSlot, params) : $table.getHeaderCellLabel(column)));
620
621
  },
621
622
  renderSeqCell(params) {
622
623
  const { $table, column } = params;
@@ -651,7 +652,7 @@ export const Cell = {
651
652
  : [
652
653
  h('span', {
653
654
  class: 'vxe-radio--label'
654
- }, titleSlot ? $table.callSlot(titleSlot, params) : formatText(column.getTitle(), 1))
655
+ }, titleSlot ? $table.callSlot(titleSlot, params) : $table.getHeaderCellLabel(column))
655
656
  ]));
656
657
  },
657
658
  renderRadioCell(params) {
@@ -720,7 +721,7 @@ export const Cell = {
720
721
  const titleSlot = slots ? slots.title : null;
721
722
  const checkboxOpts = computeCheckboxOpts.value;
722
723
  const { checkStrictly, showHeader, headerTitle } = checkboxOpts;
723
- const colTitle = column.getTitle();
724
+ const colTitle = $table.getHeaderCellLabel(column);
724
725
  const ons = {};
725
726
  if (!isHidden) {
726
727
  ons.onClick = (evnt) => {
@@ -11,16 +11,13 @@ export class ColumnInfo {
11
11
  const $xeGrid = $xeTable.xeGrid;
12
12
  const $xeGantt = $xeTable.xeGantt;
13
13
  const $xeGGWrapper = $xeGrid || $xeGantt;
14
- const { field, editRender, filterRender, headerFormatter } = _vm;
14
+ const { field, editRender, filterRender } = _vm;
15
15
  const colId = _vm.colId || XEUtils.uniqueId('col_');
16
16
  const formatter = _vm.formatter;
17
17
  const visible = XEUtils.isBoolean(_vm.visible) ? _vm.visible : true;
18
18
  const flCompConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
19
19
  const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null;
20
20
  const filters = toFilters(_vm.filters, colId);
21
- if (headerFormatter) {
22
- errLog('vxe.error.notProp', ['header-formatter']);
23
- }
24
21
  const types = ['seq', 'checkbox', 'radio', 'expand', 'html'];
25
22
  if (_vm.type && types.indexOf(_vm.type) === -1) {
26
23
  warnLog('vxe.error.errProp', [`type=${_vm.type}`, types.join(', ')]);
@@ -4050,6 +4050,7 @@ export default defineVxeComponent({
4050
4050
  loadScrollXData();
4051
4051
  }
4052
4052
  });
4053
+ $xeTable.clearHeaderFormatterCache();
4053
4054
  $xeTable.clearMergeCells();
4054
4055
  $xeTable.clearMergeFooterItems();
4055
4056
  $xeTable.handleTableData(true);
@@ -5291,6 +5292,81 @@ export default defineVxeComponent({
5291
5292
  }
5292
5293
  return nextTick();
5293
5294
  },
5295
+ getHeaderCellLabel(fieldOrColumn) {
5296
+ const column = handleFieldOrColumn($xeTable, fieldOrColumn);
5297
+ if (!column) {
5298
+ return null;
5299
+ }
5300
+ const { headerFormatter } = column;
5301
+ const _columnIndex = $xeTable.getVTColumnIndex(column);
5302
+ let cellLabel = column.getTitle();
5303
+ if (headerFormatter) {
5304
+ let formatData;
5305
+ const { headerFullDataColData } = internalData;
5306
+ const colid = column.id;
5307
+ let colRest = headerFullDataColData[colid];
5308
+ if (!colRest) {
5309
+ colRest = headerFullDataColData[colid] = {};
5310
+ }
5311
+ const formatObj = colRest.formatObj;
5312
+ if (formatObj && formatObj.value === cellLabel) {
5313
+ return formatObj.label;
5314
+ }
5315
+ const headFormatParams = {
5316
+ $table: $xeTable,
5317
+ cellTitle: cellLabel,
5318
+ cellValue: cellLabel,
5319
+ column,
5320
+ _columnIndex,
5321
+ columnIndex: $xeTable.getColumnIndex(column)
5322
+ };
5323
+ if (XEUtils.isString(headerFormatter)) {
5324
+ const gFormatOpts = formats.get(headerFormatter);
5325
+ const fcFormatMethod = gFormatOpts ? gFormatOpts.tableHeaderCellFormatMethod : null;
5326
+ cellLabel = XEUtils.toValueString(fcFormatMethod ? fcFormatMethod(headFormatParams) : '');
5327
+ }
5328
+ else if (XEUtils.isArray(headerFormatter)) {
5329
+ const gFormatOpts = formats.get(headerFormatter[0]);
5330
+ const fcFormatMethod = gFormatOpts ? gFormatOpts.tableHeaderCellFormatMethod : null;
5331
+ cellLabel = XEUtils.toValueString(fcFormatMethod ? fcFormatMethod(headFormatParams, ...headerFormatter.slice(1)) : '');
5332
+ }
5333
+ else {
5334
+ cellLabel = XEUtils.toValueString(headerFormatter(headFormatParams));
5335
+ }
5336
+ if (formatData) {
5337
+ colRest.formatObj = { value: cellLabel, label: cellLabel };
5338
+ }
5339
+ }
5340
+ return cellLabel;
5341
+ },
5342
+ updateHeaderCellLabel(fieldOrColumn) {
5343
+ const column = handleFieldOrColumn($xeTable, fieldOrColumn);
5344
+ if (!column) {
5345
+ return '';
5346
+ }
5347
+ const { headerFullDataColData } = internalData;
5348
+ const colid = column.id;
5349
+ const colRest = headerFullDataColData[colid];
5350
+ if (colRest) {
5351
+ colRest.formatObj = undefined;
5352
+ }
5353
+ return $xeTable.getHeaderCellLabel(column);
5354
+ },
5355
+ clearHeaderFormatterCache(isUpdate) {
5356
+ const { tableColumn } = reactData;
5357
+ const { headerFullDataColData } = internalData;
5358
+ XEUtils.each(headerFullDataColData, (colRest) => {
5359
+ if (colRest.formatObj) {
5360
+ colRest.formatObj = undefined;
5361
+ }
5362
+ });
5363
+ if (isUpdate) {
5364
+ tableColumn.forEach(column => {
5365
+ $xeTable.getHeaderCellLabel(column);
5366
+ });
5367
+ }
5368
+ return nextTick();
5369
+ },
5294
5370
  getFooterCellLabel(row, fieldOrColumn) {
5295
5371
  const column = handleFieldOrColumn($xeTable, fieldOrColumn);
5296
5372
  if (!column) {
@@ -7502,6 +7578,7 @@ export default defineVxeComponent({
7502
7578
  footData = visibleColumn.length ? footerMethod({ columns: visibleColumn, data: afterFullData, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt }) : [];
7503
7579
  }
7504
7580
  reactData.footerTableData = footData;
7581
+ $xeTable.clearFooterFormatterCache();
7505
7582
  $xeTable.handleUpdateFooterMerge();
7506
7583
  $xeTable.dispatchEvent('footer-data-change', {
7507
7584
  visibleColumn: internalData.visibleColumn,
@@ -77,6 +77,7 @@ export function createInternalData() {
77
77
  // 数据集(仅可视)
78
78
  visibleDataRowIdData: {},
79
79
  keepUpdateFieldMaps: {},
80
+ headerFullDataColData: {},
80
81
  footerFullDataRowData: {},
81
82
  // 渲染中缓存数据
82
83
  sourceDataRowIdData: {},
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 = "4.19.4";
3
+ export const version = "4.19.5";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `table v${"4.19.4"}`;
3
+ const version = `table v${"4.19.5"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
package/lib/index.umd.js CHANGED
@@ -3314,7 +3314,7 @@ function getDefaultConfig(val1, def1) {
3314
3314
  /* unused harmony import specifier */ var VxeUI;
3315
3315
 
3316
3316
 
3317
- const version = "4.19.4";
3317
+ const version = "4.19.5";
3318
3318
  core_.VxeUI.version = version;
3319
3319
  core_.VxeUI.tableVersion = version;
3320
3320
  core_.VxeUI.setConfig({
@@ -3848,7 +3848,7 @@ var es_iterator_some = __webpack_require__(3579);
3848
3848
  const {
3849
3849
  log: log_log
3850
3850
  } = core_.VxeUI;
3851
- const log_version = `table v${"4.19.4"}`;
3851
+ const log_version = `table v${"4.19.5"}`;
3852
3852
  const warnLog = log_log.create('warn', log_version);
3853
3853
  const errLog = log_log.create('error', log_version);
3854
3854
  ;// ./packages/table/src/columnInfo.ts
@@ -3877,8 +3877,7 @@ class ColumnInfo {
3877
3877
  const {
3878
3878
  field,
3879
3879
  editRender,
3880
- filterRender,
3881
- headerFormatter
3880
+ filterRender
3882
3881
  } = _vm;
3883
3882
  const colId = _vm.colId || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId('col_');
3884
3883
  const formatter = _vm.formatter;
@@ -3886,9 +3885,6 @@ class ColumnInfo {
3886
3885
  const flCompConf = isEnableConf(filterRender) ? columnInfo_renderer.get(filterRender.name) : null;
3887
3886
  const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null;
3888
3887
  const filters = toFilters(_vm.filters, colId);
3889
- if (headerFormatter) {
3890
- errLog('vxe.error.notProp', ['header-formatter']);
3891
- }
3892
3888
  const types = ['seq', 'checkbox', 'radio', 'expand', 'html'];
3893
3889
  if (_vm.type && types.indexOf(_vm.type) === -1) {
3894
3890
  warnLog('vxe.error.errProp', [`type=${_vm.type}`, types.join(', ')]);
@@ -4421,6 +4417,7 @@ function createInternalData() {
4421
4417
  // 数据集(仅可视)
4422
4418
  visibleDataRowIdData: {},
4423
4419
  keepUpdateFieldMaps: {},
4420
+ headerFullDataColData: {},
4424
4421
  footerFullDataRowData: {},
4425
4422
  // 渲染中缓存数据
4426
4423
  sourceDataRowIdData: {},
@@ -5922,7 +5919,7 @@ const Cell = {
5922
5919
  }
5923
5920
  }
5924
5921
  }
5925
- return renderTitleContent(params, formatText(column.getTitle(), 1));
5922
+ return renderTitleContent(params, $table.getHeaderCellLabel(column));
5926
5923
  },
5927
5924
  renderDefaultHeader(params) {
5928
5925
  return renderHeaderCellBaseVNs(params, Cell.renderHeaderTitle(params));
@@ -5948,8 +5945,7 @@ const Cell = {
5948
5945
  editRender,
5949
5946
  cellRender,
5950
5947
  rowGroupNode,
5951
- aggFunc,
5952
- formatter
5948
+ aggFunc
5953
5949
  } = column;
5954
5950
  const isEnableEdit = editConfig && isEnableConf(editConfig);
5955
5951
  const editRenderOpts = isEnableEdit && isEnableConf(editRender) ? editRender : null;
@@ -6050,8 +6046,9 @@ const Cell = {
6050
6046
  return renderCellBaseVNs(params, $table.callSlot(defaultSlot, params));
6051
6047
  }
6052
6048
  const renderOpts = editRenderOpts || cellRenderOpts;
6053
- // formatter > (renderTableCell | renderTableDefault)
6054
- if (renderOpts && !formatter) {
6049
+ // 如果是编辑表格:renderTableCell > formatter
6050
+ // 如果是查看表格:renderTableDefault > formatter
6051
+ if (renderOpts) {
6055
6052
  const compConf = cell_renderer.get(renderOpts.name);
6056
6053
  if (compConf) {
6057
6054
  const renderFn = editRenderOpts ? compConf.renderTableCell || compConf.renderCell : compConf.renderTableDefault || compConf.renderDefault;
@@ -6262,7 +6259,7 @@ const Cell = {
6262
6259
  slots
6263
6260
  } = column;
6264
6261
  const headerSlot = slots ? slots.header : null;
6265
- return renderHeaderCellBaseVNs(params, renderTitleContent(params, headerSlot ? $table.callSlot(headerSlot, params) : formatText(column.getTitle(), 1)));
6262
+ return renderHeaderCellBaseVNs(params, renderTitleContent(params, headerSlot ? $table.callSlot(headerSlot, params) : $table.getHeaderCellLabel(column)));
6266
6263
  },
6267
6264
  renderSeqCell(params) {
6268
6265
  const {
@@ -6308,7 +6305,7 @@ const Cell = {
6308
6305
  const titleSlot = slots ? slots.title : null;
6309
6306
  return renderHeaderCellBaseVNs(params, renderTitleContent(params, headerSlot ? $table.callSlot(headerSlot, params) : [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('span', {
6310
6307
  class: 'vxe-radio--label'
6311
- }, titleSlot ? $table.callSlot(titleSlot, params) : formatText(column.getTitle(), 1))]));
6308
+ }, titleSlot ? $table.callSlot(titleSlot, params) : $table.getHeaderCellLabel(column))]));
6312
6309
  },
6313
6310
  renderRadioCell(params) {
6314
6311
  const {
@@ -6420,7 +6417,7 @@ const Cell = {
6420
6417
  showHeader,
6421
6418
  headerTitle
6422
6419
  } = checkboxOpts;
6423
- const colTitle = column.getTitle();
6420
+ const colTitle = $table.getHeaderCellLabel(column);
6424
6421
  const ons = {};
6425
6422
  if (!isHidden) {
6426
6423
  ons.onClick = evnt => {
@@ -15070,7 +15067,7 @@ export_hook_hooks.add('tableExportModule', {
15070
15067
  column,
15071
15068
  options: opts,
15072
15069
  $table: $xeTable
15073
- }) : (opts.isTitle ? column.getTitle() : column.field) || '';
15070
+ }) : (opts.isTitle ? $xeTable.getHeaderCellLabel(column) : column.field) || '';
15074
15071
  }
15075
15072
  const toBooleanValue = cellValue => {
15076
15073
  return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(cellValue) ? cellValue ? 'TRUE' : 'FALSE' : cellValue;
@@ -15858,12 +15855,12 @@ export_hook_hooks.add('tableExportModule', {
15858
15855
  const tableTitleMaps = {};
15859
15856
  tableFullColumn.forEach(column => {
15860
15857
  const field = column.field;
15861
- const title = column.getTitle();
15858
+ const title = $xeTable.getHeaderCellLabel(column);
15862
15859
  if (field) {
15863
15860
  tableFieldMaps[field] = column;
15864
15861
  }
15865
15862
  if (title) {
15866
- tableTitleMaps[column.getTitle()] = column;
15863
+ tableTitleMaps[title] = column;
15867
15864
  }
15868
15865
  });
15869
15866
  const tableConf = {
@@ -20496,7 +20493,7 @@ tableFullColumn.forEach(column=>{if(column.visible){if(column.fixed==='left'){le
20496
20493
  // }
20497
20494
  if(props.spanMethod){warnLog('vxe.error.scrollErrProp',['span-method']);}if(props.footerSpanMethod){warnLog('vxe.error.scrollErrProp',['footer-span-method']);}if(isReset){const{visibleSize}=handleVirtualXVisible();scrollXStore.startIndex=0;scrollXStore.endIndex=visibleSize;scrollXStore.visibleSize=visibleSize;scrollXStore.visibleStartIndex=0;scrollXStore.visibleEndIndex=visibleSize;}}// 如果列被显示/隐藏,则清除合并状态
20498
20495
  // 如果列被设置为固定,则清除合并状态
20499
- if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn();handleUpdateAggValues();if(isReset){updateColumnOffsetLeft();return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();};const initColumnHierarchy=()=>{const{collectColumn}=internalData;const fullColIdData={};const fullColFieldData={};let sortIndex=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const{id:colid,field}=column;const parentId=parentColumn?parentColumn.id:null;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};column.parentId=parentId;column.defaultParentId=parentId;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;sortIndex++;if(field){if(fullColFieldData[field]){errLog('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}fullColIdData[colid]=rest;});internalData.fullColumnIdData=fullColIdData;internalData.fullColumnFieldData=fullColFieldData;};const handleInitColumn=collectColumn=>{const expandOpts=computeExpandOpts.value;internalData.collectColumn=collectColumn;const tFullColumn=getColumnList(collectColumn);internalData.tableFullColumn=tFullColumn;reactData.updateColFlag++;reactData.isColLoading=true;initColumnHierarchy();return Promise.resolve(restoreCustomStorage()).then(()=>{const{scrollXLoad,scrollYLoad,expandColumn}=reactData;cacheColumnMap();parseColumns(true).then(()=>{if(reactData.scrollXLoad){loadScrollXData();}});$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){warnLog('vxe.error.scrollErrProp',['column.type=expand']);}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}const columnOpts=computeColumnOpts.value;if(props.showCustomHeader&&reactData.isGroup&&(columnOpts.resizable||props.resizable)){warnLog('vxe.error.notConflictProp',['show-custom-header & colgroup','column-config.resizable=false']);}reactData.isColLoading=false;return handleLazyRecalculate(false,true,true);});});};const updateScrollXStatus=fullColumn=>{const virtualXOpts=computeVirtualXOpts.value;const allCols=fullColumn||internalData.tableFullColumn;// 如果gt为0,则总是启用
20496
+ if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn();handleUpdateAggValues();if(isReset){updateColumnOffsetLeft();return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();};const initColumnHierarchy=()=>{const{collectColumn}=internalData;const fullColIdData={};const fullColFieldData={};let sortIndex=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const{id:colid,field}=column;const parentId=parentColumn?parentColumn.id:null;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};column.parentId=parentId;column.defaultParentId=parentId;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;sortIndex++;if(field){if(fullColFieldData[field]){errLog('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}fullColIdData[colid]=rest;});internalData.fullColumnIdData=fullColIdData;internalData.fullColumnFieldData=fullColFieldData;};const handleInitColumn=collectColumn=>{const expandOpts=computeExpandOpts.value;internalData.collectColumn=collectColumn;const tFullColumn=getColumnList(collectColumn);internalData.tableFullColumn=tFullColumn;reactData.updateColFlag++;reactData.isColLoading=true;initColumnHierarchy();return Promise.resolve(restoreCustomStorage()).then(()=>{const{scrollXLoad,scrollYLoad,expandColumn}=reactData;cacheColumnMap();parseColumns(true).then(()=>{if(reactData.scrollXLoad){loadScrollXData();}});$xeTable.clearHeaderFormatterCache();$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){warnLog('vxe.error.scrollErrProp',['column.type=expand']);}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}const columnOpts=computeColumnOpts.value;if(props.showCustomHeader&&reactData.isGroup&&(columnOpts.resizable||props.resizable)){warnLog('vxe.error.notConflictProp',['show-custom-header & colgroup','column-config.resizable=false']);}reactData.isColLoading=false;return handleLazyRecalculate(false,true,true);});});};const updateScrollXStatus=fullColumn=>{const virtualXOpts=computeVirtualXOpts.value;const allCols=fullColumn||internalData.tableFullColumn;// 如果gt为0,则总是启用
20500
20497
  const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt===0||virtualXOpts.gt<allCols.length);reactData.scrollXLoad=scrollXLoad;return scrollXLoad;};const updateScrollYStatus=fullData=>{const{treeConfig}=props;const $xeGanttView=internalData.xeGanttView;const virtualYOpts=computeVirtualYOpts.value;const treeOpts=computeTreeOpts.value;const{transform}=treeOpts;const allList=fullData||internalData.tableFullData;// 如果gt为0,则总是启用
20501
20498
  const scrollYLoad=(transform||!treeConfig)&&!!virtualYOpts.enabled&&virtualYOpts.gt>-1&&(virtualYOpts.gt===0||virtualYOpts.gt<allList.length);reactData.scrollYLoad=scrollYLoad;if($xeGanttView&&$xeGanttView.handleUpdateSYStatus){$xeGanttView.handleUpdateSYStatus(scrollYLoad);}return scrollYLoad;};/**
20502
20499
  * 展开与收起树节点
@@ -20616,7 +20613,7 @@ if(virtualXOpts.scrollToLeftOnChange){targetScrollLeft=0;}if(virtualYOpts.scroll
20616
20613
  * @param {Array/Row} rows 行数据
20617
20614
  * @param {String} field 字段名
20618
20615
  */clearData(rows,field){const{tableFullData,visibleColumn}=internalData;if(!arguments.length){rows=tableFullData;}else if(rows&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(rows)){rows=[rows];}if(field){rows.forEach(row=>external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().set(row,field,null));}else{rows.forEach(row=>{visibleColumn.forEach(column=>{if(column.field){setCellValue(row,column,null);}});});}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},getCellElement(row,fieldOrColumn){const{elemStore}=internalData;const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const rowid=getRowid($xeTable,row);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);let bodyElem;if(column){if(column.fixed){if(column.fixed==='left'){if(leftScrollElem){bodyElem=leftScrollElem;}}else{if(rightScrollElem){bodyElem=rightScrollElem;}}}if(!bodyElem){bodyElem=bodyScrollElem;}if(bodyElem){return bodyElem.querySelector(`.vxe-body--row[rowid="${rowid}"] .${column.id}`);}}return null;},getCellLabel(row,fieldOrColumn){const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{editConfig}=props;const{formatter,editRender,cellRender}=column;// formatter > tableCellFormatter
20619
- const renderOpts=formatter?null:editConfig&&isEnableConf(editRender)?editRender:isEnableConf(cellRender)?cellRender:null;const compConf=renderOpts?table_renderer.get(renderOpts.name):null;const tcFormatter=compConf?compConf.tableCellFormatter:null;const cellValue=getCellValue(row,column);let cellLabel=cellValue;if(formatter||tcFormatter){let formatData;const{fullAllDataRowIdData}=internalData;const rowid=getRowid($xeTable,row);const colid=column.id;const rowRest=fullAllDataRowIdData[rowid];if(rowRest){formatData=rowRest.formatData;if(!formatData){formatData=fullAllDataRowIdData[rowid].formatData={};}if(rowRest&&formatData[colid]){if(formatData[colid].value===cellValue){return formatData[colid].label;}}}const formatParams={$table:$xeTable,cellValue,row,rowIndex:$xeTable.getRowIndex(row),column,columnIndex:$xeTable.getColumnIndex(column)};if(formatter){if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(formatter)){const gFormatOpts=table_formats.get(formatter);const tcFormatMethod=gFormatOpts?gFormatOpts.tableCellFormatMethod||gFormatOpts.cellFormatMethod:null;cellLabel=tcFormatMethod?tcFormatMethod(formatParams):'';}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(formatter)){const gFormatOpts=table_formats.get(formatter[0]);const tcFormatMethod=gFormatOpts?gFormatOpts.tableCellFormatMethod||gFormatOpts.cellFormatMethod:null;cellLabel=tcFormatMethod?tcFormatMethod(formatParams,...formatter.slice(1)):'';}else{cellLabel=formatter(formatParams);}}else if(renderOpts&&tcFormatter){cellLabel=tcFormatter(renderOpts,formatParams);}if(formatData){formatData[colid]={value:cellValue,label:cellLabel};}}return cellLabel;},updateCellLabel(row,fieldOrColumn){const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{fullAllDataRowIdData}=internalData;const rowid=getRowid($xeTable,row);if(rowid){const colid=column.id;const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const formatData=rowRest.formatData;if(formatData){delete formatData[colid];}}}return $xeTable.getFooterCellLabel(row,column);},clearFormatterCache(isUpdate){const{tableData,tableColumn}=reactData;const{fullAllDataRowIdData}=internalData;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(fullAllDataRowIdData,rowRest=>{if(rowRest.formatData){rowRest.formatData=undefined;}});if(isUpdate){tableData.forEach(row=>{tableColumn.forEach(column=>{$xeTable.getCellLabel(row,column);});});}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},getFooterCellLabel(row,fieldOrColumn){const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{footerFormatter}=column;const _columnIndex=$xeTable.getVTColumnIndex(column);let itemValue='';// 兼容老模式
20616
+ const renderOpts=formatter?null:editConfig&&isEnableConf(editRender)?editRender:isEnableConf(cellRender)?cellRender:null;const compConf=renderOpts?table_renderer.get(renderOpts.name):null;const tcFormatter=compConf?compConf.tableCellFormatter:null;const cellValue=getCellValue(row,column);let cellLabel=cellValue;if(formatter||tcFormatter){let formatData;const{fullAllDataRowIdData}=internalData;const rowid=getRowid($xeTable,row);const colid=column.id;const rowRest=fullAllDataRowIdData[rowid];if(rowRest){formatData=rowRest.formatData;if(!formatData){formatData=fullAllDataRowIdData[rowid].formatData={};}if(rowRest&&formatData[colid]){if(formatData[colid].value===cellValue){return formatData[colid].label;}}}const formatParams={$table:$xeTable,cellValue,row,rowIndex:$xeTable.getRowIndex(row),column,columnIndex:$xeTable.getColumnIndex(column)};if(formatter){if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(formatter)){const gFormatOpts=table_formats.get(formatter);const tcFormatMethod=gFormatOpts?gFormatOpts.tableCellFormatMethod||gFormatOpts.cellFormatMethod:null;cellLabel=tcFormatMethod?tcFormatMethod(formatParams):'';}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(formatter)){const gFormatOpts=table_formats.get(formatter[0]);const tcFormatMethod=gFormatOpts?gFormatOpts.tableCellFormatMethod||gFormatOpts.cellFormatMethod:null;cellLabel=tcFormatMethod?tcFormatMethod(formatParams,...formatter.slice(1)):'';}else{cellLabel=formatter(formatParams);}}else if(renderOpts&&tcFormatter){cellLabel=tcFormatter(renderOpts,formatParams);}if(formatData){formatData[colid]={value:cellValue,label:cellLabel};}}return cellLabel;},updateCellLabel(row,fieldOrColumn){const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{fullAllDataRowIdData}=internalData;const rowid=getRowid($xeTable,row);if(rowid){const colid=column.id;const rowid=getRowid($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(rowRest){const formatData=rowRest.formatData;if(formatData){delete formatData[colid];}}}return $xeTable.getFooterCellLabel(row,column);},clearFormatterCache(isUpdate){const{tableData,tableColumn}=reactData;const{fullAllDataRowIdData}=internalData;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(fullAllDataRowIdData,rowRest=>{if(rowRest.formatData){rowRest.formatData=undefined;}});if(isUpdate){tableData.forEach(row=>{tableColumn.forEach(column=>{$xeTable.getCellLabel(row,column);});});}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},getHeaderCellLabel(fieldOrColumn){const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{headerFormatter}=column;const _columnIndex=$xeTable.getVTColumnIndex(column);let cellLabel=column.getTitle();if(headerFormatter){let formatData;const{headerFullDataColData}=internalData;const colid=column.id;let colRest=headerFullDataColData[colid];if(!colRest){colRest=headerFullDataColData[colid]={};}const formatObj=colRest.formatObj;if(formatObj&&formatObj.value===cellLabel){return formatObj.label;}const headFormatParams={$table:$xeTable,cellTitle:cellLabel,cellValue:cellLabel,column,_columnIndex,columnIndex:$xeTable.getColumnIndex(column)};if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(headerFormatter)){const gFormatOpts=table_formats.get(headerFormatter);const fcFormatMethod=gFormatOpts?gFormatOpts.tableHeaderCellFormatMethod:null;cellLabel=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toValueString(fcFormatMethod?fcFormatMethod(headFormatParams):'');}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(headerFormatter)){const gFormatOpts=table_formats.get(headerFormatter[0]);const fcFormatMethod=gFormatOpts?gFormatOpts.tableHeaderCellFormatMethod:null;cellLabel=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toValueString(fcFormatMethod?fcFormatMethod(headFormatParams,...headerFormatter.slice(1)):'');}else{cellLabel=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toValueString(headerFormatter(headFormatParams));}if(formatData){colRest.formatObj={value:cellLabel,label:cellLabel};}}return cellLabel;},updateHeaderCellLabel(fieldOrColumn){const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return'';}const{headerFullDataColData}=internalData;const colid=column.id;const colRest=headerFullDataColData[colid];if(colRest){colRest.formatObj=undefined;}return $xeTable.getHeaderCellLabel(column);},clearHeaderFormatterCache(isUpdate){const{tableColumn}=reactData;const{headerFullDataColData}=internalData;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(headerFullDataColData,colRest=>{if(colRest.formatObj){colRest.formatObj=undefined;}});if(isUpdate){tableColumn.forEach(column=>{$xeTable.getHeaderCellLabel(column);});}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},getFooterCellLabel(row,fieldOrColumn){const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{footerFormatter}=column;const _columnIndex=$xeTable.getVTColumnIndex(column);let itemValue='';// 兼容老模式
20620
20617
  if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(row)){itemValue=row[_columnIndex];}else{itemValue=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row,column.field);}let cellLabel=itemValue;if(footerFormatter){let formatData;const{footerTableData}=reactData;const{footerFullDataRowData}=internalData;const colid=column.id;const $rowIndex=footerTableData.indexOf(row);let rowRest=null;if($rowIndex>-1){rowRest=footerFullDataRowData[$rowIndex];if(!rowRest){rowRest=footerFullDataRowData[$rowIndex]={};}formatData=rowRest.formatData;if(!formatData){formatData=footerFullDataRowData[$rowIndex].formatData={};}if(rowRest&&formatData[colid]){if(formatData[colid].value===itemValue){return formatData[colid].label;}}}const footerFormatParams={$table:$xeTable,cellValue:itemValue,itemValue,row,items:row,$rowIndex,column,_columnIndex,columnIndex:$xeTable.getColumnIndex(column)};if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(footerFormatter)){const gFormatOpts=table_formats.get(footerFormatter);const fcFormatMethod=gFormatOpts?gFormatOpts.tableFooterCellFormatMethod:null;cellLabel=fcFormatMethod?fcFormatMethod(footerFormatParams):'';}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(footerFormatter)){const gFormatOpts=table_formats.get(footerFormatter[0]);const fcFormatMethod=gFormatOpts?gFormatOpts.tableFooterCellFormatMethod:null;cellLabel=fcFormatMethod?fcFormatMethod(footerFormatParams,...footerFormatter.slice(1)):'';}else{cellLabel=footerFormatter(footerFormatParams);}if(formatData){formatData[colid]={value:itemValue,label:cellLabel};}}return cellLabel;},updateFooterCellLabel(row,fieldOrColumn){const column=handleFieldOrColumn($xeTable,fieldOrColumn);if(!column){return null;}const{footerTableData}=reactData;const{footerFullDataRowData}=internalData;const colid=column.id;const $rowIndex=footerTableData.indexOf(row);const rowRest=footerFullDataRowData[$rowIndex];if(rowRest){const formatData=rowRest.formatData;if(formatData){delete formatData[colid];}}return $xeTable.getFooterCellLabel(row,column);},clearFooterFormatterCache(isUpdate){const{tableData,tableColumn}=reactData;const{footerFullDataRowData}=internalData;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(footerFullDataRowData,rowRest=>{if(rowRest.formatData){rowRest.formatData=undefined;}});if(isUpdate){tableData.forEach(row=>{tableColumn.forEach(column=>{$xeTable.getFooterCellLabel(row,column);});});}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},/**
20621
20618
  * 检查是否为临时行数据
20622
20619
  */isInsertByRow(row){const rowid=getRowid($xeTable,row);return!!reactData.insertRowFlag&&!!internalData.insertRowMaps[rowid];},isRemoveByRow(row){const rowid=getRowid($xeTable,row);return!!reactData.removeRowFlag&&!!internalData.removeRowMaps[rowid];},/**
@@ -20832,7 +20829,7 @@ internalData._sToTime=setTimeout(()=>{internalData._sToTime=undefined;if(scrollY
20832
20829
  * 手动清除滚动相关信息,还原到初始状态
20833
20830
  */clearScroll(){const{elemStore,scrollXStore,scrollYStore}=internalData;const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const xHandleEl=refScrollXHandleElem.value;const yHandleEl=refScrollYHandleElem.value;internalData.intoRunScroll=true;setScrollLeft(xHandleEl,0);setScrollLeft(bodyScrollElem,0);setScrollLeft(headerScrollElem,0);setScrollLeft(footerScrollElem,0);setScrollTop(yHandleEl,0);setScrollTop(bodyScrollElem,0);setScrollTop(leftScrollElem,0);setScrollTop(rightScrollElem,0);scrollXStore.startIndex=0;scrollXStore.visibleStartIndex=0;scrollXStore.endIndex=scrollXStore.visibleSize;scrollXStore.visibleEndIndex=scrollXStore.visibleSize;scrollYStore.startIndex=0;scrollYStore.visibleStartIndex=0;scrollYStore.endIndex=scrollYStore.visibleSize;scrollYStore.visibleEndIndex=scrollYStore.visibleSize;return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(()=>{internalData.lastScrollLeft=0;internalData.lastScrollTop=0;internalData.intoRunScroll=false;});},/**
20834
20831
  * 更新表尾合计
20835
- */updateFooter(){const{showFooter,footerData,footerMethod}=props;const{visibleColumn,afterFullData}=internalData;let footData=[];if(showFooter&&footerData&&footerData.length){footData=footerData.slice(0);}else if(showFooter&&footerMethod){footData=visibleColumn.length?footerMethod({columns:visibleColumn,data:afterFullData,$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt}):[];}reactData.footerTableData=footData;$xeTable.handleUpdateFooterMerge();$xeTable.dispatchEvent('footer-data-change',{visibleColumn:internalData.visibleColumn,footData},null);return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},/**
20832
+ */updateFooter(){const{showFooter,footerData,footerMethod}=props;const{visibleColumn,afterFullData}=internalData;let footData=[];if(showFooter&&footerData&&footerData.length){footData=footerData.slice(0);}else if(showFooter&&footerMethod){footData=visibleColumn.length?footerMethod({columns:visibleColumn,data:afterFullData,$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt}):[];}reactData.footerTableData=footData;$xeTable.clearFooterFormatterCache();$xeTable.handleUpdateFooterMerge();$xeTable.dispatchEvent('footer-data-change',{visibleColumn:internalData.visibleColumn,footData},null);return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();},/**
20836
20833
  * 更新列状态 updateStatus({ row, column }, cellValue)
20837
20834
  * 如果组件值 v-model 发生 change 时,调用改函数用于更新某一列编辑状态
20838
20835
  * 如果单元格配置了校验规则,则会进行校验