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.
- package/es/style.css +1 -1
- package/es/table/module/edit/mixin.js +57 -30
- package/es/table/src/methods.js +6 -3
- package/es/table/src/table.js +0 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +103 -48
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/mixin.js +93 -42
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/src/methods.js +8 -3
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +0 -1
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/table/module/edit/mixin.ts +61 -31
- package/packages/table/src/methods.ts +7 -3
- package/packages/table/src/table.ts +0 -1
- /package/es/{iconfont.1732607941851.ttf → iconfont.1732698735693.ttf} +0 -0
- /package/es/{iconfont.1732607941851.woff → iconfont.1732698735693.woff} +0 -0
- /package/es/{iconfont.1732607941851.woff2 → iconfont.1732698735693.woff2} +0 -0
- /package/lib/{iconfont.1732607941851.ttf → iconfont.1732698735693.ttf} +0 -0
- /package/lib/{iconfont.1732607941851.woff → iconfont.1732698735693.woff} +0 -0
- /package/lib/{iconfont.1732607941851.woff2 → iconfont.1732698735693.woff2} +0 -0
|
@@ -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
|
-
|
|
106
|
-
|
|
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
|
-
|
|
126
|
-
|
|
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
|
-
|
|
144
|
-
|
|
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)(
|
|
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
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
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 (
|
|
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 &&
|
|
426
|
-
|
|
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)(
|
|
431
|
-
|
|
432
|
-
|
|
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
|
-
|
|
481
|
+
$xeTable.updateFooter();
|
|
482
|
+
$xeTable.cacheRowMap();
|
|
483
|
+
$xeTable.handleTableData(treeConfig && transform);
|
|
438
484
|
if (!(treeConfig && transform)) {
|
|
439
|
-
|
|
485
|
+
$xeTable.updateAfterDataIndex();
|
|
440
486
|
}
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
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
|
-
} =
|
|
511
|
-
const
|
|
560
|
+
} = internalData;
|
|
561
|
+
const {
|
|
562
|
+
insertMaps
|
|
563
|
+
} = editStore;
|
|
512
564
|
const insertRecords = [];
|
|
513
|
-
|
|
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")}}};
|
package/lib/table/src/methods.js
CHANGED
|
@@ -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.
|
|
1786
|
+
return !!editStore.insertMaps[rowid];
|
|
1788
1787
|
},
|
|
1789
1788
|
/**
|
|
1790
1789
|
* 删除所有新增的临时数据
|
|
1791
1790
|
* @returns
|
|
1792
1791
|
*/
|
|
1793
1792
|
removeInsertRow() {
|
|
1794
|
-
|
|
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
|
* 检查行或列数据是否发生改变
|