vxe-table 3.13.17 → 3.13.19

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 (69) hide show
  1. package/es/grid/src/grid.js +42 -72
  2. package/es/style.css +1 -1
  3. package/es/table/module/custom/panel.js +25 -27
  4. package/es/table/module/edit/mixin.js +3 -5
  5. package/es/table/module/export/export-panel.js +22 -24
  6. package/es/table/module/export/import-panel.js +14 -16
  7. package/es/table/module/export/mixin.js +15 -31
  8. package/es/table/module/validator/mixin.js +1 -3
  9. package/es/table/render/index.js +90 -61
  10. package/es/table/src/columnInfo.js +30 -32
  11. package/es/table/src/methods.js +141 -80
  12. package/es/table/src/table.js +16 -18
  13. package/es/table/src/util.js +5 -7
  14. package/es/toolbar/src/toolbar.js +18 -26
  15. package/es/ui/index.js +1 -1
  16. package/es/ui/src/log.js +1 -1
  17. package/lib/grid/src/grid.js +42 -72
  18. package/lib/grid/src/grid.min.js +1 -1
  19. package/lib/index.umd.js +447 -411
  20. package/lib/index.umd.min.js +1 -1
  21. package/lib/style.css +1 -1
  22. package/lib/table/module/custom/panel.js +31 -33
  23. package/lib/table/module/custom/panel.min.js +1 -1
  24. package/lib/table/module/edit/mixin.js +3 -5
  25. package/lib/table/module/edit/mixin.min.js +1 -1
  26. package/lib/table/module/export/export-panel.js +22 -24
  27. package/lib/table/module/export/export-panel.min.js +1 -1
  28. package/lib/table/module/export/import-panel.js +14 -16
  29. package/lib/table/module/export/import-panel.min.js +1 -1
  30. package/lib/table/module/export/mixin.js +15 -31
  31. package/lib/table/module/export/mixin.min.js +1 -1
  32. package/lib/table/module/validator/mixin.js +1 -3
  33. package/lib/table/module/validator/mixin.min.js +1 -1
  34. package/lib/table/render/index.js +98 -66
  35. package/lib/table/render/index.min.js +1 -1
  36. package/lib/table/src/columnInfo.js +32 -34
  37. package/lib/table/src/columnInfo.min.js +1 -1
  38. package/lib/table/src/methods.js +148 -78
  39. package/lib/table/src/methods.min.js +1 -1
  40. package/lib/table/src/table.js +13 -15
  41. package/lib/table/src/table.min.js +1 -1
  42. package/lib/table/src/util.js +4 -6
  43. package/lib/table/src/util.min.js +1 -1
  44. package/lib/toolbar/src/toolbar.js +18 -26
  45. package/lib/toolbar/src/toolbar.min.js +1 -1
  46. package/lib/ui/index.js +1 -1
  47. package/lib/ui/index.min.js +1 -1
  48. package/lib/ui/src/log.js +1 -1
  49. package/lib/ui/src/log.min.js +1 -1
  50. package/package.json +2 -2
  51. package/packages/grid/src/grid.ts +42 -72
  52. package/packages/table/module/custom/panel.ts +25 -27
  53. package/packages/table/module/edit/mixin.ts +3 -5
  54. package/packages/table/module/export/export-panel.ts +22 -24
  55. package/packages/table/module/export/import-panel.ts +14 -16
  56. package/packages/table/module/export/mixin.ts +15 -31
  57. package/packages/table/module/validator/mixin.ts +1 -3
  58. package/packages/table/render/index.ts +89 -59
  59. package/packages/table/src/columnInfo.ts +30 -32
  60. package/packages/table/src/methods.ts +143 -78
  61. package/packages/table/src/table.ts +13 -15
  62. package/packages/table/src/util.ts +4 -6
  63. package/packages/toolbar/src/toolbar.ts +18 -26
  64. /package/es/{iconfont.1741051533862.ttf → iconfont.1741224103306.ttf} +0 -0
  65. /package/es/{iconfont.1741051533862.woff → iconfont.1741224103306.woff} +0 -0
  66. /package/es/{iconfont.1741051533862.woff2 → iconfont.1741224103306.woff2} +0 -0
  67. /package/lib/{iconfont.1741051533862.ttf → iconfont.1741224103306.ttf} +0 -0
  68. /package/lib/{iconfont.1741051533862.woff → iconfont.1741224103306.woff} +0 -0
  69. /package/lib/{iconfont.1741051533862.woff2 → iconfont.1741224103306.woff2} +0 -0
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,formats}=_ui.VxeUI;class ColumnInfo{constructor(e,r,{renderHeader:t,renderCell:o,renderFooter:l,renderData:i}={}){var d,n=e.$xegrid,s=n?n.proxyOpts:null,a=r.formatter,f=!_xeUtils.default.isBoolean(r.visible)||r.visible,u=e;"development"===process.env.NODE_ENV&&(d=["seq","checkbox","radio","expand","html"],r.type&&-1===d.indexOf(r.type)&&(0,_log.warnLog)("vxe.error.errProp",["type="+r.type,d.join(", ")]),(_xeUtils.default.isBoolean(r.cellRender)||r.cellRender&&!_xeUtils.default.isObject(r.cellRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.cell-render="+r.cellRender,"column.cell-render={}"]),(_xeUtils.default.isBoolean(r.editRender)||r.editRender&&!_xeUtils.default.isObject(r.editRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.edit-render="+r.editRender,"column.edit-render={}"]),"expand"===r.type&&(d=u.treeConfig,d)&&(e.treeOpts.showLine||e.treeOpts.line)&&(0,_log.errLog)("vxe.error.errConflicts",["tree-config.line","column.type=expand"]),r.remoteSort&&(0,_log.warnLog)("vxe.error.delProp",["column.remote-sort","sort-config.remote"]),r.sortMethod&&(0,_log.warnLog)("vxe.error.delProp",["column.sort-method","sort-config.sortMethod"]),a)&&(_xeUtils.default.isString(a)?(u=formats.get(a)||_xeUtils.default[a])&&_xeUtils.default.isFunction(u.tableCellFormatMethod||u.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[a]):!_xeUtils.default.isArray(a)||(d=formats.get(a[0])||_xeUtils.default[a[0]])&&_xeUtils.default.isFunction(d.tableCellFormatMethod||d.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[a[0]])),Object.assign(this,{type:r.type,property:r.field,field:r.field,title:r.title,width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth,resizable:r.resizable,fixed:r.fixed,align:r.align,headerAlign:r.headerAlign,footerAlign:r.footerAlign,showOverflow:r.showOverflow,showHeaderOverflow:r.showHeaderOverflow,showFooterOverflow:r.showFooterOverflow,className:r.className,headerClassName:r.headerClassName,footerClassName:r.footerClassName,formatter:a,footerFormatter:r.footerFormatter,padding:r.padding,verticalAlign:r.verticalAlign,sortable:r.sortable,sortBy:r.sortBy,sortType:r.sortType,sortMethod:r.sortMethod,remoteSort:r.remoteSort,filters:(0,_util.toFilters)(r.filters),filterMultiple:!_xeUtils.default.isBoolean(r.filterMultiple)||r.filterMultiple,filterMethod:r.filterMethod,filterResetMethod:r.filterResetMethod,filterRecoverMethod:r.filterRecoverMethod,filterRender:r.filterRender,treeNode:r.treeNode,dragSort:r.dragSort,rowResize:r.rowResize,cellType:r.cellType,cellRender:r.cellRender,editRender:r.editRender,contentRender:r.contentRender,headerExportMethod:r.headerExportMethod,exportMethod:r.exportMethod,footerExportMethod:r.footerExportMethod,titleHelp:r.titleHelp,titlePrefix:r.titlePrefix,titleSuffix:r.titleSuffix,params:r.params,id:r.colId||_xeUtils.default.uniqueId("col_"),parentId:null,visible:f,halfVisible:!1,defaultVisible:f,defaultFixed:r.fixed,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,sortNumber:0,renderSortNumber:0,renderFixed:"",renderVisible:!1,renderWidth:0,renderHeight:0,renderResizeWidth:0,renderAutoWidth:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:t||r.renderHeader,renderCell:o||r.renderCell,renderFooter:l||r.renderFooter,renderData:i,slots:r.slots}),s&&s.beforeColumn&&s.beforeColumn({$grid:n,column:this})}getTitle(){return(0,_utils.getFuncText)(this.title||("seq"===this.type?getI18n("vxe.table.seqTitle"):""))}getKey(){var e=this.type;return this.field||(e?"type="+e:null)}update(e,r){"filters"!==e&&("field"===e&&(this.property=r),this[e]=r)}}exports.ColumnInfo=ColumnInfo;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,formats}=_ui.VxeUI;class ColumnInfo{constructor(e,r,{renderHeader:t,renderCell:o,renderFooter:l,renderData:i}={}){var d=e.$xegrid,n=d?d.proxyOpts:null,s=r.formatter,a=!_xeUtils.default.isBoolean(r.visible)||r.visible,f=e,u=["seq","checkbox","radio","expand","html"];r.type&&-1===u.indexOf(r.type)&&(0,_log.warnLog)("vxe.error.errProp",["type="+r.type,u.join(", ")]),(_xeUtils.default.isBoolean(r.cellRender)||r.cellRender&&!_xeUtils.default.isObject(r.cellRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.cell-render="+r.cellRender,"column.cell-render={}"]),(_xeUtils.default.isBoolean(r.editRender)||r.editRender&&!_xeUtils.default.isObject(r.editRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.edit-render="+r.editRender,"column.edit-render={}"]),"expand"===r.type&&(u=f.treeConfig,u)&&(e.treeOpts.showLine||e.treeOpts.line)&&(0,_log.errLog)("vxe.error.errConflicts",["tree-config.line","column.type=expand"]),r.remoteSort&&(0,_log.warnLog)("vxe.error.delProp",["column.remote-sort","sort-config.remote"]),r.sortMethod&&(0,_log.warnLog)("vxe.error.delProp",["column.sort-method","sort-config.sortMethod"]),s&&(_xeUtils.default.isString(s)?(f=formats.get(s)||_xeUtils.default[s])&&_xeUtils.default.isFunction(f.tableCellFormatMethod||f.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[s]):!_xeUtils.default.isArray(s)||(u=formats.get(s[0])||_xeUtils.default[s[0]])&&_xeUtils.default.isFunction(u.tableCellFormatMethod||u.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[s[0]])),Object.assign(this,{type:r.type,property:r.field,field:r.field,title:r.title,width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth,resizable:r.resizable,fixed:r.fixed,align:r.align,headerAlign:r.headerAlign,footerAlign:r.footerAlign,showOverflow:r.showOverflow,showHeaderOverflow:r.showHeaderOverflow,showFooterOverflow:r.showFooterOverflow,className:r.className,headerClassName:r.headerClassName,footerClassName:r.footerClassName,formatter:s,footerFormatter:r.footerFormatter,padding:r.padding,verticalAlign:r.verticalAlign,sortable:r.sortable,sortBy:r.sortBy,sortType:r.sortType,sortMethod:r.sortMethod,remoteSort:r.remoteSort,filters:(0,_util.toFilters)(r.filters),filterMultiple:!_xeUtils.default.isBoolean(r.filterMultiple)||r.filterMultiple,filterMethod:r.filterMethod,filterResetMethod:r.filterResetMethod,filterRecoverMethod:r.filterRecoverMethod,filterRender:r.filterRender,treeNode:r.treeNode,dragSort:r.dragSort,rowResize:r.rowResize,cellType:r.cellType,cellRender:r.cellRender,editRender:r.editRender,contentRender:r.contentRender,headerExportMethod:r.headerExportMethod,exportMethod:r.exportMethod,footerExportMethod:r.footerExportMethod,titleHelp:r.titleHelp,titlePrefix:r.titlePrefix,titleSuffix:r.titleSuffix,params:r.params,id:r.colId||_xeUtils.default.uniqueId("col_"),parentId:null,visible:a,halfVisible:!1,defaultVisible:a,defaultFixed:r.fixed,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,sortNumber:0,renderSortNumber:0,renderFixed:"",renderVisible:!1,renderWidth:0,renderHeight:0,renderResizeWidth:0,renderAutoWidth:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:t||r.renderHeader,renderCell:o||r.renderCell,renderFooter:l||r.renderFooter,renderData:i,slots:r.slots}),n&&n.beforeColumn&&n.beforeColumn({$grid:d,column:this})}getTitle(){return(0,_utils.getFuncText)(this.title||("seq"===this.type?getI18n("vxe.table.seqTitle"):""))}getKey(){var e=this.type;return this.field||(e?"type="+e:null)}update(e,r){"filters"!==e&&("field"===e&&(this.property=r),this[e]=r)}}exports.ColumnInfo=ColumnInfo;
@@ -2560,14 +2560,27 @@ const Methods = {
2560
2560
  * 获取父容器的高度
2561
2561
  */
2562
2562
  getParentHeight() {
2563
+ const $xeTable = this;
2564
+ const $xeGrid = $xeTable.$xeGrid;
2565
+ const props = $xeTable;
2563
2566
  const {
2564
- $el,
2565
- $xegrid,
2566
2567
  height
2567
- } = this;
2568
- const parentElem = $el.parentNode;
2569
- const parentPaddingSize = height === '100%' || height === 'auto' ? (0, _dom.getPaddingTopBottomSize)(parentElem) : 0;
2570
- return Math.floor($xegrid ? $xegrid.getParentHeight() : _xeUtils.default.toNumber(getComputedStyle(parentElem).height) - parentPaddingSize);
2568
+ } = props;
2569
+ const el = $xeTable.$refs.refElem;
2570
+ if (el) {
2571
+ const parentElem = el.parentNode;
2572
+ const parentPaddingSize = height === '100%' || height === 'auto' ? (0, _dom.getPaddingTopBottomSize)(parentElem) : 0;
2573
+ let parentWrapperHeight = 0;
2574
+ if (parentElem) {
2575
+ if ($xeGrid && (0, _dom.hasClass)(parentElem, 'vxe-grid--table-wrapper')) {
2576
+ parentWrapperHeight = $xeGrid.getParentHeight();
2577
+ } else {
2578
+ parentWrapperHeight = parentElem.clientHeight;
2579
+ }
2580
+ }
2581
+ return Math.floor(parentWrapperHeight - parentPaddingSize);
2582
+ }
2583
+ return 0;
2571
2584
  },
2572
2585
  /**
2573
2586
  * 获取需要排除的高度
@@ -2680,28 +2693,26 @@ const Methods = {
2680
2693
  if (treeConfig) {
2681
2694
  // 树结构自动转换
2682
2695
  if (treeOpts.transform) {
2683
- if (process.env.NODE_ENV === 'development') {
2684
- if (!treeOpts.rowField) {
2685
- (0, _log.errLog)('vxe.error.reqProp', ['table.tree-config.rowField']);
2686
- }
2687
- if (!treeOpts.parentField) {
2688
- (0, _log.errLog)('vxe.error.reqProp', ['table.tree-config.parentField']);
2689
- }
2690
- if (!childrenField) {
2691
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.childrenField']);
2692
- }
2693
- if (!treeOpts.mapChildrenField) {
2694
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.mapChildrenField']);
2695
- }
2696
- if (childrenField === treeOpts.mapChildrenField) {
2697
- (0, _log.errLog)('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
2698
- }
2699
- // fullData.forEach(row => {
2700
- // if (row[childrenField] && row[childrenField].length) {
2701
- // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${childrenField}`])
2702
- // }
2703
- // })
2696
+ if (!treeOpts.rowField) {
2697
+ (0, _log.errLog)('vxe.error.reqProp', ['table.tree-config.rowField']);
2698
+ }
2699
+ if (!treeOpts.parentField) {
2700
+ (0, _log.errLog)('vxe.error.reqProp', ['table.tree-config.parentField']);
2704
2701
  }
2702
+ if (!childrenField) {
2703
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.childrenField']);
2704
+ }
2705
+ if (!treeOpts.mapChildrenField) {
2706
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.mapChildrenField']);
2707
+ }
2708
+ if (childrenField === treeOpts.mapChildrenField) {
2709
+ (0, _log.errLog)('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
2710
+ }
2711
+ // fullData.forEach(row => {
2712
+ // if (row[childrenField] && row[childrenField].length) {
2713
+ // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${childrenField}`])
2714
+ // }
2715
+ // })
2705
2716
  treeData = _xeUtils.default.toArrayTree(fullData, {
2706
2717
  key: treeOpts.rowField,
2707
2718
  parentKey: treeOpts.parentField,
@@ -2765,16 +2776,14 @@ const Methods = {
2765
2776
  // }
2766
2777
  // }
2767
2778
  // }
2768
- if (process.env.NODE_ENV === 'development') {
2769
- if (!(this.height || this.maxHeight)) {
2770
- (0, _log.errLog)('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
2771
- }
2772
- // if (!this.showOverflow) {
2773
- // warnLog('vxe.error.reqProp', ['table.show-overflow'])
2774
- // }
2775
- if (this.spanMethod) {
2776
- (0, _log.warnLog)('vxe.error.scrollErrProp', ['table.span-method']);
2777
- }
2779
+ if (!(this.height || this.maxHeight)) {
2780
+ (0, _log.errLog)('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
2781
+ }
2782
+ // if (!this.showOverflow) {
2783
+ // warnLog('vxe.error.reqProp', ['table.show-overflow'])
2784
+ // }
2785
+ if (this.spanMethod) {
2786
+ (0, _log.errLog)('vxe.error.scrollErrProp', ['table.span-method']);
2778
2787
  }
2779
2788
  }
2780
2789
  handleReserveStatus($xeTable);
@@ -2918,22 +2927,26 @@ const Methods = {
2918
2927
  cacheRowMap() {
2919
2928
  const $xeTable = this;
2920
2929
  const props = $xeTable;
2930
+ const reactData = $xeTable;
2921
2931
  const internalData = $xeTable;
2922
2932
  const {
2923
2933
  treeConfig
2924
2934
  } = props;
2925
- const treeOpts = $xeTable.computeTreeOpts;
2935
+ const {
2936
+ treeExpandedMaps
2937
+ } = reactData;
2926
2938
  const {
2927
2939
  fullAllDataRowIdData,
2928
2940
  tableFullData,
2929
2941
  tableFullTreeData
2930
2942
  } = internalData;
2943
+ const treeOpts = $xeTable.computeTreeOpts;
2931
2944
  const childrenField = treeOpts.children || treeOpts.childrenField;
2932
2945
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
2933
2946
  const rowkey = (0, _util.getRowkey)($xeTable);
2934
- const isLazy = treeConfig && treeOpts.lazy;
2935
- const fullAllDataRowIdMaps = {};
2947
+ const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
2936
2948
  const fullDataRowIdMaps = {};
2949
+ const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
2937
2950
  const handleRow = (row, index, items, path, parentRow, nodes) => {
2938
2951
  let rowid = (0, _util.getRowid)($xeTable, row);
2939
2952
  const seq = treeConfig && path ? (0, _util.toTreePathSeq)(path) : index + 1;
@@ -2942,8 +2955,16 @@ const Methods = {
2942
2955
  rowid = (0, _util.getRowUniqueId)();
2943
2956
  _xeUtils.default.set(row, rowkey, rowid);
2944
2957
  }
2945
- if (isLazy && row[hasChildField] && _xeUtils.default.isUndefined(row[childrenField])) {
2946
- row[childrenField] = null;
2958
+ if (treeConfig && treeOpts.lazy) {
2959
+ const treeExpRest = treeExpandedMaps[rowid];
2960
+ if (row[hasChildField] && _xeUtils.default.isUndefined(row[childrenField])) {
2961
+ row[childrenField] = null;
2962
+ }
2963
+ if (treeExpRest) {
2964
+ if (!row[childrenField] || !row[childrenField].length) {
2965
+ delete treeTempExpandedMaps[rowid];
2966
+ }
2967
+ }
2947
2968
  }
2948
2969
  let rowRest = fullAllDataRowIdData[rowid];
2949
2970
  if (!rowRest) {
@@ -2964,6 +2985,8 @@ const Methods = {
2964
2985
  expandHeight: 0
2965
2986
  };
2966
2987
  }
2988
+ rowRest.treeLoaded = false;
2989
+ rowRest.expandLoaded = false;
2967
2990
  rowRest.row = row;
2968
2991
  rowRest.items = items;
2969
2992
  rowRest.parent = parentRow;
@@ -2972,8 +2995,6 @@ const Methods = {
2972
2995
  fullDataRowIdMaps[rowid] = rowRest;
2973
2996
  fullAllDataRowIdMaps[rowid] = rowRest;
2974
2997
  };
2975
- internalData.fullDataRowIdData = fullDataRowIdMaps;
2976
- internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
2977
2998
  if (treeConfig) {
2978
2999
  _xeUtils.default.eachTree(tableFullTreeData, handleRow, {
2979
3000
  children: childrenField
@@ -2981,6 +3002,9 @@ const Methods = {
2981
3002
  } else {
2982
3003
  tableFullData.forEach(handleRow);
2983
3004
  }
3005
+ internalData.fullDataRowIdData = fullDataRowIdMaps;
3006
+ internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
3007
+ reactData.treeExpandedMaps = treeTempExpandedMaps;
2984
3008
  },
2985
3009
  cacheSourceMap(fullData) {
2986
3010
  let {
@@ -3381,16 +3405,31 @@ const Methods = {
3381
3405
  * 如果还额外传了 field 则还原指定的单元格数据
3382
3406
  */
3383
3407
  revertData(rows, field) {
3408
+ const $xeTable = this;
3409
+ const props = $xeTable;
3410
+ const reactData = $xeTable;
3411
+ const internalData = $xeTable;
3384
3412
  const {
3385
3413
  keepSource,
3386
- tableSourceData,
3387
3414
  treeConfig
3388
- } = this;
3415
+ } = props;
3416
+ const {
3417
+ fullAllDataRowIdData,
3418
+ fullDataRowIdData,
3419
+ tableSourceData,
3420
+ sourceDataRowIdData,
3421
+ tableFullData,
3422
+ afterFullData
3423
+ } = internalData;
3424
+ const treeOpts = $xeTable.computeTreeOpts;
3425
+ const {
3426
+ transform
3427
+ } = treeOpts;
3389
3428
  if (!keepSource) {
3390
3429
  if (process.env.NODE_ENV === 'development') {
3391
- (0, _log.warnLog)('vxe.error.reqProp', ['keep-source']);
3430
+ (0, _log.errLog)('vxe.error.reqProp', ['keep-source']);
3392
3431
  }
3393
- return this.$nextTick();
3432
+ return $xeTable.$nextTick();
3394
3433
  }
3395
3434
  let targetRows = rows;
3396
3435
  if (rows) {
@@ -3398,30 +3437,52 @@ const Methods = {
3398
3437
  targetRows = [rows];
3399
3438
  }
3400
3439
  } else {
3401
- targetRows = _xeUtils.default.toArray(this.getUpdateRecords());
3440
+ targetRows = _xeUtils.default.toArray($xeTable.getUpdateRecords());
3402
3441
  }
3442
+ let reDelFlag = false;
3403
3443
  if (targetRows.length) {
3404
- targetRows.forEach(row => {
3405
- if (!this.isInsertByRow(row)) {
3406
- const rowIndex = this.getRowIndex(row);
3407
- if (treeConfig && rowIndex === -1) {
3408
- (0, _log.errLog)('vxe.error.noTree', ['revertData']);
3409
- }
3410
- const oRow = tableSourceData[rowIndex];
3411
- if (oRow && row) {
3412
- if (field) {
3413
- _xeUtils.default.set(row, field, _xeUtils.default.clone(_xeUtils.default.get(oRow, field), true));
3414
- } else {
3415
- _xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
3444
+ targetRows.forEach(item => {
3445
+ const rowid = (0, _util.getRowid)($xeTable, item);
3446
+ const rowRest = fullAllDataRowIdData[rowid];
3447
+ if (rowRest) {
3448
+ const row = rowRest.row;
3449
+ if (!$xeTable.isInsertByRow(row)) {
3450
+ const oRow = sourceDataRowIdData[rowid];
3451
+ if (oRow && row) {
3452
+ if (field) {
3453
+ _xeUtils.default.set(row, field, _xeUtils.default.clone(_xeUtils.default.get(oRow, field), true));
3454
+ } else {
3455
+ _xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
3456
+ }
3457
+ if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
3458
+ tableFullData.unshift(row);
3459
+ afterFullData.unshift(row);
3460
+ reDelFlag = true;
3461
+ }
3416
3462
  }
3417
3463
  }
3418
3464
  }
3419
3465
  });
3420
3466
  }
3421
3467
  if (rows) {
3422
- return this.$nextTick();
3468
+ if (reDelFlag) {
3469
+ $xeTable.updateFooter();
3470
+ $xeTable.cacheRowMap(false);
3471
+ $xeTable.handleTableData(treeConfig && transform);
3472
+ if (!(treeConfig && transform)) {
3473
+ $xeTable.updateAfterDataIndex();
3474
+ }
3475
+ $xeTable.checkSelectionStatus();
3476
+ if (reactData.scrollYLoad) {
3477
+ $xeTable.updateScrollYSpace();
3478
+ }
3479
+ }
3480
+ return $xeTable.$nextTick().then(() => {
3481
+ $xeTable.updateCellAreas();
3482
+ return $xeTable.recalculate();
3483
+ });
3423
3484
  }
3424
- return this.reloadData(tableSourceData);
3485
+ return $xeTable.reloadData(tableSourceData);
3425
3486
  },
3426
3487
  /**
3427
3488
  * 清空单元格内容
@@ -3551,12 +3612,23 @@ const Methods = {
3551
3612
  * @param {Row} row 行对象
3552
3613
  */
3553
3614
  isInsertByRow(row) {
3615
+ const $xeTable = this;
3616
+ const reactData = $xeTable;
3554
3617
  const {
3555
3618
  editStore
3556
- } = this;
3557
- const rowid = (0, _util.getRowid)(this, row);
3619
+ } = reactData;
3620
+ const rowid = (0, _util.getRowid)($xeTable, row);
3558
3621
  return !!editStore.insertMaps[rowid];
3559
3622
  },
3623
+ isRemoveByRow(row) {
3624
+ const $xeTable = this;
3625
+ const reactData = $xeTable;
3626
+ const {
3627
+ editStore
3628
+ } = reactData;
3629
+ const rowid = (0, _util.getRowid)($xeTable, row);
3630
+ return !!editStore.removeMaps[rowid];
3631
+ },
3560
3632
  /**
3561
3633
  * 删除所有新增的临时数据
3562
3634
  * @returns
@@ -10331,19 +10403,17 @@ const Methods = {
10331
10403
  const funcs = 'setFilter,openFilter,clearFilter,saveFilterPanel,resetFilterPanel,getCheckedFilters,updateFilterOptionStatus,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,getCopyCellAreas,clearCopyCellArea,setCellAreas,openFNR,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,insertNextAt,insertChild,insertChildAt,insertChildNextAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearEdit,clearActived,getEditRecord,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,fullValidateField,validateField,openExport,closeExport,openPrint,closePrint,getPrintHtml,exportData,openImport,closeImport,importData,saveFile,readFile,importByFile,print,openCustom,closeCustom,saveCustom,cancelCustom,resetCustom,toggleCustomAllCheckbox,setCustomAllCheckbox'.split(',');
10332
10404
  funcs.forEach(name => {
10333
10405
  Methods[name] = function (...args) {
10334
- if (process.env.NODE_ENV === 'development') {
10335
- if (!this[`_${name}`]) {
10336
- if ('openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').includes(name)) {
10337
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableExportModule']);
10338
- } else if ('fullValidate,validate'.split(',').includes(name)) {
10339
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableValidatorModule']);
10340
- } else if ('setFilter,openFilter,clearFilter,getCheckedFilters'.split(',').includes(name)) {
10341
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableFilterModule']);
10342
- } else if ('insert,insertAt,insertNextAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,getEditRecord,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell'.split(',').includes(name)) {
10343
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableEditModule']);
10344
- } else if ('openCustom'.split(',').includes(name)) {
10345
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableCustomModule']);
10346
- }
10406
+ if (!this[`_${name}`]) {
10407
+ if ('openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').includes(name)) {
10408
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableExportModule']);
10409
+ } else if ('fullValidate,validate'.split(',').includes(name)) {
10410
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableValidatorModule']);
10411
+ } else if ('setFilter,openFilter,clearFilter,getCheckedFilters'.split(',').includes(name)) {
10412
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableFilterModule']);
10413
+ } else if ('insert,insertAt,insertNextAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,getEditRecord,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell'.split(',').includes(name)) {
10414
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableEditModule']);
10415
+ } else if ('openCustom'.split(',').includes(name)) {
10416
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableCustomModule']);
10347
10417
  }
10348
10418
  }
10349
10419
  return this[`_${name}`] ? this[`_${name}`](...args) : null;