vxe-table 3.14.0 → 3.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/es/style.css +1 -1
  2. package/es/table/module/edit/mixin.js +92 -63
  3. package/es/table/module/validator/mixin.js +2 -5
  4. package/es/table/src/body.js +6 -7
  5. package/es/table/src/methods.js +291 -278
  6. package/es/table/src/table.js +15 -15
  7. package/es/ui/index.js +1 -1
  8. package/es/ui/src/log.js +1 -1
  9. package/lib/index.umd.js +478 -484
  10. package/lib/index.umd.min.js +1 -1
  11. package/lib/style.css +1 -1
  12. package/lib/table/module/edit/mixin.js +106 -98
  13. package/lib/table/module/edit/mixin.min.js +1 -1
  14. package/lib/table/module/validator/mixin.js +3 -9
  15. package/lib/table/module/validator/mixin.min.js +1 -1
  16. package/lib/table/src/body.js +6 -7
  17. package/lib/table/src/body.min.js +1 -1
  18. package/lib/table/src/methods.js +343 -348
  19. package/lib/table/src/methods.min.js +1 -1
  20. package/lib/table/src/table.js +15 -15
  21. package/lib/table/src/table.min.js +1 -1
  22. package/lib/ui/index.js +1 -1
  23. package/lib/ui/index.min.js +1 -1
  24. package/lib/ui/src/log.js +1 -1
  25. package/lib/ui/src/log.min.js +1 -1
  26. package/package.json +2 -2
  27. package/packages/table/module/edit/mixin.ts +125 -87
  28. package/packages/table/module/validator/mixin.ts +3 -6
  29. package/packages/table/src/body.ts +6 -7
  30. package/packages/table/src/methods.ts +334 -293
  31. package/packages/table/src/table.ts +18 -18
  32. package/packages/table/src/util.ts +2 -2
  33. /package/es/{iconfont.1742955973002.ttf → iconfont.1743045564244.ttf} +0 -0
  34. /package/es/{iconfont.1742955973002.woff → iconfont.1743045564244.woff} +0 -0
  35. /package/es/{iconfont.1742955973002.woff2 → iconfont.1743045564244.woff2} +0 -0
  36. /package/lib/{iconfont.1742955973002.ttf → iconfont.1743045564244.ttf} +0 -0
  37. /package/lib/{iconfont.1742955973002.woff → iconfont.1743045564244.woff} +0 -0
  38. /package/lib/{iconfont.1742955973002.woff2 → iconfont.1743045564244.woff2} +0 -0
@@ -68,14 +68,15 @@ function syncActivedCell($xeTable) {
68
68
  }
69
69
  }
70
70
  }
71
- function insertTreeRow(_vm, newRecords, isAppend) {
71
+ function insertTreeRow($xeTable, newRecords, isAppend) {
72
+ const internalData = $xeTable;
72
73
  const {
73
74
  tableFullTreeData,
74
75
  afterFullData,
75
76
  fullDataRowIdData,
76
- fullAllDataRowIdData,
77
- treeOpts
78
- } = _vm;
77
+ fullAllDataRowIdData
78
+ } = internalData;
79
+ const treeOpts = $xeTable.computeTreeOpts;
79
80
  const {
80
81
  rowField,
81
82
  parentField,
@@ -85,7 +86,7 @@ function insertTreeRow(_vm, newRecords, isAppend) {
85
86
  const funcName = isAppend ? 'push' : 'unshift';
86
87
  newRecords.forEach(item => {
87
88
  const parentRowId = item[parentField];
88
- const rowid = (0, _util.getRowid)(_vm, item);
89
+ const rowid = (0, _util.getRowid)($xeTable, item);
89
90
  const matchObj = parentRowId ? _xeUtils.default.findTree(tableFullTreeData, item => parentRowId === item[rowField], {
90
91
  children: mapChildrenField
91
92
  }) : null;
@@ -93,7 +94,7 @@ function insertTreeRow(_vm, newRecords, isAppend) {
93
94
  const {
94
95
  item: parentRow
95
96
  } = matchObj;
96
- const parentRest = fullAllDataRowIdData[(0, _util.getRowid)(_vm, parentRow)];
97
+ const parentRest = fullAllDataRowIdData[(0, _util.getRowid)($xeTable, parentRow)];
97
98
  const parentLevel = parentRest ? parentRest.level : 0;
98
99
  let parentChilds = parentRow[childrenField];
99
100
  let mapChilds = parentRow[mapChildrenField];
@@ -160,15 +161,15 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
160
161
  treeConfig
161
162
  } = props;
162
163
  const {
163
- mergeList,
164
- editStore
164
+ mergeList
165
165
  } = reactData;
166
166
  const {
167
167
  tableFullTreeData,
168
168
  afterFullData,
169
169
  tableFullData,
170
170
  fullDataRowIdData,
171
- fullAllDataRowIdData
171
+ fullAllDataRowIdData,
172
+ insertRowMaps
172
173
  } = internalData;
173
174
  const treeOpts = $xeTable.computeTreeOpts;
174
175
  const {
@@ -373,13 +374,11 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
373
374
  }
374
375
  }
375
376
  }
376
- const {
377
- insertMaps
378
- } = editStore;
379
377
  newRecords.forEach(newRow => {
380
378
  const rowid = (0, _util.getRowid)($xeTable, newRow);
381
- insertMaps[rowid] = newRow;
379
+ insertRowMaps[rowid] = newRow;
382
380
  });
381
+ reactData.insertRowFlag++;
383
382
  $xeTable.cacheRowMap(false);
384
383
  $xeTable.updateScrollYStatus();
385
384
  $xeTable.handleTableData(treeConfig && transform);
@@ -388,7 +387,7 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
388
387
  }
389
388
  $xeTable.updateFooter();
390
389
  $xeTable.checkSelectionStatus();
391
- if ($xeTable.scrollYLoad) {
390
+ if (reactData.scrollYLoad) {
392
391
  $xeTable.updateScrollYSpace();
393
392
  }
394
393
  return $xeTable.$nextTick().then(() => {
@@ -684,7 +683,9 @@ var _default = exports.default = {
684
683
  selectCheckboxMaps,
685
684
  afterFullData,
686
685
  tableFullData,
687
- pendingRowMaps
686
+ pendingRowMaps,
687
+ insertRowMaps,
688
+ removeRowMaps
688
689
  } = internalData;
689
690
  const checkboxOpts = $xeTable.computeCheckboxOpts;
690
691
  const treeOpts = $xeTable.computeTreeOpts;
@@ -694,10 +695,8 @@ var _default = exports.default = {
694
695
  } = treeOpts;
695
696
  const childrenField = treeOpts.children || treeOpts.childrenField;
696
697
  const {
697
- actived,
698
- removeMaps
698
+ actived
699
699
  } = editStore;
700
- const insertDataRowMaps = Object.assign({}, editStore.insertMaps);
701
700
  const {
702
701
  checkField
703
702
  } = checkboxOpts;
@@ -711,7 +710,7 @@ var _default = exports.default = {
711
710
  rows.forEach(row => {
712
711
  if (!$xeTable.isInsertByRow(row)) {
713
712
  const rowid = (0, _util.getRowid)($xeTable, row);
714
- removeMaps[rowid] = row;
713
+ removeRowMaps[rowid] = row;
715
714
  }
716
715
  });
717
716
  // 如果绑定了多选属性,则更新状态
@@ -786,14 +785,15 @@ var _default = exports.default = {
786
785
  // 从新增中移除已删除的数据
787
786
  rows.forEach(row => {
788
787
  const rowid = (0, _util.getRowid)($xeTable, row);
789
- if (insertDataRowMaps[rowid]) {
790
- delete insertDataRowMaps[rowid];
788
+ if (insertRowMaps[rowid]) {
789
+ delete insertRowMaps[rowid];
791
790
  }
792
791
  if (pendingRowMaps[rowid]) {
793
792
  delete pendingRowMaps[rowid];
794
793
  }
795
794
  });
796
- editStore.insertMaps = insertDataRowMaps;
795
+ reactData.removeRowFlag++;
796
+ reactData.insertRowFlag++;
797
797
  reactData.pendingRowFlag++;
798
798
  $xeTable.updateFooter();
799
799
  $xeTable.cacheRowMap(false);
@@ -867,19 +867,13 @@ var _default = exports.default = {
867
867
  */
868
868
  _getInsertRecords() {
869
869
  const $xeTable = this;
870
- const reactData = $xeTable;
871
870
  const internalData = $xeTable;
872
871
  const {
873
- editStore
874
- } = reactData;
875
- const {
876
- fullAllDataRowIdData
872
+ fullAllDataRowIdData,
873
+ insertRowMaps
877
874
  } = internalData;
878
- const {
879
- insertMaps
880
- } = editStore;
881
875
  const insertRecords = [];
882
- _xeUtils.default.each(insertMaps, (row, rowid) => {
876
+ _xeUtils.default.each(insertRowMaps, (row, rowid) => {
883
877
  if (fullAllDataRowIdData[rowid]) {
884
878
  insertRecords.push(row);
885
879
  }
@@ -891,15 +885,12 @@ var _default = exports.default = {
891
885
  */
892
886
  _getRemoveRecords() {
893
887
  const $xeTable = this;
894
- const reactData = $xeTable;
895
- const {
896
- editStore
897
- } = reactData;
888
+ const internalData = $xeTable;
898
889
  const {
899
- removeMaps
900
- } = editStore;
890
+ removeRowMaps
891
+ } = internalData;
901
892
  const removeRecords = [];
902
- _xeUtils.default.each(removeMaps, row => {
893
+ _xeUtils.default.each(removeRowMaps, row => {
903
894
  removeRecords.push(row);
904
895
  });
905
896
  return removeRecords;
@@ -911,29 +902,22 @@ var _default = exports.default = {
911
902
  */
912
903
  _getUpdateRecords() {
913
904
  const $xeTable = this;
905
+ const props = $xeTable;
906
+ const internalData = $xeTable;
914
907
  const {
915
908
  keepSource,
916
- tableFullData,
917
- isUpdateByRow,
918
- treeConfig,
919
- treeOpts,
920
- editStore
921
- } = this;
909
+ treeConfig
910
+ } = props;
911
+ const {
912
+ tableFullData
913
+ } = internalData;
914
+ const treeOpts = $xeTable.computeTreeOpts;
922
915
  if (keepSource) {
923
- const {
924
- actived
925
- } = editStore;
926
- const {
927
- row,
928
- column
929
- } = actived;
930
- if (row || column) {
931
- syncActivedCell($xeTable);
932
- }
916
+ syncActivedCell($xeTable);
933
917
  if (treeConfig) {
934
- return _xeUtils.default.filterTree(tableFullData, row => isUpdateByRow(row), treeOpts);
918
+ return _xeUtils.default.filterTree(tableFullData, row => $xeTable.isUpdateByRow(row), treeOpts);
935
919
  }
936
- return tableFullData.filter(row => isUpdateByRow(row));
920
+ return tableFullData.filter(row => $xeTable.isUpdateByRow(row));
937
921
  }
938
922
  return [];
939
923
  },
@@ -982,51 +966,58 @@ var _default = exports.default = {
982
966
  return handleClearEdit($xeTable, evnt, targetRow);
983
967
  },
984
968
  _getActiveRecord() {
969
+ const $xeTable = this;
985
970
  if (process.env.NODE_ENV === 'development') {
986
971
  (0, _log.warnLog)('vxe.error.delFunc', ['getActiveRecord', 'getEditRecord']);
987
972
  }
988
973
  // 即将废弃
989
- return this.getEditRecord();
974
+ return $xeTable.getEditRecord();
990
975
  },
991
976
  _getEditRecord() {
977
+ const $xeTable = this;
978
+ const reactData = $xeTable;
979
+ const internalData = $xeTable;
992
980
  const {
993
- $el,
994
- editStore,
995
- afterFullData
996
- } = this;
981
+ editStore
982
+ } = reactData;
997
983
  const {
998
- actived
999
- } = editStore;
984
+ afterFullData
985
+ } = internalData;
986
+ const el = $xeTable.$refs.refElem;
1000
987
  const {
1001
988
  args,
1002
989
  row
1003
- } = actived;
1004
- if (args && this.findRowIndexOf(afterFullData, row) > -1 && $el.querySelectorAll('.vxe-body--column.col--active').length) {
990
+ } = editStore.actived;
991
+ if (args && $xeTable.findRowIndexOf(afterFullData, row) > -1 && el.querySelectorAll('.vxe-body--column.col--active').length) {
1005
992
  return Object.assign({}, args);
1006
993
  }
1007
994
  return null;
1008
995
  },
1009
996
  _isActiveByRow(row) {
997
+ const $xeTable = this;
1010
998
  if (process.env.NODE_ENV === 'development') {
1011
999
  (0, _log.warnLog)('vxe.error.delFunc', ['isActiveByRow', 'isEditByRow']);
1012
1000
  }
1013
1001
  // 即将废弃
1014
- return this.isEditByRow(row);
1002
+ return $xeTable.isEditByRow(row);
1015
1003
  },
1016
1004
  /**
1017
1005
  * 判断行是否为激活编辑状态
1018
1006
  * @param {Row} row 行对象
1019
1007
  */
1020
1008
  _isEditByRow(row) {
1021
- return this.editStore.actived.row === row;
1009
+ const $xeTable = this;
1010
+ const reactData = $xeTable;
1011
+ const {
1012
+ editStore
1013
+ } = reactData;
1014
+ return editStore.actived.row === row;
1022
1015
  },
1023
1016
  /**
1024
1017
  * 处理聚焦
1025
1018
  */
1026
1019
  handleFocus(params) {
1027
- const {
1028
- editOpts
1029
- } = this;
1020
+ const $xeTable = this;
1030
1021
  const {
1031
1022
  row,
1032
1023
  column,
@@ -1035,6 +1026,7 @@ var _default = exports.default = {
1035
1026
  const {
1036
1027
  editRender
1037
1028
  } = column;
1029
+ const editOpts = $xeTable.computeEditOpts;
1038
1030
  if ((0, _utils.isEnableConf)(editRender)) {
1039
1031
  const compRender = renderer.get(editRender.name);
1040
1032
  let autoFocus = editRender.autofocus || editRender.autoFocus;
@@ -1050,7 +1042,7 @@ var _default = exports.default = {
1050
1042
  }
1051
1043
  // 如果指定了聚焦 class
1052
1044
  if (_xeUtils.default.isFunction(autoFocus)) {
1053
- inputElem = autoFocus.call(this, params);
1045
+ inputElem = autoFocus.call($xeTable, params);
1054
1046
  } else if (autoFocus) {
1055
1047
  if (autoFocus === true) {
1056
1048
  // 自动匹配模式,会自动匹配第一个可输入元素
@@ -1079,18 +1071,19 @@ var _default = exports.default = {
1079
1071
  if (editOpts.autoPos) {
1080
1072
  if (!column.fixed) {
1081
1073
  // 显示到可视区中
1082
- this.scrollToRow(row, column);
1074
+ $xeTable.scrollToRow(row, column);
1083
1075
  }
1084
1076
  }
1085
1077
  }
1086
1078
  }
1087
1079
  },
1088
1080
  _setActiveRow(row) {
1081
+ const $xeTable = this;
1089
1082
  if (process.env.NODE_ENV === 'development') {
1090
1083
  (0, _log.warnLog)('vxe.error.delFunc', ['setActiveRow', 'setEditRow']);
1091
1084
  }
1092
1085
  // 即将废弃
1093
- return this.setEditRow(row);
1086
+ return $xeTable.setEditRow(row);
1094
1087
  },
1095
1088
  /**
1096
1089
  * 激活行编辑
@@ -1102,7 +1095,7 @@ var _default = exports.default = {
1102
1095
  if (fieldOrColumn) {
1103
1096
  isPos = true;
1104
1097
  if (fieldOrColumn !== true) {
1105
- column = _xeUtils.default.isString(fieldOrColumn) ? this.getColumnByField(fieldOrColumn) : fieldOrColumn;
1098
+ column = _xeUtils.default.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
1106
1099
  }
1107
1100
  }
1108
1101
  return handleEditCell($xeTable, row, column, isPos);
@@ -1125,39 +1118,44 @@ var _default = exports.default = {
1125
1118
  * 只对 trigger=dblclick 有效,选中单元格
1126
1119
  */
1127
1120
  _setSelectCell(row, fieldOrColumn) {
1121
+ const $xeTable = this;
1122
+ const reactData = $xeTable;
1128
1123
  const {
1129
- tableData,
1130
- editOpts,
1131
- visibleColumn
1132
- } = this;
1133
- const column = _xeUtils.default.isString(fieldOrColumn) ? this.getColumnByField(fieldOrColumn) : fieldOrColumn;
1124
+ tableData
1125
+ } = reactData;
1126
+ const editOpts = $xeTable.computeEditOpts;
1127
+ const column = _xeUtils.default.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
1134
1128
  if (row && column && editOpts.trigger !== 'manual') {
1135
- const rowIndex = this.findRowIndexOf(tableData, row);
1129
+ const rowIndex = $xeTable.findRowIndexOf(tableData, row);
1136
1130
  if (rowIndex > -1) {
1137
- const cell = this.getCellElement(row, column);
1131
+ const cell = $xeTable.getCellElement(row, column);
1138
1132
  const params = {
1139
1133
  row,
1140
1134
  rowIndex,
1141
1135
  column,
1142
- columnIndex: visibleColumn.indexOf(column),
1136
+ columnIndex: $xeTable.getColumnIndex(column),
1143
1137
  cell
1144
1138
  };
1145
- this.handleSelected(params, {});
1139
+ $xeTable.handleSelected(params, {});
1146
1140
  }
1147
1141
  }
1148
- return this.$nextTick();
1142
+ return $xeTable.$nextTick();
1149
1143
  },
1150
1144
  /**
1151
1145
  * 处理选中源
1152
1146
  */
1153
1147
  handleSelected(params, evnt) {
1154
1148
  const $xeTable = this;
1149
+ const props = $xeTable;
1150
+ const reactData = $xeTable;
1151
+ const {
1152
+ mouseConfig
1153
+ } = props;
1155
1154
  const {
1156
- mouseConfig,
1157
- mouseOpts,
1158
- editOpts,
1159
1155
  editStore
1160
- } = this;
1156
+ } = reactData;
1157
+ const mouseOpts = $xeTable.computeMouseOpts;
1158
+ const editOpts = $xeTable.computeEditOpts;
1161
1159
  const {
1162
1160
  actived,
1163
1161
  selected
@@ -1171,22 +1169,24 @@ var _default = exports.default = {
1171
1169
  if (isMouseSelected && (selected.row !== row || selected.column !== column)) {
1172
1170
  if (actived.row !== row || (editOpts.mode === 'cell' ? actived.column !== column : false)) {
1173
1171
  handleClearEdit($xeTable, evnt);
1174
- this.clearSelected(evnt);
1175
- this.clearCellAreas(evnt);
1176
- this.clearCopyCellArea(evnt);
1172
+ $xeTable.clearSelected();
1173
+ if ($xeTable.clearCellAreas) {
1174
+ $xeTable.clearCellAreas();
1175
+ $xeTable.clearCopyCellArea();
1176
+ }
1177
1177
  selected.args = params;
1178
1178
  selected.row = row;
1179
1179
  selected.column = column;
1180
1180
  if (isMouseSelected) {
1181
1181
  this.addCellSelectedClass();
1182
1182
  }
1183
- this.focus();
1183
+ $xeTable.focus();
1184
1184
  if (evnt) {
1185
- this.emitEvent('cell-selected', params, evnt);
1185
+ $xeTable.dispatchEvent('cell-selected', params, evnt);
1186
1186
  }
1187
1187
  }
1188
1188
  }
1189
- return this.$nextTick();
1189
+ return $xeTable.$nextTick();
1190
1190
  };
1191
1191
  return selectMethod();
1192
1192
  },
@@ -1194,10 +1194,15 @@ var _default = exports.default = {
1194
1194
  * 获取选中的单元格
1195
1195
  */
1196
1196
  _getSelectedCell() {
1197
+ const $xeTable = this;
1198
+ const reactData = $xeTable;
1199
+ const {
1200
+ editStore
1201
+ } = reactData;
1197
1202
  const {
1198
1203
  args,
1199
1204
  column
1200
- } = this.editStore.selected;
1205
+ } = editStore.selected;
1201
1206
  if (args && column) {
1202
1207
  return Object.assign({}, args);
1203
1208
  }
@@ -1208,14 +1213,17 @@ var _default = exports.default = {
1208
1213
  */
1209
1214
  _clearSelected() {
1210
1215
  const $xeTable = this;
1216
+ const reactData = $xeTable;
1217
+ const {
1218
+ editStore
1219
+ } = reactData;
1211
1220
  const {
1212
1221
  selected
1213
- } = this.editStore;
1222
+ } = editStore;
1214
1223
  selected.row = null;
1215
1224
  selected.column = null;
1216
- this.reColTitleSdCls();
1217
1225
  removeCellSelectedClass($xeTable);
1218
- return this.$nextTick();
1226
+ return $xeTable.$nextTick();
1219
1227
  },
1220
1228
  reColTitleSdCls() {
1221
1229
  const headerElem = this.elemStore['main-header-list'];
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,renderer,getI18n}=_ui.VxeUI;function getEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)}function setEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)}function removeCellSelectedClass(e){var e=e.$refs.refElem;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}function syncActivedCell(e){var{editStore:t,tableColumn:l}=e,e=e.computeEditOpts,t=t.actived;let{row:r,column:i}=t;(r||i)&&("row"===e.mode?l.forEach(e=>setEditColumnModel(r,e)):setEditColumnModel(r,i))}function insertTreeRow(n,e,t){let{tableFullTreeData:d,afterFullData:a,fullDataRowIdData:s,fullAllDataRowIdData:u,treeOpts:l}=n,{rowField:c,parentField:h,mapChildrenField:g}=l,f=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[h];var r=(0,_util.getRowid)(n,l),i=t?_xeUtils.default.findTree(d,e=>t===e[c],{children:g}):null;if(i){var i=i.item,o=u[(0,_util.getRowid)(n,i)],o=o?o.level:0;let e=i[f],t=i[g];_xeUtils.default.isArray(e)||(e=i[f]=[]),_xeUtils.default.isArray(t)||(t=i[f]=[]),e[w](l),t[w](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:i,level:o+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=i,u[r]=i}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),a[w](l),d[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:d,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=o,u[r]=o}})}function handleInsertRowAt(a,t,l,s){let i=a.treeConfig;var{mergeList:e,editStore:r}=a;let{tableFullTreeData:u,afterFullData:o,tableFullData:n,fullDataRowIdData:c,fullAllDataRowIdData:h}=a,g=a.computeTreeOpts,{transform:d,rowField:f,mapChildrenField:w}=g,m=g.children||g.childrenField,v=(_xeUtils.default.isArray(t)||(t=[t]),a.defineField(t.map(e=>Object.assign(i&&d?{[w]:[],[m]:[]}:{},e))));if(_xeUtils.default.eqNull(l))i&&d?insertTreeRow(a,v,!1):(v.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};c[t]=l,h[t]=l,o.unshift(e),n.unshift(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+v.length)}));else if(-1===l)i&&d?insertTreeRow(a,v,!0):(v.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};c[t]=l,h[t]=l,o.push(e),n.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>o.length&&(e.rowspan=l+v.length)}));else if(i&&d){let d=_xeUtils.default.findTree(u,e=>l[f]===e[f],{children:w});if(d){let i=d.parent,o=i?i[w]:u;t=h[(0,_util.getRowid)(a,i)];let n=t?t.level:0;if(v.forEach((e,t)=>{var l=(0,_util.getRowid)(a,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&i&&e[g.parentField]!==i[f]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+i[f]]),i&&(e[g.parentField]=i[f]);let r=d.index+t;s&&(r+=1),o.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:i,level:n+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};c[l]=t,h[l]=t}),i){t=_xeUtils.default.findTree(u,e=>l[f]===e[f],{children:m});if(t){var p=t.items;let e=t.index;s&&(e+=1),p.splice(e,0,...v)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),insertTreeRow(a,v,!0)}else{if(i)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<o.length&&(r=l):r=a.findRowIndexOf(o,l),-1===(r=s?Math.min(o.length,r+1):r))throw new Error((0,_log.errLog)("vxe.error.unableInsert"));o.splice(r,0,...v);t=a.findRowIndexOf(n,l);-1<t?n.splice(t+(s?1:0),0,...v):n.push(...v),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+v.length:t+l>r&&(e.rowspan=l+v.length)})}let x=r.insertMaps;return v.forEach(e=>{var t=(0,_util.getRowid)(a,e);x[t]=e}),a.cacheRowMap(!1),a.updateScrollYStatus(),a.handleTableData(i&&d),i&&d||a.updateAfterDataIndex(),a.updateFooter(),a.checkSelectionStatus(),a.scrollYLoad&&a.updateScrollYSpace(),a.$nextTick().then(()=>(a.updateCellAreas(),a.recalculate())).then(()=>({row:v.length?v[v.length-1]:null,rows:v}))}function handleInsertChildRowAt(e,t,l,r,i){var o=e.treeConfig;let{transform:n,rowField:d,parentField:a}=e.computeTreeOpts;return o&&n?handleInsertRowAt(e,(t=_xeUtils.default.isArray(t)?t:[t]).map(e=>Object.assign({},e,{[a]:l[d]})),r,i):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))}function handleClearEdit(e,t,l){var r=e.editStore,{actived:r,focused:i}=r,{row:o,column:n}=r,d=e.computeValidOpts;if(o||n){if(l&&(0,_util.getRowid)(e,l)!==(0,_util.getRowid)(e,o))return e.$nextTick();syncActivedCell(e),r.args=null,r.row=null,r.column=null,e.updateFooter(),e.dispatchEvent("edit-closed",{row:o,rowIndex:e.getRowIndex(o),$rowIndex:e.getVMRowIndex(o),column:n,columnIndex:e.getColumnIndex(n),$columnIndex:e.getVMColumnIndex(n)},t||null)}return i.row=null,i.column=null,d.autoClear&&("full"!==d.msgMode||"obsolete"===getConfig().cellVaildMode)&&e.clearValidate?e.clearValidate():e.$nextTick().then(()=>e.updateCellAreas())}function handleEditActive(l,r,i,o,e){let n=l.$xeGrid;var{editConfig:t,mouseConfig:d}=l,{editStore:a,tableColumn:s}=l,u=l.computeEditOpts,c=u.mode,{actived:a,focused:h}=a;let{row:g,column:f}=r;var w=f.editRender,m=r.cell||l.getCellElement(g,f),v=u.beforeEditMethod||u.activeMethod;if((r.cell=m)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(w)&&!l.isPendingByRow(g)){if(a.row!==g||"cell"===c&&a.column!==f){let t="edit-disabled";if(!v||v(Object.assign(Object.assign({},r),{$table:l,$grid:n}))){d&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),l.closeTooltip(),a.column&&handleClearEdit(l,i),t="edit-activated",f.renderHeight=m.offsetHeight,a.args=r,a.row=g,a.column=f,"row"===c?s.forEach(e=>getEditColumnModel(g,e)):getEditColumnModel(g,f);let e=u.afterEditMethod;l.$nextTick(()=>{o&&l.handleFocus(r,i),e&&e(Object.assign(Object.assign({},r),{$table:l,$grid:n}))})}l.dispatchEvent(t,{row:g,rowIndex:l.getRowIndex(g),$rowIndex:l.getVMRowIndex(g),column:f,columnIndex:l.getColumnIndex(f),$columnIndex:l.getVMColumnIndex(f)},i),"edit-activated"===t&&l.dispatchEvent("edit-actived",{row:g,rowIndex:l.getRowIndex(g),$rowIndex:l.getVMRowIndex(g),column:f,columnIndex:l.getColumnIndex(f),$columnIndex:l.getVMColumnIndex(f)},i)}else{t=a.column;d&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),t!==f&&(w=t.model,w.update&&(0,_util.setCellValue)(g,t,w.value),l.clearValidate)&&l.clearValidate(g,f),f.renderHeight=m.offsetHeight,a.args=r,a.column=f,e&&setTimeout(()=>{l.handleFocus(r,i)})}h.column=null,h.row=null,l.focus()}return l.$nextTick()}function handleEditCell(t,l,e,r){let i=t;var o=t.editConfig;let n=_xeUtils.default.isString(e)?t.getColumnByField(e):e;return l&&n&&(0,_utils.isEnableConf)(o)&&(0,_utils.isEnableConf)(n.editRender)?Promise.resolve(r?t.scrollToRow(l,n):null).then(()=>{var e=t.getCellElement(l,n);return e&&(handleEditActive(t,{row:l,rowIndex:t.getRowIndex(l),column:n,columnIndex:t.getColumnIndex(n),cell:e,$table:t},null,r,r),i._lastCallTime=Date.now()),t.$nextTick()}):t.$nextTick()}var _default=exports.default={methods:{_insert(e){return handleInsertRowAt(this,e,null)},_insertAt(e,t){return handleInsertRowAt(this,e,t)},_insertNextAt(e,t){return handleInsertRowAt(this,e,t,!0)},_insertChild(e,t){return handleInsertChildRowAt(this,e,t,null)},_insertChildAt(e,t,l){return handleInsertChildRowAt(this,e,t,l)},_insertChildNextAt(e,t,l){return handleInsertChildRowAt(this,e,t,l,!0)},_remove(e){let l=this;var t=l,r=l,i=l,t=t.treeConfig;let{mergeList:o,editStore:n}=r,{tableFullTreeData:d,selectCheckboxMaps:a,afterFullData:s,tableFullData:u,pendingRowMaps:c}=i;var i=l.computeCheckboxOpts,h=l.computeTreeOpts;let{transform:g,mapChildrenField:f}=h,w=h.children||h.childrenField,{actived:m,removeMaps:v}=n,p=Object.assign({},n.insertMaps);h=i.checkField;let x=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=u,e.forEach(e=>{var t;l.isInsertByRow(e)||(t=(0,_util.getRowid)(l,e),v[t]=e)}),h||(e.forEach(e=>{e=(0,_util.getRowid)(this,e);a[e]&&delete a[e]}),r.updateCheckboxFlag++),u===e?(e=x=u.slice(0),this.tableFullData=[],this.afterFullData=[],this.clearMergeCells()):t&&g?e.forEach(e=>{let t=(0,_util.getRowid)(this,e);var l=_xeUtils.default.findTree(d,e=>t===(0,_util.getRowid)(this,e),{children:f}),l=(l&&(l=l.items.splice(l.index,1),x.push(l[0])),_xeUtils.default.findTree(d,e=>t===(0,_util.getRowid)(this,e),{children:w})),l=(l&&l.items.splice(l.index,1),this.findRowIndexOf(s,e));-1<l&&s.splice(l,1)}):e.forEach(e=>{var t=this.findRowIndexOf(u,e);-1<t&&(t=u.splice(t,1),x.push(t[0]));let r=this.findRowIndexOf(s,e);-1<r&&(o.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),s.splice(r,1))}),m.row&&-1<l.findRowIndexOf(e,m.row)&&l.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(l,e);p[e]&&delete p[e],c[e]&&delete c[e]}),n.insertMaps=p,r.pendingRowFlag++,l.updateFooter(),l.cacheRowMap(!1),l.handleTableData(t&&g),t&&g||l.updateAfterDataIndex(),l.checkSelectionStatus(),r.scrollYLoad&&l.updateScrollYSpace(),this.$nextTick().then(()=>(this.updateCellAreas(),this.recalculate())).then(()=>({row:x.length?x[x.length-1]:null,rows:x}))},_removeCheckboxRow(){return this.remove(this.getCheckboxRecords()).then(e=>(this.clearCheckboxRow(),e))},_removeRadioRow(){var e=this.getRadioRecord();return this.remove(e||[]).then(e=>(this.clearRadioRow(),e))},_removeCurrentRow(){var e=this.getCurrentRecord();return this.remove(e||[]).then(e=>(this.clearCurrentRow(),e))},_getRecordset(){var e=this.getRemoveRecords(),t=this.getPendingRecords();let l=e.concat(t);var r=this.getUpdateRecords().filter(t=>!l.some(e=>this.eqRow(e,t)));return{insertRecords:this.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},_getInsertRecords(){var e=this.editStore;let l=this.fullAllDataRowIdData;e=e.insertMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},_getRemoveRecords(){var e=this.editStore,e=e.removeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},_getUpdateRecords(){var e,t;let{keepSource:l,tableFullData:r,isUpdateByRow:i,treeConfig:o,treeOpts:n,editStore:d}=this;return l?(e=d.actived,{row:e,column:t}=e,(e||t)&&syncActivedCell(this),o?_xeUtils.default.filterTree(r,e=>i(e),n):r.filter(e=>i(e))):[]},handleEdit(e,t){return handleEditActive(this,e,t,!0,!0)},handleActived(e,t){return this.handleEdit(e,t)},_getColumnModel(e,t){getEditColumnModel(e,t)},_setColumnModel(e,t){setEditColumnModel(e,t)},_syncActivedCell(){syncActivedCell(this)},_clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},_clearEdit(e){return handleClearEdit(this,null,e)},handleClearEdit(e,t){return handleClearEdit(this,e,t)},_getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},_getEditRecord(){var{$el:e,editStore:t,afterFullData:l}=this,t=t.actived,{args:t,row:r}=t;return t&&-1<this.findRowIndexOf(l,r)&&e.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},t):null},_isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},_isEditByRow(e){return this.editStore.actived.row===e},handleFocus(r){var i=this.editOpts,{row:o,column:n,cell:d}=r,a=n.editRender;if((0,_utils.isEnableConf)(a)){var s=renderer.get(a.name);let e=a.autofocus||a.autoFocus,t=a.autoSelect||a.autoselect,l;i.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autoFocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e.call(this,r):e&&(l=!0===e?d.querySelector("input,textarea"):d.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((a=l.createTextRange()).collapse(!1),a.select()):i.autoPos&&!n.fixed&&this.scrollToRow(o,n)}},_setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),this.setEditRow(e)},_setEditRow(e,t){let l=_xeUtils.default.find(this.visibleColumn,e=>(0,_utils.isEnableConf)(e.editRender)),r=!1;return t&&(r=!0)!==t&&(l=_xeUtils.default.isString(t)?this.getColumnByField(t):t),handleEditCell(this,e,l,r)},_setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(e,t){return handleEditCell(this,e,t,!0)},_setSelectCell(e,t){var{tableData:l,editOpts:r,visibleColumn:i}=this,t=_xeUtils.default.isString(t)?this.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=this.findRowIndexOf(l,e))&&(l=this.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:i.indexOf(t),cell:l},this.handleSelected(e,{})),this.$nextTick()},handleSelected(e,t){let l=this,{mouseConfig:r,mouseOpts:i,editOpts:o,editStore:n}=this,{actived:d,selected:a}=n,{row:s,column:u}=e,c=r&&i.selected;return!c||a.row===s&&a.column===u||(d.row!==s||"cell"===o.mode&&d.column!==u)&&(handleClearEdit(l,t),this.clearSelected(t),this.clearCellAreas(t),this.clearCopyCellArea(t),a.args=e,a.row=s,a.column=u,c&&this.addCellSelectedClass(),this.focus(),t)&&this.emitEvent("cell-selected",e,t),this.$nextTick()},_getSelectedCell(){var{args:e,column:t}=this.editStore.selected;return e&&t?Object.assign({},e):null},_clearSelected(){var e=this.editStore.selected;return e.row=null,e.column=null,this.reColTitleSdCls(),removeCellSelectedClass(this),this.$nextTick()},reColTitleSdCls(){var e=this.elemStore["main-header-list"];e&&_xeUtils.default.arrayEach(e.querySelectorAll(".col--title-selected"),e=>(0,_dom.removeClass)(e,"col--title-selected"))},addCellSelectedClass(){var e=this.editStore,e=e.selected,{row:e,column:t}=e;removeCellSelectedClass(this),e&&t&&(e=this.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,renderer,getI18n}=_ui.VxeUI;function getEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)}function setEditColumnModel(e,t){var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)}function removeCellSelectedClass(e){var e=e.$refs.refElem;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}function syncActivedCell(e){var{editStore:t,tableColumn:l}=e,e=e.computeEditOpts,t=t.actived;let{row:r,column:i}=t;(r||i)&&("row"===e.mode?l.forEach(e=>setEditColumnModel(r,e)):setEditColumnModel(r,i))}function insertTreeRow(n,e,t){let{tableFullTreeData:d,afterFullData:a,fullDataRowIdData:s,fullAllDataRowIdData:u}=n;var l=n.computeTreeOpts;let{rowField:c,parentField:h,mapChildrenField:g}=l,w=l.children||l.childrenField,f=t?"push":"unshift";e.forEach(l=>{let t=l[h];var r=(0,_util.getRowid)(n,l),i=t?_xeUtils.default.findTree(d,e=>t===e[c],{children:g}):null;if(i){var i=i.item,o=u[(0,_util.getRowid)(n,i)],o=o?o.level:0;let e=i[w],t=i[g];_xeUtils.default.isArray(e)||(e=i[w]=[]),_xeUtils.default.isArray(t)||(t=i[w]=[]),e[f](l),t[f](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:i,level:o+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=i,u[r]=i}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),a[f](l),d[f](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:d,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[r]=o,u[r]=o}})}function handleInsertRowAt(a,t,l,s){var e=a;let i=a.treeConfig;var o=e.mergeList;let{tableFullTreeData:r,afterFullData:n,tableFullData:d,fullDataRowIdData:u,fullAllDataRowIdData:c,insertRowMaps:h}=a,g=a.computeTreeOpts,{transform:w,rowField:f,mapChildrenField:m}=g,p=g.children||g.childrenField,v=(_xeUtils.default.isArray(t)||(t=[t]),a.defineField(t.map(e=>Object.assign(i&&w?{[m]:[],[p]:[]}:{},e))));if(_xeUtils.default.eqNull(l))i&&w?insertTreeRow(a,v,!1):(v.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:n,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,n.unshift(e),d.unshift(e)}),o.forEach(e=>{var t=e.row;0<t&&(e.row=t+v.length)}));else if(-1===l)i&&w?insertTreeRow(a,v,!0):(v.forEach(e=>{var t=(0,_util.getRowid)(a,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:n,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,n.push(e),d.push(e)}),o.forEach(e=>{var{row:t,rowspan:l}=e;t+l>n.length&&(e.rowspan=l+v.length)}));else if(i&&w){let d=_xeUtils.default.findTree(r,e=>l[f]===e[f],{children:m});if(d){let i=d.parent,o=i?i[m]:r;t=c[(0,_util.getRowid)(a,i)];let n=t?t.level:0;if(v.forEach((e,t)=>{var l=(0,_util.getRowid)(a,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&i&&e[g.parentField]!==i[f]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+i[f]]),i&&(e[g.parentField]=i[f]);let r=d.index+t;s&&(r+=1),o.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:o,parent:i,level:n+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,c[l]=t}),i){t=_xeUtils.default.findTree(r,e=>l[f]===e[f],{children:p});if(t){var x=t.items;let e=t.index;s&&(e+=1),x.splice(e,0,...v)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),insertTreeRow(a,v,!0)}else{if(i)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<n.length&&(r=l):r=a.findRowIndexOf(n,l),-1===(r=s?Math.min(n.length,r+1):r))throw new Error((0,_log.errLog)("vxe.error.unableInsert"));n.splice(r,0,...v);t=a.findRowIndexOf(d,l);-1<t?d.splice(t+(s?1:0),0,...v):d.push(...v),o.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+v.length:t+l>r&&(e.rowspan=l+v.length)})}return v.forEach(e=>{var t=(0,_util.getRowid)(a,e);h[t]=e}),e.insertRowFlag++,a.cacheRowMap(!1),a.updateScrollYStatus(),a.handleTableData(i&&w),i&&w||a.updateAfterDataIndex(),a.updateFooter(),a.checkSelectionStatus(),e.scrollYLoad&&a.updateScrollYSpace(),a.$nextTick().then(()=>(a.updateCellAreas(),a.recalculate())).then(()=>({row:v.length?v[v.length-1]:null,rows:v}))}function handleInsertChildRowAt(e,t,l,r,i){var o=e.treeConfig;let{transform:n,rowField:d,parentField:a}=e.computeTreeOpts;return o&&n?handleInsertRowAt(e,(t=_xeUtils.default.isArray(t)?t:[t]).map(e=>Object.assign({},e,{[a]:l[d]})),r,i):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))}function handleClearEdit(e,t,l){var r=e.editStore,{actived:r,focused:i}=r,{row:o,column:n}=r,d=e.computeValidOpts;if(o||n){if(l&&(0,_util.getRowid)(e,l)!==(0,_util.getRowid)(e,o))return e.$nextTick();syncActivedCell(e),r.args=null,r.row=null,r.column=null,e.updateFooter(),e.dispatchEvent("edit-closed",{row:o,rowIndex:e.getRowIndex(o),$rowIndex:e.getVMRowIndex(o),column:n,columnIndex:e.getColumnIndex(n),$columnIndex:e.getVMColumnIndex(n)},t||null)}return i.row=null,i.column=null,d.autoClear&&("full"!==d.msgMode||"obsolete"===getConfig().cellVaildMode)&&e.clearValidate?e.clearValidate():e.$nextTick().then(()=>e.updateCellAreas())}function handleEditActive(l,r,i,o,e){let n=l.$xeGrid;var{editConfig:t,mouseConfig:d}=l,{editStore:a,tableColumn:s}=l,u=l.computeEditOpts,c=u.mode,{actived:a,focused:h}=a;let{row:g,column:w}=r;var f=w.editRender,m=r.cell||l.getCellElement(g,w),p=u.beforeEditMethod||u.activeMethod;if((r.cell=m)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(f)&&!l.isPendingByRow(g)){if(a.row!==g||"cell"===c&&a.column!==w){let t="edit-disabled";if(!p||p(Object.assign(Object.assign({},r),{$table:l,$grid:n}))){d&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),l.closeTooltip(),a.column&&handleClearEdit(l,i),t="edit-activated",w.renderHeight=m.offsetHeight,a.args=r,a.row=g,a.column=w,"row"===c?s.forEach(e=>getEditColumnModel(g,e)):getEditColumnModel(g,w);let e=u.afterEditMethod;l.$nextTick(()=>{o&&l.handleFocus(r,i),e&&e(Object.assign(Object.assign({},r),{$table:l,$grid:n}))})}l.dispatchEvent(t,{row:g,rowIndex:l.getRowIndex(g),$rowIndex:l.getVMRowIndex(g),column:w,columnIndex:l.getColumnIndex(w),$columnIndex:l.getVMColumnIndex(w)},i),"edit-activated"===t&&l.dispatchEvent("edit-actived",{row:g,rowIndex:l.getRowIndex(g),$rowIndex:l.getVMRowIndex(g),column:w,columnIndex:l.getColumnIndex(w),$columnIndex:l.getVMColumnIndex(w)},i)}else{t=a.column;d&&(l.clearSelected(),l.clearCellAreas)&&(l.clearCellAreas(),l.clearCopyCellArea()),t!==w&&(f=t.model,f.update&&(0,_util.setCellValue)(g,t,f.value),l.clearValidate)&&l.clearValidate(g,w),w.renderHeight=m.offsetHeight,a.args=r,a.column=w,e&&setTimeout(()=>{l.handleFocus(r,i)})}h.column=null,h.row=null,l.focus()}return l.$nextTick()}function handleEditCell(t,l,e,r){let i=t;var o=t.editConfig;let n=_xeUtils.default.isString(e)?t.getColumnByField(e):e;return l&&n&&(0,_utils.isEnableConf)(o)&&(0,_utils.isEnableConf)(n.editRender)?Promise.resolve(r?t.scrollToRow(l,n):null).then(()=>{var e=t.getCellElement(l,n);return e&&(handleEditActive(t,{row:l,rowIndex:t.getRowIndex(l),column:n,columnIndex:t.getColumnIndex(n),cell:e,$table:t},null,r,r),i._lastCallTime=Date.now()),t.$nextTick()}):t.$nextTick()}var _default=exports.default={methods:{_insert(e){return handleInsertRowAt(this,e,null)},_insertAt(e,t){return handleInsertRowAt(this,e,t)},_insertNextAt(e,t){return handleInsertRowAt(this,e,t,!0)},_insertChild(e,t){return handleInsertChildRowAt(this,e,t,null)},_insertChildAt(e,t,l){return handleInsertChildRowAt(this,e,t,l)},_insertChildNextAt(e,t,l){return handleInsertChildRowAt(this,e,t,l,!0)},_remove(e){let l=this;var t=l,r=l,i=l,t=t.treeConfig;let{mergeList:o,editStore:n}=r,{tableFullTreeData:d,selectCheckboxMaps:a,afterFullData:s,tableFullData:u,pendingRowMaps:c,insertRowMaps:h,removeRowMaps:g}=i;var i=l.computeCheckboxOpts,w=l.computeTreeOpts;let{transform:f,mapChildrenField:m}=w,p=w.children||w.childrenField;w=n.actived,i=i.checkField;let v=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=u,e.forEach(e=>{var t;l.isInsertByRow(e)||(t=(0,_util.getRowid)(l,e),g[t]=e)}),i||(e.forEach(e=>{e=(0,_util.getRowid)(this,e);a[e]&&delete a[e]}),r.updateCheckboxFlag++),u===e?(e=v=u.slice(0),this.tableFullData=[],this.afterFullData=[],this.clearMergeCells()):t&&f?e.forEach(e=>{let t=(0,_util.getRowid)(this,e);var l=_xeUtils.default.findTree(d,e=>t===(0,_util.getRowid)(this,e),{children:m}),l=(l&&(l=l.items.splice(l.index,1),v.push(l[0])),_xeUtils.default.findTree(d,e=>t===(0,_util.getRowid)(this,e),{children:p})),l=(l&&l.items.splice(l.index,1),this.findRowIndexOf(s,e));-1<l&&s.splice(l,1)}):e.forEach(e=>{var t=this.findRowIndexOf(u,e);-1<t&&(t=u.splice(t,1),v.push(t[0]));let r=this.findRowIndexOf(s,e);-1<r&&(o.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),s.splice(r,1))}),w.row&&-1<l.findRowIndexOf(e,w.row)&&l.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(l,e);h[e]&&delete h[e],c[e]&&delete c[e]}),r.removeRowFlag++,r.insertRowFlag++,r.pendingRowFlag++,l.updateFooter(),l.cacheRowMap(!1),l.handleTableData(t&&f),t&&f||l.updateAfterDataIndex(),l.checkSelectionStatus(),r.scrollYLoad&&l.updateScrollYSpace(),this.$nextTick().then(()=>(this.updateCellAreas(),this.recalculate())).then(()=>({row:v.length?v[v.length-1]:null,rows:v}))},_removeCheckboxRow(){return this.remove(this.getCheckboxRecords()).then(e=>(this.clearCheckboxRow(),e))},_removeRadioRow(){var e=this.getRadioRecord();return this.remove(e||[]).then(e=>(this.clearRadioRow(),e))},_removeCurrentRow(){var e=this.getCurrentRecord();return this.remove(e||[]).then(e=>(this.clearCurrentRow(),e))},_getRecordset(){var e=this.getRemoveRecords(),t=this.getPendingRecords();let l=e.concat(t);var r=this.getUpdateRecords().filter(t=>!l.some(e=>this.eqRow(e,t)));return{insertRecords:this.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},_getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=this,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},_getRemoveRecords(){var e=this.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},_getUpdateRecords(){let t=this;var{keepSource:e,treeConfig:l}=t,r=t.tableFullData,i=t.computeTreeOpts;return e?(syncActivedCell(t),l?_xeUtils.default.filterTree(r,e=>t.isUpdateByRow(e),i):r.filter(e=>t.isUpdateByRow(e))):[]},handleEdit(e,t){return handleEditActive(this,e,t,!0,!0)},handleActived(e,t){return this.handleEdit(e,t)},_getColumnModel(e,t){getEditColumnModel(e,t)},_setColumnModel(e,t){setEditColumnModel(e,t)},_syncActivedCell(){syncActivedCell(this)},_clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},_clearEdit(e){return handleClearEdit(this,null,e)},handleClearEdit(e,t){return handleClearEdit(this,e,t)},_getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},_getEditRecord(){var e=this.editStore,t=this.afterFullData,l=this.$refs.refElem,{args:e,row:r}=e.actived;return e&&-1<this.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},_isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},_isEditByRow(e){var t=this.editStore;return t.actived.row===e},handleFocus(r){var{row:i,column:o,cell:n}=r,d=o.editRender,a=this.computeEditOpts;if((0,_utils.isEnableConf)(d)){var s=renderer.get(d.name);let e=d.autofocus||d.autoFocus,t=d.autoSelect||d.autoselect,l;a.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autoFocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e.call(this,r):e&&(l=!0===e?n.querySelector("input,textarea"):n.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((d=l.createTextRange()).collapse(!1),d.select()):a.autoPos&&!o.fixed&&this.scrollToRow(i,o)}},_setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),this.setEditRow(e)},_setEditRow(e,t){let l=_xeUtils.default.find(this.visibleColumn,e=>(0,_utils.isEnableConf)(e.editRender)),r=!1;return t&&(r=!0)!==t&&(l=_xeUtils.default.isString(t)?this.getColumnByField(t):t),handleEditCell(this,e,l,r)},_setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(e,t){return handleEditCell(this,e,t,!0)},_setSelectCell(e,t){var l=this,r=l.tableData,i=l.computeEditOpts,t=_xeUtils.default.isString(t)?l.getColumnByField(t):t;return e&&t&&"manual"!==i.trigger&&-1<(i=l.findRowIndexOf(r,e))&&(r=l.getCellElement(e,t),e={row:e,rowIndex:i,column:t,columnIndex:l.getColumnIndex(t),cell:r},l.handleSelected(e,{})),l.$nextTick()},handleSelected(e,t){let l=this;var r=l.mouseConfig,i=l.editStore,o=l.computeMouseOpts;let n=l.computeEditOpts,{actived:d,selected:a}=i,{row:s,column:u}=e,c=r&&o.selected;return!c||a.row===s&&a.column===u||(d.row!==s||"cell"===n.mode&&d.column!==u)&&(handleClearEdit(l,t),l.clearSelected(),l.clearCellAreas&&(l.clearCellAreas(),l.clearCopyCellArea()),a.args=e,a.row=s,a.column=u,c&&this.addCellSelectedClass(),l.focus(),t)&&l.dispatchEvent("cell-selected",e,t),l.$nextTick()},_getSelectedCell(){var e=this.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},_clearSelected(){var e=this.editStore,e=e.selected;return e.row=null,e.column=null,removeCellSelectedClass(this),this.$nextTick()},reColTitleSdCls(){var e=this.elemStore["main-header-list"];e&&_xeUtils.default.arrayEach(e.querySelectorAll(".col--title-selected"),e=>(0,_dom.removeClass)(e,"col--title-selected"))},addCellSelectedClass(){var e=this.editStore,e=e.selected,{row:e,column:t}=e;removeCellSelectedClass(this),e&&t&&(e=this.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}}};
@@ -170,23 +170,17 @@ var _default = exports.default = {
170
170
  beginValidate(rows, cols, cb, isFull) {
171
171
  const $xeTable = this;
172
172
  const props = $xeTable;
173
- const reactData = $xeTable;
174
173
  const internalData = $xeTable;
175
174
  const validRest = {};
176
175
  const {
177
176
  editRules,
178
177
  treeConfig
179
178
  } = props;
180
- const {
181
- editStore
182
- } = reactData;
183
179
  const {
184
180
  afterFullData,
185
- pendingRowMaps
181
+ pendingRowMaps,
182
+ removeRowMaps
186
183
  } = internalData;
187
- const {
188
- removeMaps
189
- } = editStore;
190
184
  const treeOpts = $xeTable.computeTreeOpts;
191
185
  const childrenField = treeOpts.children || treeOpts.childrenField;
192
186
  let validList;
@@ -212,7 +206,7 @@ var _default = exports.default = {
212
206
  const handleVaild = row => {
213
207
  const rowid = (0, _util.getRowid)($xeTable, row);
214
208
  // 是否删除
215
- if (removeMaps[rowid]) {
209
+ if (removeRowMaps[rowid]) {
216
210
  return;
217
211
  }
218
212
  // 是否标记删除
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util=require("../../src/util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,validators}=_ui.VxeUI;class Rule{constructor(e){Object.defineProperty(this,"$options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}function validErrorRuleValue(e,t){var{type:e,min:l,max:i,pattern:r}=e,e="number"===e,s=e?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||!_xeUtils.default.eqNull(l)&&s<_xeUtils.default.toNumber(l)||!_xeUtils.default.eqNull(i)&&s>_xeUtils.default.toNumber(i)||!(!r||(_xeUtils.default.isRegExp(r)?r:new RegExp(r)).test(t))}var _default=exports.default={methods:{_fullValidate(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["fullValidate(rows, callback)","fullValidate(rows)"]),this.beginValidate(e,null,t,!0)},_validate(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["validate(rows, callback)","validate(rows)"]),this.beginValidate(e,null,t)},_fullValidateField(e,t){t=(_xeUtils.default.isArray(t)?t:t?[t]:[]).map(e=>(0,_util.handleFieldOrColumn)(this,e));return t.length?this.beginValidate(e,t,null,!0):this.$nextTick()},_validateField(e,t){t=(_xeUtils.default.isArray(t)?t:t?[t]:[]).map(e=>(0,_util.handleFieldOrColumn)(this,e));return t.length?this.beginValidate(e,t,null):this.$nextTick()},handleValidError(t){let l=this.validOpts;return new Promise(e=>{!1===l.autoPos?(this.emitEvent("valid-error",t),e()):this.handleEdit(t,{type:"valid-error",trigger:"call"}).then(()=>{setTimeout(()=>{e(this.showValidTooltip(t))},10)})})},handleErrMsgMode(e){var t,l=this.validOpts;return"single"===l.msgMode?(l={},(t=Object.keys(e)).length&&(l[t=t[0]]=e[t]),l):e},beginValidate(e,l,a,s){let i=this;var r=i,t=i,o=i;let u={},{editRules:n,treeConfig:d}=r;r=t.editStore;let{afterFullData:h,pendingRowMaps:g}=o,c=r.removeMaps;t=i.computeTreeOpts,o=t.children||t.childrenField;let f,p=(!0===e?f=h:e&&(_xeUtils.default.isFunction(e)?a=e:f=_xeUtils.default.isArray(e)?e:[e]),f=f||this.getInsertRecords().concat(this.getUpdateRecords()),[]),m=(this.lastCallTime=Date.now(),this.validRuleErr=!1,this.clearValidate(),{});if(n){let t=l&&l.length?l:this.getColumns();r=r=>{var e=(0,_util.getRowid)(i,r);if(!c[e]&&!g[e]&&(s||!this.validRuleErr)){let e=[];t.forEach(l=>{let i=_xeUtils.default.isString(l)?l:l.field;!s&&this.validRuleErr||!_xeUtils.default.has(n,i)||e.push(this.validCellRules("all",r,l).catch(({rule:e,rules:t})=>{t={rule:e,rules:t,rowIndex:this.getRowIndex(r),row:r,columnIndex:this.getColumnIndex(l),column:l,field:i,$table:this};if(u[i]||(u[i]=[]),m[(0,_util.getRowid)(this,r)+":"+l.id]={column:l,row:r,rule:e,content:e.content},u[i].push(t),!s)return this.validRuleErr=!0,Promise.reject(t)}))}),p.push(Promise.all(e))}};return d?_xeUtils.default.eachTree(f,r,{children:o}):f.forEach(r),Promise.all(p).then(()=>{let e=Object.keys(u);return this.validErrorMaps=this.handleErrMsgMode(m),this.$nextTick().then(()=>{if(e.length)return Promise.reject(u[e[0]][0]);a&&a()})}).catch(s=>new Promise((e,t)=>{let l=()=>{this.$nextTick(()=>{a?(a(u),e()):("obsolete"===getConfig().validToReject?t:e)(u)})};var i,r=()=>{s.cell=this.getCellElement(s.row,s.column),(0,_dom.scrollToView)(s.cell),this.handleValidError(s).then(l)};!1===this.validOpts.autoPos?l():(i=s.row,this.scrollToRow(i,s.column).then(r))}))}return this.validErrorMaps={},this.$nextTick().then(()=>{a&&a()})},hasCellRules(t,e,l){var i=this.editRules,l=l.property;return!(!l||!i)&&(i=_xeUtils.default.get(i,l))&&_xeUtils.default.find(i,e=>"all"===t||!e.trigger||t===e.trigger)},validCellRules(e,d,h,t){var l=this.editRules,i=h.property;let g=[],c=[];if(i&&l){let n=_xeUtils.default.get(l,i);if(n){let u=_xeUtils.default.isUndefined(t)?_xeUtils.default.get(d,i):t;n.forEach(t=>{let{type:l,trigger:i,required:r,validator:s}=t;if("all"===e||!i||e===i)if(s){var a={cellValue:u,rule:t,rules:n,row:d,rowIndex:this.getRowIndex(d),column:h,columnIndex:this.getColumnIndex(h),field:h.property,$table:this};let e;_xeUtils.default.isString(s)?(o=validators.get(s))?(o=o.tableCellValidatorMethod||o.cellValidatorMethod)?e=o(a):"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.notValidators",[s]):(0,_log.errLog)("vxe.error.notValidators",[s]):e=s(a),e&&(_xeUtils.default.isError(e)?(this.validRuleErr=!0,g.push(new Rule({type:"custom",trigger:i,content:e.message,rule:new Rule(t)}))):e.catch&&c.push(e.catch(e=>{this.validRuleErr=!0,g.push(new Rule({type:"custom",trigger:i,content:e&&e.message?e.message:t.content||t.message,rule:new Rule(t)}))})))}else{var o="array"===l,a=_xeUtils.default.isArray(u);let e=!0;e=o||a?!a||!u.length:_xeUtils.default.isString(u)?(0,_utils.eqEmptyValue)(u.trim()):(0,_utils.eqEmptyValue)(u),(r?e||validErrorRuleValue(t,u):!e&&validErrorRuleValue(t,u))&&(this.validRuleErr=!0,g.push(new Rule(t)))}})}}return Promise.all(c).then(()=>{var e;if(g.length)return e={rules:g,rule:g[0]},Promise.reject(e)})},_clearValidate(e,t){var{validOpts:l,validErrorMaps:i}=this,r=this.$refs.refValidTooltip,e=_xeUtils.default.isArray(e)?e:e?[e]:[];let s=(_xeUtils.default.isArray(t)?t:t?[t]:[]).map(e=>(0,_util.handleFieldOrColumn)(this,e)),a={};if(r&&r.visible&&r.close(),"single"===l.msgMode)this.validErrorMaps={};else{if(e.length&&s.length)a=Object.assign({},i),e.forEach(t=>{s.forEach(e=>{e=(0,_util.getRowid)(this,t)+":"+e.id;a[e]&&delete a[e]})});else if(e.length){let l=e.map(e=>""+(0,_util.getRowid)(this,e));_xeUtils.default.each(i,(e,t)=>{-1<l.indexOf(t.split(":")[0])&&(a[t]=e)})}else if(s.length){let l=s.map(e=>""+e.id);_xeUtils.default.each(i,(e,t)=>{-1<l.indexOf(t.split(":")[1])&&(a[t]=e)})}this.validErrorMaps=a}return this.$nextTick()},triggerValidate(r){let{editConfig:e,editStore:t,editRules:l,editOpts:s,validOpts:i}=this;var a=t.actived;if(l&&"single"===i.msgMode&&(this.validErrorMaps={}),e&&l&&a.row){let{row:t,column:l,cell:i}=a.args;if(this.hasCellRules(r,t,l))return this.validCellRules(r,t,l).then(()=>{"row"===s.mode&&this.clearValidate(t,l)}).catch(({rule:e})=>e.trigger&&r!==e.trigger?Promise.resolve():(e={rule:e,row:t,column:l,cell:i},this.showValidTooltip(e),Promise.reject(e)))}return Promise.resolve()},showValidTooltip(e){var{$refs:t,height:l,validStore:i,validErrorMaps:r,tableData:s,validOpts:a}=this,{rule:o,row:u,column:n,cell:d}=e,t=t.refValidTooltip,h=o.content;return i.visible=!0,"single"===a.msgMode?this.validErrorMaps={[(0,_util.getRowid)(this,u)+":"+n.id]:{column:n,row:u,rule:o,content:h}}:this.validErrorMaps=Object.assign({},r,{[(0,_util.getRowid)(this,u)+":"+n.id]:{column:n,row:u,rule:o,content:h}}),this.emitEvent("valid-error",e,null),t&&("tooltip"===a.message||"default"===a.message&&!l&&s.length<2)?t.open(d,h):this.$nextTick()}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_util=require("../../src/util"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,validators}=_ui.VxeUI;class Rule{constructor(e){Object.defineProperty(this,"$options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.max,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}function validErrorRuleValue(e,t){var{type:e,min:l,max:i,pattern:r}=e,e="number"===e,s=e?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||!_xeUtils.default.eqNull(l)&&s<_xeUtils.default.toNumber(l)||!_xeUtils.default.eqNull(i)&&s>_xeUtils.default.toNumber(i)||!(!r||(_xeUtils.default.isRegExp(r)?r:new RegExp(r)).test(t))}var _default=exports.default={methods:{_fullValidate(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["fullValidate(rows, callback)","fullValidate(rows)"]),this.beginValidate(e,null,t,!0)},_validate(e,t){return"development"===process.env.NODE_ENV&&_xeUtils.default.isFunction(t)&&(0,_log.warnLog)("vxe.error.notValidators",["validate(rows, callback)","validate(rows)"]),this.beginValidate(e,null,t)},_fullValidateField(e,t){t=(_xeUtils.default.isArray(t)?t:t?[t]:[]).map(e=>(0,_util.handleFieldOrColumn)(this,e));return t.length?this.beginValidate(e,t,null,!0):this.$nextTick()},_validateField(e,t){t=(_xeUtils.default.isArray(t)?t:t?[t]:[]).map(e=>(0,_util.handleFieldOrColumn)(this,e));return t.length?this.beginValidate(e,t,null):this.$nextTick()},handleValidError(t){let l=this.validOpts;return new Promise(e=>{!1===l.autoPos?(this.emitEvent("valid-error",t),e()):this.handleEdit(t,{type:"valid-error",trigger:"call"}).then(()=>{setTimeout(()=>{e(this.showValidTooltip(t))},10)})})},handleErrMsgMode(e){var t,l=this.validOpts;return"single"===l.msgMode?(l={},(t=Object.keys(e)).length&&(l[t=t[0]]=e[t]),l):e},beginValidate(e,l,a,s){let i=this;var r=i,o=i;let u={},{editRules:n,treeConfig:d}=r,{afterFullData:t,pendingRowMaps:h,removeRowMaps:g}=o;r=i.computeTreeOpts,o=r.children||r.childrenField;let c,f=(!0===e?c=t:e&&(_xeUtils.default.isFunction(e)?a=e:c=_xeUtils.default.isArray(e)?e:[e]),c=c||this.getInsertRecords().concat(this.getUpdateRecords()),[]),p=(this.lastCallTime=Date.now(),this.validRuleErr=!1,this.clearValidate(),{});if(n){let t=l&&l.length?l:this.getColumns();r=r=>{var e=(0,_util.getRowid)(i,r);if(!g[e]&&!h[e]&&(s||!this.validRuleErr)){let e=[];t.forEach(l=>{let i=_xeUtils.default.isString(l)?l:l.field;!s&&this.validRuleErr||!_xeUtils.default.has(n,i)||e.push(this.validCellRules("all",r,l).catch(({rule:e,rules:t})=>{t={rule:e,rules:t,rowIndex:this.getRowIndex(r),row:r,columnIndex:this.getColumnIndex(l),column:l,field:i,$table:this};if(u[i]||(u[i]=[]),p[(0,_util.getRowid)(this,r)+":"+l.id]={column:l,row:r,rule:e,content:e.content},u[i].push(t),!s)return this.validRuleErr=!0,Promise.reject(t)}))}),f.push(Promise.all(e))}};return d?_xeUtils.default.eachTree(c,r,{children:o}):c.forEach(r),Promise.all(f).then(()=>{let e=Object.keys(u);return this.validErrorMaps=this.handleErrMsgMode(p),this.$nextTick().then(()=>{if(e.length)return Promise.reject(u[e[0]][0]);a&&a()})}).catch(s=>new Promise((e,t)=>{let l=()=>{this.$nextTick(()=>{a?(a(u),e()):("obsolete"===getConfig().validToReject?t:e)(u)})};var i,r=()=>{s.cell=this.getCellElement(s.row,s.column),(0,_dom.scrollToView)(s.cell),this.handleValidError(s).then(l)};!1===this.validOpts.autoPos?l():(i=s.row,this.scrollToRow(i,s.column).then(r))}))}return this.validErrorMaps={},this.$nextTick().then(()=>{a&&a()})},hasCellRules(t,e,l){var i=this.editRules,l=l.property;return!(!l||!i)&&(i=_xeUtils.default.get(i,l))&&_xeUtils.default.find(i,e=>"all"===t||!e.trigger||t===e.trigger)},validCellRules(e,d,h,t){var l=this.editRules,i=h.property;let g=[],c=[];if(i&&l){let n=_xeUtils.default.get(l,i);if(n){let u=_xeUtils.default.isUndefined(t)?_xeUtils.default.get(d,i):t;n.forEach(t=>{let{type:l,trigger:i,required:r,validator:s}=t;if("all"===e||!i||e===i)if(s){var a={cellValue:u,rule:t,rules:n,row:d,rowIndex:this.getRowIndex(d),column:h,columnIndex:this.getColumnIndex(h),field:h.property,$table:this};let e;_xeUtils.default.isString(s)?(o=validators.get(s))?(o=o.tableCellValidatorMethod||o.cellValidatorMethod)?e=o(a):"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.notValidators",[s]):(0,_log.errLog)("vxe.error.notValidators",[s]):e=s(a),e&&(_xeUtils.default.isError(e)?(this.validRuleErr=!0,g.push(new Rule({type:"custom",trigger:i,content:e.message,rule:new Rule(t)}))):e.catch&&c.push(e.catch(e=>{this.validRuleErr=!0,g.push(new Rule({type:"custom",trigger:i,content:e&&e.message?e.message:t.content||t.message,rule:new Rule(t)}))})))}else{var o="array"===l,a=_xeUtils.default.isArray(u);let e=!0;e=o||a?!a||!u.length:_xeUtils.default.isString(u)?(0,_utils.eqEmptyValue)(u.trim()):(0,_utils.eqEmptyValue)(u),(r?e||validErrorRuleValue(t,u):!e&&validErrorRuleValue(t,u))&&(this.validRuleErr=!0,g.push(new Rule(t)))}})}}return Promise.all(c).then(()=>{var e;if(g.length)return e={rules:g,rule:g[0]},Promise.reject(e)})},_clearValidate(e,t){var{validOpts:l,validErrorMaps:i}=this,r=this.$refs.refValidTooltip,e=_xeUtils.default.isArray(e)?e:e?[e]:[];let s=(_xeUtils.default.isArray(t)?t:t?[t]:[]).map(e=>(0,_util.handleFieldOrColumn)(this,e)),a={};if(r&&r.visible&&r.close(),"single"===l.msgMode)this.validErrorMaps={};else{if(e.length&&s.length)a=Object.assign({},i),e.forEach(t=>{s.forEach(e=>{e=(0,_util.getRowid)(this,t)+":"+e.id;a[e]&&delete a[e]})});else if(e.length){let l=e.map(e=>""+(0,_util.getRowid)(this,e));_xeUtils.default.each(i,(e,t)=>{-1<l.indexOf(t.split(":")[0])&&(a[t]=e)})}else if(s.length){let l=s.map(e=>""+e.id);_xeUtils.default.each(i,(e,t)=>{-1<l.indexOf(t.split(":")[1])&&(a[t]=e)})}this.validErrorMaps=a}return this.$nextTick()},triggerValidate(r){let{editConfig:e,editStore:t,editRules:l,editOpts:s,validOpts:i}=this;var a=t.actived;if(l&&"single"===i.msgMode&&(this.validErrorMaps={}),e&&l&&a.row){let{row:t,column:l,cell:i}=a.args;if(this.hasCellRules(r,t,l))return this.validCellRules(r,t,l).then(()=>{"row"===s.mode&&this.clearValidate(t,l)}).catch(({rule:e})=>e.trigger&&r!==e.trigger?Promise.resolve():(e={rule:e,row:t,column:l,cell:i},this.showValidTooltip(e),Promise.reject(e)))}return Promise.resolve()},showValidTooltip(e){var{$refs:t,height:l,validStore:i,validErrorMaps:r,tableData:s,validOpts:a}=this,{rule:o,row:u,column:n,cell:d}=e,t=t.refValidTooltip,h=o.content;return i.visible=!0,"single"===a.msgMode?this.validErrorMaps={[(0,_util.getRowid)(this,u)+":"+n.id]:{column:n,row:u,rule:o,content:h}}:this.validErrorMaps=Object.assign({},r,{[(0,_util.getRowid)(this,u)+":"+n.id]:{column:n,row:u,rule:o,content:h}}),this.emitEvent("valid-error",e,null),t&&("tooltip"===a.message||"default"===a.message&&!l&&s.length<2)?t.open(d,h):this.$nextTick()}}};
@@ -518,9 +518,12 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
518
518
  } = (0, _util.createHandleGetRowId)($xeTable);
519
519
  tableData.forEach((row, $rowIndex) => {
520
520
  const trOn = {};
521
+ const rowid = handleGetRowId(row);
522
+ const rowRest = fullAllDataRowIdData[rowid] || {};
521
523
  let rowIndex = $rowIndex;
522
- // 确保任何情况下 rowIndex 都精准指向真实 data 索引
523
- rowIndex = $xeTable.getRowIndex(row);
524
+ let rowLevel = 0;
525
+ let seq = -1;
526
+ let _rowIndex = -1;
524
527
  // 当前行事件
525
528
  if (rowOpts.isHover || highlightHoverRow) {
526
529
  trOn.mouseenter = evnt => {
@@ -539,11 +542,6 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
539
542
  $xeTable.clearHoverRow();
540
543
  };
541
544
  }
542
- const rowid = handleGetRowId(row);
543
- const rowRest = fullAllDataRowIdData[rowid] || {};
544
- let rowLevel = 0;
545
- let seq = -1;
546
- let _rowIndex = 0;
547
545
  if (rowRest) {
548
546
  rowLevel = rowRest.level;
549
547
  if (treeConfig && transform && seqMode === 'increasing') {
@@ -551,6 +549,7 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
551
549
  } else {
552
550
  seq = rowRest.seq;
553
551
  }
552
+ rowIndex = rowRest.index;
554
553
  _rowIndex = rowRest._index;
555
554
  }
556
555
  const params = {