vxe-table 3.11.9 → 3.11.10

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.
@@ -93,17 +93,25 @@ function insertTreeRow(_vm, newRecords, isAppend) {
93
93
  });
94
94
  }
95
95
  function handleInsertRowAt(_vm, records, row, isInsertNextRow) {
96
+ const $xeTable = _vm;
97
+ const props = $xeTable;
98
+ const reactData = $xeTable;
99
+ const internalData = $xeTable;
100
+ const {
101
+ treeConfig
102
+ } = props;
96
103
  const {
97
- tableFullTreeData,
98
104
  mergeList,
105
+ editStore
106
+ } = reactData;
107
+ const {
108
+ tableFullTreeData,
99
109
  afterFullData,
100
- editStore,
101
110
  tableFullData,
102
- treeConfig,
103
111
  fullDataRowIdData,
104
- fullAllDataRowIdData,
105
- treeOpts
106
- } = _vm;
112
+ fullAllDataRowIdData
113
+ } = internalData;
114
+ const treeOpts = $xeTable.computeTreeOpts;
107
115
  const {
108
116
  transform,
109
117
  rowField,
@@ -122,8 +130,25 @@ function handleInsertRowAt(_vm, records, row, isInsertNextRow) {
122
130
  if (treeConfig && transform) {
123
131
  insertTreeRow(_vm, newRecords, false);
124
132
  } else {
125
- afterFullData.unshift(...newRecords);
126
- tableFullData.unshift(...newRecords);
133
+ newRecords.forEach(item => {
134
+ const rowid = (0, _util.getRowid)($xeTable, item);
135
+ const rest = {
136
+ row: item,
137
+ rowid,
138
+ seq: -1,
139
+ index: -1,
140
+ _index: -1,
141
+ $index: -1,
142
+ items: afterFullData,
143
+ parent: null,
144
+ level: 0,
145
+ height: 0
146
+ };
147
+ fullDataRowIdData[rowid] = rest;
148
+ fullAllDataRowIdData[rowid] = rest;
149
+ afterFullData.push(item);
150
+ tableFullData.push(item);
151
+ });
127
152
  // 刷新单元格合并
128
153
  mergeList.forEach(mergeItem => {
129
154
  const {
@@ -140,8 +165,25 @@ function handleInsertRowAt(_vm, records, row, isInsertNextRow) {
140
165
  if (treeConfig && transform) {
141
166
  insertTreeRow(_vm, newRecords, true);
142
167
  } else {
143
- afterFullData.push(...newRecords);
144
- tableFullData.push(...newRecords);
168
+ newRecords.forEach(item => {
169
+ const rowid = (0, _util.getRowid)($xeTable, item);
170
+ const rest = {
171
+ row: item,
172
+ rowid,
173
+ seq: -1,
174
+ index: -1,
175
+ _index: -1,
176
+ $index: -1,
177
+ items: afterFullData,
178
+ parent: null,
179
+ level: 0,
180
+ height: 0
181
+ };
182
+ fullDataRowIdData[rowid] = rest;
183
+ fullAllDataRowIdData[rowid] = rest;
184
+ afterFullData.push(item);
185
+ tableFullData.push(item);
186
+ });
145
187
  // 刷新单元格合并
146
188
  mergeList.forEach(mergeItem => {
147
189
  const {
@@ -256,14 +298,12 @@ function handleInsertRowAt(_vm, records, row, isInsertNextRow) {
256
298
  }
257
299
  }
258
300
  const {
259
- insertList,
260
301
  insertMaps
261
302
  } = editStore;
262
303
  newRecords.forEach(newRow => {
263
- const rowid = (0, _util.getRowid)(_vm, newRow);
304
+ const rowid = (0, _util.getRowid)($xeTable, newRow);
264
305
  insertMaps[rowid] = newRow;
265
306
  });
266
- insertList.unshift(...newRecords);
267
307
  _vm.cacheRowMap();
268
308
  _vm.updateScrollYStatus();
269
309
  _vm.handleTableData(treeConfig && transform);
@@ -317,18 +357,25 @@ var _default = exports.default = {
317
357
  * 如果为空则删除所有
318
358
  */
319
359
  _remove(rows) {
360
+ const $xeTable = this;
361
+ const props = $xeTable;
362
+ const reactData = $xeTable;
363
+ const internalData = $xeTable;
364
+ const {
365
+ treeConfig
366
+ } = props;
320
367
  const {
321
- afterFullData,
322
- tableFullData,
323
- tableFullTreeData,
324
- treeConfig,
325
368
  mergeList,
326
369
  editStore,
327
- checkboxOpts,
328
- selectCheckboxMaps,
329
- isInsertByRow,
330
- treeOpts
331
- } = this;
370
+ selectCheckboxMaps
371
+ } = reactData;
372
+ const {
373
+ tableFullTreeData,
374
+ afterFullData,
375
+ tableFullData
376
+ } = internalData;
377
+ const checkboxOpts = $xeTable.computeCheckboxOpts;
378
+ const treeOpts = $xeTable.computeTreeOpts;
332
379
  const {
333
380
  transform,
334
381
  mapChildrenField
@@ -337,7 +384,6 @@ var _default = exports.default = {
337
384
  const {
338
385
  actived,
339
386
  removeList,
340
- insertList,
341
387
  insertMaps
342
388
  } = editStore;
343
389
  const {
@@ -351,7 +397,7 @@ var _default = exports.default = {
351
397
  }
352
398
  // 如果是新增,则保存记录
353
399
  rows.forEach(row => {
354
- if (!isInsertByRow(row)) {
400
+ if (!$xeTable.isInsertByRow(row)) {
355
401
  removeList.push(row);
356
402
  }
357
403
  });
@@ -422,27 +468,25 @@ var _default = exports.default = {
422
468
  }
423
469
  }
424
470
  // 如果当前行被激活编辑,则清除激活状态
425
- if (actived.row && this.findRowIndexOf(rows, actived.row) > -1) {
426
- this.clearEdit();
471
+ if (actived.row && $xeTable.findRowIndexOf(rows, actived.row) > -1) {
472
+ $xeTable.clearEdit();
427
473
  }
428
474
  // 从新增中移除已删除的数据
429
475
  rows.forEach(row => {
430
- const rowid = (0, _util.getRowid)(this, row);
431
- const iIndex = this.findRowIndexOf(insertList, row);
432
- if (iIndex > -1) {
433
- insertList.splice(iIndex, 1);
476
+ const rowid = (0, _util.getRowid)($xeTable, row);
477
+ if (insertMaps[rowid]) {
478
+ delete insertMaps[rowid];
434
479
  }
435
- delete insertMaps[rowid];
436
480
  });
437
- this.handleTableData(treeConfig && transform);
481
+ $xeTable.updateFooter();
482
+ $xeTable.cacheRowMap();
483
+ $xeTable.handleTableData(treeConfig && transform);
438
484
  if (!(treeConfig && transform)) {
439
- this.updateAfterDataIndex();
485
+ $xeTable.updateAfterDataIndex();
440
486
  }
441
- this.updateFooter();
442
- this.cacheRowMap();
443
- this.checkSelectionStatus();
444
- if (this.scrollYLoad) {
445
- this.updateScrollYSpace();
487
+ $xeTable.checkSelectionStatus();
488
+ if (reactData.scrollYLoad) {
489
+ $xeTable.updateScrollYSpace();
446
490
  }
447
491
  return this.$nextTick().then(() => {
448
492
  this.updateCellAreas();
@@ -505,13 +549,20 @@ var _default = exports.default = {
505
549
  * 获取新增的临时数据
506
550
  */
507
551
  _getInsertRecords() {
552
+ const $xeTable = this;
553
+ const reactData = $xeTable;
554
+ const internalData = $xeTable;
555
+ const {
556
+ editStore
557
+ } = reactData;
508
558
  const {
509
559
  fullAllDataRowIdData
510
- } = this;
511
- const insertList = this.editStore.insertList;
560
+ } = internalData;
561
+ const {
562
+ insertMaps
563
+ } = editStore;
512
564
  const insertRecords = [];
513
- insertList.forEach(row => {
514
- const rowid = (0, _util.getRowid)(this, row);
565
+ _xeUtils.default.each(insertMaps, (row, rowid) => {
515
566
  if (fullAllDataRowIdData[rowid]) {
516
567
  insertRecords.push(row);
517
568
  }
@@ -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 insertTreeRow(o,e,t){let{tableFullTreeData:a,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:c,treeOpts:l}=o,{rowField:u,parentField:h,mapChildrenField:f}=l,g=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[h];var i=(0,_util.getRowid)(o,l),r=t?_xeUtils.default.findTree(a,e=>t===e[u],{children:f}):null;if(r){var r=r.item,s=c[(0,_util.getRowid)(o,r)],s=s?s.level:0;let e=r[g],t=r[f];_xeUtils.default.isArray(e)||(e=r[g]=[]),_xeUtils.default.isArray(t)||(t=r[g]=[]),e[w](l),t[w](l);r={row:l,rowid:i,seq:-1,index:-1,_index:-1,$index:-1,items:e,parent:r,level:s+1,height:0};d[i]=r,c[i]=r}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[w](l),a[w](l);s={row:l,rowid:i,seq:-1,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0,height:0};d[i]=s,c[i]=s}})}function handleInsertRowAt(n,t,l,d){let{tableFullTreeData:e,mergeList:r,afterFullData:s,editStore:i,tableFullData:o,treeConfig:a,fullDataRowIdData:c,fullAllDataRowIdData:u,treeOpts:h}=n,{transform:f,rowField:g,mapChildrenField:w}=h,v=h.children||h.childrenField,m=(_xeUtils.default.isArray(t)||(t=[t]),n.defineField(t.map(e=>Object.assign(a&&f?{[w]:[],[v]:[]}:{},e))));if(_xeUtils.default.eqNull(l))a&&f?insertTreeRow(n,m,!1):(s.unshift(...m),o.unshift(...m),r.forEach(e=>{var t=e.row;0<t&&(e.row=t+m.length)}));else if(-1===l)a&&f?insertTreeRow(n,m,!0):(s.push(...m),o.push(...m),r.forEach(e=>{var{row:t,rowspan:l}=e;t+l>s.length&&(e.rowspan=l+m.length)}));else if(a&&f){let a=_xeUtils.default.findTree(e,e=>l[g]===e[g],{children:w});if(a){let r=a.parent,s=r?r[w]:e;t=u[(0,_util.getRowid)(n,r)];let o=t?t.level:0;if(m.forEach((e,t)=>{var l=(0,_util.getRowid)(n,e);"development"===process.env.NODE_ENV&&e[h.parentField]&&r&&e[h.parentField]!==r[g]&&(0,_log.errLog)("vxe.error.errProp",[h.parentField+"="+e[h.parentField],h.parentField+"="+r[g]]),r&&(e[h.parentField]=r[g]);let i=a.index+t;d&&(i+=1),s.splice(i,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,items:s,parent:r,level:o+1,height:0};c[l]=t,u[l]=t}),r){t=_xeUtils.default.findTree(e,e=>l[g]===e[g],{children:v});if(t){var _=t.items;let e=t.index;d&&(e+=1),_.splice(e,0,...m)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),insertTreeRow(n,m,!0)}else{if(a)throw new Error(getI18n("vxe.error.noTree",["insert"]));let i=-1;if(_xeUtils.default.isNumber(l)?l<s.length&&(i=l):i=n.findRowIndexOf(s,l),-1===(i=d?Math.min(s.length,i+1):i))throw new Error((0,_log.errLog)("vxe.error.unableInsert"));s.splice(i,0,...m),o.splice(n.findRowIndexOf(o,l),0,...m),r.forEach(e=>{var{row:t,rowspan:l}=e;t>i?e.row=t+m.length:t+l>i&&(e.rowspan=l+m.length)})}let{insertList:p,insertMaps:C}=i;return m.forEach(e=>{var t=(0,_util.getRowid)(n,e);C[t]=e}),p.unshift(...m),n.cacheRowMap(),n.updateScrollYStatus(),n.handleTableData(a&&f),a&&f||n.updateAfterDataIndex(),n.updateFooter(),n.checkSelectionStatus(),n.scrollYLoad&&n.updateScrollYSpace(),n.$nextTick().then(()=>(n.updateCellAreas(),n.recalculate())).then(()=>({row:m.length?m[m.length-1]:null,rows:m}))}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)},_remove(e){let{afterFullData:r,tableFullData:l,tableFullTreeData:i,treeConfig:t,mergeList:s,editStore:o,checkboxOpts:a,selectCheckboxMaps:n,isInsertByRow:d,treeOpts:c}=this,{transform:u,mapChildrenField:h}=c,f=c.children||c.childrenField,{actived:g,removeList:w,insertList:v,insertMaps:m}=o;var _=a.checkField;let p=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=l,e.forEach(e=>{d(e)||w.push(e)}),!_){let t=Object.assign({},n);e.forEach(e=>{e=(0,_util.getRowid)(this,e);t[e]&&delete t[e]}),this.selectCheckboxMaps=t}return l===e?(e=p=l.slice(0),this.tableFullData=[],this.afterFullData=[],this.clearMergeCells()):t&&u?e.forEach(e=>{let t=(0,_util.getRowid)(this,e);var l=_xeUtils.default.findTree(i,e=>t===(0,_util.getRowid)(this,e),{children:h}),l=(l&&(l=l.items.splice(l.index,1),p.push(l[0])),_xeUtils.default.findTree(i,e=>t===(0,_util.getRowid)(this,e),{children:f})),l=(l&&l.items.splice(l.index,1),this.findRowIndexOf(r,e));-1<l&&r.splice(l,1)}):e.forEach(e=>{var t=this.findRowIndexOf(l,e);-1<t&&(t=l.splice(t,1),p.push(t[0]));let i=this.findRowIndexOf(r,e);-1<i&&(s.forEach(e=>{var{row:t,rowspan:l}=e;t>i?e.row=t-1:t+l>i&&(e.rowspan=l-1)}),r.splice(i,1))}),g.row&&-1<this.findRowIndexOf(e,g.row)&&this.clearEdit(),e.forEach(e=>{var t=(0,_util.getRowid)(this,e),e=this.findRowIndexOf(v,e);-1<e&&v.splice(e,1),delete m[t]}),this.handleTableData(t&&u),t&&u||this.updateAfterDataIndex(),this.updateFooter(),this.cacheRowMap(),this.checkSelectionStatus(),this.scrollYLoad&&this.updateScrollYSpace(),this.$nextTick().then(()=>(this.updateCellAreas(),this.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},_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 i=this.getUpdateRecords().filter(t=>!l.some(e=>this.eqRow(e,t)));return{insertRecords:this.getInsertRecords(),removeRecords:e,updateRecords:i,pendingRecords:t}},_getInsertRecords(){let l=this.fullAllDataRowIdData;var e=this.editStore.insertList;let i=[];return e.forEach(e=>{var t=(0,_util.getRowid)(this,e);l[t]&&i.push(e)}),i},_getRemoveRecords(){return this.editStore.removeList},_getUpdateRecords(){let{keepSource:e,tableFullData:t,isUpdateByRow:l,treeConfig:i,treeOpts:r,editStore:s}=this;var o,a;return e?(o=s.actived,{row:o,column:a}=o,(o||a)&&this._syncActivedCell(),i?_xeUtils.default.filterTree(t,e=>l(e),r):t.filter(e=>l(e))):[]},handleEdit(l,i){var{editStore:r,editOpts:s,tableColumn:o,editConfig:e,mouseConfig:a}=this,n=s.mode,{actived:r,focused:t}=r;let{row:d,column:c}=l;var u=c.editRender,h=l.cell=l.cell||this.getCellElement(d,c),f=s.beforeEditMethod||s.activeMethod;if(h&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(u)&&!this.hasPendingByRow(d)){if(r.row!==d||"cell"===n&&r.column!==c){let t="edit-disabled";if(!f||f(Object.assign(Object.assign({},l),{$table:this,$grid:this.$xegrid}))){a&&(this.clearSelected(i),this.clearCellAreas(i),this.clearCopyCellArea(i)),this.closeTooltip(),r.column&&this.handleClearEdit(i),t="edit-activated",c.renderHeight=h.offsetHeight,r.args=l,r.row=d,r.column=c,"row"===n?o.forEach(e=>this._getColumnModel(d,e)):this._getColumnModel(d,c);let e=s.afterEditMethod;this.$nextTick(()=>{this.handleFocus(l,i),e&&e(Object.assign(Object.assign({},l),{$table:this,$grid:this.$xegrid}))})}this.emitEvent(t,l,i),"edit-activated"===t&&this.emitEvent("edit-actived",l,i)}else{e=r.column;a&&(this.clearSelected(i),this.clearCellAreas(i),this.clearCopyCellArea(i)),e!==c&&(u=e.model,u.update&&(0,_util.setCellValue)(d,e,u.value),this.clearValidate()),c.renderHeight=h.offsetHeight,r.args=l,r.column=c,setTimeout(()=>{this.handleFocus(l,i)})}t.column=null,t.row=null,this.focus()}return this.$nextTick()},handleActived(e,t){return this.handleEdit(e,t)},_getColumnModel(e,t){var{model:l,editRender:i}=t;i&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},_setColumnModel(e,t){var{model:l,editRender:i}=t;i&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},_syncActivedCell(){var{tableColumn:e,editStore:t,editOpts:l}=this,t=t.actived;let{row:i,column:r}=t;(i||r)&&("row"===l.mode?e.forEach(e=>this._setColumnModel(i,e)):this._setColumnModel(i,r))},_clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},_clearEdit(e){return this.handleClearEdit(null,e)},handleClearEdit(e,t){let l=this;var i=l,r=l;let s=i.mouseConfig;var i=r.editStore,{actived:r,focused:i}=i,{row:o,column:a}=r,n=l.validOpts;let d=l.computeMouseOpts;if(o||a){if(t&&(0,_util.getRowid)(l,t)!==(0,_util.getRowid)(l,o))return l.$nextTick();l._syncActivedCell(),r.args=null,r.row=null,r.column=null,l.updateFooter(),l.emitEvent("edit-closed",{row:o,rowIndex:l.getRowIndex(o),$rowIndex:l.getVMRowIndex(o),column:a,columnIndex:l.getColumnIndex(a),$columnIndex:l.getVMColumnIndex(a)},e)}return i.row=null,i.column=null,l.$nextTick(()=>{if(s&&d.area&&l.handleRecalculateCellAreas)return l.handleRecalculateCellAreas()}),n.autoClear&&("full"!==n.msgMode||"obsolete"===getConfig().cellVaildMode)&&l.clearValidate?l.clearValidate():l.$nextTick()},_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:i}=t;return t&&-1<this.findRowIndexOf(l,i)&&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(i){var r=this.editOpts,{row:s,column:o,cell:a}=i,n=o.editRender;if((0,_utils.isEnableConf)(n)){var d=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;r.autoFocus&&(!e&&d&&(e=d.tableAutoFocus||d.tableAutofocus||d.autoFocus||d.autofocus),!t&&d&&(t=d.tableAutoSelect||d.autoSelect||d.autoselect),_xeUtils.default.isFunction(e)?l=e.call(this,i):e&&(l=!0===e?a.querySelector("input,textarea"):a.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((n=l.createTextRange()).collapse(!1),n.select()):r.autoPos&&!o.fixed&&this.scrollToRow(s,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));return t&&(l=_xeUtils.default.isString(t)?this.getColumnByField(t):t),this.setEditCell(e,l)},_setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(t,e){var l=this.editConfig;let i=_xeUtils.default.isString(e)?this.getColumnByField(e):e;return t&&i&&(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(i.editRender)?this.scrollToRow(t,!0).then(()=>{var e=this.getCellElement(t,i);e&&(this.handleEdit({row:t,rowIndex:this.getRowIndex(t),column:i,columnIndex:this.getColumnIndex(i),cell:e,$table:this}),this.lastCallTime=Date.now())}):this.$nextTick()},_setSelectCell(e,t){var{tableData:l,editOpts:i,visibleColumn:r}=this,t=_xeUtils.default.isString(t)?this.getColumnByField(t):t;return e&&t&&"manual"!==i.trigger&&-1<(i=this.findRowIndexOf(l,e))&&(l=this.getCellElement(e,t),e={row:e,rowIndex:i,column:t,columnIndex:r.indexOf(t),cell:l},this.handleSelected(e,{})),this.$nextTick()},handleSelected(e,t){let{mouseConfig:l,mouseOpts:i,editOpts:r,editStore:s}=this,{actived:o,selected:a}=s,{row:n,column:d}=e,c=l&&i.selected;return!c||a.row===n&&a.column===d||(o.row!==n||"cell"===r.mode&&o.column!==d)&&(this.handleClearEdit(t),this.clearSelected(t),this.clearCellAreas(t),this.clearCopyCellArea(t),a.args=e,a.row=n,a.column=d,c&&this.addColSdCls(),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(),this.reColSdCls(),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"))},reColSdCls(){var e=this.$el.querySelector(".col--selected");e&&(0,_dom.removeClass)(e,"col--selected")},addColSdCls(){var e=this.editStore.selected,{row:e,column:t}=e;this.reColSdCls(),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 insertTreeRow(s,e,t){let{tableFullTreeData:a,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:c,treeOpts:l}=s,{rowField:u,parentField:h,mapChildrenField:f}=l,g=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[h];var r=(0,_util.getRowid)(s,l),i=t?_xeUtils.default.findTree(a,e=>t===e[u],{children:f}):null;if(i){var i=i.item,o=c[(0,_util.getRowid)(s,i)],o=o?o.level:0;let e=i[g],t=i[f];_xeUtils.default.isArray(e)||(e=i[g]=[]),_xeUtils.default.isArray(t)||(t=i[g]=[]),e[w](l),t[w](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:e,parent:i,level:o+1,height:0};d[r]=i,c[r]=i}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[w](l),a[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0,height:0};d[r]=o,c[r]=o}})}function handleInsertRowAt(n,t,l,d){let r=n;var e=r,i=r,c=r;let o=e.treeConfig;var{mergeList:e,editStore:i}=i;let{tableFullTreeData:u,afterFullData:s,tableFullData:a,fullDataRowIdData:h,fullAllDataRowIdData:f}=c,g=r.computeTreeOpts,{transform:w,rowField:v,mapChildrenField:m}=g,p=g.children||g.childrenField,_=(_xeUtils.default.isArray(t)||(t=[t]),n.defineField(t.map(e=>Object.assign(o&&w?{[m]:[],[p]:[]}:{},e))));if(_xeUtils.default.eqNull(l))o&&w?insertTreeRow(n,_,!1):(_.forEach(e=>{var t=(0,_util.getRowid)(r,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,items:s,parent:null,level:0,height:0};h[t]=l,f[t]=l,s.push(e),a.push(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+_.length)}));else if(-1===l)o&&w?insertTreeRow(n,_,!0):(_.forEach(e=>{var t=(0,_util.getRowid)(r,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,items:s,parent:null,level:0,height:0};h[t]=l,f[t]=l,s.push(e),a.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>s.length&&(e.rowspan=l+_.length)}));else if(o&&w){let a=_xeUtils.default.findTree(u,e=>l[v]===e[v],{children:m});if(a){let i=a.parent,o=i?i[m]:u;c=f[(0,_util.getRowid)(n,i)];let s=c?c.level:0;if(_.forEach((e,t)=>{var l=(0,_util.getRowid)(n,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&i&&e[g.parentField]!==i[v]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+i[v]]),i&&(e[g.parentField]=i[v]);let r=a.index+t;d&&(r+=1),o.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,items:o,parent:i,level:s+1,height:0};h[l]=t,f[l]=t}),i){t=_xeUtils.default.findTree(u,e=>l[v]===e[v],{children:p});if(t){c=t.items;let e=t.index;d&&(e+=1),c.splice(e,0,..._)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),insertTreeRow(n,_,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<s.length&&(r=l):r=n.findRowIndexOf(s,l),-1===(r=d?Math.min(s.length,r+1):r))throw new Error((0,_log.errLog)("vxe.error.unableInsert"));s.splice(r,0,..._),a.splice(n.findRowIndexOf(a,l),0,..._),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+_.length:t+l>r&&(e.rowspan=l+_.length)})}let x=i.insertMaps;return _.forEach(e=>{var t=(0,_util.getRowid)(r,e);x[t]=e}),n.cacheRowMap(),n.updateScrollYStatus(),n.handleTableData(o&&w),o&&w||n.updateAfterDataIndex(),n.updateFooter(),n.checkSelectionStatus(),n.scrollYLoad&&n.updateScrollYSpace(),n.$nextTick().then(()=>(n.updateCellAreas(),n.recalculate())).then(()=>({row:_.length?_[_.length-1]:null,rows:_}))}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)},_remove(e){let t=this;var l=t,r=t,i=t,l=l.treeConfig;let{mergeList:o,editStore:s,selectCheckboxMaps:a}=r,{tableFullTreeData:n,afterFullData:d,tableFullData:c}=i;var i=t.computeCheckboxOpts,u=t.computeTreeOpts;let{transform:h,mapChildrenField:f}=u,g=u.children||u.childrenField,{actived:w,removeList:v,insertMaps:m}=s;u=i.checkField;let p=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=c,e.forEach(e=>{t.isInsertByRow(e)||v.push(e)}),!u){let t=Object.assign({},a);e.forEach(e=>{e=(0,_util.getRowid)(this,e);t[e]&&delete t[e]}),this.selectCheckboxMaps=t}return c===e?(e=p=c.slice(0),this.tableFullData=[],this.afterFullData=[],this.clearMergeCells()):l&&h?e.forEach(e=>{let t=(0,_util.getRowid)(this,e);var l=_xeUtils.default.findTree(n,e=>t===(0,_util.getRowid)(this,e),{children:f}),l=(l&&(l=l.items.splice(l.index,1),p.push(l[0])),_xeUtils.default.findTree(n,e=>t===(0,_util.getRowid)(this,e),{children:g})),l=(l&&l.items.splice(l.index,1),this.findRowIndexOf(d,e));-1<l&&d.splice(l,1)}):e.forEach(e=>{var t=this.findRowIndexOf(c,e);-1<t&&(t=c.splice(t,1),p.push(t[0]));let r=this.findRowIndexOf(d,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)}),d.splice(r,1))}),w.row&&-1<t.findRowIndexOf(e,w.row)&&t.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(t,e);m[e]&&delete m[e]}),t.updateFooter(),t.cacheRowMap(),t.handleTableData(l&&h),l&&h||t.updateAfterDataIndex(),t.checkSelectionStatus(),r.scrollYLoad&&t.updateScrollYSpace(),this.$nextTick().then(()=>(this.updateCellAreas(),this.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},_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(){return this.editStore.removeList},_getUpdateRecords(){let{keepSource:e,tableFullData:t,isUpdateByRow:l,treeConfig:r,treeOpts:i,editStore:o}=this;var s,a;return e?(s=o.actived,{row:s,column:a}=s,(s||a)&&this._syncActivedCell(),r?_xeUtils.default.filterTree(t,e=>l(e),i):t.filter(e=>l(e))):[]},handleEdit(l,r){var{editStore:i,editOpts:o,tableColumn:s,editConfig:e,mouseConfig:a}=this,n=o.mode,{actived:i,focused:t}=i;let{row:d,column:c}=l;var u=c.editRender,h=l.cell=l.cell||this.getCellElement(d,c),f=o.beforeEditMethod||o.activeMethod;if(h&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(u)&&!this.hasPendingByRow(d)){if(i.row!==d||"cell"===n&&i.column!==c){let t="edit-disabled";if(!f||f(Object.assign(Object.assign({},l),{$table:this,$grid:this.$xegrid}))){a&&(this.clearSelected(r),this.clearCellAreas(r),this.clearCopyCellArea(r)),this.closeTooltip(),i.column&&this.handleClearEdit(r),t="edit-activated",c.renderHeight=h.offsetHeight,i.args=l,i.row=d,i.column=c,"row"===n?s.forEach(e=>this._getColumnModel(d,e)):this._getColumnModel(d,c);let e=o.afterEditMethod;this.$nextTick(()=>{this.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:this,$grid:this.$xegrid}))})}this.emitEvent(t,l,r),"edit-activated"===t&&this.emitEvent("edit-actived",l,r)}else{e=i.column;a&&(this.clearSelected(r),this.clearCellAreas(r),this.clearCopyCellArea(r)),e!==c&&(u=e.model,u.update&&(0,_util.setCellValue)(d,e,u.value),this.clearValidate()),c.renderHeight=h.offsetHeight,i.args=l,i.column=c,setTimeout(()=>{this.handleFocus(l,r)})}t.column=null,t.row=null,this.focus()}return this.$nextTick()},handleActived(e,t){return this.handleEdit(e,t)},_getColumnModel(e,t){var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},_setColumnModel(e,t){var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},_syncActivedCell(){var{tableColumn:e,editStore:t,editOpts:l}=this,t=t.actived;let{row:r,column:i}=t;(r||i)&&("row"===l.mode?e.forEach(e=>this._setColumnModel(r,e)):this._setColumnModel(r,i))},_clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},_clearEdit(e){return this.handleClearEdit(null,e)},handleClearEdit(e,t){let l=this;var r=l,i=l;let o=r.mouseConfig;var r=i.editStore,{actived:i,focused:r}=r,{row:s,column:a}=i,n=l.validOpts;let d=l.computeMouseOpts;if(s||a){if(t&&(0,_util.getRowid)(l,t)!==(0,_util.getRowid)(l,s))return l.$nextTick();l._syncActivedCell(),i.args=null,i.row=null,i.column=null,l.updateFooter(),l.emitEvent("edit-closed",{row:s,rowIndex:l.getRowIndex(s),$rowIndex:l.getVMRowIndex(s),column:a,columnIndex:l.getColumnIndex(a),$columnIndex:l.getVMColumnIndex(a)},e)}return r.row=null,r.column=null,l.$nextTick(()=>{if(o&&d.area&&l.handleRecalculateCellAreas)return l.handleRecalculateCellAreas()}),n.autoClear&&("full"!==n.msgMode||"obsolete"===getConfig().cellVaildMode)&&l.clearValidate?l.clearValidate():l.$nextTick()},_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:s,cell:a}=r,n=s.editRender;if((0,_utils.isEnableConf)(n)){var d=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;i.autoFocus&&(!e&&d&&(e=d.tableAutoFocus||d.tableAutofocus||d.autoFocus||d.autofocus),!t&&d&&(t=d.tableAutoSelect||d.autoSelect||d.autoselect),_xeUtils.default.isFunction(e)?l=e.call(this,r):e&&(l=!0===e?a.querySelector("input,textarea"):a.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((n=l.createTextRange()).collapse(!1),n.select()):i.autoPos&&!s.fixed&&this.scrollToRow(o,s)}},_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));return t&&(l=_xeUtils.default.isString(t)?this.getColumnByField(t):t),this.setEditCell(e,l)},_setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),this.setEditCell(e,t)},_setEditCell(t,e){var l=this.editConfig;let r=_xeUtils.default.isString(e)?this.getColumnByField(e):e;return t&&r&&(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(r.editRender)?this.scrollToRow(t,!0).then(()=>{var e=this.getCellElement(t,r);e&&(this.handleEdit({row:t,rowIndex:this.getRowIndex(t),column:r,columnIndex:this.getColumnIndex(r),cell:e,$table:this}),this.lastCallTime=Date.now())}):this.$nextTick()},_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{mouseConfig:l,mouseOpts:r,editOpts:i,editStore:o}=this,{actived:s,selected:a}=o,{row:n,column:d}=e,c=l&&r.selected;return!c||a.row===n&&a.column===d||(s.row!==n||"cell"===i.mode&&s.column!==d)&&(this.handleClearEdit(t),this.clearSelected(t),this.clearCellAreas(t),this.clearCopyCellArea(t),a.args=e,a.row=n,a.column=d,c&&this.addColSdCls(),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(),this.reColSdCls(),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"))},reColSdCls(){var e=this.$el.querySelector(".col--selected");e&&(0,_dom.removeClass)(e,"col--selected")},addColSdCls(){var e=this.editStore.selected,{row:e,column:t}=e;this.reColSdCls(),e&&t&&(e=this.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}}};
@@ -808,7 +808,6 @@ const Methods = {
808
808
  scrollYStore.endIndex = 1;
809
809
  scrollXStore.startIndex = 0;
810
810
  scrollXStore.endIndex = 1;
811
- editStore.insertList = [];
812
811
  editStore.insertMaps = {};
813
812
  editStore.removeList = [];
814
813
  editStore.removeMaps = {};
@@ -1784,14 +1783,20 @@ const Methods = {
1784
1783
  editStore
1785
1784
  } = this;
1786
1785
  const rowid = (0, _util.getRowid)(this, row);
1787
- return editStore.insertList.length && editStore.insertMaps[rowid];
1786
+ return !!editStore.insertMaps[rowid];
1788
1787
  },
1789
1788
  /**
1790
1789
  * 删除所有新增的临时数据
1791
1790
  * @returns
1792
1791
  */
1793
1792
  removeInsertRow() {
1794
- return this.remove(this.editStore.insertList);
1793
+ const $xeTable = this;
1794
+ const reactData = $xeTable;
1795
+ const {
1796
+ editStore
1797
+ } = reactData;
1798
+ editStore.insertMaps = {};
1799
+ return $xeTable.remove($xeTable.getInsertRecords());
1795
1800
  },
1796
1801
  /**
1797
1802
  * 检查行或列数据是否发生改变