vxe-table 4.10.13 → 4.10.14
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/hook.js +133 -123
- package/es/table/src/table.js +27 -7
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +203 -160
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/hook.js +159 -149
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/src/table.js +40 -7
- 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 +2 -2
- package/packages/table/module/edit/hook.ts +136 -124
- package/packages/table/src/table.ts +27 -7
- /package/es/{iconfont.1739257038865.ttf → iconfont.1739333111603.ttf} +0 -0
- /package/es/{iconfont.1739257038865.woff → iconfont.1739333111603.woff} +0 -0
- /package/es/{iconfont.1739257038865.woff2 → iconfont.1739333111603.woff2} +0 -0
- /package/lib/{iconfont.1739257038865.ttf → iconfont.1739333111603.ttf} +0 -0
- /package/lib/{iconfont.1739257038865.woff → iconfont.1739333111603.woff} +0 -0
- /package/lib/{iconfont.1739257038865.woff2 → iconfont.1739333111603.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,
|
|
@@ -166,7 +166,7 @@ hooks.add('tableEditModule', {
|
|
|
166
166
|
fullAllDataRowIdData[rowid] = rest;
|
|
167
167
|
}
|
|
168
168
|
});
|
|
169
|
-
}
|
|
169
|
+
};
|
|
170
170
|
const handleInsertRowAt = (records, targetRow, isInsertNextRow) => {
|
|
171
171
|
const {
|
|
172
172
|
treeConfig
|
|
@@ -485,6 +485,158 @@ hooks.add('tableEditModule', {
|
|
|
485
485
|
}
|
|
486
486
|
});
|
|
487
487
|
};
|
|
488
|
+
const handleEditActive = (params, evnt, isFocus) => {
|
|
489
|
+
const {
|
|
490
|
+
editConfig,
|
|
491
|
+
mouseConfig
|
|
492
|
+
} = props;
|
|
493
|
+
const {
|
|
494
|
+
editStore,
|
|
495
|
+
tableColumn
|
|
496
|
+
} = reactData;
|
|
497
|
+
const editOpts = computeEditOpts.value;
|
|
498
|
+
const {
|
|
499
|
+
mode
|
|
500
|
+
} = editOpts;
|
|
501
|
+
const {
|
|
502
|
+
actived,
|
|
503
|
+
focused
|
|
504
|
+
} = editStore;
|
|
505
|
+
const {
|
|
506
|
+
row,
|
|
507
|
+
column
|
|
508
|
+
} = params;
|
|
509
|
+
const {
|
|
510
|
+
editRender
|
|
511
|
+
} = column;
|
|
512
|
+
const cell = params.cell || $xeTable.getCellElement(row, column);
|
|
513
|
+
const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
|
|
514
|
+
params.cell = cell;
|
|
515
|
+
if (cell && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(editRender)) {
|
|
516
|
+
// 激活编辑
|
|
517
|
+
if (!$xeTable.isPendingByRow(row)) {
|
|
518
|
+
if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
|
|
519
|
+
// 判断是否禁用编辑
|
|
520
|
+
let type = 'edit-disabled';
|
|
521
|
+
if (!beforeEditMethod || beforeEditMethod(Object.assign(Object.assign({}, params), {
|
|
522
|
+
$table: $xeTable,
|
|
523
|
+
$grid: $xeTable.xegrid
|
|
524
|
+
}))) {
|
|
525
|
+
if (mouseConfig) {
|
|
526
|
+
$xeTable.clearSelected();
|
|
527
|
+
if ($xeTable.clearCellAreas) {
|
|
528
|
+
$xeTable.clearCellAreas();
|
|
529
|
+
$xeTable.clearCopyCellArea();
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
$xeTable.closeTooltip();
|
|
533
|
+
if (actived.column) {
|
|
534
|
+
handleClearEdit(evnt);
|
|
535
|
+
}
|
|
536
|
+
type = 'edit-activated';
|
|
537
|
+
column.renderHeight = cell.offsetHeight;
|
|
538
|
+
actived.args = params;
|
|
539
|
+
actived.row = row;
|
|
540
|
+
actived.column = column;
|
|
541
|
+
if (mode === 'row') {
|
|
542
|
+
tableColumn.forEach(column => getEditColumnModel(row, column));
|
|
543
|
+
} else {
|
|
544
|
+
getEditColumnModel(row, column);
|
|
545
|
+
}
|
|
546
|
+
const afterEditMethod = editOpts.afterEditMethod;
|
|
547
|
+
(0, _vue.nextTick)(() => {
|
|
548
|
+
if (isFocus) {
|
|
549
|
+
$xeTable.handleFocus(params, evnt);
|
|
550
|
+
}
|
|
551
|
+
if (afterEditMethod) {
|
|
552
|
+
afterEditMethod(Object.assign(Object.assign({}, params), {
|
|
553
|
+
$table: $xeTable,
|
|
554
|
+
$grid: $xeTable.xegrid
|
|
555
|
+
}));
|
|
556
|
+
}
|
|
557
|
+
});
|
|
558
|
+
}
|
|
559
|
+
$xeTable.dispatchEvent(type, {
|
|
560
|
+
row,
|
|
561
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
562
|
+
$rowIndex: $xeTable.getVMRowIndex(row),
|
|
563
|
+
column,
|
|
564
|
+
columnIndex: $xeTable.getColumnIndex(column),
|
|
565
|
+
$columnIndex: $xeTable.getVMColumnIndex(column)
|
|
566
|
+
}, evnt);
|
|
567
|
+
// v4已废弃
|
|
568
|
+
if (type === 'edit-activated') {
|
|
569
|
+
$xeTable.dispatchEvent('edit-actived', {
|
|
570
|
+
row,
|
|
571
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
572
|
+
$rowIndex: $xeTable.getVMRowIndex(row),
|
|
573
|
+
column,
|
|
574
|
+
columnIndex: $xeTable.getColumnIndex(column),
|
|
575
|
+
$columnIndex: $xeTable.getVMColumnIndex(column)
|
|
576
|
+
}, evnt);
|
|
577
|
+
}
|
|
578
|
+
} else {
|
|
579
|
+
const {
|
|
580
|
+
column: oldColumn
|
|
581
|
+
} = actived;
|
|
582
|
+
if (mouseConfig) {
|
|
583
|
+
$xeTable.clearSelected();
|
|
584
|
+
if ($xeTable.clearCellAreas) {
|
|
585
|
+
$xeTable.clearCellAreas();
|
|
586
|
+
$xeTable.clearCopyCellArea();
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
if (oldColumn !== column) {
|
|
590
|
+
const {
|
|
591
|
+
model: oldModel
|
|
592
|
+
} = oldColumn;
|
|
593
|
+
if (oldModel.update) {
|
|
594
|
+
(0, _util.setCellValue)(row, oldColumn, oldModel.value);
|
|
595
|
+
}
|
|
596
|
+
if ($xeTable.clearValidate) {
|
|
597
|
+
$xeTable.clearValidate(row, column);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
column.renderHeight = cell.offsetHeight;
|
|
601
|
+
actived.args = params;
|
|
602
|
+
actived.column = column;
|
|
603
|
+
if (isFocus) {
|
|
604
|
+
setTimeout(() => {
|
|
605
|
+
$xeTable.handleFocus(params, evnt);
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
focused.column = null;
|
|
610
|
+
focused.row = null;
|
|
611
|
+
$xeTable.focus();
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
return (0, _vue.nextTick)();
|
|
615
|
+
};
|
|
616
|
+
const handleEditCell = (row, fieldOrColumn, isPos) => {
|
|
617
|
+
const {
|
|
618
|
+
editConfig
|
|
619
|
+
} = props;
|
|
620
|
+
const column = _xeUtils.default.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
|
|
621
|
+
if (row && column && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(column.editRender)) {
|
|
622
|
+
return Promise.resolve(isPos ? $xeTable.scrollToRow(row, column) : null).then(() => {
|
|
623
|
+
const cell = $xeTable.getCellElement(row, column);
|
|
624
|
+
if (cell) {
|
|
625
|
+
handleEditActive({
|
|
626
|
+
row,
|
|
627
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
628
|
+
column,
|
|
629
|
+
columnIndex: $xeTable.getColumnIndex(column),
|
|
630
|
+
cell,
|
|
631
|
+
$table: $xeTable
|
|
632
|
+
}, null, false);
|
|
633
|
+
internalData._lastCallTime = Date.now();
|
|
634
|
+
}
|
|
635
|
+
return (0, _vue.nextTick)();
|
|
636
|
+
});
|
|
637
|
+
}
|
|
638
|
+
return (0, _vue.nextTick)();
|
|
639
|
+
};
|
|
488
640
|
editMethods = {
|
|
489
641
|
/**
|
|
490
642
|
* 往表格中插入临时数据
|
|
@@ -877,7 +1029,7 @@ hooks.add('tableEditModule', {
|
|
|
877
1029
|
if (fieldOrColumn) {
|
|
878
1030
|
column = _xeUtils.default.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
|
|
879
1031
|
}
|
|
880
|
-
return
|
|
1032
|
+
return handleEditCell(row, column, false);
|
|
881
1033
|
},
|
|
882
1034
|
setActiveCell(row, fieldOrColumn) {
|
|
883
1035
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -890,28 +1042,7 @@ hooks.add('tableEditModule', {
|
|
|
890
1042
|
* 激活单元格编辑
|
|
891
1043
|
*/
|
|
892
1044
|
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)();
|
|
1045
|
+
return handleEditCell(row, fieldOrColumn, true);
|
|
915
1046
|
},
|
|
916
1047
|
/**
|
|
917
1048
|
* 只对 trigger=dblclick 有效,选中单元格
|
|
@@ -944,128 +1075,7 @@ hooks.add('tableEditModule', {
|
|
|
944
1075
|
* 处理激活编辑
|
|
945
1076
|
*/
|
|
946
1077
|
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)();
|
|
1078
|
+
return handleEditActive(params, evnt, true);
|
|
1069
1079
|
},
|
|
1070
1080
|
/**
|
|
1071
1081
|
* @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(x){let{props:R,reactData:C,internalData:_}=x,o=x.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:f,computeCheckboxOpts:m,computeTreeOpts:E,computeValidOpts:s}=x.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)(x,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)(x,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};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};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)(x.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)(x,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};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)(x,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};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)(x,o)];let i=t?t.level:0;if(h.forEach((e,t)=>{var l=(0,_util.getRowid)(x,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};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=x.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=x.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 m=r.insertMaps;return h.forEach(e=>{var t=(0,_util.getRowid)(x,e);m[t]=e}),x.cacheRowMap(!1),x.updateScrollYStatus(),x.handleTableData(o&&n),o&&n||x.updateAfterDataIndex(),x.updateFooter(),x.checkSelectionStatus(),C.scrollYLoad&&x.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(x.updateCellAreas(),x.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)(x,t)!==(0,_util.getRowid)(x,a))return(0,_vue.nextTick)();u(),r.args=null,r.row=null,r.column=null,x.updateFooter(),x.dispatchEvent("edit-closed",{row:a,rowIndex:x.getRowIndex(a),$rowIndex:x.getVMRowIndex(a),column:i,columnIndex:x.getColumnIndex(i),$columnIndex:x.getVMColumnIndex(i)},e||null)}return o.row=null,o.column=null,n.autoClear&&("full"!==n.msgMode||"obsolete"===getConfig().cellVaildMode)&&x.clearValidate?x.clearValidate():(0,_vue.nextTick)().then(()=>{if(l&&d.area&&x.handleRecalculateCellAreas)return x.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||x.getCellElement(u,c),w=d.beforeEditMethod||d.activeMethod;if((l.cell=v)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(g)&&!x.isPendingByRow(u)){if(i.row!==u||"cell"===s&&i.column!==c){let t="edit-disabled";if(!w||w(Object.assign(Object.assign({},l),{$table:x,$grid:x.xegrid}))){a&&(x.clearSelected(),x.clearCellAreas)&&(x.clearCellAreas(),x.clearCopyCellArea()),x.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&&x.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:x,$grid:x.xegrid}))})}x.dispatchEvent(t,{row:u,rowIndex:x.getRowIndex(u),$rowIndex:x.getVMRowIndex(u),column:c,columnIndex:x.getColumnIndex(c),$columnIndex:x.getVMColumnIndex(c)},r),"edit-activated"===t&&x.dispatchEvent("edit-actived",{row:u,rowIndex:x.getRowIndex(u),$rowIndex:x.getVMRowIndex(u),column:c,columnIndex:x.getColumnIndex(c),$columnIndex:x.getVMColumnIndex(c)},r)}else{e=i.column;a&&(x.clearSelected(),x.clearCellAreas)&&(x.clearCellAreas(),x.clearCopyCellArea()),e!==c&&(g=e.model,g.update&&(0,_util.setCellValue)(u,e,g.value),x.clearValidate)&&x.clearValidate(u,c),c.renderHeight=v.offsetHeight,i.args=l,i.column=c,o&&setTimeout(()=>{x.handleFocus(l,r)})}t.column=null,t.row=null,x.focus()}return(0,_vue.nextTick)()},n=(t,e,l)=>{var r=R.editConfig;let o=_xeUtils.default.isString(e)?x.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)?Promise.resolve(l?x.scrollToRow(t,o):null).then(()=>{var e=x.getCellElement(t,o);return e&&(i({row:t,rowIndex:x.getRowIndex(t),column:o,columnIndex:x.getColumnIndex(o),cell:e,$table:x},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=m.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;x.isInsertByRow(e)||(t=(0,_util.getRowid)(x,e),w[t]=e)}),!s){let t=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(x,e);t[e]&&delete t[e]}),C.selectCheckboxMaps=t}return n===e?(e=p=n.slice(0),_.tableFullData=[],_.afterFullData=[],x.clearMergeCells()):t&&u?e.forEach(e=>{let t=(0,_util.getRowid)(x,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(x,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)(x,e),{children:g})),l=(l&&l.items.splice(l.index,1),x.findRowIndexOf(i,e));-1<l&&i.splice(l,1)}):e.forEach(e=>{var t=x.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),p.push(t[0]));let r=x.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<x.findRowIndexOf(e,v.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(x,e);f[e]&&delete f[e],h[e]&&delete h[e]}),r.insertMaps=f,C.pendingRowMaps=h,x.updateFooter(),x.cacheRowMap(!1),x.handleTableData(t&&u),t&&u||x.updateAfterDataIndex(),x.checkSelectionStatus(),C.scrollYLoad&&x.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(x.updateCellAreas(),x.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},removeCheckboxRow(){return I.remove(x.getCheckboxRecords()).then(e=>(x.clearCheckboxRow(),e))},removeRadioRow(){var e=x.getRadioRecord();return I.remove(e||[]).then(e=>(x.clearRadioRow(),e))},removeCurrentRow(){var e=x.getCurrentRecord();return I.remove(e||[]).then(e=>(x.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=x.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>x.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=>x.isUpdateByRow(e),r):l.filter(e=>x.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<x.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)?x.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)?x.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=x.findRowIndexOf(l,e))&&t&&(l=x.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:x.getColumnIndex(t),cell:l},x.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&&x.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(),x.clearCellAreas&&(x.clearCellAreas(),x.clearCopyCellArea()),n.args=e,n.row=d,n.column=s,u&&g.addCellSelectedClass(),x.focus(),t)&&x.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=x.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/table.js
CHANGED
|
@@ -9868,6 +9868,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9868
9868
|
}
|
|
9869
9869
|
},
|
|
9870
9870
|
triggerBodyScrollEvent(evnt, fixedType) {
|
|
9871
|
+
const {
|
|
9872
|
+
scrollYLoad,
|
|
9873
|
+
scrollXLoad
|
|
9874
|
+
} = reactData;
|
|
9871
9875
|
const {
|
|
9872
9876
|
elemStore,
|
|
9873
9877
|
intoRunScroll,
|
|
@@ -9933,13 +9937,17 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9933
9937
|
(0, _dom.setScrollTop)(rightScrollElem, scrollTop);
|
|
9934
9938
|
}
|
|
9935
9939
|
(0, _dom.setScrollTop)(yHandleEl, scrollTop);
|
|
9936
|
-
|
|
9940
|
+
if (scrollYLoad) {
|
|
9941
|
+
$xeTable.triggerScrollYEvent(evnt);
|
|
9942
|
+
}
|
|
9937
9943
|
}
|
|
9938
9944
|
if (isRollX) {
|
|
9939
9945
|
(0, _dom.setScrollLeft)(xHandleEl, scrollLeft);
|
|
9940
9946
|
(0, _dom.setScrollLeft)(headerScrollElem, scrollLeft);
|
|
9941
9947
|
(0, _dom.setScrollLeft)(footerScrollElem, scrollLeft);
|
|
9942
|
-
|
|
9948
|
+
if (scrollXLoad) {
|
|
9949
|
+
$xeTable.triggerScrollXEvent(evnt);
|
|
9950
|
+
}
|
|
9943
9951
|
}
|
|
9944
9952
|
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
|
|
9945
9953
|
type: 'body',
|
|
@@ -9947,6 +9955,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9947
9955
|
});
|
|
9948
9956
|
},
|
|
9949
9957
|
triggerHeaderScrollEvent(evnt, fixedType) {
|
|
9958
|
+
const {
|
|
9959
|
+
scrollXLoad
|
|
9960
|
+
} = reactData;
|
|
9950
9961
|
const {
|
|
9951
9962
|
elemStore,
|
|
9952
9963
|
intoRunScroll,
|
|
@@ -9983,13 +9994,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
9983
9994
|
(0, _dom.setScrollLeft)(xHandleEl, scrollLeft);
|
|
9984
9995
|
(0, _dom.setScrollLeft)(footerScrollElem, scrollLeft);
|
|
9985
9996
|
(0, _dom.setScrollLeft)(bodyScrollElem, scrollLeft);
|
|
9986
|
-
|
|
9997
|
+
if (scrollXLoad) {
|
|
9998
|
+
$xeTable.triggerScrollXEvent(evnt);
|
|
9999
|
+
}
|
|
9987
10000
|
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
|
|
9988
10001
|
type: 'header',
|
|
9989
10002
|
fixed: fixedType
|
|
9990
10003
|
});
|
|
9991
10004
|
},
|
|
9992
10005
|
triggerFooterScrollEvent(evnt, fixedType) {
|
|
10006
|
+
const {
|
|
10007
|
+
scrollXLoad
|
|
10008
|
+
} = reactData;
|
|
9993
10009
|
const {
|
|
9994
10010
|
elemStore,
|
|
9995
10011
|
intoRunScroll,
|
|
@@ -10026,7 +10042,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10026
10042
|
(0, _dom.setScrollLeft)(xHandleEl, scrollLeft);
|
|
10027
10043
|
(0, _dom.setScrollLeft)(headerScrollElem, scrollLeft);
|
|
10028
10044
|
(0, _dom.setScrollLeft)(bodyScrollElem, scrollLeft);
|
|
10029
|
-
|
|
10045
|
+
if (scrollXLoad) {
|
|
10046
|
+
$xeTable.triggerScrollXEvent(evnt);
|
|
10047
|
+
}
|
|
10030
10048
|
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
|
|
10031
10049
|
type: 'footer',
|
|
10032
10050
|
fixed: fixedType
|
|
@@ -10044,6 +10062,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10044
10062
|
const {
|
|
10045
10063
|
highlightHoverRow
|
|
10046
10064
|
} = _props.default;
|
|
10065
|
+
const {
|
|
10066
|
+
scrollYLoad
|
|
10067
|
+
} = reactData;
|
|
10047
10068
|
const {
|
|
10048
10069
|
elemStore,
|
|
10049
10070
|
lastScrollTop,
|
|
@@ -10090,7 +10111,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10090
10111
|
(0, _dom.setScrollTop)(bodyScrollElem, currTopNum);
|
|
10091
10112
|
(0, _dom.setScrollTop)(leftScrollElem, currTopNum);
|
|
10092
10113
|
(0, _dom.setScrollTop)(rightScrollElem, currTopNum);
|
|
10093
|
-
|
|
10114
|
+
if (scrollYLoad) {
|
|
10115
|
+
$xeTable.triggerScrollYEvent(evnt);
|
|
10116
|
+
}
|
|
10094
10117
|
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, currTopNum, scrollLeft, {
|
|
10095
10118
|
type: 'table',
|
|
10096
10119
|
fixed: ''
|
|
@@ -10109,6 +10132,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10109
10132
|
}
|
|
10110
10133
|
},
|
|
10111
10134
|
triggerVirtualScrollXEvent(evnt) {
|
|
10135
|
+
const {
|
|
10136
|
+
scrollXLoad
|
|
10137
|
+
} = reactData;
|
|
10112
10138
|
const {
|
|
10113
10139
|
elemStore,
|
|
10114
10140
|
inWheelScroll,
|
|
@@ -10142,13 +10168,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10142
10168
|
(0, _dom.setScrollLeft)(bodyScrollElem, scrollLeft);
|
|
10143
10169
|
(0, _dom.setScrollLeft)(headerScrollElem, scrollLeft);
|
|
10144
10170
|
(0, _dom.setScrollLeft)(footerScrollElem, scrollLeft);
|
|
10145
|
-
|
|
10171
|
+
if (scrollXLoad) {
|
|
10172
|
+
$xeTable.triggerScrollXEvent(evnt);
|
|
10173
|
+
}
|
|
10146
10174
|
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
|
|
10147
10175
|
type: 'table',
|
|
10148
10176
|
fixed: ''
|
|
10149
10177
|
});
|
|
10150
10178
|
},
|
|
10151
10179
|
triggerVirtualScrollYEvent(evnt) {
|
|
10180
|
+
const {
|
|
10181
|
+
scrollYLoad
|
|
10182
|
+
} = reactData;
|
|
10152
10183
|
const {
|
|
10153
10184
|
elemStore,
|
|
10154
10185
|
inWheelScroll,
|
|
@@ -10182,7 +10213,9 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
10182
10213
|
(0, _dom.setScrollTop)(bodyScrollElem, scrollTop);
|
|
10183
10214
|
(0, _dom.setScrollTop)(leftScrollElem, scrollTop);
|
|
10184
10215
|
(0, _dom.setScrollTop)(rightScrollElem, scrollTop);
|
|
10185
|
-
|
|
10216
|
+
if (scrollYLoad) {
|
|
10217
|
+
$xeTable.triggerScrollYEvent(evnt);
|
|
10218
|
+
}
|
|
10186
10219
|
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
|
|
10187
10220
|
type: 'table',
|
|
10188
10221
|
fixed: ''
|