vxe-table 4.10.13 → 4.10.15-beta.0
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/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/hook.js +138 -128
- package/es/table/src/body.js +57 -43
- package/es/table/src/table.js +236 -51
- package/es/table/style.css +26 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +26 -0
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +531 -265
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/edit/hook.js +169 -154
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/src/body.js +65 -58
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/table.js +293 -49
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +26 -0
- package/lib/table/style/style.min.css +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/lib/vxe-table/style/style.css +26 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/module/edit/hook.ts +141 -129
- package/packages/table/src/body.ts +60 -50
- package/packages/table/src/table.ts +247 -51
- package/styles/components/table.scss +26 -0
- /package/es/{iconfont.1739257038865.ttf → iconfont.1739426300784.ttf} +0 -0
- /package/es/{iconfont.1739257038865.woff → iconfont.1739426300784.woff} +0 -0
- /package/es/{iconfont.1739257038865.woff2 → iconfont.1739426300784.woff2} +0 -0
- /package/lib/{iconfont.1739257038865.ttf → iconfont.1739426300784.ttf} +0 -0
- /package/lib/{iconfont.1739257038865.woff → iconfont.1739426300784.woff} +0 -0
- /package/lib/{iconfont.1739257038865.woff2 → iconfont.1739426300784.woff2} +0 -0
|
@@ -64,7 +64,7 @@ hooks.add('tableEditModule', {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
|
-
|
|
67
|
+
const syncActivedCell = () => {
|
|
68
68
|
const {
|
|
69
69
|
editStore,
|
|
70
70
|
tableColumn
|
|
@@ -84,8 +84,8 @@ hooks.add('tableEditModule', {
|
|
|
84
84
|
setEditColumnModel(row, column);
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
}
|
|
88
|
-
|
|
87
|
+
};
|
|
88
|
+
const insertTreeRow = (newRecords, isAppend) => {
|
|
89
89
|
const {
|
|
90
90
|
tableFullTreeData,
|
|
91
91
|
afterFullData,
|
|
@@ -135,7 +135,8 @@ hooks.add('tableEditModule', {
|
|
|
135
135
|
level: parentLevel + 1,
|
|
136
136
|
height: 0,
|
|
137
137
|
resizeHeight: 0,
|
|
138
|
-
oTop: 0
|
|
138
|
+
oTop: 0,
|
|
139
|
+
expandHeight: 0
|
|
139
140
|
};
|
|
140
141
|
fullDataRowIdData[rowid] = rest;
|
|
141
142
|
fullAllDataRowIdData[rowid] = rest;
|
|
@@ -160,13 +161,14 @@ hooks.add('tableEditModule', {
|
|
|
160
161
|
level: 0,
|
|
161
162
|
height: 0,
|
|
162
163
|
resizeHeight: 0,
|
|
163
|
-
oTop: 0
|
|
164
|
+
oTop: 0,
|
|
165
|
+
expandHeight: 0
|
|
164
166
|
};
|
|
165
167
|
fullDataRowIdData[rowid] = rest;
|
|
166
168
|
fullAllDataRowIdData[rowid] = rest;
|
|
167
169
|
}
|
|
168
170
|
});
|
|
169
|
-
}
|
|
171
|
+
};
|
|
170
172
|
const handleInsertRowAt = (records, targetRow, isInsertNextRow) => {
|
|
171
173
|
const {
|
|
172
174
|
treeConfig
|
|
@@ -216,7 +218,8 @@ hooks.add('tableEditModule', {
|
|
|
216
218
|
level: 0,
|
|
217
219
|
height: 0,
|
|
218
220
|
resizeHeight: 0,
|
|
219
|
-
oTop: 0
|
|
221
|
+
oTop: 0,
|
|
222
|
+
expandHeight: 0
|
|
220
223
|
};
|
|
221
224
|
fullDataRowIdData[rowid] = rest;
|
|
222
225
|
fullAllDataRowIdData[rowid] = rest;
|
|
@@ -254,7 +257,8 @@ hooks.add('tableEditModule', {
|
|
|
254
257
|
level: 0,
|
|
255
258
|
height: 0,
|
|
256
259
|
resizeHeight: 0,
|
|
257
|
-
oTop: 0
|
|
260
|
+
oTop: 0,
|
|
261
|
+
expandHeight: 0
|
|
258
262
|
};
|
|
259
263
|
fullDataRowIdData[rowid] = rest;
|
|
260
264
|
fullAllDataRowIdData[rowid] = rest;
|
|
@@ -315,7 +319,8 @@ hooks.add('tableEditModule', {
|
|
|
315
319
|
level: parentLevel + 1,
|
|
316
320
|
height: 0,
|
|
317
321
|
resizeHeight: 0,
|
|
318
|
-
oTop: 0
|
|
322
|
+
oTop: 0,
|
|
323
|
+
expandHeight: 0
|
|
319
324
|
};
|
|
320
325
|
fullDataRowIdData[rowid] = rest;
|
|
321
326
|
fullAllDataRowIdData[rowid] = rest;
|
|
@@ -485,6 +490,158 @@ hooks.add('tableEditModule', {
|
|
|
485
490
|
}
|
|
486
491
|
});
|
|
487
492
|
};
|
|
493
|
+
const handleEditActive = (params, evnt, isFocus) => {
|
|
494
|
+
const {
|
|
495
|
+
editConfig,
|
|
496
|
+
mouseConfig
|
|
497
|
+
} = props;
|
|
498
|
+
const {
|
|
499
|
+
editStore,
|
|
500
|
+
tableColumn
|
|
501
|
+
} = reactData;
|
|
502
|
+
const editOpts = computeEditOpts.value;
|
|
503
|
+
const {
|
|
504
|
+
mode
|
|
505
|
+
} = editOpts;
|
|
506
|
+
const {
|
|
507
|
+
actived,
|
|
508
|
+
focused
|
|
509
|
+
} = editStore;
|
|
510
|
+
const {
|
|
511
|
+
row,
|
|
512
|
+
column
|
|
513
|
+
} = params;
|
|
514
|
+
const {
|
|
515
|
+
editRender
|
|
516
|
+
} = column;
|
|
517
|
+
const cell = params.cell || $xeTable.getCellElement(row, column);
|
|
518
|
+
const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
|
|
519
|
+
params.cell = cell;
|
|
520
|
+
if (cell && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(editRender)) {
|
|
521
|
+
// 激活编辑
|
|
522
|
+
if (!$xeTable.isPendingByRow(row)) {
|
|
523
|
+
if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
|
|
524
|
+
// 判断是否禁用编辑
|
|
525
|
+
let type = 'edit-disabled';
|
|
526
|
+
if (!beforeEditMethod || beforeEditMethod(Object.assign(Object.assign({}, params), {
|
|
527
|
+
$table: $xeTable,
|
|
528
|
+
$grid: $xeTable.xegrid
|
|
529
|
+
}))) {
|
|
530
|
+
if (mouseConfig) {
|
|
531
|
+
$xeTable.clearSelected();
|
|
532
|
+
if ($xeTable.clearCellAreas) {
|
|
533
|
+
$xeTable.clearCellAreas();
|
|
534
|
+
$xeTable.clearCopyCellArea();
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
$xeTable.closeTooltip();
|
|
538
|
+
if (actived.column) {
|
|
539
|
+
handleClearEdit(evnt);
|
|
540
|
+
}
|
|
541
|
+
type = 'edit-activated';
|
|
542
|
+
column.renderHeight = cell.offsetHeight;
|
|
543
|
+
actived.args = params;
|
|
544
|
+
actived.row = row;
|
|
545
|
+
actived.column = column;
|
|
546
|
+
if (mode === 'row') {
|
|
547
|
+
tableColumn.forEach(column => getEditColumnModel(row, column));
|
|
548
|
+
} else {
|
|
549
|
+
getEditColumnModel(row, column);
|
|
550
|
+
}
|
|
551
|
+
const afterEditMethod = editOpts.afterEditMethod;
|
|
552
|
+
(0, _vue.nextTick)(() => {
|
|
553
|
+
if (isFocus) {
|
|
554
|
+
$xeTable.handleFocus(params, evnt);
|
|
555
|
+
}
|
|
556
|
+
if (afterEditMethod) {
|
|
557
|
+
afterEditMethod(Object.assign(Object.assign({}, params), {
|
|
558
|
+
$table: $xeTable,
|
|
559
|
+
$grid: $xeTable.xegrid
|
|
560
|
+
}));
|
|
561
|
+
}
|
|
562
|
+
});
|
|
563
|
+
}
|
|
564
|
+
$xeTable.dispatchEvent(type, {
|
|
565
|
+
row,
|
|
566
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
567
|
+
$rowIndex: $xeTable.getVMRowIndex(row),
|
|
568
|
+
column,
|
|
569
|
+
columnIndex: $xeTable.getColumnIndex(column),
|
|
570
|
+
$columnIndex: $xeTable.getVMColumnIndex(column)
|
|
571
|
+
}, evnt);
|
|
572
|
+
// v4已废弃
|
|
573
|
+
if (type === 'edit-activated') {
|
|
574
|
+
$xeTable.dispatchEvent('edit-actived', {
|
|
575
|
+
row,
|
|
576
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
577
|
+
$rowIndex: $xeTable.getVMRowIndex(row),
|
|
578
|
+
column,
|
|
579
|
+
columnIndex: $xeTable.getColumnIndex(column),
|
|
580
|
+
$columnIndex: $xeTable.getVMColumnIndex(column)
|
|
581
|
+
}, evnt);
|
|
582
|
+
}
|
|
583
|
+
} else {
|
|
584
|
+
const {
|
|
585
|
+
column: oldColumn
|
|
586
|
+
} = actived;
|
|
587
|
+
if (mouseConfig) {
|
|
588
|
+
$xeTable.clearSelected();
|
|
589
|
+
if ($xeTable.clearCellAreas) {
|
|
590
|
+
$xeTable.clearCellAreas();
|
|
591
|
+
$xeTable.clearCopyCellArea();
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
if (oldColumn !== column) {
|
|
595
|
+
const {
|
|
596
|
+
model: oldModel
|
|
597
|
+
} = oldColumn;
|
|
598
|
+
if (oldModel.update) {
|
|
599
|
+
(0, _util.setCellValue)(row, oldColumn, oldModel.value);
|
|
600
|
+
}
|
|
601
|
+
if ($xeTable.clearValidate) {
|
|
602
|
+
$xeTable.clearValidate(row, column);
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
column.renderHeight = cell.offsetHeight;
|
|
606
|
+
actived.args = params;
|
|
607
|
+
actived.column = column;
|
|
608
|
+
if (isFocus) {
|
|
609
|
+
setTimeout(() => {
|
|
610
|
+
$xeTable.handleFocus(params, evnt);
|
|
611
|
+
});
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
focused.column = null;
|
|
615
|
+
focused.row = null;
|
|
616
|
+
$xeTable.focus();
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
return (0, _vue.nextTick)();
|
|
620
|
+
};
|
|
621
|
+
const handleEditCell = (row, fieldOrColumn, isPos) => {
|
|
622
|
+
const {
|
|
623
|
+
editConfig
|
|
624
|
+
} = props;
|
|
625
|
+
const column = _xeUtils.default.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
|
|
626
|
+
if (row && column && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(column.editRender)) {
|
|
627
|
+
return Promise.resolve(isPos ? $xeTable.scrollToRow(row, column) : null).then(() => {
|
|
628
|
+
const cell = $xeTable.getCellElement(row, column);
|
|
629
|
+
if (cell) {
|
|
630
|
+
handleEditActive({
|
|
631
|
+
row,
|
|
632
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
633
|
+
column,
|
|
634
|
+
columnIndex: $xeTable.getColumnIndex(column),
|
|
635
|
+
cell,
|
|
636
|
+
$table: $xeTable
|
|
637
|
+
}, null, false);
|
|
638
|
+
internalData._lastCallTime = Date.now();
|
|
639
|
+
}
|
|
640
|
+
return (0, _vue.nextTick)();
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
return (0, _vue.nextTick)();
|
|
644
|
+
};
|
|
488
645
|
editMethods = {
|
|
489
646
|
/**
|
|
490
647
|
* 往表格中插入临时数据
|
|
@@ -877,7 +1034,7 @@ hooks.add('tableEditModule', {
|
|
|
877
1034
|
if (fieldOrColumn) {
|
|
878
1035
|
column = _xeUtils.default.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
|
|
879
1036
|
}
|
|
880
|
-
return
|
|
1037
|
+
return handleEditCell(row, column, false);
|
|
881
1038
|
},
|
|
882
1039
|
setActiveCell(row, fieldOrColumn) {
|
|
883
1040
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -890,28 +1047,7 @@ hooks.add('tableEditModule', {
|
|
|
890
1047
|
* 激活单元格编辑
|
|
891
1048
|
*/
|
|
892
1049
|
setEditCell(row, fieldOrColumn) {
|
|
893
|
-
|
|
894
|
-
editConfig
|
|
895
|
-
} = props;
|
|
896
|
-
const column = _xeUtils.default.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
|
|
897
|
-
if (row && column && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(column.editRender)) {
|
|
898
|
-
return $xeTable.scrollToRow(row, column).then(() => {
|
|
899
|
-
const cell = $xeTable.getCellElement(row, column);
|
|
900
|
-
if (cell) {
|
|
901
|
-
editPrivateMethods.handleEdit({
|
|
902
|
-
row,
|
|
903
|
-
rowIndex: $xeTable.getRowIndex(row),
|
|
904
|
-
column,
|
|
905
|
-
columnIndex: $xeTable.getColumnIndex(column),
|
|
906
|
-
cell,
|
|
907
|
-
$table: $xeTable
|
|
908
|
-
});
|
|
909
|
-
internalData._lastCallTime = Date.now();
|
|
910
|
-
}
|
|
911
|
-
return (0, _vue.nextTick)();
|
|
912
|
-
});
|
|
913
|
-
}
|
|
914
|
-
return (0, _vue.nextTick)();
|
|
1050
|
+
return handleEditCell(row, fieldOrColumn, true);
|
|
915
1051
|
},
|
|
916
1052
|
/**
|
|
917
1053
|
* 只对 trigger=dblclick 有效,选中单元格
|
|
@@ -944,128 +1080,7 @@ hooks.add('tableEditModule', {
|
|
|
944
1080
|
* 处理激活编辑
|
|
945
1081
|
*/
|
|
946
1082
|
handleEdit(params, evnt) {
|
|
947
|
-
|
|
948
|
-
editConfig,
|
|
949
|
-
mouseConfig
|
|
950
|
-
} = props;
|
|
951
|
-
const {
|
|
952
|
-
editStore,
|
|
953
|
-
tableColumn
|
|
954
|
-
} = reactData;
|
|
955
|
-
const editOpts = computeEditOpts.value;
|
|
956
|
-
const {
|
|
957
|
-
mode
|
|
958
|
-
} = editOpts;
|
|
959
|
-
const {
|
|
960
|
-
actived,
|
|
961
|
-
focused
|
|
962
|
-
} = editStore;
|
|
963
|
-
const {
|
|
964
|
-
row,
|
|
965
|
-
column
|
|
966
|
-
} = params;
|
|
967
|
-
const {
|
|
968
|
-
editRender
|
|
969
|
-
} = column;
|
|
970
|
-
const cell = params.cell || $xeTable.getCellElement(row, column);
|
|
971
|
-
const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
|
|
972
|
-
params.cell = cell;
|
|
973
|
-
if (cell && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(editRender)) {
|
|
974
|
-
// 激活编辑
|
|
975
|
-
if (!$xeTable.isPendingByRow(row)) {
|
|
976
|
-
if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
|
|
977
|
-
// 判断是否禁用编辑
|
|
978
|
-
let type = 'edit-disabled';
|
|
979
|
-
if (!beforeEditMethod || beforeEditMethod(Object.assign(Object.assign({}, params), {
|
|
980
|
-
$table: $xeTable,
|
|
981
|
-
$grid: $xeTable.xegrid
|
|
982
|
-
}))) {
|
|
983
|
-
if (mouseConfig) {
|
|
984
|
-
editMethods.clearSelected();
|
|
985
|
-
if ($xeTable.clearCellAreas) {
|
|
986
|
-
$xeTable.clearCellAreas();
|
|
987
|
-
$xeTable.clearCopyCellArea();
|
|
988
|
-
}
|
|
989
|
-
}
|
|
990
|
-
$xeTable.closeTooltip();
|
|
991
|
-
if (actived.column) {
|
|
992
|
-
handleClearEdit(evnt);
|
|
993
|
-
}
|
|
994
|
-
type = 'edit-activated';
|
|
995
|
-
column.renderHeight = cell.offsetHeight;
|
|
996
|
-
actived.args = params;
|
|
997
|
-
actived.row = row;
|
|
998
|
-
actived.column = column;
|
|
999
|
-
if (mode === 'row') {
|
|
1000
|
-
tableColumn.forEach(column => getEditColumnModel(row, column));
|
|
1001
|
-
} else {
|
|
1002
|
-
getEditColumnModel(row, column);
|
|
1003
|
-
}
|
|
1004
|
-
const afterEditMethod = editOpts.afterEditMethod;
|
|
1005
|
-
(0, _vue.nextTick)(() => {
|
|
1006
|
-
editPrivateMethods.handleFocus(params, evnt);
|
|
1007
|
-
if (afterEditMethod) {
|
|
1008
|
-
afterEditMethod(Object.assign(Object.assign({}, params), {
|
|
1009
|
-
$table: $xeTable,
|
|
1010
|
-
$grid: $xeTable.xegrid
|
|
1011
|
-
}));
|
|
1012
|
-
}
|
|
1013
|
-
});
|
|
1014
|
-
}
|
|
1015
|
-
$xeTable.dispatchEvent(type, {
|
|
1016
|
-
row,
|
|
1017
|
-
rowIndex: $xeTable.getRowIndex(row),
|
|
1018
|
-
$rowIndex: $xeTable.getVMRowIndex(row),
|
|
1019
|
-
column,
|
|
1020
|
-
columnIndex: $xeTable.getColumnIndex(column),
|
|
1021
|
-
$columnIndex: $xeTable.getVMColumnIndex(column)
|
|
1022
|
-
}, evnt);
|
|
1023
|
-
// v4已废弃
|
|
1024
|
-
if (type === 'edit-activated') {
|
|
1025
|
-
$xeTable.dispatchEvent('edit-actived', {
|
|
1026
|
-
row,
|
|
1027
|
-
rowIndex: $xeTable.getRowIndex(row),
|
|
1028
|
-
$rowIndex: $xeTable.getVMRowIndex(row),
|
|
1029
|
-
column,
|
|
1030
|
-
columnIndex: $xeTable.getColumnIndex(column),
|
|
1031
|
-
$columnIndex: $xeTable.getVMColumnIndex(column)
|
|
1032
|
-
}, evnt);
|
|
1033
|
-
}
|
|
1034
|
-
} else {
|
|
1035
|
-
const {
|
|
1036
|
-
column: oldColumn
|
|
1037
|
-
} = actived;
|
|
1038
|
-
if (mouseConfig) {
|
|
1039
|
-
editMethods.clearSelected();
|
|
1040
|
-
if ($xeTable.clearCellAreas) {
|
|
1041
|
-
$xeTable.clearCellAreas();
|
|
1042
|
-
$xeTable.clearCopyCellArea();
|
|
1043
|
-
}
|
|
1044
|
-
}
|
|
1045
|
-
if (oldColumn !== column) {
|
|
1046
|
-
const {
|
|
1047
|
-
model: oldModel
|
|
1048
|
-
} = oldColumn;
|
|
1049
|
-
if (oldModel.update) {
|
|
1050
|
-
(0, _util.setCellValue)(row, oldColumn, oldModel.value);
|
|
1051
|
-
}
|
|
1052
|
-
if ($xeTable.clearValidate) {
|
|
1053
|
-
$xeTable.clearValidate(row, column);
|
|
1054
|
-
}
|
|
1055
|
-
}
|
|
1056
|
-
column.renderHeight = cell.offsetHeight;
|
|
1057
|
-
actived.args = params;
|
|
1058
|
-
actived.column = column;
|
|
1059
|
-
setTimeout(() => {
|
|
1060
|
-
editPrivateMethods.handleFocus(params, evnt);
|
|
1061
|
-
});
|
|
1062
|
-
}
|
|
1063
|
-
focused.column = null;
|
|
1064
|
-
focused.row = null;
|
|
1065
|
-
$xeTable.focus();
|
|
1066
|
-
}
|
|
1067
|
-
}
|
|
1068
|
-
return (0, _vue.nextTick)();
|
|
1083
|
+
return handleEditActive(params, evnt, true);
|
|
1069
1084
|
},
|
|
1070
1085
|
/**
|
|
1071
1086
|
* @deprecated
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _vue=require("vue"),_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,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(m){let{props:R,reactData:C,internalData:_}=m,o=m.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:w,computeCheckboxOpts:x,computeTreeOpts:E,computeValidOpts:s}=m.getComputeMaps(),I={},f={},h=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},i=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=o.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")};function u(){var{editStore:e,tableColumn:t}=C,l=w.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>i(r,e)):i(r,o))}function b(e,t){let{tableFullTreeData:a,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:s}=_;var l=E.value;let{rowField:u,parentField:c,mapChildrenField:g}=l,v=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(m,l),o=t?_xeUtils.default.findTree(a,e=>t===e[u],{children:g}):null;if(o){var o=o.item,i=s[(0,_util.getRowid)(m,o)],i=i?i.level:0;let e=o[v],t=o[g];_xeUtils.default.isArray(e)||(e=o[v]=[]),_xeUtils.default.isArray(t)||(t=o[v]=[]),e[w](l),t[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0};d[r]=o,s[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[w](l),a[w](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0};d[r]=i,s[r]=i}})}let d=(t,l,d)=>{let o=R.treeConfig;var{mergeList:e,editStore:r}=C;let{tableFullTreeData:s,afterFullData:i,tableFullData:a,fullDataRowIdData:u,fullAllDataRowIdData:c}=_,g=E.value,{transform:n,rowField:v,mapChildrenField:w}=g,f=g.children||g.childrenField,h=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(m.defineField(t.map(e=>Object.assign(o&&n?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&n?b(h,!1):(h.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0};u[t]=l,c[t]=l,i.unshift(e),a.unshift(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+h.length)}));else if(-1===l)o&&n?b(h,!0):(h.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0};u[t]=l,c[t]=l,i.push(e),a.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>i.length&&(e.rowspan=l+h.length)}));else if(o&&n){let n=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:w});if(n){let o=n.parent,i=o?o[w]:s;t=c[(0,_util.getRowid)(m,o)];let a=t?t.level:0;if(h.forEach((e,t)=>{var l=(0,_util.getRowid)(m,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&o&&e[g.parentField]!==o[v]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+o[v]]),o&&(e[g.parentField]=o[v]);let r=n.index+t;d&&(r+=1),i.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0};u[l]=t,c[l]=t}),o){t=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:f});if(t){var p=t.items;let e=t.index;d&&(e+=1),p.splice(e,0,...h)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),b(h,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<i.length&&(r=l):r=m.findRowIndexOf(i,l),-1===(r=d?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,...h);t=m.findRowIndexOf(a,l);-1<t?a.splice(t+(d?1:0),0,...h):a.push(...h),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+h.length:t+l>r&&(e.rowspan=l+h.length)})}let x=r.insertMaps;return h.forEach(e=>{var t=(0,_util.getRowid)(m,e);x[t]=e}),m.cacheRowMap(!1),m.updateScrollYStatus(),m.handleTableData(o&&n),o&&n||m.updateAfterDataIndex(),m.updateFooter(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},r=(e,t,l,r)=>{var o=R.treeConfig;let{transform:i,rowField:a,parentField:n}=E.value;return o&&i?(_xeUtils.default.isArray(e)||(e=[e]),d(e.map(e=>Object.assign({},e,{[n]:t[a]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.treeConfig=false","tree-config.treeConfig=true"]),Promise.resolve({row:null,rows:[]}))},p=(e,t)=>{let l=R.mouseConfig;var r=C.editStore,{actived:r,focused:o}=r,{row:i,column:a}=r,n=s.value;let d=c.value;if(i||a){if(t&&(0,_util.getRowid)(m,t)!==(0,_util.getRowid)(m,i))return(0,_vue.nextTick)();u(),r.args=null,r.row=null,r.column=null,m.updateFooter(),m.dispatchEvent("edit-closed",{row:i,rowIndex:m.getRowIndex(i),$rowIndex:m.getVMRowIndex(i),column:a,columnIndex:m.getColumnIndex(a),$columnIndex:m.getVMColumnIndex(a)},e||null)}return o.row=null,o.column=null,n.autoClear&&("full"!==n.msgMode||"obsolete"===getConfig().cellVaildMode)&&m.clearValidate?m.clearValidate():(0,_vue.nextTick)().then(()=>{if(l&&d.area&&m.handleRecalculateCellAreas)return m.handleRecalculateCellAreas()})};return I={insert(e){return d(e,null)},insertAt(e,t){return d(e,t)},insertNextAt(e,t){return d(e,t,!0)},insertChild(e,t){return r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=R.treeConfig;let{mergeList:l,editStore:r,selectCheckboxMaps:o}=C,{tableFullTreeData:i,afterFullData:a,tableFullData:n}=_;var d=x.value,s=E.value;let{transform:u,mapChildrenField:c}=s,g=s.children||s.childrenField,{actived:v,removeMaps:w}=r,f=Object.assign({},r.insertMaps),h=Object.assign({},C.pendingRowMaps);s=d.checkField;let p=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;m.isInsertByRow(e)||(t=(0,_util.getRowid)(m,e),w[t]=e)}),!s){let t=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(m,e);t[e]&&delete t[e]}),C.selectCheckboxMaps=t}return n===e?(e=p=n.slice(0),_.tableFullData=[],_.afterFullData=[],m.clearMergeCells()):t&&u?e.forEach(e=>{let t=(0,_util.getRowid)(m,e);var l=_xeUtils.default.findTree(i,e=>t===(0,_util.getRowid)(m,e),{children:c}),l=(l&&(l=l.items.splice(l.index,1),p.push(l[0])),_xeUtils.default.findTree(i,e=>t===(0,_util.getRowid)(m,e),{children:g})),l=(l&&l.items.splice(l.index,1),m.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):e.forEach(e=>{var t=m.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),p.push(t[0]));let r=m.findRowIndexOf(a,e);-1<r&&(l.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),a.splice(r,1))}),v.row&&-1<m.findRowIndexOf(e,v.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(m,e);f[e]&&delete f[e],h[e]&&delete h[e]}),r.insertMaps=f,C.pendingRowMaps=h,m.updateFooter(),m.cacheRowMap(!1),m.handleTableData(t&&u),t&&u||m.updateAfterDataIndex(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},removeCheckboxRow(){return I.remove(m.getCheckboxRecords()).then(e=>(m.clearCheckboxRow(),e))},removeRadioRow(){var e=m.getRadioRecord();return I.remove(e||[]).then(e=>(m.clearRadioRow(),e))},removeCurrentRow(){var e=m.getCurrentRecord();return I.remove(e||[]).then(e=>(m.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=m.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>m.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=C.editStore;let l=_.fullAllDataRowIdData;e=e.insertMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.editStore,e=e.removeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=R,l=_.tableFullData,r=E.value;return e?(u(),t?_xeUtils.default.filterTree(l,e=>m.isUpdateByRow(e),r):l.filter(e=>m.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=C.editStore,t=_.afterFullData,l=o.value,{args:e,row:r}=e.actived;return e&&-1<m.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=C.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},clearEdit(e){return p(null,e)},clearSelected(){var e=C.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},isEditByRow(e){var t=C.editStore;return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=_.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(r=_xeUtils.default.isString(t)?m.getColumnByField(t):t),m.setEditCell(e,r)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(t,e){var l=R.editConfig;let r=_xeUtils.default.isString(e)?m.getColumnByField(e):e;return t&&r&&(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(r.editRender)?m.scrollToRow(t,r).then(()=>{var e=m.getCellElement(t,r);return e&&(f.handleEdit({row:t,rowIndex:m.getRowIndex(t),column:r,columnIndex:m.getColumnIndex(r),cell:e,$table:m}),_._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell(e,t){var l=C.tableData,r=w.value,t=_xeUtils.default.isString(t)?m.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=m.findRowIndexOf(l,e))&&t&&(l=m.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:m.getColumnIndex(t),cell:l},m.handleSelected(e,{})),(0,_vue.nextTick)()}},f={handleEdit(l,r){var{editConfig:e,mouseConfig:o}=R,{editStore:i,tableColumn:a}=C,n=w.value,d=n.mode,{actived:i,focused:t}=i;let{row:s,column:u}=l;var c=u.editRender,g=l.cell||m.getCellElement(s,u),v=n.beforeEditMethod||n.activeMethod;if((l.cell=g)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(c)&&!m.isPendingByRow(s)){if(i.row!==s||"cell"===d&&i.column!==u){let t="edit-disabled";if(!v||v(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))){o&&(I.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),m.closeTooltip(),i.column&&p(r),t="edit-activated",u.renderHeight=g.offsetHeight,i.args=l,i.row=s,i.column=u,"row"===d?a.forEach(e=>h(s,e)):h(s,u);let e=n.afterEditMethod;(0,_vue.nextTick)(()=>{f.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))})}m.dispatchEvent(t,{row:s,rowIndex:m.getRowIndex(s),$rowIndex:m.getVMRowIndex(s),column:u,columnIndex:m.getColumnIndex(u),$columnIndex:m.getVMColumnIndex(u)},r),"edit-activated"===t&&m.dispatchEvent("edit-actived",{row:s,rowIndex:m.getRowIndex(s),$rowIndex:m.getVMRowIndex(s),column:u,columnIndex:m.getColumnIndex(u),$columnIndex:m.getVMColumnIndex(u)},r)}else{e=i.column;o&&(I.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),e!==u&&(c=e.model,c.update&&(0,_util.setCellValue)(s,e,c.value),m.clearValidate)&&m.clearValidate(s,u),u.renderHeight=g.offsetHeight,i.args=l,i.column=u,setTimeout(()=>{f.handleFocus(l,r)})}t.column=null,t.row=null,m.focus()}return(0,_vue.nextTick)()},handleActived(e,t){return f.handleEdit(e,t)},handleClearEdit:p,handleFocus(r){var{row:o,column:i,cell:a}=r,n=i.editRender,d=w.value;if((0,_utils.isEnableConf)(n)){var s=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e(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()):d.autoPos&&!i.fixed&&m.scrollToRow(o,i)}},handleSelected(e,t){var l=R.mouseConfig,r=C.editStore,o=c.value;let i=w.value,{actived:a,selected:n}=r,{row:d,column:s}=e,u=l&&o.selected;return!u||n.row===d&&n.column===s||(a.row!==d||"cell"===i.mode&&a.column!==s)&&(p(t),I.clearSelected(),m.clearCellAreas&&(m.clearCellAreas(),m.clearCopyCellArea()),n.args=e,n.row=d,n.column=s,u&&f.addCellSelectedClass(),m.focus(),t)&&m.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=C.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=m.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),f)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
|
|
1
|
+
var _vue=require("vue"),_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,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(m){let{props:R,reactData:C,internalData:_}=m,o=m.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:f,computeCheckboxOpts:x,computeTreeOpts:E,computeValidOpts:s}=m.getComputeMaps(),I={},g={},h=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},a=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=o.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")},u=()=>{var{editStore:e,tableColumn:t}=C,l=f.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))},b=(e,t)=>{let{tableFullTreeData:i,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:s}=_;var l=E.value;let{rowField:u,parentField:c,mapChildrenField:g}=l,v=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(m,l),o=t?_xeUtils.default.findTree(i,e=>t===e[u],{children:g}):null;if(o){var o=o.item,a=s[(0,_util.getRowid)(m,o)],a=a?a.level:0;let e=o[v],t=o[g];_xeUtils.default.isArray(e)||(e=o[v]=[]),_xeUtils.default.isArray(t)||(t=o[v]=[]),e[w](l),t[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=o,s[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[w](l),i[w](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=a,s[r]=a}})},d=(t,l,d)=>{let o=R.treeConfig;var{mergeList:e,editStore:r}=C;let{tableFullTreeData:s,afterFullData:a,tableFullData:i,fullDataRowIdData:u,fullAllDataRowIdData:c}=_,g=E.value,{transform:n,rowField:v,mapChildrenField:w}=g,f=g.children||g.childrenField,h=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(m.defineField(t.map(e=>Object.assign(o&&n?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&n?b(h,!1):(h.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,a.unshift(e),i.unshift(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+h.length)}));else if(-1===l)o&&n?b(h,!0):(h.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,a.push(e),i.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>a.length&&(e.rowspan=l+h.length)}));else if(o&&n){let n=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:w});if(n){let o=n.parent,a=o?o[w]:s;t=c[(0,_util.getRowid)(m,o)];let i=t?t.level:0;if(h.forEach((e,t)=>{var l=(0,_util.getRowid)(m,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&o&&e[g.parentField]!==o[v]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+o[v]]),o&&(e[g.parentField]=o[v]);let r=n.index+t;d&&(r+=1),a.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,c[l]=t}),o){t=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:f});if(t){var p=t.items;let e=t.index;d&&(e+=1),p.splice(e,0,...h)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),b(h,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<a.length&&(r=l):r=m.findRowIndexOf(a,l),-1===(r=d?Math.min(a.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));a.splice(r,0,...h);t=m.findRowIndexOf(i,l);-1<t?i.splice(t+(d?1:0),0,...h):i.push(...h),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+h.length:t+l>r&&(e.rowspan=l+h.length)})}let x=r.insertMaps;return h.forEach(e=>{var t=(0,_util.getRowid)(m,e);x[t]=e}),m.cacheRowMap(!1),m.updateScrollYStatus(),m.handleTableData(o&&n),o&&n||m.updateAfterDataIndex(),m.updateFooter(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},r=(e,t,l,r)=>{var o=R.treeConfig;let{transform:a,rowField:i,parentField:n}=E.value;return o&&a?(_xeUtils.default.isArray(e)||(e=[e]),d(e.map(e=>Object.assign({},e,{[n]:t[i]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.treeConfig=false","tree-config.treeConfig=true"]),Promise.resolve({row:null,rows:[]}))},p=(e,t)=>{let l=R.mouseConfig;var r=C.editStore,{actived:r,focused:o}=r,{row:a,column:i}=r,n=s.value;let d=c.value;if(a||i){if(t&&(0,_util.getRowid)(m,t)!==(0,_util.getRowid)(m,a))return(0,_vue.nextTick)();u(),r.args=null,r.row=null,r.column=null,m.updateFooter(),m.dispatchEvent("edit-closed",{row:a,rowIndex:m.getRowIndex(a),$rowIndex:m.getVMRowIndex(a),column:i,columnIndex:m.getColumnIndex(i),$columnIndex:m.getVMColumnIndex(i)},e||null)}return o.row=null,o.column=null,n.autoClear&&("full"!==n.msgMode||"obsolete"===getConfig().cellVaildMode)&&m.clearValidate?m.clearValidate():(0,_vue.nextTick)().then(()=>{if(l&&d.area&&m.handleRecalculateCellAreas)return m.handleRecalculateCellAreas()})},i=(l,r,o)=>{var{editConfig:e,mouseConfig:a}=R,{editStore:i,tableColumn:n}=C,d=f.value,s=d.mode,{actived:i,focused:t}=i;let{row:u,column:c}=l;var g=c.editRender,v=l.cell||m.getCellElement(u,c),w=d.beforeEditMethod||d.activeMethod;if((l.cell=v)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(g)&&!m.isPendingByRow(u)){if(i.row!==u||"cell"===s&&i.column!==c){let t="edit-disabled";if(!w||w(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))){a&&(m.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),m.closeTooltip(),i.column&&p(r),t="edit-activated",c.renderHeight=v.offsetHeight,i.args=l,i.row=u,i.column=c,"row"===s?n.forEach(e=>h(u,e)):h(u,c);let e=d.afterEditMethod;(0,_vue.nextTick)(()=>{o&&m.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))})}m.dispatchEvent(t,{row:u,rowIndex:m.getRowIndex(u),$rowIndex:m.getVMRowIndex(u),column:c,columnIndex:m.getColumnIndex(c),$columnIndex:m.getVMColumnIndex(c)},r),"edit-activated"===t&&m.dispatchEvent("edit-actived",{row:u,rowIndex:m.getRowIndex(u),$rowIndex:m.getVMRowIndex(u),column:c,columnIndex:m.getColumnIndex(c),$columnIndex:m.getVMColumnIndex(c)},r)}else{e=i.column;a&&(m.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),e!==c&&(g=e.model,g.update&&(0,_util.setCellValue)(u,e,g.value),m.clearValidate)&&m.clearValidate(u,c),c.renderHeight=v.offsetHeight,i.args=l,i.column=c,o&&setTimeout(()=>{m.handleFocus(l,r)})}t.column=null,t.row=null,m.focus()}return(0,_vue.nextTick)()},n=(t,e,l)=>{var r=R.editConfig;let o=_xeUtils.default.isString(e)?m.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)?Promise.resolve(l?m.scrollToRow(t,o):null).then(()=>{var e=m.getCellElement(t,o);return e&&(i({row:t,rowIndex:m.getRowIndex(t),column:o,columnIndex:m.getColumnIndex(o),cell:e,$table:m},null,!1),_._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return I={insert(e){return d(e,null)},insertAt(e,t){return d(e,t)},insertNextAt(e,t){return d(e,t,!0)},insertChild(e,t){return r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=R.treeConfig;let{mergeList:l,editStore:r,selectCheckboxMaps:o}=C,{tableFullTreeData:a,afterFullData:i,tableFullData:n}=_;var d=x.value,s=E.value;let{transform:u,mapChildrenField:c}=s,g=s.children||s.childrenField,{actived:v,removeMaps:w}=r,f=Object.assign({},r.insertMaps),h=Object.assign({},C.pendingRowMaps);s=d.checkField;let p=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;m.isInsertByRow(e)||(t=(0,_util.getRowid)(m,e),w[t]=e)}),!s){let t=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(m,e);t[e]&&delete t[e]}),C.selectCheckboxMaps=t}return n===e?(e=p=n.slice(0),_.tableFullData=[],_.afterFullData=[],m.clearMergeCells()):t&&u?e.forEach(e=>{let t=(0,_util.getRowid)(m,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(m,e),{children:c}),l=(l&&(l=l.items.splice(l.index,1),p.push(l[0])),_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(m,e),{children:g})),l=(l&&l.items.splice(l.index,1),m.findRowIndexOf(i,e));-1<l&&i.splice(l,1)}):e.forEach(e=>{var t=m.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),p.push(t[0]));let r=m.findRowIndexOf(i,e);-1<r&&(l.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),i.splice(r,1))}),v.row&&-1<m.findRowIndexOf(e,v.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(m,e);f[e]&&delete f[e],h[e]&&delete h[e]}),r.insertMaps=f,C.pendingRowMaps=h,m.updateFooter(),m.cacheRowMap(!1),m.handleTableData(t&&u),t&&u||m.updateAfterDataIndex(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},removeCheckboxRow(){return I.remove(m.getCheckboxRecords()).then(e=>(m.clearCheckboxRow(),e))},removeRadioRow(){var e=m.getRadioRecord();return I.remove(e||[]).then(e=>(m.clearRadioRow(),e))},removeCurrentRow(){var e=m.getCurrentRecord();return I.remove(e||[]).then(e=>(m.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=m.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>m.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=C.editStore;let l=_.fullAllDataRowIdData;e=e.insertMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.editStore,e=e.removeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=R,l=_.tableFullData,r=E.value;return e?(u(),t?_xeUtils.default.filterTree(l,e=>m.isUpdateByRow(e),r):l.filter(e=>m.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=C.editStore,t=_.afterFullData,l=o.value,{args:e,row:r}=e.actived;return e&&-1<m.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=C.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},clearEdit(e){return p(null,e)},clearSelected(){var e=C.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},isEditByRow(e){var t=C.editStore;return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=_.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(r=_xeUtils.default.isString(t)?m.getColumnByField(t):t),n(e,r,!1)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(e,t){return n(e,t,!0)},setSelectCell(e,t){var l=C.tableData,r=f.value,t=_xeUtils.default.isString(t)?m.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=m.findRowIndexOf(l,e))&&t&&(l=m.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:m.getColumnIndex(t),cell:l},m.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t){return i(e,t,!0)},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:p,handleFocus(r){var{row:o,column:a,cell:i}=r,n=a.editRender,d=f.value;if((0,_utils.isEnableConf)(n)){var s=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?i.querySelector("input,textarea"):i.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!a.fixed&&m.scrollToRow(o,a)}},handleSelected(e,t){var l=R.mouseConfig,r=C.editStore,o=c.value;let a=f.value,{actived:i,selected:n}=r,{row:d,column:s}=e,u=l&&o.selected;return!u||n.row===d&&n.column===s||(i.row!==d||"cell"===a.mode&&i.column!==s)&&(p(t),I.clearSelected(),m.clearCellAreas&&(m.clearCellAreas(),m.clearCopyCellArea()),n.args=e,n.row=d,n.column=s,u&&g.addCellSelectedClass(),m.focus(),t)&&m.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=C.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=m.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
|
package/lib/table/src/body.js
CHANGED
|
@@ -55,8 +55,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
55
55
|
computeColumnOpts,
|
|
56
56
|
computeRowDragOpts,
|
|
57
57
|
computeColumnDragOpts,
|
|
58
|
-
computeLeftFixedWidth,
|
|
59
|
-
computeRightFixedWidth,
|
|
60
58
|
computeResizableOpts
|
|
61
59
|
} = $xeTable.getComputeMaps();
|
|
62
60
|
const refElem = (0, _vue.ref)();
|
|
@@ -494,7 +492,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
494
492
|
expandColumn,
|
|
495
493
|
selectRadioRow,
|
|
496
494
|
pendingRowMaps,
|
|
497
|
-
isDragColMove
|
|
495
|
+
isDragColMove,
|
|
496
|
+
rowExpandHeightFlag
|
|
498
497
|
} = tableReactData;
|
|
499
498
|
const {
|
|
500
499
|
fullAllDataRowIdData
|
|
@@ -536,18 +535,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
536
535
|
};
|
|
537
536
|
}
|
|
538
537
|
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
539
|
-
const
|
|
538
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
540
539
|
let rowLevel = 0;
|
|
541
540
|
let seq = -1;
|
|
542
541
|
let _rowIndex = 0;
|
|
543
|
-
if (
|
|
544
|
-
rowLevel =
|
|
542
|
+
if (rowRest) {
|
|
543
|
+
rowLevel = rowRest.level;
|
|
545
544
|
if (treeConfig && transform && seqMode === 'increasing') {
|
|
546
|
-
seq =
|
|
545
|
+
seq = rowRest._index + 1;
|
|
547
546
|
} else {
|
|
548
|
-
seq =
|
|
547
|
+
seq = rowRest.seq;
|
|
549
548
|
}
|
|
550
|
-
_rowIndex =
|
|
549
|
+
_rowIndex = rowRest._index;
|
|
551
550
|
}
|
|
552
551
|
const params = {
|
|
553
552
|
$table: $xeTable,
|
|
@@ -613,51 +612,63 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
613
612
|
const expandOpts = computeExpandOpts.value;
|
|
614
613
|
const {
|
|
615
614
|
height: expandHeight,
|
|
616
|
-
padding
|
|
615
|
+
padding,
|
|
616
|
+
mode: expandMode
|
|
617
617
|
} = expandOpts;
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
618
|
+
if (expandMode === 'fixed') {
|
|
619
|
+
rows.push((0, _vue.h)('tr', {
|
|
620
|
+
class: 'vxe-body--row-expanded-place',
|
|
621
|
+
key: `expand_${rowid}`,
|
|
622
|
+
rowid
|
|
623
|
+
}, [(0, _vue.h)('td', {
|
|
624
|
+
class: 'vxe-body--row-expanded-place-column',
|
|
625
|
+
colspan: tableColumn.length,
|
|
626
|
+
style: {
|
|
627
|
+
height: `${rowExpandHeightFlag ? rowRest.expandHeight || expandHeight : 0}px`
|
|
628
|
+
}
|
|
629
|
+
})]));
|
|
630
|
+
} else {
|
|
631
|
+
const cellStyle = {};
|
|
632
|
+
if (expandHeight) {
|
|
633
|
+
cellStyle.height = `${expandHeight}px`;
|
|
634
|
+
}
|
|
635
|
+
if (treeConfig) {
|
|
636
|
+
cellStyle.paddingLeft = `${rowLevel * treeOpts.indent + 30}px`;
|
|
637
|
+
}
|
|
638
|
+
const {
|
|
639
|
+
showOverflow
|
|
640
|
+
} = expandColumn;
|
|
641
|
+
const hasEllipsis = _xeUtils.default.isUndefined(showOverflow) || _xeUtils.default.isNull(showOverflow) ? isAllOverflow : showOverflow;
|
|
642
|
+
const expandParams = {
|
|
643
|
+
$table: $xeTable,
|
|
644
|
+
seq,
|
|
645
|
+
column: expandColumn,
|
|
646
|
+
fixed: fixedType,
|
|
647
|
+
type: renderType,
|
|
648
|
+
level: rowLevel,
|
|
649
|
+
row,
|
|
650
|
+
rowIndex,
|
|
651
|
+
$rowIndex,
|
|
652
|
+
_rowIndex
|
|
653
|
+
};
|
|
654
|
+
rows.push((0, _vue.h)('tr', {
|
|
655
|
+
class: ['vxe-body--expanded-row', {
|
|
656
|
+
'is--padding': padding
|
|
657
|
+
}],
|
|
658
|
+
key: `expand_${rowid}`
|
|
659
|
+
}, [(0, _vue.h)('td', {
|
|
660
|
+
class: ['vxe-body--expanded-column', {
|
|
661
|
+
'fixed--hidden': fixedType && !hasFixedColumn,
|
|
662
|
+
'col--ellipsis': hasEllipsis
|
|
663
|
+
}],
|
|
664
|
+
colspan: tableColumn.length
|
|
665
|
+
}, [(0, _vue.h)('div', {
|
|
666
|
+
class: ['vxe-body--expanded-cell', {
|
|
667
|
+
'is--ellipsis': expandHeight
|
|
668
|
+
}],
|
|
669
|
+
style: cellStyle
|
|
670
|
+
}, [expandColumn.renderData(expandParams)])])]));
|
|
624
671
|
}
|
|
625
|
-
const {
|
|
626
|
-
showOverflow
|
|
627
|
-
} = expandColumn;
|
|
628
|
-
const hasEllipsis = _xeUtils.default.isUndefined(showOverflow) || _xeUtils.default.isNull(showOverflow) ? isAllOverflow : showOverflow;
|
|
629
|
-
const expandParams = {
|
|
630
|
-
$table: $xeTable,
|
|
631
|
-
seq,
|
|
632
|
-
column: expandColumn,
|
|
633
|
-
fixed: fixedType,
|
|
634
|
-
type: renderType,
|
|
635
|
-
level: rowLevel,
|
|
636
|
-
row,
|
|
637
|
-
rowIndex,
|
|
638
|
-
$rowIndex,
|
|
639
|
-
_rowIndex
|
|
640
|
-
};
|
|
641
|
-
rows.push((0, _vue.h)('tr', Object.assign({
|
|
642
|
-
class: ['vxe-body--expanded-row', {
|
|
643
|
-
'is--padding': padding
|
|
644
|
-
}],
|
|
645
|
-
key: `expand_${rowid}`,
|
|
646
|
-
style: rowStyle ? _xeUtils.default.isFunction(rowStyle) ? rowStyle(expandParams) : rowStyle : null
|
|
647
|
-
}, trOn), [(0, _vue.h)('td', {
|
|
648
|
-
class: {
|
|
649
|
-
'vxe-body--expanded-column': 1,
|
|
650
|
-
'fixed--hidden': fixedType && !hasFixedColumn,
|
|
651
|
-
'col--ellipsis': hasEllipsis
|
|
652
|
-
},
|
|
653
|
-
colspan: tableColumn.length
|
|
654
|
-
}, [(0, _vue.h)('div', {
|
|
655
|
-
class: {
|
|
656
|
-
'vxe-body--expanded-cell': 1,
|
|
657
|
-
'is--ellipsis': expandHeight
|
|
658
|
-
},
|
|
659
|
-
style: cellStyle
|
|
660
|
-
}, [expandColumn.renderData(expandParams)])])]));
|
|
661
672
|
}
|
|
662
673
|
// 如果是树形表格
|
|
663
674
|
if (isExpandTree) {
|
|
@@ -738,14 +749,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
738
749
|
const emptyOpts = computeEmptyOpts.value;
|
|
739
750
|
const mouseOpts = computeMouseOpts.value;
|
|
740
751
|
const rowDragOpts = computeRowDragOpts.value;
|
|
741
|
-
const
|
|
742
|
-
const rightFixedWidth = computeRightFixedWidth.value;
|
|
752
|
+
const expandOpts = computeExpandOpts.value;
|
|
743
753
|
let renderDataList = tableData;
|
|
744
754
|
let renderColumnList = tableColumn;
|
|
745
755
|
let isOptimizeMode = false;
|
|
746
756
|
// 如果是使用优化模式
|
|
747
757
|
if (scrollXLoad || scrollYLoad || isAllOverflow) {
|
|
748
|
-
if (expandColumn || spanMethod || footerSpanMethod) {
|
|
758
|
+
if (expandColumn && expandOpts.mode !== 'fixed' || spanMethod || footerSpanMethod) {
|
|
749
759
|
// 如果不支持优化模式
|
|
750
760
|
} else {
|
|
751
761
|
isOptimizeMode = true;
|
|
@@ -826,9 +836,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
826
836
|
$xeTable.triggerBodyScrollEvent(evnt, fixedType);
|
|
827
837
|
}
|
|
828
838
|
};
|
|
829
|
-
if (scrollYLoad || leftFixedWidth || rightFixedWidth) {
|
|
830
|
-
ons.onWheel = $xeTable.triggerBodyWheelEvent;
|
|
831
|
-
}
|
|
832
839
|
return (0, _vue.h)('div', {
|
|
833
840
|
ref: refElem,
|
|
834
841
|
class: ['vxe-table--body-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'],
|