vxe-table 3.14.0-beta.0 → 3.14.0-beta.2

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 (83) hide show
  1. package/es/grid/src/grid.js +60 -75
  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 +1 -1
  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/keyboard/mixin.js +3 -2
  9. package/es/table/module/validator/mixin.js +1 -3
  10. package/es/table/render/index.js +2 -4
  11. package/es/table/src/body.js +2 -2
  12. package/es/table/src/column.js +2 -2
  13. package/es/table/src/columnInfo.js +30 -32
  14. package/es/table/src/group.js +2 -2
  15. package/es/table/src/methods.js +128 -97
  16. package/es/table/src/table.js +17 -19
  17. package/es/table/src/util.js +5 -7
  18. package/es/toolbar/src/toolbar.js +20 -28
  19. package/es/ui/index.js +1 -1
  20. package/es/ui/src/log.js +1 -1
  21. package/lib/grid/src/grid.js +61 -88
  22. package/lib/grid/src/grid.min.js +1 -1
  23. package/lib/index.umd.js +372 -380
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/style.css +1 -1
  26. package/lib/table/module/custom/panel.js +31 -33
  27. package/lib/table/module/custom/panel.min.js +1 -1
  28. package/lib/table/module/edit/mixin.js +1 -1
  29. package/lib/table/module/edit/mixin.min.js +1 -1
  30. package/lib/table/module/export/export-panel.js +22 -24
  31. package/lib/table/module/export/export-panel.min.js +1 -1
  32. package/lib/table/module/export/import-panel.js +14 -16
  33. package/lib/table/module/export/import-panel.min.js +1 -1
  34. package/lib/table/module/export/mixin.js +15 -31
  35. package/lib/table/module/export/mixin.min.js +1 -1
  36. package/lib/table/module/keyboard/mixin.js +3 -2
  37. package/lib/table/module/keyboard/mixin.min.js +1 -1
  38. package/lib/table/module/validator/mixin.js +1 -3
  39. package/lib/table/module/validator/mixin.min.js +1 -1
  40. package/lib/table/render/index.js +2 -4
  41. package/lib/table/render/index.min.js +1 -1
  42. package/lib/table/src/body.js +2 -1
  43. package/lib/table/src/body.min.js +1 -1
  44. package/lib/table/src/column.js +3 -2
  45. package/lib/table/src/columnInfo.js +32 -34
  46. package/lib/table/src/columnInfo.min.js +1 -1
  47. package/lib/table/src/group.js +3 -2
  48. package/lib/table/src/methods.js +138 -94
  49. package/lib/table/src/methods.min.js +1 -1
  50. package/lib/table/src/table.js +14 -16
  51. package/lib/table/src/table.min.js +1 -1
  52. package/lib/table/src/util.js +4 -6
  53. package/lib/table/src/util.min.js +1 -1
  54. package/lib/toolbar/src/toolbar.js +21 -28
  55. package/lib/toolbar/src/toolbar.min.js +1 -1
  56. package/lib/ui/index.js +1 -1
  57. package/lib/ui/index.min.js +1 -1
  58. package/lib/ui/src/log.js +1 -1
  59. package/lib/ui/src/log.min.js +1 -1
  60. package/package.json +2 -2
  61. package/packages/grid/src/grid.ts +62 -75
  62. package/packages/table/module/custom/panel.ts +25 -27
  63. package/packages/table/module/edit/mixin.ts +1 -1
  64. package/packages/table/module/export/export-panel.ts +22 -24
  65. package/packages/table/module/export/import-panel.ts +14 -16
  66. package/packages/table/module/export/mixin.ts +15 -31
  67. package/packages/table/module/keyboard/mixin.ts +6 -2
  68. package/packages/table/module/validator/mixin.ts +1 -3
  69. package/packages/table/render/index.ts +2 -4
  70. package/packages/table/src/body.ts +2 -2
  71. package/packages/table/src/column.ts +2 -2
  72. package/packages/table/src/columnInfo.ts +30 -32
  73. package/packages/table/src/group.ts +2 -2
  74. package/packages/table/src/methods.ts +140 -104
  75. package/packages/table/src/table.ts +14 -16
  76. package/packages/table/src/util.ts +4 -6
  77. package/packages/toolbar/src/toolbar.ts +20 -28
  78. /package/es/{iconfont.1740732119954.ttf → iconfont.1741079977180.ttf} +0 -0
  79. /package/es/{iconfont.1740732119954.woff → iconfont.1741079977180.woff} +0 -0
  80. /package/es/{iconfont.1740732119954.woff2 → iconfont.1741079977180.woff2} +0 -0
  81. /package/lib/{iconfont.1740732119954.ttf → iconfont.1741079977180.ttf} +0 -0
  82. /package/lib/{iconfont.1740732119954.woff → iconfont.1741079977180.woff} +0 -0
  83. /package/lib/{iconfont.1740732119954.woff2 → iconfont.1741079977180.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;
@@ -9,7 +9,7 @@ var _comp = require("../../ui/src/comp");
9
9
  var _util = require("./util");
10
10
  var _column = require("./column");
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- var _default = exports.default = (0, _comp.defineVxeComponent)({
12
+ var _default = exports.default = /* define-vxe-component start */(0, _comp.defineVxeComponent)({
13
13
  name: 'VxeColgroup',
14
14
  props: _column.columnProps,
15
15
  provide() {
@@ -48,4 +48,5 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
48
48
  return h('div', this.$slots.default);
49
49
  },
50
50
  methods: _cell.default
51
- });
51
+ });
52
+ /* define-vxe-component end */
@@ -351,14 +351,12 @@ function cacheColumnMap($xeTable) {
351
351
  if (expandColumn && expandOpts.mode !== 'fixed' && mouseOpts.area) {
352
352
  (0, _log.errLog)('vxe.error.errConflicts', ['mouse-config.area', 'column.type=expand']);
353
353
  }
354
- if (process.env.NODE_ENV === 'developmeznt') {
355
- if (htmlColumn) {
356
- if (!columnOpts.useKey) {
357
- (0, _log.errLog)('vxe.error.reqProp', ['column-config.useKey & column.type=html']);
358
- }
359
- if (!rowOpts.useKey) {
360
- (0, _log.errLog)('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
361
- }
354
+ if (htmlColumn) {
355
+ if (!columnOpts.useKey) {
356
+ (0, _log.errLog)('vxe.error.reqProp', ['column-config.useKey & column.type=html']);
357
+ }
358
+ if (!rowOpts.useKey) {
359
+ (0, _log.errLog)('vxe.error.reqProp', ['row-config.useKey & column.type=html']);
362
360
  }
363
361
  }
364
362
  reactData.isGroup = isGroup;
@@ -2767,28 +2765,26 @@ const Methods = {
2767
2765
  if (treeConfig) {
2768
2766
  // 树结构自动转换
2769
2767
  if (treeOpts.transform) {
2770
- if (process.env.NODE_ENV === 'development') {
2771
- if (!treeOpts.rowField) {
2772
- (0, _log.errLog)('vxe.error.reqProp', ['table.tree-config.rowField']);
2773
- }
2774
- if (!treeOpts.parentField) {
2775
- (0, _log.errLog)('vxe.error.reqProp', ['table.tree-config.parentField']);
2776
- }
2777
- if (!childrenField) {
2778
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.childrenField']);
2779
- }
2780
- if (!treeOpts.mapChildrenField) {
2781
- (0, _log.errLog)('vxe.error.reqProp', ['tree-config.mapChildrenField']);
2782
- }
2783
- if (childrenField === treeOpts.mapChildrenField) {
2784
- (0, _log.errLog)('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
2785
- }
2786
- // fullData.forEach(row => {
2787
- // if (row[childrenField] && row[childrenField].length) {
2788
- // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${childrenField}`])
2789
- // }
2790
- // })
2768
+ if (!treeOpts.rowField) {
2769
+ (0, _log.errLog)('vxe.error.reqProp', ['table.tree-config.rowField']);
2770
+ }
2771
+ if (!treeOpts.parentField) {
2772
+ (0, _log.errLog)('vxe.error.reqProp', ['table.tree-config.parentField']);
2773
+ }
2774
+ if (!childrenField) {
2775
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.childrenField']);
2776
+ }
2777
+ if (!treeOpts.mapChildrenField) {
2778
+ (0, _log.errLog)('vxe.error.reqProp', ['tree-config.mapChildrenField']);
2791
2779
  }
2780
+ if (childrenField === treeOpts.mapChildrenField) {
2781
+ (0, _log.errLog)('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField']);
2782
+ }
2783
+ // fullData.forEach(row => {
2784
+ // if (row[childrenField] && row[childrenField].length) {
2785
+ // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${childrenField}`])
2786
+ // }
2787
+ // })
2792
2788
  treeData = _xeUtils.default.toArrayTree(fullData, {
2793
2789
  key: treeOpts.rowField,
2794
2790
  parentKey: treeOpts.parentField,
@@ -2852,16 +2848,14 @@ const Methods = {
2852
2848
  // }
2853
2849
  // }
2854
2850
  // }
2855
- if (process.env.NODE_ENV === 'development') {
2856
- if (!(this.height || this.maxHeight)) {
2857
- (0, _log.errLog)('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
2858
- }
2859
- // if (!this.showOverflow) {
2860
- // warnLog('vxe.error.reqProp', ['table.show-overflow'])
2861
- // }
2862
- if (this.spanMethod) {
2863
- (0, _log.warnLog)('vxe.error.scrollErrProp', ['table.span-method']);
2864
- }
2851
+ if (!(this.height || this.maxHeight)) {
2852
+ (0, _log.errLog)('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
2853
+ }
2854
+ // if (!this.showOverflow) {
2855
+ // warnLog('vxe.error.reqProp', ['table.show-overflow'])
2856
+ // }
2857
+ if (this.spanMethod) {
2858
+ (0, _log.warnLog)('vxe.error.scrollErrProp', ['table.span-method']);
2865
2859
  }
2866
2860
  }
2867
2861
  handleReserveStatus($xeTable);
@@ -3005,22 +2999,26 @@ const Methods = {
3005
2999
  cacheRowMap() {
3006
3000
  const $xeTable = this;
3007
3001
  const props = $xeTable;
3002
+ const reactData = $xeTable;
3008
3003
  const internalData = $xeTable;
3009
3004
  const {
3010
3005
  treeConfig
3011
3006
  } = props;
3012
- const treeOpts = $xeTable.computeTreeOpts;
3007
+ const {
3008
+ treeExpandedMaps
3009
+ } = reactData;
3013
3010
  const {
3014
3011
  fullAllDataRowIdData,
3015
3012
  tableFullData,
3016
3013
  tableFullTreeData
3017
3014
  } = internalData;
3015
+ const treeOpts = $xeTable.computeTreeOpts;
3018
3016
  const childrenField = treeOpts.children || treeOpts.childrenField;
3019
3017
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
3020
3018
  const rowkey = (0, _util.getRowkey)($xeTable);
3021
- const isLazy = treeConfig && treeOpts.lazy;
3022
- const fullAllDataRowIdMaps = {};
3019
+ const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
3023
3020
  const fullDataRowIdMaps = {};
3021
+ const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
3024
3022
  const handleRow = (row, index, items, path, parentRow, nodes) => {
3025
3023
  let rowid = (0, _util.getRowid)($xeTable, row);
3026
3024
  const seq = treeConfig && path ? (0, _util.toTreePathSeq)(path) : index + 1;
@@ -3029,8 +3027,16 @@ const Methods = {
3029
3027
  rowid = (0, _util.getRowUniqueId)();
3030
3028
  _xeUtils.default.set(row, rowkey, rowid);
3031
3029
  }
3032
- if (isLazy && row[hasChildField] && _xeUtils.default.isUndefined(row[childrenField])) {
3033
- row[childrenField] = null;
3030
+ if (treeConfig && treeOpts.lazy) {
3031
+ const treeExpRest = treeExpandedMaps[rowid];
3032
+ if (row[hasChildField] && _xeUtils.default.isUndefined(row[childrenField])) {
3033
+ row[childrenField] = null;
3034
+ }
3035
+ if (treeExpRest) {
3036
+ if (!row[childrenField] || !row[childrenField].length) {
3037
+ delete treeTempExpandedMaps[rowid];
3038
+ }
3039
+ }
3034
3040
  }
3035
3041
  let rowRest = fullAllDataRowIdData[rowid];
3036
3042
  if (!rowRest) {
@@ -3051,6 +3057,8 @@ const Methods = {
3051
3057
  expandHeight: 0
3052
3058
  };
3053
3059
  }
3060
+ rowRest.treeLoaded = false;
3061
+ rowRest.expandLoaded = false;
3054
3062
  rowRest.row = row;
3055
3063
  rowRest.items = items;
3056
3064
  rowRest.parent = parentRow;
@@ -3059,8 +3067,6 @@ const Methods = {
3059
3067
  fullDataRowIdMaps[rowid] = rowRest;
3060
3068
  fullAllDataRowIdMaps[rowid] = rowRest;
3061
3069
  };
3062
- internalData.fullDataRowIdData = fullDataRowIdMaps;
3063
- internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
3064
3070
  if (treeConfig) {
3065
3071
  _xeUtils.default.eachTree(tableFullTreeData, handleRow, {
3066
3072
  children: childrenField
@@ -3068,6 +3074,9 @@ const Methods = {
3068
3074
  } else {
3069
3075
  tableFullData.forEach(handleRow);
3070
3076
  }
3077
+ internalData.fullDataRowIdData = fullDataRowIdMaps;
3078
+ internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
3079
+ reactData.treeExpandedMaps = treeTempExpandedMaps;
3071
3080
  },
3072
3081
  cacheSourceMap(fullData) {
3073
3082
  let {
@@ -3443,23 +3452,6 @@ const Methods = {
3443
3452
  }
3444
3453
  return this.createData(records).then(rows => isArr ? rows : rows[0]);
3445
3454
  },
3446
- // toOriginalRecords (rows: any[]) {
3447
- // const { treeConfig } = props
3448
- // const treeOpts = computeTreeOpts.value
3449
- // const { transform, mapChildrenField } = treeOpts
3450
- // const rowkey = getRowkey($xeTable)
3451
- // if (treeConfig) {
3452
- // if (transform) {
3453
- // return []
3454
- // }
3455
- // return []
3456
- // }
3457
- // return rows.map(item => {
3458
- // const obj = Object.assign({}, item)
3459
- // delete obj.rowkey
3460
- // return obj
3461
- // })
3462
- // },
3463
3455
  /**
3464
3456
  * 还原数据
3465
3457
  * 如果不传任何参数,则还原整个表格
@@ -3468,16 +3460,30 @@ const Methods = {
3468
3460
  * 如果还额外传了 field 则还原指定的单元格数据
3469
3461
  */
3470
3462
  revertData(rows, field) {
3463
+ const $xeTable = this;
3464
+ const props = $xeTable;
3465
+ const reactData = $xeTable;
3466
+ const internalData = $xeTable;
3471
3467
  const {
3472
3468
  keepSource,
3473
- tableSourceData,
3474
3469
  treeConfig
3475
- } = this;
3470
+ } = props;
3471
+ const {
3472
+ fullAllDataRowIdData,
3473
+ tableSourceData,
3474
+ sourceDataRowIdData,
3475
+ tableFullData,
3476
+ afterFullData
3477
+ } = internalData;
3478
+ const treeOpts = $xeTable.computeTreeOpts;
3479
+ const {
3480
+ transform
3481
+ } = treeOpts;
3476
3482
  if (!keepSource) {
3477
3483
  if (process.env.NODE_ENV === 'development') {
3478
3484
  (0, _log.warnLog)('vxe.error.reqProp', ['keep-source']);
3479
3485
  }
3480
- return this.$nextTick();
3486
+ return $xeTable.$nextTick();
3481
3487
  }
3482
3488
  let targetRows = rows;
3483
3489
  if (rows) {
@@ -3485,30 +3491,52 @@ const Methods = {
3485
3491
  targetRows = [rows];
3486
3492
  }
3487
3493
  } else {
3488
- targetRows = _xeUtils.default.toArray(this.getUpdateRecords());
3494
+ targetRows = _xeUtils.default.toArray($xeTable.getUpdateRecords());
3489
3495
  }
3496
+ let reDelFlag = false;
3490
3497
  if (targetRows.length) {
3491
3498
  targetRows.forEach(row => {
3492
- if (!this.isInsertByRow(row)) {
3493
- const rowIndex = this.getRowIndex(row);
3494
- if (treeConfig && rowIndex === -1) {
3495
- (0, _log.errLog)('vxe.error.noTree', ['revertData']);
3496
- }
3497
- const oRow = tableSourceData[rowIndex];
3499
+ if (!$xeTable.isInsertByRow(row)) {
3500
+ const rowid = (0, _util.getRowid)($xeTable, row);
3501
+ const oRow = sourceDataRowIdData[rowid];
3498
3502
  if (oRow && row) {
3499
3503
  if (field) {
3500
3504
  _xeUtils.default.set(row, field, _xeUtils.default.clone(_xeUtils.default.get(oRow, field), true));
3501
3505
  } else {
3502
3506
  _xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
3503
3507
  }
3508
+ if ($xeTable.isRemoveByRow(row)) {
3509
+ const rowRest = fullAllDataRowIdData[rowid];
3510
+ if (rowRest) {
3511
+ const reRow = rowRest.row;
3512
+ tableFullData.unshift(reRow);
3513
+ afterFullData.unshift(reRow);
3514
+ reDelFlag = true;
3515
+ }
3516
+ }
3504
3517
  }
3505
3518
  }
3506
3519
  });
3507
3520
  }
3508
3521
  if (rows) {
3509
- return this.$nextTick();
3522
+ if (reDelFlag) {
3523
+ $xeTable.updateFooter();
3524
+ $xeTable.cacheRowMap(false);
3525
+ $xeTable.handleTableData(treeConfig && transform);
3526
+ if (!(treeConfig && transform)) {
3527
+ $xeTable.updateAfterDataIndex();
3528
+ }
3529
+ $xeTable.checkSelectionStatus();
3530
+ if (reactData.scrollYLoad) {
3531
+ $xeTable.updateScrollYSpace();
3532
+ }
3533
+ }
3534
+ return $xeTable.$nextTick().then(() => {
3535
+ $xeTable.updateCellAreas();
3536
+ return $xeTable.recalculate();
3537
+ });
3510
3538
  }
3511
- return this.reloadData(tableSourceData);
3539
+ return $xeTable.reloadData(tableSourceData);
3512
3540
  },
3513
3541
  /**
3514
3542
  * 清空单元格内容
@@ -3580,6 +3608,7 @@ const Methods = {
3580
3608
  },
3581
3609
  getCellLabel(row, fieldOrColumn) {
3582
3610
  const $xeTable = this;
3611
+ const internalData = $xeTable;
3583
3612
  const column = (0, _util.handleFieldOrColumn)(this, fieldOrColumn);
3584
3613
  if (!column) {
3585
3614
  return null;
@@ -3591,7 +3620,7 @@ const Methods = {
3591
3620
  let formatData;
3592
3621
  const {
3593
3622
  fullAllDataRowIdData
3594
- } = $xeTable;
3623
+ } = internalData;
3595
3624
  const rowid = (0, _util.getRowid)($xeTable, row);
3596
3625
  const colid = column.id;
3597
3626
  const rowRest = fullAllDataRowIdData[rowid];
@@ -3638,12 +3667,23 @@ const Methods = {
3638
3667
  * @param {Row} row 行对象
3639
3668
  */
3640
3669
  isInsertByRow(row) {
3670
+ const $xeTable = this;
3671
+ const reactData = $xeTable;
3641
3672
  const {
3642
3673
  editStore
3643
- } = this;
3644
- const rowid = (0, _util.getRowid)(this, row);
3674
+ } = reactData;
3675
+ const rowid = (0, _util.getRowid)($xeTable, row);
3645
3676
  return !!editStore.insertMaps[rowid];
3646
3677
  },
3678
+ isRemoveByRow(row) {
3679
+ const $xeTable = this;
3680
+ const reactData = $xeTable;
3681
+ const {
3682
+ editStore
3683
+ } = reactData;
3684
+ const rowid = (0, _util.getRowid)($xeTable, row);
3685
+ return !!editStore.removeMaps[rowid];
3686
+ },
3647
3687
  /**
3648
3688
  * 删除所有新增的临时数据
3649
3689
  * @returns
@@ -6583,11 +6623,13 @@ const Methods = {
6583
6623
  const checkboxOpts = $xeTable.computeCheckboxOpts;
6584
6624
  const {
6585
6625
  checkField,
6586
- checkMethod
6626
+ checkMethod,
6627
+ showReserveStatus
6587
6628
  } = checkboxOpts;
6588
6629
  const {
6589
6630
  afterFullData,
6590
- afterTreeFullData
6631
+ afterTreeFullData,
6632
+ checkboxReserveRowMap
6591
6633
  } = internalData;
6592
6634
  let sLen = 0; // 已选
6593
6635
  let hLen = 0; // 半选
@@ -6623,7 +6665,11 @@ const Methods = {
6623
6665
  vLen++;
6624
6666
  });
6625
6667
  const isSelected = rootList.length > 0 ? vLen > 0 ? sLen >= vLen : sLen >= rootList.length : false;
6626
- const halfSelect = !isSelected && (sLen >= 1 || hLen >= 1);
6668
+ let halfSelect = !isSelected && (sLen >= 1 || hLen >= 1);
6669
+ // 如果复选框启用保留记录,当保留数据存在时显示半选
6670
+ if (!isSelected && !halfSelect && showReserveStatus) {
6671
+ halfSelect = !_xeUtils.default.isEmpty(checkboxReserveRowMap);
6672
+ }
6627
6673
  reactData.isAllSelected = isSelected;
6628
6674
  reactData.isIndeterminate = halfSelect;
6629
6675
  },
@@ -10454,19 +10500,17 @@ const Methods = {
10454
10500
  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(',');
10455
10501
  funcs.forEach(name => {
10456
10502
  Methods[name] = function (...args) {
10457
- if (process.env.NODE_ENV === 'development') {
10458
- if (!this[`_${name}`]) {
10459
- if ('openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').includes(name)) {
10460
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableExportModule']);
10461
- } else if ('fullValidate,validate'.split(',').includes(name)) {
10462
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableValidatorModule']);
10463
- } else if ('setFilter,openFilter,clearFilter,getCheckedFilters'.split(',').includes(name)) {
10464
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableFilterModule']);
10465
- } else if ('insert,insertAt,insertNextAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,getEditRecord,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell'.split(',').includes(name)) {
10466
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableEditModule']);
10467
- } else if ('openCustom'.split(',').includes(name)) {
10468
- (0, _log.errLog)('vxe.error.reqModule', ['VxeTableCustomModule']);
10469
- }
10503
+ if (!this[`_${name}`]) {
10504
+ if ('openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').includes(name)) {
10505
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableExportModule']);
10506
+ } else if ('fullValidate,validate'.split(',').includes(name)) {
10507
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableValidatorModule']);
10508
+ } else if ('setFilter,openFilter,clearFilter,getCheckedFilters'.split(',').includes(name)) {
10509
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableFilterModule']);
10510
+ } else if ('insert,insertAt,insertNextAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,getEditRecord,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell'.split(',').includes(name)) {
10511
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableEditModule']);
10512
+ } else if ('openCustom'.split(',').includes(name)) {
10513
+ (0, _log.errLog)('vxe.error.reqModule', ['VxeTableCustomModule']);
10470
10514
  }
10471
10515
  }
10472
10516
  return this[`_${name}`] ? this[`_${name}`](...args) : null;