vxe-table 4.11.15 → 4.11.17

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 (66) hide show
  1. package/es/grid/src/grid.js +16 -31
  2. package/es/style.css +1 -1
  3. package/es/table/module/custom/panel.js +19 -21
  4. package/es/table/module/edit/hook.js +7 -7
  5. package/es/table/module/export/export-panel.js +17 -19
  6. package/es/table/module/export/hook.js +5 -11
  7. package/es/table/module/export/import-panel.js +11 -13
  8. package/es/table/module/validator/hook.js +1 -3
  9. package/es/table/render/index.js +2 -4
  10. package/es/table/src/body.js +2 -2
  11. package/es/table/src/columnInfo.js +26 -28
  12. package/es/table/src/table.js +112 -78
  13. package/es/toolbar/src/toolbar.js +16 -24
  14. package/es/ui/index.js +1 -1
  15. package/es/ui/src/log.js +1 -1
  16. package/lib/grid/src/grid.js +16 -33
  17. package/lib/grid/src/grid.min.js +1 -1
  18. package/lib/index.umd.js +253 -247
  19. package/lib/index.umd.min.js +1 -1
  20. package/lib/style.css +1 -1
  21. package/lib/table/module/custom/panel.js +21 -23
  22. package/lib/table/module/custom/panel.min.js +1 -1
  23. package/lib/table/module/edit/hook.js +7 -7
  24. package/lib/table/module/edit/hook.min.js +1 -1
  25. package/lib/table/module/export/export-panel.js +17 -19
  26. package/lib/table/module/export/export-panel.min.js +1 -1
  27. package/lib/table/module/export/hook.js +5 -11
  28. package/lib/table/module/export/hook.min.js +1 -1
  29. package/lib/table/module/export/import-panel.js +11 -13
  30. package/lib/table/module/export/import-panel.min.js +1 -1
  31. package/lib/table/module/validator/hook.js +1 -3
  32. package/lib/table/module/validator/hook.min.js +1 -1
  33. package/lib/table/render/index.js +2 -4
  34. package/lib/table/render/index.min.js +1 -1
  35. package/lib/table/src/body.js +2 -1
  36. package/lib/table/src/body.min.js +1 -1
  37. package/lib/table/src/columnInfo.js +30 -32
  38. package/lib/table/src/columnInfo.min.js +1 -1
  39. package/lib/table/src/table.js +119 -75
  40. package/lib/table/src/table.min.js +1 -1
  41. package/lib/toolbar/src/toolbar.js +16 -24
  42. package/lib/toolbar/src/toolbar.min.js +1 -1
  43. package/lib/ui/index.js +1 -1
  44. package/lib/ui/index.min.js +1 -1
  45. package/lib/ui/src/log.js +1 -1
  46. package/lib/ui/src/log.min.js +1 -1
  47. package/package.json +2 -2
  48. package/packages/grid/src/grid.ts +17 -31
  49. package/packages/table/module/custom/panel.ts +19 -21
  50. package/packages/table/module/edit/hook.ts +7 -7
  51. package/packages/table/module/export/export-panel.ts +17 -19
  52. package/packages/table/module/export/hook.ts +5 -11
  53. package/packages/table/module/export/import-panel.ts +11 -13
  54. package/packages/table/module/keyboard/hook.ts +2 -2
  55. package/packages/table/module/validator/hook.ts +1 -3
  56. package/packages/table/render/index.ts +2 -4
  57. package/packages/table/src/body.ts +2 -2
  58. package/packages/table/src/columnInfo.ts +26 -28
  59. package/packages/table/src/table.ts +111 -76
  60. package/packages/toolbar/src/toolbar.ts +16 -24
  61. /package/es/{iconfont.1740723830079.ttf → iconfont.1741140593243.ttf} +0 -0
  62. /package/es/{iconfont.1740723830079.woff → iconfont.1741140593243.woff} +0 -0
  63. /package/es/{iconfont.1740723830079.woff2 → iconfont.1741140593243.woff2} +0 -0
  64. /package/lib/{iconfont.1740723830079.ttf → iconfont.1741140593243.ttf} +0 -0
  65. /package/lib/{iconfont.1740723830079.woff → iconfont.1741140593243.woff} +0 -0
  66. /package/lib/{iconfont.1740723830079.woff2 → iconfont.1741140593243.woff2} +0 -0
@@ -1415,14 +1415,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
1415
1415
  if (expandColumn && expandOpts.mode !== 'fixed' && mouseOpts.area) {
1416
1416
  (0, _log.errLog)('vxe.error.errConflicts', ['mouse-config.area', 'column.type=expand']);
1417
1417
  }
1418
- if (process.env.NODE_ENV === 'development') {
1419
- if (htmlColumn) {
1420
- if (!columnOpts.useKey) {
1421
- (0, _log.errLog)('vxe.error.reqProp', ['column-config.useKey & column.type=html']);
1422
- }
1423
- if (!rowOpts.useKey) {
1424
- (0, _log.errLog)('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
1425
- }
1418
+ if (htmlColumn) {
1419
+ if (!columnOpts.useKey) {
1420
+ (0, _log.errLog)('vxe.error.reqProp', ['column-config.useKey & column.type=html']);
1421
+ }
1422
+ if (!rowOpts.useKey) {
1423
+ (0, _log.errLog)('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
1426
1424
  }
1427
1425
  }
1428
1426
  reactData.isGroup = isGroup;
@@ -3095,28 +3093,26 @@ var _default = exports.default = (0, _vue.defineComponent)({
3095
3093
  if (treeConfig) {
3096
3094
  if (transform) {
3097
3095
  // 树结构自动转换
3098
- if (process.env.NODE_ENV === 'development') {
3099
- if (!treeOpts.rowField) {
3100
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.rowField']);
3101
- }
3102
- if (!treeOpts.parentField) {
3103
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.parentField']);
3104
- }
3105
- if (!childrenField) {
3106
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.childrenField']);
3107
- }
3108
- if (!treeOpts.mapChildrenField) {
3109
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.mapChildrenField']);
3110
- }
3111
- if (childrenField === treeOpts.mapChildrenField) {
3112
- (0, _log.errLog)('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
3113
- }
3114
- // fullData.forEach(row => {
3115
- // if (row[treeOpts.children] && row[treeOpts.children].length) {
3116
- // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
3117
- // }
3118
- // })
3096
+ if (!treeOpts.rowField) {
3097
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.rowField']);
3098
+ }
3099
+ if (!treeOpts.parentField) {
3100
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.parentField']);
3119
3101
  }
3102
+ if (!childrenField) {
3103
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.childrenField']);
3104
+ }
3105
+ if (!treeOpts.mapChildrenField) {
3106
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.mapChildrenField']);
3107
+ }
3108
+ if (childrenField === treeOpts.mapChildrenField) {
3109
+ (0, _log.errLog)('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
3110
+ }
3111
+ // fullData.forEach(row => {
3112
+ // if (row[treeOpts.children] && row[treeOpts.children].length) {
3113
+ // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
3114
+ // }
3115
+ // })
3120
3116
  treeData = _xeUtils.default.toArrayTree(fullData, {
3121
3117
  key: treeOpts.rowField,
3122
3118
  parentKey: treeOpts.parentField,
@@ -3180,16 +3176,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
3180
3176
  // }
3181
3177
  // }
3182
3178
  // }
3183
- if (process.env.NODE_ENV === 'development') {
3184
- if (!(props.height || props.maxHeight)) {
3185
- (0, _log.errLog)('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
3186
- }
3187
- // if (!props.showOverflow) {
3188
- // warnLog('vxe.error.reqProp', ['table.show-overflow'])
3189
- // }
3190
- if (props.spanMethod) {
3191
- (0, _log.warnLog)('vxe.error.scrollErrProp', ['table.span-method']);
3192
- }
3179
+ if (!(props.height || props.maxHeight)) {
3180
+ (0, _log.errLog)('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
3181
+ }
3182
+ // if (!props.showOverflow) {
3183
+ // warnLog('vxe.error.reqProp', ['table.show-overflow'])
3184
+ // }
3185
+ if (props.spanMethod) {
3186
+ (0, _log.warnLog)('vxe.error.scrollErrProp', ['table.span-method']);
3193
3187
  }
3194
3188
  }
3195
3189
  handleReserveStatus();
@@ -4310,12 +4304,20 @@ var _default = exports.default = (0, _vue.defineComponent)({
4310
4304
  */
4311
4305
  revertData(rows, field) {
4312
4306
  const {
4313
- keepSource
4307
+ keepSource,
4308
+ treeConfig
4314
4309
  } = props;
4315
4310
  const {
4311
+ fullAllDataRowIdData,
4316
4312
  tableSourceData,
4317
- sourceDataRowIdData
4313
+ sourceDataRowIdData,
4314
+ tableFullData,
4315
+ afterFullData
4318
4316
  } = internalData;
4317
+ const treeOpts = computeTreeOpts.value;
4318
+ const {
4319
+ transform
4320
+ } = treeOpts;
4319
4321
  if (!keepSource) {
4320
4322
  if (process.env.NODE_ENV === 'development') {
4321
4323
  (0, _log.warnLog)('vxe.error.reqProp', ['keep-source']);
@@ -4330,9 +4332,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
4330
4332
  } else {
4331
4333
  targetRows = _xeUtils.default.toArray($xeTable.getUpdateRecords());
4332
4334
  }
4335
+ let reDelFlag = false;
4333
4336
  if (targetRows.length) {
4334
4337
  targetRows.forEach(row => {
4335
- if (!tableMethods.isInsertByRow(row)) {
4338
+ if (!$xeTable.isInsertByRow(row)) {
4336
4339
  const rowid = (0, _util.getRowid)($xeTable, row);
4337
4340
  const oRow = sourceDataRowIdData[rowid];
4338
4341
  if (oRow && row) {
@@ -4341,14 +4344,38 @@ var _default = exports.default = (0, _vue.defineComponent)({
4341
4344
  } else {
4342
4345
  _xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
4343
4346
  }
4347
+ if ($xeTable.isRemoveByRow(row)) {
4348
+ const rowRest = fullAllDataRowIdData[rowid];
4349
+ if (rowRest) {
4350
+ const reRow = rowRest.row;
4351
+ tableFullData.unshift(reRow);
4352
+ afterFullData.unshift(reRow);
4353
+ reDelFlag = true;
4354
+ }
4355
+ }
4344
4356
  }
4345
4357
  }
4346
4358
  });
4347
4359
  }
4348
4360
  if (rows) {
4349
- return (0, _vue.nextTick)();
4361
+ if (reDelFlag) {
4362
+ $xeTable.updateFooter();
4363
+ $xeTable.cacheRowMap(false);
4364
+ $xeTable.handleTableData(treeConfig && transform);
4365
+ if (!(treeConfig && transform)) {
4366
+ $xeTable.updateAfterDataIndex();
4367
+ }
4368
+ $xeTable.checkSelectionStatus();
4369
+ if (reactData.scrollYLoad) {
4370
+ $xeTable.updateScrollYSpace();
4371
+ }
4372
+ }
4373
+ return (0, _vue.nextTick)().then(() => {
4374
+ $xeTable.updateCellAreas();
4375
+ return $xeTable.recalculate();
4376
+ });
4350
4377
  }
4351
- return tableMethods.reloadData(tableSourceData);
4378
+ return $xeTable.reloadData(tableSourceData);
4352
4379
  },
4353
4380
  /**
4354
4381
  * 清空单元格内容
@@ -4481,6 +4508,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
4481
4508
  const rowid = (0, _util.getRowid)($xeTable, row);
4482
4509
  return !!editStore.insertMaps[rowid];
4483
4510
  },
4511
+ isRemoveByRow(row) {
4512
+ const {
4513
+ editStore
4514
+ } = reactData;
4515
+ const rowid = (0, _util.getRowid)($xeTable, row);
4516
+ return !!editStore.removeMaps[rowid];
4517
+ },
4484
4518
  /**
4485
4519
  * 删除所有新增的临时数据
4486
4520
  * @returns
@@ -7654,18 +7688,21 @@ var _default = exports.default = (0, _vue.defineComponent)({
7654
7688
  const {
7655
7689
  treeConfig
7656
7690
  } = props;
7657
- const treeOpts = computeTreeOpts.value;
7691
+ const {
7692
+ treeExpandedMaps
7693
+ } = reactData;
7658
7694
  const {
7659
7695
  fullAllDataRowIdData,
7660
7696
  tableFullData,
7661
7697
  tableFullTreeData
7662
7698
  } = internalData;
7699
+ const treeOpts = computeTreeOpts.value;
7663
7700
  const childrenField = treeOpts.children || treeOpts.childrenField;
7664
7701
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
7665
7702
  const rowkey = (0, _util.getRowkey)($xeTable);
7666
- const isLazy = treeConfig && treeOpts.lazy;
7667
- const fullAllDataRowIdMaps = {};
7703
+ const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
7668
7704
  const fullDataRowIdMaps = {};
7705
+ const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
7669
7706
  const handleRow = (row, index, items, path, parentRow, nodes) => {
7670
7707
  let rowid = (0, _util.getRowid)($xeTable, row);
7671
7708
  const seq = treeConfig && path ? (0, _util.toTreePathSeq)(path) : index + 1;
@@ -7674,8 +7711,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
7674
7711
  rowid = (0, _util.getRowUniqueId)();
7675
7712
  _xeUtils.default.set(row, rowkey, rowid);
7676
7713
  }
7677
- if (isLazy && row[hasChildField] && _xeUtils.default.isUndefined(row[childrenField])) {
7678
- row[childrenField] = null;
7714
+ if (treeConfig && treeOpts.lazy) {
7715
+ const treeExpRest = treeExpandedMaps[rowid];
7716
+ if (row[hasChildField] && _xeUtils.default.isUndefined(row[childrenField])) {
7717
+ row[childrenField] = null;
7718
+ }
7719
+ if (treeExpRest) {
7720
+ if (!row[childrenField] || !row[childrenField].length) {
7721
+ delete treeTempExpandedMaps[rowid];
7722
+ }
7723
+ }
7679
7724
  }
7680
7725
  let rowRest = fullAllDataRowIdData[rowid];
7681
7726
  if (!rowRest) {
@@ -7696,6 +7741,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
7696
7741
  expandHeight: 0
7697
7742
  };
7698
7743
  }
7744
+ rowRest.treeLoaded = false;
7745
+ rowRest.expandLoaded = false;
7699
7746
  rowRest.row = row;
7700
7747
  rowRest.items = items;
7701
7748
  rowRest.parent = parentRow;
@@ -7704,8 +7751,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
7704
7751
  fullDataRowIdMaps[rowid] = rowRest;
7705
7752
  fullAllDataRowIdMaps[rowid] = rowRest;
7706
7753
  };
7707
- internalData.fullDataRowIdData = fullDataRowIdMaps;
7708
- internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
7709
7754
  if (treeConfig) {
7710
7755
  _xeUtils.default.eachTree(tableFullTreeData, handleRow, {
7711
7756
  children: childrenField
@@ -7713,6 +7758,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
7713
7758
  } else {
7714
7759
  tableFullData.forEach(handleRow);
7715
7760
  }
7761
+ internalData.fullDataRowIdData = fullDataRowIdMaps;
7762
+ internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
7763
+ reactData.treeExpandedMaps = treeTempExpandedMaps;
7716
7764
  },
7717
7765
  cacheSourceMap(fullData) {
7718
7766
  const {
@@ -10690,18 +10738,16 @@ var _default = exports.default = (0, _vue.defineComponent)({
10690
10738
  }
10691
10739
  };
10692
10740
  // 检测对应模块是否安装
10693
- if (process.env.NODE_ENV === 'development') {
10694
- 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
10695
- $xeTable[name] = function () {
10696
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableExportModule']);
10697
- };
10698
- });
10699
- 'clearValidate,fullValidate,validate'.split(',').forEach(name => {
10700
- $xeTable[name] = function () {
10701
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableValidatorModule']);
10702
- };
10703
- });
10704
- }
10741
+ 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
10742
+ $xeTable[name] = function () {
10743
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableExportModule']);
10744
+ };
10745
+ });
10746
+ 'clearValidate,fullValidate,validate'.split(',').forEach(name => {
10747
+ $xeTable[name] = function () {
10748
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableValidatorModule']);
10749
+ };
10750
+ });
10705
10751
  Object.assign($xeTable, tableMethods, tablePrivateMethods);
10706
10752
  /**
10707
10753
  * 渲染浮固定列
@@ -11680,20 +11726,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
11680
11726
  $table: $xeTable
11681
11727
  });
11682
11728
  });
11683
- if (process.env.NODE_ENV === 'development') {
11684
- (0, _vue.nextTick)(() => {
11685
- if (props.loading) {
11686
- if (!VxeUILoadingComponent && !slots.loading) {
11687
- (0, _log.errLog)('vxe.error.reqComp', ['vxe-loading']);
11688
- }
11729
+ (0, _vue.nextTick)(() => {
11730
+ if (props.loading) {
11731
+ if (!VxeUILoadingComponent && !slots.loading) {
11732
+ (0, _log.errLog)('vxe.error.reqComp', ['vxe-loading']);
11689
11733
  }
11690
- if (props.showOverflow === true || props.showOverflow === 'tooltip' || props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip' || props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip' || props.tooltipConfig || props.editRules) {
11691
- if (!VxeUITooltipComponent) {
11692
- (0, _log.errLog)('vxe.error.reqComp', ['vxe-tooltip']);
11693
- }
11734
+ }
11735
+ if (props.showOverflow === true || props.showOverflow === 'tooltip' || props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip' || props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip' || props.tooltipConfig || props.editRules) {
11736
+ if (!VxeUITooltipComponent) {
11737
+ (0, _log.errLog)('vxe.error.reqComp', ['vxe-tooltip']);
11694
11738
  }
11695
- });
11696
- }
11739
+ }
11740
+ });
11697
11741
  (0, _vue.provide)('$xeColgroup', null);
11698
11742
  (0, _vue.provide)('$xeTable', $xeTable);
11699
11743
  $xeTable.renderVN = renderVN;