vxe-table 3.14.0-beta.2 → 3.14.0-beta.21
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/grid/src/grid.js +78 -48
- package/es/locale/lang/ar-EG.js +7 -1
- package/es/locale/lang/de-DE.js +7 -1
- package/es/locale/lang/en-US.js +7 -1
- package/es/locale/lang/es-ES.js +7 -1
- package/es/locale/lang/fr-FR.js +7 -1
- package/es/locale/lang/hu-HU.js +7 -1
- package/es/locale/lang/hy-AM.js +7 -1
- package/es/locale/lang/id-ID.js +7 -1
- package/es/locale/lang/it-IT.js +7 -1
- package/es/locale/lang/ja-JP.js +7 -1
- package/es/locale/lang/ko-KR.js +7 -1
- package/es/locale/lang/nb-NO.js +7 -1
- package/es/locale/lang/pt-BR.js +7 -1
- package/es/locale/lang/ru-RU.js +7 -1
- package/es/locale/lang/th-TH.js +7 -1
- package/es/locale/lang/ug-CN.js +7 -1
- package/es/locale/lang/uk-UA.js +7 -1
- package/es/locale/lang/vi-VN.js +7 -1
- package/es/locale/lang/zh-CHT.js +7 -1
- package/es/locale/lang/zh-CN.js +7 -1
- package/es/style.css +1 -1
- package/es/table/module/edit/mixin.js +14 -9
- package/es/table/module/filter/panel.js +12 -2
- package/es/table/module/keyboard/mixin.js +86 -21
- package/es/table/module/validator/mixin.js +2 -2
- package/es/table/render/index.js +90 -59
- package/es/table/src/body.js +22 -17
- package/es/table/src/cell.js +25 -20
- package/es/table/src/footer.js +9 -4
- package/es/table/src/header.js +2 -2
- package/es/table/src/methods.js +942 -678
- package/es/table/src/props.js +4 -0
- package/es/table/src/table.js +74 -32
- package/es/table/src/util.js +65 -7
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/helper/vetur/attributes.json +1 -1
- package/helper/vetur/tags.json +1 -1
- package/lib/grid/src/grid.js +85 -65
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +1641 -1076
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +7 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +7 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +7 -1
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +7 -1
- package/lib/locale/lang/es-ES.js +7 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +7 -1
- package/lib/locale/lang/fr-FR.js +7 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +7 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +7 -1
- package/lib/locale/lang/hy-AM.js +7 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/id-ID.js +7 -1
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/it-IT.js +7 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +7 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +7 -1
- package/lib/locale/lang/ko-KR.js +7 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +7 -1
- package/lib/locale/lang/nb-NO.js +7 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +7 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +7 -1
- package/lib/locale/lang/ru-RU.js +7 -1
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +7 -1
- package/lib/locale/lang/th-TH.js +7 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +7 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +7 -1
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +7 -1
- package/lib/locale/lang/vi-VN.js +7 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +7 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +7 -1
- package/lib/locale/lang/zh-CN.js +7 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +7 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/mixin.js +16 -11
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/module/filter/panel.js +8 -2
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/module/keyboard/mixin.js +89 -25
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/module/validator/mixin.js +3 -3
- package/lib/table/module/validator/mixin.min.js +1 -1
- package/lib/table/render/index.js +99 -64
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +27 -17
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +37 -21
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/footer.js +9 -3
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +2 -1
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +1101 -798
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/props.js +4 -0
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +79 -31
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +72 -7
- package/lib/table/src/util.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/grid/src/grid.ts +92 -57
- package/packages/locale/lang/ar-EG.ts +7 -1
- package/packages/locale/lang/de-DE.ts +7 -1
- package/packages/locale/lang/en-US.ts +7 -1
- package/packages/locale/lang/es-ES.ts +7 -1
- package/packages/locale/lang/fr-FR.ts +7 -1
- package/packages/locale/lang/hu-HU.ts +7 -1
- package/packages/locale/lang/hy-AM.ts +7 -1
- package/packages/locale/lang/id-ID.ts +7 -1
- package/packages/locale/lang/it-IT.ts +7 -1
- package/packages/locale/lang/ja-JP.ts +7 -1
- package/packages/locale/lang/ko-KR.ts +7 -1
- package/packages/locale/lang/nb-NO.ts +7 -1
- package/packages/locale/lang/pt-BR.ts +7 -1
- package/packages/locale/lang/ru-RU.ts +7 -1
- package/packages/locale/lang/th-TH.ts +7 -1
- package/packages/locale/lang/ug-CN.ts +7 -1
- package/packages/locale/lang/uk-UA.ts +7 -1
- package/packages/locale/lang/vi-VN.ts +7 -1
- package/packages/locale/lang/zh-CHT.ts +7 -1
- package/packages/locale/lang/zh-CN.ts +7 -1
- package/packages/table/module/edit/mixin.ts +17 -12
- package/packages/table/module/filter/panel.ts +12 -2
- package/packages/table/module/keyboard/mixin.ts +94 -27
- package/packages/table/module/validator/mixin.ts +2 -2
- package/packages/table/render/index.ts +89 -57
- package/packages/table/src/body.ts +21 -16
- package/packages/table/src/cell.ts +25 -20
- package/packages/table/src/footer.ts +9 -4
- package/packages/table/src/header.ts +2 -2
- package/packages/table/src/methods.ts +1035 -720
- package/packages/table/src/props.ts +16 -12
- package/packages/table/src/table.ts +87 -35
- package/packages/table/src/util.ts +73 -7
- /package/es/{iconfont.1741079977180.ttf → iconfont.1742437924038.ttf} +0 -0
- /package/es/{iconfont.1741079977180.woff → iconfont.1742437924038.woff} +0 -0
- /package/es/{iconfont.1741079977180.woff2 → iconfont.1742437924038.woff2} +0 -0
- /package/lib/{iconfont.1741079977180.ttf → iconfont.1742437924038.ttf} +0 -0
- /package/lib/{iconfont.1741079977180.woff → iconfont.1742437924038.woff} +0 -0
- /package/lib/{iconfont.1741079977180.woff2 → iconfont.1742437924038.woff2} +0 -0
package/lib/table/src/methods.js
CHANGED
|
@@ -21,6 +21,7 @@ const {
|
|
|
21
21
|
interceptor,
|
|
22
22
|
createEvent
|
|
23
23
|
} = _ui.VxeUI;
|
|
24
|
+
const supportMaxRow = 5e6;
|
|
24
25
|
const customStorageKey = 'VXE_CUSTOM_STORE';
|
|
25
26
|
const maxYHeight = 5e6;
|
|
26
27
|
const maxXWidth = 5e6;
|
|
@@ -287,7 +288,7 @@ function cacheColumnMap($xeTable) {
|
|
|
287
288
|
fullColumnFieldData[field] = rest;
|
|
288
289
|
} else {
|
|
289
290
|
if (storage && !type || columnOpts.drag && (isCrossDrag || isSelfToChildDrag)) {
|
|
290
|
-
(0, _log.errLog)('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field
|
|
291
|
+
(0, _log.errLog)('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field=?`]);
|
|
291
292
|
}
|
|
292
293
|
}
|
|
293
294
|
if (!hasFixed && fixed) {
|
|
@@ -393,9 +394,12 @@ function updateAfterListIndex($xeTable) {
|
|
|
393
394
|
fullDataRowIdData,
|
|
394
395
|
fullAllDataRowIdData
|
|
395
396
|
} = internalData;
|
|
397
|
+
const {
|
|
398
|
+
handleGetRowId
|
|
399
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
396
400
|
const fullMaps = {};
|
|
397
401
|
afterFullData.forEach((row, index) => {
|
|
398
|
-
const rowid = (
|
|
402
|
+
const rowid = handleGetRowId(row);
|
|
399
403
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
400
404
|
const seq = index + 1;
|
|
401
405
|
if (rowRest) {
|
|
@@ -449,8 +453,11 @@ function updateAfterDataIndex($xeTable) {
|
|
|
449
453
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
450
454
|
const fullMaps = {};
|
|
451
455
|
if (treeConfig) {
|
|
456
|
+
const {
|
|
457
|
+
handleGetRowId
|
|
458
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
452
459
|
_xeUtils.default.eachTree(afterTreeFullData, (row, index, items, path) => {
|
|
453
|
-
const rowid = (
|
|
460
|
+
const rowid = handleGetRowId(row);
|
|
454
461
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
455
462
|
const seq = path.map((num, i) => i % 2 === 0 ? Number(num) + 1 : '.').join('');
|
|
456
463
|
if (rowRest) {
|
|
@@ -492,25 +499,25 @@ function updateAfterDataIndex($xeTable) {
|
|
|
492
499
|
*/
|
|
493
500
|
function handleVirtualTreeToList($xeTable) {
|
|
494
501
|
const props = $xeTable;
|
|
495
|
-
const reactData = $xeTable;
|
|
496
502
|
const internalData = $xeTable;
|
|
497
503
|
const {
|
|
498
504
|
treeConfig
|
|
499
505
|
} = props;
|
|
500
506
|
const {
|
|
507
|
+
fullAllDataRowIdData,
|
|
501
508
|
treeExpandedMaps
|
|
502
|
-
} = reactData;
|
|
503
|
-
const {
|
|
504
|
-
fullAllDataRowIdData
|
|
505
509
|
} = internalData;
|
|
506
510
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
507
511
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
508
512
|
if (treeConfig && treeOpts.transform) {
|
|
513
|
+
const {
|
|
514
|
+
handleGetRowId
|
|
515
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
509
516
|
const fullData = [];
|
|
510
517
|
const expandMaps = {};
|
|
511
518
|
_xeUtils.default.eachTree(internalData.afterTreeFullData, (row, index, items, path, parentRow) => {
|
|
512
|
-
const rowid = (
|
|
513
|
-
const parentRowid = (
|
|
519
|
+
const rowid = handleGetRowId(row);
|
|
520
|
+
const parentRowid = handleGetRowId(parentRow);
|
|
514
521
|
if (!parentRow || expandMaps[parentRowid] && treeExpandedMaps[parentRowid]) {
|
|
515
522
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
516
523
|
if (rowRest) {
|
|
@@ -899,6 +906,21 @@ function updateStyle($xeTable) {
|
|
|
899
906
|
}
|
|
900
907
|
return $xeTable.$nextTick();
|
|
901
908
|
}
|
|
909
|
+
function checkValidate($xeTable, type) {
|
|
910
|
+
if ($xeTable.triggerValidate) {
|
|
911
|
+
return $xeTable.triggerValidate(type);
|
|
912
|
+
}
|
|
913
|
+
return $xeTable.$nextTick();
|
|
914
|
+
}
|
|
915
|
+
/**
|
|
916
|
+
* 当单元格发生改变时
|
|
917
|
+
* 如果存在规则,则校验
|
|
918
|
+
*/
|
|
919
|
+
function handleChangeCell($xeTable, evnt, params) {
|
|
920
|
+
checkValidate($xeTable, 'blur').catch(e => e).then(() => {
|
|
921
|
+
$xeTable.handleEdit(params, evnt).then(() => checkValidate($xeTable, 'change')).catch(e => e);
|
|
922
|
+
});
|
|
923
|
+
}
|
|
902
924
|
function handleRadioReserveRow($xeTable, row) {
|
|
903
925
|
const internalData = $xeTable;
|
|
904
926
|
const radioOpts = $xeTable.computeRadioOpts;
|
|
@@ -950,12 +972,10 @@ function handleCheckedAllCheckboxRow($xeTable, checked, isForce) {
|
|
|
950
972
|
const {
|
|
951
973
|
treeConfig
|
|
952
974
|
} = props;
|
|
953
|
-
const {
|
|
954
|
-
selectCheckboxMaps
|
|
955
|
-
} = reactData;
|
|
956
975
|
const {
|
|
957
976
|
afterFullData,
|
|
958
|
-
checkboxReserveRowMap
|
|
977
|
+
checkboxReserveRowMap,
|
|
978
|
+
selectCheckboxMaps
|
|
959
979
|
} = internalData;
|
|
960
980
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
961
981
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
@@ -965,6 +985,10 @@ function handleCheckedAllCheckboxRow($xeTable, checked, isForce) {
|
|
|
965
985
|
reserve,
|
|
966
986
|
checkMethod
|
|
967
987
|
} = checkboxOpts;
|
|
988
|
+
const {
|
|
989
|
+
handleGetRowId
|
|
990
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
991
|
+
// indeterminateField 仅支持读取
|
|
968
992
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
969
993
|
const selectRowMaps = {};
|
|
970
994
|
/**
|
|
@@ -977,7 +1001,7 @@ function handleCheckedAllCheckboxRow($xeTable, checked, isForce) {
|
|
|
977
1001
|
row
|
|
978
1002
|
})) {
|
|
979
1003
|
if (checked) {
|
|
980
|
-
selectRowMaps[(
|
|
1004
|
+
selectRowMaps[handleGetRowId(row)] = row;
|
|
981
1005
|
}
|
|
982
1006
|
_xeUtils.default.set(row, checkField, checked);
|
|
983
1007
|
}
|
|
@@ -1009,7 +1033,8 @@ function handleCheckedAllCheckboxRow($xeTable, checked, isForce) {
|
|
|
1009
1033
|
if (isForce || !checkMethod || checkMethod({
|
|
1010
1034
|
row
|
|
1011
1035
|
})) {
|
|
1012
|
-
|
|
1036
|
+
const rowid = handleGetRowId(row);
|
|
1037
|
+
selectRowMaps[rowid] = row;
|
|
1013
1038
|
}
|
|
1014
1039
|
}, {
|
|
1015
1040
|
children: childrenField
|
|
@@ -1021,7 +1046,7 @@ function handleCheckedAllCheckboxRow($xeTable, checked, isForce) {
|
|
|
1021
1046
|
*/
|
|
1022
1047
|
if (!isForce && checkMethod) {
|
|
1023
1048
|
_xeUtils.default.eachTree(afterFullData, row => {
|
|
1024
|
-
const rowid = (
|
|
1049
|
+
const rowid = handleGetRowId(row);
|
|
1025
1050
|
if (checkMethod({
|
|
1026
1051
|
row
|
|
1027
1052
|
}) ? 0 : selectCheckboxMaps[rowid]) {
|
|
@@ -1041,7 +1066,7 @@ function handleCheckedAllCheckboxRow($xeTable, checked, isForce) {
|
|
|
1041
1066
|
*/
|
|
1042
1067
|
if (!isForce && checkMethod) {
|
|
1043
1068
|
afterFullData.forEach(row => {
|
|
1044
|
-
const rowid = (
|
|
1069
|
+
const rowid = handleGetRowId(row);
|
|
1045
1070
|
if (selectCheckboxMaps[rowid] || checkMethod({
|
|
1046
1071
|
row
|
|
1047
1072
|
})) {
|
|
@@ -1050,7 +1075,8 @@ function handleCheckedAllCheckboxRow($xeTable, checked, isForce) {
|
|
|
1050
1075
|
});
|
|
1051
1076
|
} else {
|
|
1052
1077
|
afterFullData.forEach(row => {
|
|
1053
|
-
|
|
1078
|
+
const rowid = handleGetRowId(row);
|
|
1079
|
+
selectRowMaps[rowid] = row;
|
|
1054
1080
|
});
|
|
1055
1081
|
}
|
|
1056
1082
|
} else {
|
|
@@ -1061,7 +1087,7 @@ function handleCheckedAllCheckboxRow($xeTable, checked, isForce) {
|
|
|
1061
1087
|
*/
|
|
1062
1088
|
if (!isForce && checkMethod) {
|
|
1063
1089
|
afterFullData.forEach(row => {
|
|
1064
|
-
const rowid = (
|
|
1090
|
+
const rowid = handleGetRowId(row);
|
|
1065
1091
|
if (checkMethod({
|
|
1066
1092
|
row
|
|
1067
1093
|
}) ? 0 : selectCheckboxMaps[rowid]) {
|
|
@@ -1081,10 +1107,10 @@ function handleCheckedAllCheckboxRow($xeTable, checked, isForce) {
|
|
|
1081
1107
|
afterFullData.forEach(row => handleCheckboxReserveRow($xeTable, row, false));
|
|
1082
1108
|
}
|
|
1083
1109
|
}
|
|
1084
|
-
reactData.
|
|
1110
|
+
reactData.updateCheckboxFlag++;
|
|
1111
|
+
internalData.selectCheckboxMaps = checkField ? {} : selectRowMaps;
|
|
1085
1112
|
reactData.isAllSelected = checked;
|
|
1086
1113
|
reactData.isIndeterminate = false;
|
|
1087
|
-
reactData.treeIndeterminateMaps = {};
|
|
1088
1114
|
internalData.treeIndeterminateRowMaps = {};
|
|
1089
1115
|
$xeTable.checkSelectionStatus();
|
|
1090
1116
|
return $xeTable.$nextTick();
|
|
@@ -1100,15 +1126,15 @@ function handleReserveStatus($xeTable) {
|
|
|
1100
1126
|
const {
|
|
1101
1127
|
expandColumn,
|
|
1102
1128
|
currentRow,
|
|
1103
|
-
|
|
1104
|
-
selectRadioRow,
|
|
1105
|
-
rowExpandedMaps,
|
|
1106
|
-
treeExpandedMaps
|
|
1129
|
+
selectRadioRow
|
|
1107
1130
|
} = reactData;
|
|
1108
1131
|
const {
|
|
1109
1132
|
fullDataRowIdData,
|
|
1110
1133
|
fullAllDataRowIdData,
|
|
1111
|
-
radioReserveRow
|
|
1134
|
+
radioReserveRow,
|
|
1135
|
+
selectCheckboxMaps,
|
|
1136
|
+
treeExpandedMaps,
|
|
1137
|
+
rowExpandedMaps
|
|
1112
1138
|
} = internalData;
|
|
1113
1139
|
const expandOpts = $xeTable.computeExpandOpts;
|
|
1114
1140
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
@@ -1126,7 +1152,8 @@ function handleReserveStatus($xeTable) {
|
|
|
1126
1152
|
}
|
|
1127
1153
|
}
|
|
1128
1154
|
// 复选框
|
|
1129
|
-
|
|
1155
|
+
internalData.selectCheckboxMaps = getRecoverRowMaps($xeTable, selectCheckboxMaps); // 刷新多选行状态
|
|
1156
|
+
reactData.updateCheckboxFlag++;
|
|
1130
1157
|
// 还原保留选中状态
|
|
1131
1158
|
if (checkboxOpts.reserve) {
|
|
1132
1159
|
handleCheckedCheckboxRow($xeTable, handleReserveRow($xeTable, internalData.checkboxReserveRowMap), true, true);
|
|
@@ -1135,17 +1162,194 @@ function handleReserveStatus($xeTable) {
|
|
|
1135
1162
|
reactData.currentRow = null; // 刷新当前行状态
|
|
1136
1163
|
}
|
|
1137
1164
|
// 行展开
|
|
1138
|
-
|
|
1165
|
+
internalData.rowExpandedMaps = expandColumn ? getRecoverRowMaps($xeTable, rowExpandedMaps) : {}; // 刷新行展开状态
|
|
1166
|
+
reactData.rowExpandedFlag++;
|
|
1139
1167
|
// 还原保留状态
|
|
1140
1168
|
if (expandColumn && expandOpts.reserve) {
|
|
1141
1169
|
$xeTable.setRowExpand(handleReserveRow($xeTable, internalData.rowExpandedReserveRowMap), true);
|
|
1142
1170
|
}
|
|
1143
1171
|
// 树展开
|
|
1144
|
-
|
|
1172
|
+
internalData.treeExpandedMaps = treeConfig ? getRecoverRowMaps($xeTable, treeExpandedMaps) : {}; // 刷新树展开状态
|
|
1173
|
+
reactData.treeExpandedFlag++;
|
|
1145
1174
|
if (treeConfig && treeOpts.reserve) {
|
|
1146
1175
|
$xeTable.setTreeExpand(handleReserveRow($xeTable, internalData.treeExpandedReserveRowMap), true);
|
|
1147
1176
|
}
|
|
1148
1177
|
}
|
|
1178
|
+
/**
|
|
1179
|
+
* 处理默认展开树节点
|
|
1180
|
+
*/
|
|
1181
|
+
const handleDefaultTreeExpand = $xeTable => {
|
|
1182
|
+
const props = $xeTable;
|
|
1183
|
+
const internalData = $xeTable;
|
|
1184
|
+
const {
|
|
1185
|
+
treeConfig
|
|
1186
|
+
} = props;
|
|
1187
|
+
if (treeConfig) {
|
|
1188
|
+
const {
|
|
1189
|
+
tableFullData
|
|
1190
|
+
} = internalData;
|
|
1191
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
1192
|
+
const {
|
|
1193
|
+
expandAll,
|
|
1194
|
+
expandRowKeys
|
|
1195
|
+
} = treeOpts;
|
|
1196
|
+
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
1197
|
+
if (expandAll) {
|
|
1198
|
+
$xeTable.setAllTreeExpand(true);
|
|
1199
|
+
} else if (expandRowKeys) {
|
|
1200
|
+
const defExpandeds = [];
|
|
1201
|
+
const rowkey = (0, _util.getRowkey)($xeTable);
|
|
1202
|
+
expandRowKeys.forEach(rowid => {
|
|
1203
|
+
const matchObj = _xeUtils.default.findTree(tableFullData, item => rowid === _xeUtils.default.get(item, rowkey), {
|
|
1204
|
+
children: childrenField
|
|
1205
|
+
});
|
|
1206
|
+
if (matchObj) {
|
|
1207
|
+
defExpandeds.push(matchObj.item);
|
|
1208
|
+
}
|
|
1209
|
+
});
|
|
1210
|
+
$xeTable.setTreeExpand(defExpandeds, true);
|
|
1211
|
+
}
|
|
1212
|
+
}
|
|
1213
|
+
};
|
|
1214
|
+
const handleAsyncTreeExpandChilds = ($xeTable, row) => {
|
|
1215
|
+
const reactData = $xeTable;
|
|
1216
|
+
const internalData = $xeTable;
|
|
1217
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
1218
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
1219
|
+
const {
|
|
1220
|
+
transform,
|
|
1221
|
+
loadMethod
|
|
1222
|
+
} = treeOpts;
|
|
1223
|
+
const {
|
|
1224
|
+
checkStrictly
|
|
1225
|
+
} = checkboxOpts;
|
|
1226
|
+
return new Promise(resolve => {
|
|
1227
|
+
if (loadMethod) {
|
|
1228
|
+
const {
|
|
1229
|
+
fullAllDataRowIdData,
|
|
1230
|
+
treeExpandLazyLoadedMaps
|
|
1231
|
+
} = internalData;
|
|
1232
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
1233
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
1234
|
+
treeExpandLazyLoadedMaps[rowid] = row;
|
|
1235
|
+
Promise.resolve(loadMethod({
|
|
1236
|
+
$table: $xeTable,
|
|
1237
|
+
row
|
|
1238
|
+
})).then(childRecords => {
|
|
1239
|
+
if (rowRest) {
|
|
1240
|
+
rowRest.treeLoaded = true;
|
|
1241
|
+
}
|
|
1242
|
+
if (treeExpandLazyLoadedMaps[rowid]) {
|
|
1243
|
+
delete treeExpandLazyLoadedMaps[rowid];
|
|
1244
|
+
}
|
|
1245
|
+
if (!_xeUtils.default.isArray(childRecords)) {
|
|
1246
|
+
childRecords = [];
|
|
1247
|
+
}
|
|
1248
|
+
if (childRecords) {
|
|
1249
|
+
return $xeTable.loadTreeChildren(row, childRecords).then(childRows => {
|
|
1250
|
+
const {
|
|
1251
|
+
treeExpandedMaps
|
|
1252
|
+
} = internalData;
|
|
1253
|
+
if (childRows.length && !treeExpandedMaps[rowid]) {
|
|
1254
|
+
treeExpandedMaps[rowid] = row;
|
|
1255
|
+
}
|
|
1256
|
+
reactData.treeExpandedFlag++;
|
|
1257
|
+
// 如果当前节点已选中,则展开后子节点也被选中
|
|
1258
|
+
if (!checkStrictly && $xeTable.isCheckedByCheckboxRow(row)) {
|
|
1259
|
+
handleCheckedCheckboxRow($xeTable, childRows, true);
|
|
1260
|
+
}
|
|
1261
|
+
return $xeTable.$nextTick().then(() => {
|
|
1262
|
+
if (transform) {
|
|
1263
|
+
$xeTable.handleTableData();
|
|
1264
|
+
updateAfterDataIndex($xeTable);
|
|
1265
|
+
return $xeTable.$nextTick();
|
|
1266
|
+
}
|
|
1267
|
+
});
|
|
1268
|
+
});
|
|
1269
|
+
}
|
|
1270
|
+
}).catch(() => {
|
|
1271
|
+
const {
|
|
1272
|
+
treeExpandLazyLoadedMaps
|
|
1273
|
+
} = internalData;
|
|
1274
|
+
if (rowRest) {
|
|
1275
|
+
rowRest.treeLoaded = false;
|
|
1276
|
+
}
|
|
1277
|
+
if (treeExpandLazyLoadedMaps[rowid]) {
|
|
1278
|
+
delete treeExpandLazyLoadedMaps[rowid];
|
|
1279
|
+
}
|
|
1280
|
+
}).finally(() => {
|
|
1281
|
+
reactData.treeExpandedFlag++;
|
|
1282
|
+
$xeTable.$nextTick().then(() => $xeTable.recalculate()).then(() => resolve());
|
|
1283
|
+
});
|
|
1284
|
+
} else {
|
|
1285
|
+
resolve();
|
|
1286
|
+
}
|
|
1287
|
+
});
|
|
1288
|
+
};
|
|
1289
|
+
const handleTreeExpandReserve = ($xeTable, row, expanded) => {
|
|
1290
|
+
const internalData = $xeTable;
|
|
1291
|
+
const {
|
|
1292
|
+
treeExpandedReserveRowMap
|
|
1293
|
+
} = internalData;
|
|
1294
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
1295
|
+
if (treeOpts.reserve) {
|
|
1296
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
1297
|
+
if (expanded) {
|
|
1298
|
+
treeExpandedReserveRowMap[rowid] = row;
|
|
1299
|
+
} else if (treeExpandedReserveRowMap[rowid]) {
|
|
1300
|
+
delete treeExpandedReserveRowMap[rowid];
|
|
1301
|
+
}
|
|
1302
|
+
}
|
|
1303
|
+
};
|
|
1304
|
+
const handleAsyncRowExpand = ($xeTable, row) => {
|
|
1305
|
+
const reactData = $xeTable;
|
|
1306
|
+
const internalData = $xeTable;
|
|
1307
|
+
return new Promise(resolve => {
|
|
1308
|
+
const expandOpts = $xeTable.computeExpandOpts;
|
|
1309
|
+
const {
|
|
1310
|
+
loadMethod
|
|
1311
|
+
} = expandOpts;
|
|
1312
|
+
if (loadMethod) {
|
|
1313
|
+
const {
|
|
1314
|
+
fullAllDataRowIdData,
|
|
1315
|
+
rowExpandLazyLoadedMaps
|
|
1316
|
+
} = internalData;
|
|
1317
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
1318
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
1319
|
+
rowExpandLazyLoadedMaps[rowid] = row;
|
|
1320
|
+
loadMethod({
|
|
1321
|
+
$table: $xeTable,
|
|
1322
|
+
row,
|
|
1323
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
1324
|
+
$rowIndex: $xeTable.getVMRowIndex(row)
|
|
1325
|
+
}).then(() => {
|
|
1326
|
+
const {
|
|
1327
|
+
rowExpandedMaps
|
|
1328
|
+
} = internalData;
|
|
1329
|
+
if (rowRest) {
|
|
1330
|
+
rowRest.expandLoaded = true;
|
|
1331
|
+
}
|
|
1332
|
+
rowExpandedMaps[rowid] = row;
|
|
1333
|
+
reactData.rowExpandedFlag++;
|
|
1334
|
+
}).catch(() => {
|
|
1335
|
+
if (rowRest) {
|
|
1336
|
+
rowRest.expandLoaded = false;
|
|
1337
|
+
}
|
|
1338
|
+
}).finally(() => {
|
|
1339
|
+
const {
|
|
1340
|
+
rowExpandLazyLoadedMaps
|
|
1341
|
+
} = internalData;
|
|
1342
|
+
if (rowExpandLazyLoadedMaps[rowid]) {
|
|
1343
|
+
delete rowExpandLazyLoadedMaps[rowid];
|
|
1344
|
+
}
|
|
1345
|
+
reactData.rowExpandedFlag++;
|
|
1346
|
+
$xeTable.$nextTick().then(() => $xeTable.recalculate()).then(() => $xeTable.updateCellAreas()).then(() => resolve());
|
|
1347
|
+
});
|
|
1348
|
+
} else {
|
|
1349
|
+
resolve();
|
|
1350
|
+
}
|
|
1351
|
+
});
|
|
1352
|
+
};
|
|
1149
1353
|
function calcVarRowHeightConfig($xeTable, sizeKey, sizeEl) {
|
|
1150
1354
|
const reactData = $xeTable;
|
|
1151
1355
|
const {
|
|
@@ -1220,12 +1424,15 @@ function handleVirtualYVisible($xeTable) {
|
|
|
1220
1424
|
toVisibleIndex = Math.floor(startTop / defaultRowHeight) - 1;
|
|
1221
1425
|
visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1;
|
|
1222
1426
|
} else {
|
|
1427
|
+
const {
|
|
1428
|
+
handleGetRowId
|
|
1429
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
1223
1430
|
let leftIndex = 0;
|
|
1224
1431
|
let rightIndex = afterFullData.length;
|
|
1225
1432
|
while (leftIndex < rightIndex) {
|
|
1226
1433
|
const rIndex = Math.floor((leftIndex + rightIndex) / 2);
|
|
1227
1434
|
const row = afterFullData[rIndex];
|
|
1228
|
-
const rowid = (
|
|
1435
|
+
const rowid = handleGetRowId(row);
|
|
1229
1436
|
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
1230
1437
|
if (rowRest.oTop <= startTop) {
|
|
1231
1438
|
leftIndex = rIndex + 1;
|
|
@@ -1236,7 +1443,7 @@ function handleVirtualYVisible($xeTable) {
|
|
|
1236
1443
|
toVisibleIndex = Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0);
|
|
1237
1444
|
for (let rIndex = toVisibleIndex, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
|
|
1238
1445
|
const row = afterFullData[rIndex];
|
|
1239
|
-
const rowid = (
|
|
1446
|
+
const rowid = handleGetRowId(row);
|
|
1240
1447
|
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
1241
1448
|
visibleSize++;
|
|
1242
1449
|
if (rowRest.oTop > endTop || visibleSize >= 100) {
|
|
@@ -1275,12 +1482,16 @@ function calculateMergerOffsetIndex(list, offsetItem, type) {
|
|
|
1275
1482
|
}
|
|
1276
1483
|
}
|
|
1277
1484
|
}
|
|
1278
|
-
function setMerges(
|
|
1485
|
+
function setMerges($xeTable, merges, mList, rowList) {
|
|
1486
|
+
const props = $xeTable;
|
|
1487
|
+
const internalData = $xeTable;
|
|
1279
1488
|
if (merges) {
|
|
1280
1489
|
const {
|
|
1281
|
-
treeConfig
|
|
1490
|
+
treeConfig
|
|
1491
|
+
} = props;
|
|
1492
|
+
const {
|
|
1282
1493
|
visibleColumn
|
|
1283
|
-
} =
|
|
1494
|
+
} = internalData;
|
|
1284
1495
|
if (!_xeUtils.default.isArray(merges)) {
|
|
1285
1496
|
merges = [merges];
|
|
1286
1497
|
}
|
|
@@ -1330,13 +1541,17 @@ function setMerges(_vm, merges, mList, rowList) {
|
|
|
1330
1541
|
});
|
|
1331
1542
|
}
|
|
1332
1543
|
}
|
|
1333
|
-
function removeMerges(
|
|
1544
|
+
function removeMerges($xeTable, merges, mList, rowList) {
|
|
1545
|
+
const props = $xeTable;
|
|
1546
|
+
const internalData = $xeTable;
|
|
1334
1547
|
const rest = [];
|
|
1335
1548
|
if (merges) {
|
|
1336
1549
|
const {
|
|
1337
|
-
treeConfig
|
|
1550
|
+
treeConfig
|
|
1551
|
+
} = props;
|
|
1552
|
+
const {
|
|
1338
1553
|
visibleColumn
|
|
1339
|
-
} =
|
|
1554
|
+
} = internalData;
|
|
1340
1555
|
if (!_xeUtils.default.isArray(merges)) {
|
|
1341
1556
|
merges = [merges];
|
|
1342
1557
|
}
|
|
@@ -1567,8 +1782,11 @@ const calcCellHeight = $xeTable => {
|
|
|
1567
1782
|
const defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
1568
1783
|
const el = $xeTable.$refs.refElem;
|
|
1569
1784
|
if (!isAllOverflow && scrollYLoad && el) {
|
|
1785
|
+
const {
|
|
1786
|
+
handleGetRowId
|
|
1787
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
1570
1788
|
tableData.forEach(row => {
|
|
1571
|
-
const rowid = (
|
|
1789
|
+
const rowid = handleGetRowId(row);
|
|
1572
1790
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
1573
1791
|
if (rowRest) {
|
|
1574
1792
|
const height = calcCellAutoHeight(rowRest, el);
|
|
@@ -2306,6 +2524,39 @@ function loadScrollYData($xeTable) {
|
|
|
2306
2524
|
}
|
|
2307
2525
|
}
|
|
2308
2526
|
}
|
|
2527
|
+
const createGetRowCacheProp = prop => {
|
|
2528
|
+
return function (row) {
|
|
2529
|
+
const $xeTable = this;
|
|
2530
|
+
const internalData = $xeTable;
|
|
2531
|
+
const {
|
|
2532
|
+
fullAllDataRowIdData
|
|
2533
|
+
} = internalData;
|
|
2534
|
+
if (row) {
|
|
2535
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
2536
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
2537
|
+
if (rowRest) {
|
|
2538
|
+
return rowRest[prop];
|
|
2539
|
+
}
|
|
2540
|
+
}
|
|
2541
|
+
return -1;
|
|
2542
|
+
};
|
|
2543
|
+
};
|
|
2544
|
+
const createGetColumnCacheProp = prop => {
|
|
2545
|
+
return function (column) {
|
|
2546
|
+
const $xeTable = this;
|
|
2547
|
+
const internalData = $xeTable;
|
|
2548
|
+
const {
|
|
2549
|
+
fullColumnIdData
|
|
2550
|
+
} = internalData;
|
|
2551
|
+
if (column) {
|
|
2552
|
+
const colRest = fullColumnIdData[column.id];
|
|
2553
|
+
if (colRest) {
|
|
2554
|
+
return colRest[prop];
|
|
2555
|
+
}
|
|
2556
|
+
}
|
|
2557
|
+
return -1;
|
|
2558
|
+
};
|
|
2559
|
+
};
|
|
2309
2560
|
function lazyScrollXData($xeTable) {
|
|
2310
2561
|
const internalData = $xeTable;
|
|
2311
2562
|
const {
|
|
@@ -2477,7 +2728,7 @@ function calcCellWidth($xeTable) {
|
|
|
2477
2728
|
}
|
|
2478
2729
|
function handleUpdateColResize($xeTable, evnt, params) {
|
|
2479
2730
|
$xeTable.analyColumnWidth();
|
|
2480
|
-
$xeTable.recalculate(
|
|
2731
|
+
$xeTable.recalculate().then(() => {
|
|
2481
2732
|
$xeTable.saveCustomStore('update:width');
|
|
2482
2733
|
$xeTable.updateCellAreas();
|
|
2483
2734
|
$xeTable.dispatchEvent('column-resizable-change', params, evnt);
|
|
@@ -2489,7 +2740,7 @@ function handleUpdateColResize($xeTable, evnt, params) {
|
|
|
2489
2740
|
function handleUpdateRowResize($xeTable, evnt, params) {
|
|
2490
2741
|
const reactData = $xeTable;
|
|
2491
2742
|
reactData.resizeHeightFlag++;
|
|
2492
|
-
$xeTable.recalculate(
|
|
2743
|
+
$xeTable.recalculate().then(() => {
|
|
2493
2744
|
$xeTable.updateCellAreas();
|
|
2494
2745
|
$xeTable.dispatchEvent('row-resizable-change', params, evnt);
|
|
2495
2746
|
setTimeout(() => $xeTable.recalculate(true), 300);
|
|
@@ -2514,21 +2765,24 @@ function updateRowOffsetTop($xeTable) {
|
|
|
2514
2765
|
const reactData = $xeTable;
|
|
2515
2766
|
const internalData = $xeTable;
|
|
2516
2767
|
const {
|
|
2517
|
-
expandColumn
|
|
2518
|
-
rowExpandedMaps
|
|
2768
|
+
expandColumn
|
|
2519
2769
|
} = reactData;
|
|
2520
2770
|
const {
|
|
2521
2771
|
afterFullData,
|
|
2522
|
-
fullAllDataRowIdData
|
|
2772
|
+
fullAllDataRowIdData,
|
|
2773
|
+
rowExpandedMaps
|
|
2523
2774
|
} = internalData;
|
|
2524
2775
|
const expandOpts = $xeTable.computeExpandOpts;
|
|
2525
2776
|
const rowOpts = $xeTable.computeRowOpts;
|
|
2526
2777
|
const cellOpts = $xeTable.computeCellOpts;
|
|
2527
2778
|
const defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
2779
|
+
const {
|
|
2780
|
+
handleGetRowId
|
|
2781
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
2528
2782
|
let offsetTop = 0;
|
|
2529
2783
|
for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
|
|
2530
2784
|
const row = afterFullData[rIndex];
|
|
2531
|
-
const rowid = (
|
|
2785
|
+
const rowid = handleGetRowId(row);
|
|
2532
2786
|
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
2533
2787
|
rowRest.oTop = offsetTop;
|
|
2534
2788
|
offsetTop += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
|
|
@@ -2544,7 +2798,8 @@ function updateRowExpandStyle($xeTable) {
|
|
|
2544
2798
|
const {
|
|
2545
2799
|
expandColumn,
|
|
2546
2800
|
scrollYLoad,
|
|
2547
|
-
|
|
2801
|
+
scrollYTop,
|
|
2802
|
+
isScrollYBig
|
|
2548
2803
|
} = reactData;
|
|
2549
2804
|
const expandOpts = $xeTable.computeExpandOpts;
|
|
2550
2805
|
const rowOpts = $xeTable.computeRowOpts;
|
|
@@ -2556,41 +2811,35 @@ function updateRowExpandStyle($xeTable) {
|
|
|
2556
2811
|
if (expandColumn && mode === 'fixed') {
|
|
2557
2812
|
const {
|
|
2558
2813
|
elemStore,
|
|
2559
|
-
afterFullData,
|
|
2560
2814
|
fullAllDataRowIdData
|
|
2561
2815
|
} = internalData;
|
|
2562
2816
|
const rowExpandEl = $xeTable.$refs.refRowExpandElem;
|
|
2563
2817
|
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
2564
2818
|
if (rowExpandEl && bodyScrollElem) {
|
|
2565
2819
|
let isUpdateHeight = false;
|
|
2566
|
-
if (scrollYLoad) {
|
|
2567
|
-
let offsetTop = 0;
|
|
2568
|
-
for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
|
|
2569
|
-
const row = afterFullData[rIndex];
|
|
2570
|
-
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
2571
|
-
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
2572
|
-
rowRest.oTop = offsetTop;
|
|
2573
|
-
offsetTop += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
|
|
2574
|
-
// 是否展开行
|
|
2575
|
-
if (expandColumn && rowExpandedMaps[rowid]) {
|
|
2576
|
-
offsetTop += rowRest.expandHeight || expandOpts.height || 0;
|
|
2577
|
-
}
|
|
2578
|
-
}
|
|
2579
|
-
}
|
|
2580
2820
|
_xeUtils.default.arrayEach(rowExpandEl.children, reEl => {
|
|
2581
2821
|
const expandEl = reEl;
|
|
2582
2822
|
const rowid = expandEl.getAttribute('rowid') || '';
|
|
2583
2823
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
2584
2824
|
if (rowRest) {
|
|
2585
2825
|
const expandHeight = expandEl.offsetHeight + 1;
|
|
2826
|
+
const trEl = bodyScrollElem.querySelector(`.vxe-body--row[rowid="${rowid}"]`);
|
|
2827
|
+
let offsetTop = 0;
|
|
2586
2828
|
if (scrollYLoad) {
|
|
2587
|
-
|
|
2829
|
+
if (isScrollYBig && trEl) {
|
|
2830
|
+
offsetTop = trEl.offsetTop + trEl.offsetHeight;
|
|
2831
|
+
} else {
|
|
2832
|
+
offsetTop = rowRest.oTop + (rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight);
|
|
2833
|
+
}
|
|
2588
2834
|
} else {
|
|
2589
|
-
const trEl = bodyScrollElem.querySelector(`.vxe-body--row[rowid="${rowid}"]`);
|
|
2590
2835
|
if (trEl) {
|
|
2591
|
-
|
|
2836
|
+
offsetTop = trEl.offsetTop + trEl.offsetHeight;
|
|
2592
2837
|
}
|
|
2593
2838
|
}
|
|
2839
|
+
if (isScrollYBig) {
|
|
2840
|
+
offsetTop += scrollYTop;
|
|
2841
|
+
}
|
|
2842
|
+
expandEl.style.top = (0, _dom.toCssUnit)(offsetTop);
|
|
2594
2843
|
if (!isUpdateHeight) {
|
|
2595
2844
|
if (rowRest.expandHeight !== expandHeight) {
|
|
2596
2845
|
isUpdateHeight = true;
|
|
@@ -2601,6 +2850,9 @@ function updateRowExpandStyle($xeTable) {
|
|
|
2601
2850
|
});
|
|
2602
2851
|
if (isUpdateHeight) {
|
|
2603
2852
|
reactData.rowExpandHeightFlag++;
|
|
2853
|
+
$xeTable.$nextTick(() => {
|
|
2854
|
+
updateRowOffsetTop($xeTable);
|
|
2855
|
+
});
|
|
2604
2856
|
}
|
|
2605
2857
|
}
|
|
2606
2858
|
}
|
|
@@ -2631,6 +2883,10 @@ const Methods = {
|
|
|
2631
2883
|
}
|
|
2632
2884
|
return [];
|
|
2633
2885
|
},
|
|
2886
|
+
getEl() {
|
|
2887
|
+
const $xeTable = this;
|
|
2888
|
+
return $xeTable.$refs.refElem;
|
|
2889
|
+
},
|
|
2634
2890
|
/**
|
|
2635
2891
|
* 获取父容器元素
|
|
2636
2892
|
*/
|
|
@@ -2645,14 +2901,27 @@ const Methods = {
|
|
|
2645
2901
|
* 获取父容器的高度
|
|
2646
2902
|
*/
|
|
2647
2903
|
getParentHeight() {
|
|
2904
|
+
const $xeTable = this;
|
|
2905
|
+
const $xeGrid = $xeTable.$xeGrid;
|
|
2906
|
+
const props = $xeTable;
|
|
2648
2907
|
const {
|
|
2649
|
-
$el,
|
|
2650
|
-
$xegrid,
|
|
2651
2908
|
height
|
|
2652
|
-
} =
|
|
2653
|
-
const
|
|
2654
|
-
|
|
2655
|
-
|
|
2909
|
+
} = props;
|
|
2910
|
+
const el = $xeTable.$refs.refElem;
|
|
2911
|
+
if (el) {
|
|
2912
|
+
const parentElem = el.parentNode;
|
|
2913
|
+
const parentPaddingSize = height === '100%' || height === 'auto' ? (0, _dom.getPaddingTopBottomSize)(parentElem) : 0;
|
|
2914
|
+
let parentWrapperHeight = 0;
|
|
2915
|
+
if (parentElem) {
|
|
2916
|
+
if ($xeGrid && (0, _dom.hasClass)(parentElem, 'vxe-grid--table-wrapper')) {
|
|
2917
|
+
parentWrapperHeight = $xeGrid.getParentHeight();
|
|
2918
|
+
} else {
|
|
2919
|
+
parentWrapperHeight = parentElem.clientHeight;
|
|
2920
|
+
}
|
|
2921
|
+
}
|
|
2922
|
+
return Math.floor(parentWrapperHeight - parentPaddingSize);
|
|
2923
|
+
}
|
|
2924
|
+
return 0;
|
|
2656
2925
|
},
|
|
2657
2926
|
/**
|
|
2658
2927
|
* 获取需要排除的高度
|
|
@@ -2762,6 +3031,9 @@ const Methods = {
|
|
|
2762
3031
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
2763
3032
|
let treeData = [];
|
|
2764
3033
|
let fullData = datas ? datas.slice(0) : [];
|
|
3034
|
+
if (fullData.length > supportMaxRow) {
|
|
3035
|
+
(0, _log.errLog)('vxe.error.errMaxRow', [supportMaxRow]);
|
|
3036
|
+
}
|
|
2765
3037
|
if (treeConfig) {
|
|
2766
3038
|
// 树结构自动转换
|
|
2767
3039
|
if (treeOpts.transform) {
|
|
@@ -2855,7 +3127,7 @@ const Methods = {
|
|
|
2855
3127
|
// warnLog('vxe.error.reqProp', ['table.show-overflow'])
|
|
2856
3128
|
// }
|
|
2857
3129
|
if (this.spanMethod) {
|
|
2858
|
-
(0, _log.
|
|
3130
|
+
(0, _log.errLog)('vxe.error.scrollErrProp', ['table.span-method']);
|
|
2859
3131
|
}
|
|
2860
3132
|
}
|
|
2861
3133
|
handleReserveStatus($xeTable);
|
|
@@ -3004,41 +3276,25 @@ const Methods = {
|
|
|
3004
3276
|
const {
|
|
3005
3277
|
treeConfig
|
|
3006
3278
|
} = props;
|
|
3007
|
-
const {
|
|
3008
|
-
treeExpandedMaps
|
|
3009
|
-
} = reactData;
|
|
3010
3279
|
const {
|
|
3011
3280
|
fullAllDataRowIdData,
|
|
3012
3281
|
tableFullData,
|
|
3013
|
-
tableFullTreeData
|
|
3282
|
+
tableFullTreeData,
|
|
3283
|
+
treeExpandedMaps
|
|
3014
3284
|
} = internalData;
|
|
3015
3285
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
3016
3286
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
3017
3287
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
3018
|
-
const
|
|
3288
|
+
const {
|
|
3289
|
+
lazy
|
|
3290
|
+
} = treeOpts;
|
|
3019
3291
|
const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
|
|
3020
3292
|
const fullDataRowIdMaps = {};
|
|
3021
|
-
const
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
if ((0, _utils.eqEmptyValue)(rowid)) {
|
|
3027
|
-
rowid = (0, _util.getRowUniqueId)();
|
|
3028
|
-
_xeUtils.default.set(row, rowkey, rowid);
|
|
3029
|
-
}
|
|
3030
|
-
if (treeConfig && treeOpts.lazy) {
|
|
3031
|
-
const treeExpRest = treeExpandedMaps[rowid];
|
|
3032
|
-
if (row[hasChildField] && _xeUtils.default.isUndefined(row[childrenField])) {
|
|
3033
|
-
row[childrenField] = null;
|
|
3034
|
-
}
|
|
3035
|
-
if (treeExpRest) {
|
|
3036
|
-
if (!row[childrenField] || !row[childrenField].length) {
|
|
3037
|
-
delete treeTempExpandedMaps[rowid];
|
|
3038
|
-
}
|
|
3039
|
-
}
|
|
3040
|
-
}
|
|
3041
|
-
let rowRest = fullAllDataRowIdData[rowid];
|
|
3293
|
+
const {
|
|
3294
|
+
handleUpdateRowId
|
|
3295
|
+
} = (0, _util.createHandleUpdateRowId)($xeTable);
|
|
3296
|
+
const handleRowCache = (row, index, items, currIndex, parentRow, rowid, level, seq) => {
|
|
3297
|
+
let rowRest = fullAllDataRowIdMaps[rowid];
|
|
3042
3298
|
if (!rowRest) {
|
|
3043
3299
|
rowRest = {
|
|
3044
3300
|
row,
|
|
@@ -3063,40 +3319,53 @@ const Methods = {
|
|
|
3063
3319
|
rowRest.items = items;
|
|
3064
3320
|
rowRest.parent = parentRow;
|
|
3065
3321
|
rowRest.level = level;
|
|
3066
|
-
rowRest.index =
|
|
3322
|
+
rowRest.index = currIndex;
|
|
3323
|
+
rowRest.treeIndex = index;
|
|
3067
3324
|
fullDataRowIdMaps[rowid] = rowRest;
|
|
3068
3325
|
fullAllDataRowIdMaps[rowid] = rowRest;
|
|
3069
3326
|
};
|
|
3070
3327
|
if (treeConfig) {
|
|
3071
|
-
_xeUtils.default.eachTree(tableFullTreeData,
|
|
3328
|
+
_xeUtils.default.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
|
|
3329
|
+
const rowid = handleUpdateRowId(row);
|
|
3330
|
+
if (treeConfig && lazy) {
|
|
3331
|
+
if (row[hasChildField] && row[childrenField] === undefined) {
|
|
3332
|
+
row[childrenField] = null;
|
|
3333
|
+
}
|
|
3334
|
+
if (treeExpandedMaps[rowid]) {
|
|
3335
|
+
if (!row[childrenField] || !row[childrenField].length) {
|
|
3336
|
+
delete treeExpandedMaps[rowid];
|
|
3337
|
+
}
|
|
3338
|
+
}
|
|
3339
|
+
}
|
|
3340
|
+
handleRowCache(row, index, items, parentRow ? -1 : index, parentRow, rowid, nodes.length - 1, (0, _util.toTreePathSeq)(path));
|
|
3341
|
+
}, {
|
|
3072
3342
|
children: childrenField
|
|
3073
3343
|
});
|
|
3074
3344
|
} else {
|
|
3075
|
-
tableFullData.forEach(
|
|
3345
|
+
tableFullData.forEach((row, index, items) => {
|
|
3346
|
+
handleRowCache(row, index, items, index, null, handleUpdateRowId(row), 0, index + 1);
|
|
3347
|
+
});
|
|
3076
3348
|
}
|
|
3077
3349
|
internalData.fullDataRowIdData = fullDataRowIdMaps;
|
|
3078
3350
|
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
|
|
3079
|
-
reactData.
|
|
3351
|
+
reactData.treeExpandedFlag++;
|
|
3080
3352
|
},
|
|
3081
3353
|
cacheSourceMap(fullData) {
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3354
|
+
const $xeTable = this;
|
|
3355
|
+
const props = $xeTable;
|
|
3356
|
+
const internalData = $xeTable;
|
|
3357
|
+
const {
|
|
3358
|
+
treeConfig
|
|
3359
|
+
} = props;
|
|
3360
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
3087
3361
|
const sourceData = _xeUtils.default.clone(fullData, true);
|
|
3088
|
-
const
|
|
3089
|
-
|
|
3362
|
+
const {
|
|
3363
|
+
handleUpdateRowId
|
|
3364
|
+
} = (0, _util.createHandleUpdateRowId)($xeTable);
|
|
3365
|
+
const sourceRowIdData = {};
|
|
3090
3366
|
const handleSourceRow = row => {
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
rowid = (0, _util.getRowUniqueId)();
|
|
3094
|
-
_xeUtils.default.set(row, rowkey, rowid);
|
|
3095
|
-
}
|
|
3096
|
-
sourceDataRowIdData[rowid] = {
|
|
3097
|
-
row,
|
|
3098
|
-
rowid
|
|
3099
|
-
};
|
|
3367
|
+
const rowid = handleUpdateRowId(row);
|
|
3368
|
+
sourceRowIdData[rowid] = row;
|
|
3100
3369
|
};
|
|
3101
3370
|
// 源数据缓存
|
|
3102
3371
|
if (treeConfig) {
|
|
@@ -3107,7 +3376,8 @@ const Methods = {
|
|
|
3107
3376
|
} else {
|
|
3108
3377
|
sourceData.forEach(handleSourceRow);
|
|
3109
3378
|
}
|
|
3110
|
-
|
|
3379
|
+
internalData.sourceDataRowIdData = sourceRowIdData;
|
|
3380
|
+
internalData.tableSourceData = sourceData;
|
|
3111
3381
|
},
|
|
3112
3382
|
getParams() {
|
|
3113
3383
|
return this.params;
|
|
@@ -3227,53 +3497,22 @@ const Methods = {
|
|
|
3227
3497
|
* 根据 row 获取序号
|
|
3228
3498
|
* @param {Row} row 行对象
|
|
3229
3499
|
*/
|
|
3230
|
-
getRowSeq(
|
|
3231
|
-
const {
|
|
3232
|
-
fullAllDataRowIdData
|
|
3233
|
-
} = this;
|
|
3234
|
-
if (row) {
|
|
3235
|
-
const rowid = (0, _util.getRowid)(this, row);
|
|
3236
|
-
const rest = fullAllDataRowIdData[rowid];
|
|
3237
|
-
if (rest) {
|
|
3238
|
-
return rest.seq;
|
|
3239
|
-
}
|
|
3240
|
-
}
|
|
3241
|
-
return -1;
|
|
3242
|
-
},
|
|
3500
|
+
getRowSeq: createGetRowCacheProp('seq'),
|
|
3243
3501
|
/**
|
|
3244
3502
|
* 根据 row 获取相对于 data 中的索引
|
|
3245
3503
|
* @param {Row} row 行对象
|
|
3246
3504
|
*/
|
|
3247
|
-
getRowIndex(
|
|
3248
|
-
const {
|
|
3249
|
-
fullAllDataRowIdData
|
|
3250
|
-
} = this;
|
|
3251
|
-
if (row) {
|
|
3252
|
-
const rowid = (0, _util.getRowid)(this, row);
|
|
3253
|
-
const rest = fullAllDataRowIdData[rowid];
|
|
3254
|
-
if (rest) {
|
|
3255
|
-
return rest.index;
|
|
3256
|
-
}
|
|
3257
|
-
}
|
|
3258
|
-
return -1;
|
|
3259
|
-
},
|
|
3505
|
+
getRowIndex: createGetRowCacheProp('index'),
|
|
3260
3506
|
/**
|
|
3261
3507
|
* 根据 row 获取相对于当前数据中的索引
|
|
3262
3508
|
* @param {Row} row 行对象
|
|
3263
3509
|
*/
|
|
3264
|
-
getVTRowIndex(
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
const rest = fullAllDataRowIdData[rowid];
|
|
3271
|
-
if (rest) {
|
|
3272
|
-
return rest._index;
|
|
3273
|
-
}
|
|
3274
|
-
}
|
|
3275
|
-
return -1;
|
|
3276
|
-
},
|
|
3510
|
+
getVTRowIndex: createGetRowCacheProp('_index'),
|
|
3511
|
+
/**
|
|
3512
|
+
* 根据 row 获取渲染中的虚拟索引
|
|
3513
|
+
* @param {Row} row 行对象
|
|
3514
|
+
*/
|
|
3515
|
+
getVMRowIndex: createGetRowCacheProp('$index'),
|
|
3277
3516
|
// 在 v3 中废弃
|
|
3278
3517
|
_getRowIndex(row) {
|
|
3279
3518
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -3281,23 +3520,6 @@ const Methods = {
|
|
|
3281
3520
|
}
|
|
3282
3521
|
return this.getVTRowIndex(row);
|
|
3283
3522
|
},
|
|
3284
|
-
/**
|
|
3285
|
-
* 根据 row 获取渲染中的虚拟索引
|
|
3286
|
-
* @param {Row} row 行对象
|
|
3287
|
-
*/
|
|
3288
|
-
getVMRowIndex(row) {
|
|
3289
|
-
const {
|
|
3290
|
-
fullAllDataRowIdData
|
|
3291
|
-
} = this;
|
|
3292
|
-
if (row) {
|
|
3293
|
-
const rowid = (0, _util.getRowid)(this, row);
|
|
3294
|
-
const rest = fullAllDataRowIdData[rowid];
|
|
3295
|
-
if (rest) {
|
|
3296
|
-
return rest.$index;
|
|
3297
|
-
}
|
|
3298
|
-
}
|
|
3299
|
-
return -1;
|
|
3300
|
-
},
|
|
3301
3523
|
// 在 v3 中废弃
|
|
3302
3524
|
$getRowIndex(row) {
|
|
3303
3525
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -3309,34 +3531,17 @@ const Methods = {
|
|
|
3309
3531
|
* 根据 column 获取相对于 columns 中的索引
|
|
3310
3532
|
* @param {ColumnInfo} column 列配置
|
|
3311
3533
|
*/
|
|
3312
|
-
getColumnIndex(
|
|
3313
|
-
const {
|
|
3314
|
-
fullColumnIdData
|
|
3315
|
-
} = this;
|
|
3316
|
-
if (column) {
|
|
3317
|
-
const rest = fullColumnIdData[column.id];
|
|
3318
|
-
if (rest) {
|
|
3319
|
-
return rest.index;
|
|
3320
|
-
}
|
|
3321
|
-
}
|
|
3322
|
-
return -1;
|
|
3323
|
-
},
|
|
3534
|
+
getColumnIndex: createGetColumnCacheProp('index'),
|
|
3324
3535
|
/**
|
|
3325
3536
|
* 根据 column 获取相对于当前表格列中的索引
|
|
3326
3537
|
* @param {ColumnInfo} column 列配置
|
|
3327
3538
|
*/
|
|
3328
|
-
getVTColumnIndex(
|
|
3329
|
-
|
|
3330
|
-
|
|
3331
|
-
|
|
3332
|
-
|
|
3333
|
-
|
|
3334
|
-
if (rest) {
|
|
3335
|
-
return rest._index;
|
|
3336
|
-
}
|
|
3337
|
-
}
|
|
3338
|
-
return -1;
|
|
3339
|
-
},
|
|
3539
|
+
getVTColumnIndex: createGetColumnCacheProp('_index'),
|
|
3540
|
+
/**
|
|
3541
|
+
* 根据 column 获取渲染中的虚拟索引
|
|
3542
|
+
* @param {ColumnInfo} column 列配置
|
|
3543
|
+
*/
|
|
3544
|
+
getVMColumnIndex: createGetColumnCacheProp('$index'),
|
|
3340
3545
|
// 在 v3 中废弃
|
|
3341
3546
|
_getColumnIndex(column) {
|
|
3342
3547
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -3344,22 +3549,6 @@ const Methods = {
|
|
|
3344
3549
|
}
|
|
3345
3550
|
return this.getVTColumnIndex(column);
|
|
3346
3551
|
},
|
|
3347
|
-
/**
|
|
3348
|
-
* 根据 column 获取渲染中的虚拟索引
|
|
3349
|
-
* @param {ColumnInfo} column 列配置
|
|
3350
|
-
*/
|
|
3351
|
-
getVMColumnIndex(column) {
|
|
3352
|
-
const {
|
|
3353
|
-
fullColumnIdData
|
|
3354
|
-
} = this;
|
|
3355
|
-
if (column) {
|
|
3356
|
-
const rest = fullColumnIdData[column.id];
|
|
3357
|
-
if (rest) {
|
|
3358
|
-
return rest.$index;
|
|
3359
|
-
}
|
|
3360
|
-
}
|
|
3361
|
-
return -1;
|
|
3362
|
-
},
|
|
3363
3552
|
// 在 v3 中废弃
|
|
3364
3553
|
$getColumnIndex(column) {
|
|
3365
3554
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -3468,20 +3657,28 @@ const Methods = {
|
|
|
3468
3657
|
keepSource,
|
|
3469
3658
|
treeConfig
|
|
3470
3659
|
} = props;
|
|
3660
|
+
const {
|
|
3661
|
+
editStore
|
|
3662
|
+
} = reactData;
|
|
3471
3663
|
const {
|
|
3472
3664
|
fullAllDataRowIdData,
|
|
3665
|
+
fullDataRowIdData,
|
|
3473
3666
|
tableSourceData,
|
|
3474
3667
|
sourceDataRowIdData,
|
|
3475
3668
|
tableFullData,
|
|
3476
3669
|
afterFullData
|
|
3477
3670
|
} = internalData;
|
|
3671
|
+
const removeTempMaps = Object.assign({}, editStore.removeMaps);
|
|
3478
3672
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
3479
3673
|
const {
|
|
3480
3674
|
transform
|
|
3481
3675
|
} = treeOpts;
|
|
3676
|
+
const {
|
|
3677
|
+
handleGetRowId
|
|
3678
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
3482
3679
|
if (!keepSource) {
|
|
3483
3680
|
if (process.env.NODE_ENV === 'development') {
|
|
3484
|
-
(0, _log.
|
|
3681
|
+
(0, _log.errLog)('vxe.error.reqProp', ['keep-source']);
|
|
3485
3682
|
}
|
|
3486
3683
|
return $xeTable.$nextTick();
|
|
3487
3684
|
}
|
|
@@ -3495,22 +3692,23 @@ const Methods = {
|
|
|
3495
3692
|
}
|
|
3496
3693
|
let reDelFlag = false;
|
|
3497
3694
|
if (targetRows.length) {
|
|
3498
|
-
targetRows.forEach(
|
|
3499
|
-
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3505
|
-
|
|
3506
|
-
|
|
3507
|
-
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
3695
|
+
targetRows.forEach(item => {
|
|
3696
|
+
const rowid = handleGetRowId(item);
|
|
3697
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
3698
|
+
if (rowRest) {
|
|
3699
|
+
const row = rowRest.row;
|
|
3700
|
+
if (!$xeTable.isInsertByRow(row)) {
|
|
3701
|
+
const oRow = sourceDataRowIdData[rowid];
|
|
3702
|
+
if (oRow && row) {
|
|
3703
|
+
if (field) {
|
|
3704
|
+
_xeUtils.default.set(row, field, _xeUtils.default.clone(_xeUtils.default.get(oRow, field), true));
|
|
3705
|
+
} else {
|
|
3706
|
+
_xeUtils.default.destructuring(row, _xeUtils.default.clone(oRow, true));
|
|
3707
|
+
}
|
|
3708
|
+
if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
|
|
3709
|
+
delete removeTempMaps[rowid];
|
|
3710
|
+
tableFullData.unshift(row);
|
|
3711
|
+
afterFullData.unshift(row);
|
|
3514
3712
|
reDelFlag = true;
|
|
3515
3713
|
}
|
|
3516
3714
|
}
|
|
@@ -3520,6 +3718,7 @@ const Methods = {
|
|
|
3520
3718
|
}
|
|
3521
3719
|
if (rows) {
|
|
3522
3720
|
if (reDelFlag) {
|
|
3721
|
+
editStore.removeMaps = removeTempMaps;
|
|
3523
3722
|
$xeTable.updateFooter();
|
|
3524
3723
|
$xeTable.cacheRowMap(false);
|
|
3525
3724
|
$xeTable.handleTableData(treeConfig && transform);
|
|
@@ -3699,25 +3898,31 @@ const Methods = {
|
|
|
3699
3898
|
},
|
|
3700
3899
|
/**
|
|
3701
3900
|
* 检查行或列数据是否发生改变
|
|
3702
|
-
* @param {Row}
|
|
3901
|
+
* @param {Row} rowOrId 行对象
|
|
3703
3902
|
* @param {String} field 字段名
|
|
3704
3903
|
*/
|
|
3705
|
-
isUpdateByRow(
|
|
3904
|
+
isUpdateByRow(rowOrId, field) {
|
|
3905
|
+
const $xeTable = this;
|
|
3906
|
+
const props = $xeTable;
|
|
3907
|
+
const internalData = $xeTable;
|
|
3908
|
+
const {
|
|
3909
|
+
keepSource
|
|
3910
|
+
} = props;
|
|
3706
3911
|
const {
|
|
3707
3912
|
tableFullColumn,
|
|
3708
|
-
|
|
3709
|
-
sourceDataRowIdData
|
|
3710
|
-
|
|
3711
|
-
} = this;
|
|
3913
|
+
fullDataRowIdData,
|
|
3914
|
+
sourceDataRowIdData
|
|
3915
|
+
} = internalData;
|
|
3712
3916
|
if (keepSource) {
|
|
3713
|
-
const rowid = (0, _util.getRowid)(
|
|
3917
|
+
const rowid = _xeUtils.default.isString(rowOrId) || _xeUtils.default.isNumber(rowOrId) ? rowOrId : (0, _util.getRowid)($xeTable, rowOrId);
|
|
3918
|
+
const rowRest = fullDataRowIdData[rowid];
|
|
3714
3919
|
// 新增的数据不需要检测
|
|
3715
|
-
if (!
|
|
3920
|
+
if (!rowRest) {
|
|
3716
3921
|
return false;
|
|
3717
3922
|
}
|
|
3718
|
-
const
|
|
3719
|
-
|
|
3720
|
-
|
|
3923
|
+
const row = rowRest.row;
|
|
3924
|
+
const oRow = sourceDataRowIdData[rowid];
|
|
3925
|
+
if (oRow) {
|
|
3721
3926
|
if (arguments.length > 1) {
|
|
3722
3927
|
return !eqCellValue(oRow, row, field);
|
|
3723
3928
|
}
|
|
@@ -3779,6 +3984,113 @@ const Methods = {
|
|
|
3779
3984
|
tableColumn: this.tableColumn.slice(0)
|
|
3780
3985
|
};
|
|
3781
3986
|
},
|
|
3987
|
+
/**
|
|
3988
|
+
* 移动列到指定列的位置
|
|
3989
|
+
* @param fieldOrColumn
|
|
3990
|
+
* @param targetFieldOrColumn
|
|
3991
|
+
* @param options
|
|
3992
|
+
*/
|
|
3993
|
+
moveColumnTo(fieldOrColumn, targetFieldOrColumn, options) {
|
|
3994
|
+
const $xeTable = this;
|
|
3995
|
+
const internalData = $xeTable;
|
|
3996
|
+
const {
|
|
3997
|
+
fullColumnIdData,
|
|
3998
|
+
visibleColumn
|
|
3999
|
+
} = internalData;
|
|
4000
|
+
const {
|
|
4001
|
+
dragToChild,
|
|
4002
|
+
dragPos,
|
|
4003
|
+
isCrossDrag
|
|
4004
|
+
} = Object.assign({}, options);
|
|
4005
|
+
const dragCol = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
|
|
4006
|
+
let prevDragCol = null;
|
|
4007
|
+
const colRest = dragCol ? fullColumnIdData[dragCol.id] : null;
|
|
4008
|
+
let defPos = 'left';
|
|
4009
|
+
if (_xeUtils.default.isNumber(targetFieldOrColumn)) {
|
|
4010
|
+
if (colRest && targetFieldOrColumn) {
|
|
4011
|
+
let currList = colRest.items;
|
|
4012
|
+
let offsetIndex = colRest._index + targetFieldOrColumn;
|
|
4013
|
+
if (isCrossDrag) {
|
|
4014
|
+
currList = visibleColumn;
|
|
4015
|
+
offsetIndex = colRest._index + targetFieldOrColumn;
|
|
4016
|
+
}
|
|
4017
|
+
if (offsetIndex > 0 && offsetIndex < currList.length - 1) {
|
|
4018
|
+
prevDragCol = currList[offsetIndex];
|
|
4019
|
+
}
|
|
4020
|
+
if (targetFieldOrColumn > 0) {
|
|
4021
|
+
defPos = 'right';
|
|
4022
|
+
}
|
|
4023
|
+
}
|
|
4024
|
+
} else {
|
|
4025
|
+
prevDragCol = (0, _util.handleFieldOrColumn)($xeTable, targetFieldOrColumn);
|
|
4026
|
+
const targetColRest = prevDragCol ? fullColumnIdData[prevDragCol.id] : null;
|
|
4027
|
+
if (colRest && targetColRest) {
|
|
4028
|
+
if (targetColRest._index > colRest._index) {
|
|
4029
|
+
defPos = 'right';
|
|
4030
|
+
}
|
|
4031
|
+
}
|
|
4032
|
+
}
|
|
4033
|
+
return $xeTable.handleColDragSwapEvent(null, true, dragCol, prevDragCol, dragPos || defPos, dragToChild === true);
|
|
4034
|
+
},
|
|
4035
|
+
/**
|
|
4036
|
+
* 移动行到指定行的位置
|
|
4037
|
+
* @param rowidOrRow
|
|
4038
|
+
* @param targetRowidOrRow
|
|
4039
|
+
* @param options
|
|
4040
|
+
*/
|
|
4041
|
+
moveRowTo(rowidOrRow, targetRowidOrRow, options) {
|
|
4042
|
+
const $xeTable = this;
|
|
4043
|
+
const props = $xeTable;
|
|
4044
|
+
const internalData = $xeTable;
|
|
4045
|
+
const {
|
|
4046
|
+
treeConfig
|
|
4047
|
+
} = props;
|
|
4048
|
+
const {
|
|
4049
|
+
fullAllDataRowIdData,
|
|
4050
|
+
afterFullData
|
|
4051
|
+
} = internalData;
|
|
4052
|
+
const {
|
|
4053
|
+
dragToChild,
|
|
4054
|
+
dragPos,
|
|
4055
|
+
isCrossDrag
|
|
4056
|
+
} = Object.assign({}, options);
|
|
4057
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
4058
|
+
const dragRow = (0, _util.handleRowidOrRow)($xeTable, rowidOrRow);
|
|
4059
|
+
let prevDragRow = null;
|
|
4060
|
+
let defPos = 'top';
|
|
4061
|
+
const rowRest = dragRow ? fullAllDataRowIdData[(0, _util.getRowid)($xeTable, dragRow)] : null;
|
|
4062
|
+
if (_xeUtils.default.isNumber(targetRowidOrRow)) {
|
|
4063
|
+
if (rowRest && targetRowidOrRow) {
|
|
4064
|
+
let currList = afterFullData;
|
|
4065
|
+
let offsetIndex = rowRest._index + targetRowidOrRow;
|
|
4066
|
+
if (treeConfig) {
|
|
4067
|
+
currList = rowRest.items;
|
|
4068
|
+
if (treeOpts.transform) {
|
|
4069
|
+
offsetIndex = rowRest.treeIndex + targetRowidOrRow;
|
|
4070
|
+
if (isCrossDrag) {
|
|
4071
|
+
currList = afterFullData;
|
|
4072
|
+
offsetIndex = rowRest._index + targetRowidOrRow;
|
|
4073
|
+
}
|
|
4074
|
+
}
|
|
4075
|
+
}
|
|
4076
|
+
if (offsetIndex >= 0 && offsetIndex <= currList.length - 1) {
|
|
4077
|
+
prevDragRow = currList[offsetIndex];
|
|
4078
|
+
}
|
|
4079
|
+
if (targetRowidOrRow > 0) {
|
|
4080
|
+
defPos = 'bottom';
|
|
4081
|
+
}
|
|
4082
|
+
}
|
|
4083
|
+
} else {
|
|
4084
|
+
prevDragRow = (0, _util.handleRowidOrRow)($xeTable, targetRowidOrRow);
|
|
4085
|
+
const targetRowRest = prevDragRow ? fullAllDataRowIdData[(0, _util.getRowid)($xeTable, prevDragRow)] : null;
|
|
4086
|
+
if (rowRest && targetRowRest) {
|
|
4087
|
+
if (targetRowRest._index > rowRest._index) {
|
|
4088
|
+
defPos = 'bottom';
|
|
4089
|
+
}
|
|
4090
|
+
}
|
|
4091
|
+
}
|
|
4092
|
+
return $xeTable.handleRowDragSwapEvent(null, true, dragRow, prevDragRow, dragPos || defPos, dragToChild === true);
|
|
4093
|
+
},
|
|
3782
4094
|
/**
|
|
3783
4095
|
* 获取表格的全量列
|
|
3784
4096
|
*/
|
|
@@ -3801,16 +4113,23 @@ const Methods = {
|
|
|
3801
4113
|
* 用于多选行,获取已选中的数据
|
|
3802
4114
|
*/
|
|
3803
4115
|
getCheckboxRecords(isFull) {
|
|
4116
|
+
const $xeTable = this;
|
|
4117
|
+
const props = $xeTable;
|
|
4118
|
+
const internalData = $xeTable;
|
|
4119
|
+
const {
|
|
4120
|
+
treeConfig
|
|
4121
|
+
} = props;
|
|
3804
4122
|
const {
|
|
3805
4123
|
tableFullData,
|
|
3806
4124
|
afterFullData,
|
|
3807
|
-
treeConfig,
|
|
3808
|
-
treeOpts,
|
|
3809
|
-
checkboxOpts,
|
|
3810
|
-
tableFullTreeData,
|
|
3811
4125
|
afterTreeFullData,
|
|
3812
|
-
|
|
3813
|
-
|
|
4126
|
+
tableFullTreeData,
|
|
4127
|
+
fullDataRowIdData,
|
|
4128
|
+
afterFullRowMaps,
|
|
4129
|
+
selectCheckboxMaps
|
|
4130
|
+
} = internalData;
|
|
4131
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
4132
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
3814
4133
|
const {
|
|
3815
4134
|
transform,
|
|
3816
4135
|
mapChildrenField
|
|
@@ -3819,21 +4138,18 @@ const Methods = {
|
|
|
3819
4138
|
checkField
|
|
3820
4139
|
} = checkboxOpts;
|
|
3821
4140
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
3822
|
-
const currTableData = isFull ? transform ? tableFullTreeData : tableFullData : transform ? afterTreeFullData : afterFullData;
|
|
3823
4141
|
let rowList = [];
|
|
3824
4142
|
if (checkField) {
|
|
3825
4143
|
if (treeConfig) {
|
|
4144
|
+
const currTableData = isFull ? transform ? tableFullTreeData : tableFullData : transform ? afterTreeFullData : afterFullData;
|
|
3826
4145
|
rowList = _xeUtils.default.filterTree(currTableData, row => _xeUtils.default.get(row, checkField), {
|
|
3827
4146
|
children: transform ? mapChildrenField : childrenField
|
|
3828
4147
|
});
|
|
3829
4148
|
} else {
|
|
4149
|
+
const currTableData = isFull ? tableFullData : afterFullData;
|
|
3830
4150
|
rowList = currTableData.filter(row => _xeUtils.default.get(row, checkField));
|
|
3831
4151
|
}
|
|
3832
4152
|
} else {
|
|
3833
|
-
const {
|
|
3834
|
-
selectCheckboxMaps,
|
|
3835
|
-
fullDataRowIdData
|
|
3836
|
-
} = this;
|
|
3837
4153
|
_xeUtils.default.each(selectCheckboxMaps, (row, rowid) => {
|
|
3838
4154
|
if (isFull) {
|
|
3839
4155
|
if (fullDataRowIdData[rowid]) {
|
|
@@ -4252,6 +4568,7 @@ const Methods = {
|
|
|
4252
4568
|
* 默认执行一次,除非被重置
|
|
4253
4569
|
*/
|
|
4254
4570
|
handleLoadDefaults() {
|
|
4571
|
+
const $xeTable = this;
|
|
4255
4572
|
if (this.checkboxConfig) {
|
|
4256
4573
|
this.handleDefaultSelectionChecked();
|
|
4257
4574
|
}
|
|
@@ -4262,7 +4579,7 @@ const Methods = {
|
|
|
4262
4579
|
this.handleDefaultRowExpand();
|
|
4263
4580
|
}
|
|
4264
4581
|
if (this.treeConfig) {
|
|
4265
|
-
|
|
4582
|
+
handleDefaultTreeExpand($xeTable);
|
|
4266
4583
|
}
|
|
4267
4584
|
if (this.mergeCells) {
|
|
4268
4585
|
this.handleDefaultMergeCells();
|
|
@@ -4547,14 +4864,26 @@ const Methods = {
|
|
|
4547
4864
|
}
|
|
4548
4865
|
},
|
|
4549
4866
|
getCustomStoreData() {
|
|
4867
|
+
const $xeTable = this;
|
|
4868
|
+
const props = $xeTable;
|
|
4869
|
+
const internalData = $xeTable;
|
|
4870
|
+
const {
|
|
4871
|
+
id
|
|
4872
|
+
} = props;
|
|
4873
|
+
const customOpts = $xeTable.computeCustomOpts;
|
|
4550
4874
|
const {
|
|
4551
|
-
id,
|
|
4552
|
-
customOpts,
|
|
4553
4875
|
collectColumn
|
|
4554
|
-
} =
|
|
4876
|
+
} = internalData;
|
|
4555
4877
|
const {
|
|
4878
|
+
storage,
|
|
4556
4879
|
checkMethod
|
|
4557
4880
|
} = customOpts;
|
|
4881
|
+
const isAllCustom = storage === true;
|
|
4882
|
+
const storageOpts = isAllCustom ? {} : Object.assign({}, storage || {});
|
|
4883
|
+
const isCustomResizable = isAllCustom || storageOpts.resizable;
|
|
4884
|
+
const isCustomVisible = isAllCustom || storageOpts.visible;
|
|
4885
|
+
const isCustomFixed = isAllCustom || storageOpts.fixed;
|
|
4886
|
+
const isCustomSort = isAllCustom || storageOpts.sort;
|
|
4558
4887
|
const resizableData = {};
|
|
4559
4888
|
const sortData = {};
|
|
4560
4889
|
const visibleData = {};
|
|
@@ -4571,48 +4900,38 @@ const Methods = {
|
|
|
4571
4900
|
}
|
|
4572
4901
|
let hasResizable = 0;
|
|
4573
4902
|
let hasSort = 0;
|
|
4574
|
-
let
|
|
4903
|
+
let hasFixed = 0;
|
|
4575
4904
|
let hasVisible = 0;
|
|
4576
4905
|
_xeUtils.default.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
|
|
4906
|
+
const colKey = column.getKey();
|
|
4907
|
+
if (!colKey) {
|
|
4908
|
+
(0, _log.errLog)('vxe.error.reqProp', [`${column.getTitle() || column.type || ''} -> column.field=?`]);
|
|
4909
|
+
return;
|
|
4910
|
+
}
|
|
4577
4911
|
// 只支持一级
|
|
4578
4912
|
if (!parentColumn) {
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
hasSort = 1;
|
|
4583
|
-
sortData[colKey] = column.renderSortNumber;
|
|
4584
|
-
}
|
|
4585
|
-
});
|
|
4586
|
-
if (column.fixed !== column.defaultFixed) {
|
|
4587
|
-
const colKey = column.getKey();
|
|
4588
|
-
if (colKey) {
|
|
4589
|
-
hasFixedt = 1;
|
|
4590
|
-
fixedData[colKey] = column.fixed;
|
|
4591
|
-
}
|
|
4913
|
+
if (isCustomSort) {
|
|
4914
|
+
hasSort = 1;
|
|
4915
|
+
sortData[colKey] = column.renderSortNumber;
|
|
4592
4916
|
}
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
|
|
4596
|
-
if (colKey) {
|
|
4597
|
-
hasResizable = 1;
|
|
4598
|
-
resizableData[colKey] = column.renderWidth;
|
|
4917
|
+
if (isCustomFixed && column.fixed !== column.defaultFixed) {
|
|
4918
|
+
hasFixed = 1;
|
|
4919
|
+
fixedData[colKey] = column.fixed;
|
|
4599
4920
|
}
|
|
4600
4921
|
}
|
|
4601
|
-
if (
|
|
4922
|
+
if (isCustomResizable && column.resizeWidth) {
|
|
4923
|
+
hasResizable = 1;
|
|
4924
|
+
resizableData[colKey] = column.renderWidth;
|
|
4925
|
+
}
|
|
4926
|
+
if (isCustomVisible && (!checkMethod || checkMethod({
|
|
4602
4927
|
column
|
|
4603
|
-
})) {
|
|
4928
|
+
}))) {
|
|
4604
4929
|
if (!column.visible && column.defaultVisible) {
|
|
4605
|
-
|
|
4606
|
-
|
|
4607
|
-
hasVisible = 1;
|
|
4608
|
-
visibleData[colKey] = false;
|
|
4609
|
-
}
|
|
4930
|
+
hasVisible = 1;
|
|
4931
|
+
visibleData[colKey] = false;
|
|
4610
4932
|
} else if (column.visible && !column.defaultVisible) {
|
|
4611
|
-
|
|
4612
|
-
|
|
4613
|
-
hasVisible = 1;
|
|
4614
|
-
visibleData[colKey] = true;
|
|
4615
|
-
}
|
|
4933
|
+
hasVisible = 1;
|
|
4934
|
+
visibleData[colKey] = true;
|
|
4616
4935
|
}
|
|
4617
4936
|
}
|
|
4618
4937
|
});
|
|
@@ -4622,7 +4941,7 @@ const Methods = {
|
|
|
4622
4941
|
if (hasSort) {
|
|
4623
4942
|
storeData.sortData = sortData;
|
|
4624
4943
|
}
|
|
4625
|
-
if (
|
|
4944
|
+
if (hasFixed) {
|
|
4626
4945
|
storeData.fixedData = fixedData;
|
|
4627
4946
|
}
|
|
4628
4947
|
if (hasVisible) {
|
|
@@ -5170,12 +5489,15 @@ const Methods = {
|
|
|
5170
5489
|
fullAllDataRowIdData,
|
|
5171
5490
|
afterFullData
|
|
5172
5491
|
} = internalData;
|
|
5492
|
+
const {
|
|
5493
|
+
handleGetRowId
|
|
5494
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
5173
5495
|
const rowOpts = $xeTable.computeRowOpts;
|
|
5174
5496
|
const cellOpts = $xeTable.computeCellOpts;
|
|
5175
5497
|
const defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
5176
5498
|
const rest = {};
|
|
5177
5499
|
afterFullData.forEach(row => {
|
|
5178
|
-
const rowid = (
|
|
5500
|
+
const rowid = handleGetRowId(row);
|
|
5179
5501
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
5180
5502
|
if (rowRest) {
|
|
5181
5503
|
const resizeHeight = rowRest.resizeHeight;
|
|
@@ -5204,8 +5526,11 @@ const Methods = {
|
|
|
5204
5526
|
rHeight = Math.floor(rHeight * bodyHeight);
|
|
5205
5527
|
}
|
|
5206
5528
|
if (rHeight) {
|
|
5529
|
+
const {
|
|
5530
|
+
handleGetRowId
|
|
5531
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
5207
5532
|
rows.forEach(row => {
|
|
5208
|
-
const rowid = _xeUtils.default.isString(row) || _xeUtils.default.isNumber(row) ? row : (
|
|
5533
|
+
const rowid = _xeUtils.default.isString(row) || _xeUtils.default.isNumber(row) ? row : handleGetRowId(row);
|
|
5209
5534
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
5210
5535
|
if (rowRest) {
|
|
5211
5536
|
rowRest.resizeHeight = rHeight;
|
|
@@ -5364,12 +5689,25 @@ const Methods = {
|
|
|
5364
5689
|
}
|
|
5365
5690
|
}
|
|
5366
5691
|
// 兼容老版本
|
|
5367
|
-
let rest;
|
|
5368
|
-
|
|
5369
|
-
|
|
5370
|
-
|
|
5371
|
-
|
|
5372
|
-
|
|
5692
|
+
let rest = null;
|
|
5693
|
+
let isStop = false;
|
|
5694
|
+
for (let i = 0; i < evntList.length; i++) {
|
|
5695
|
+
const func = evntList[i];
|
|
5696
|
+
const fnRest = func(Object.assign({
|
|
5697
|
+
$grid: this.$xegrid,
|
|
5698
|
+
$table: this,
|
|
5699
|
+
$event: evnt
|
|
5700
|
+
}, args));
|
|
5701
|
+
if (fnRest === false) {
|
|
5702
|
+
isStop = true;
|
|
5703
|
+
break;
|
|
5704
|
+
} else if (fnRest && fnRest.status === false) {
|
|
5705
|
+
rest = fnRest.result;
|
|
5706
|
+
isStop = true;
|
|
5707
|
+
break;
|
|
5708
|
+
}
|
|
5709
|
+
}
|
|
5710
|
+
if (!isStop) {
|
|
5373
5711
|
if (next) {
|
|
5374
5712
|
rest = next();
|
|
5375
5713
|
}
|
|
@@ -5605,10 +5943,12 @@ const Methods = {
|
|
|
5605
5943
|
treeConfig,
|
|
5606
5944
|
treeOpts,
|
|
5607
5945
|
highlightCurrentRow,
|
|
5946
|
+
highlightCurrentColumn,
|
|
5608
5947
|
currentRow,
|
|
5609
5948
|
bodyCtxMenu,
|
|
5610
5949
|
rowOpts
|
|
5611
5950
|
} = this;
|
|
5951
|
+
const columnOpts = $xeTable.computeColumnOpts;
|
|
5612
5952
|
const {
|
|
5613
5953
|
selected,
|
|
5614
5954
|
actived
|
|
@@ -5763,10 +6103,15 @@ const Methods = {
|
|
|
5763
6103
|
if (!isEditStatus) {
|
|
5764
6104
|
// 如果按下了方向键
|
|
5765
6105
|
if (selected.row && selected.column) {
|
|
5766
|
-
|
|
5767
|
-
}
|
|
5768
|
-
|
|
5769
|
-
|
|
6106
|
+
$xeTable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
|
|
6107
|
+
}
|
|
6108
|
+
// 当前行按键上下移动
|
|
6109
|
+
if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
6110
|
+
$xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
|
|
6111
|
+
}
|
|
6112
|
+
// 当前行按键左右移动
|
|
6113
|
+
if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
|
|
6114
|
+
$xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
|
|
5770
6115
|
}
|
|
5771
6116
|
}
|
|
5772
6117
|
} else if (isTab && keyboardConfig && keyboardOpts.isTab) {
|
|
@@ -6145,15 +6490,20 @@ const Methods = {
|
|
|
6145
6490
|
* 获取复选框半选状态的行数据
|
|
6146
6491
|
*/
|
|
6147
6492
|
getCheckboxIndeterminateRecords(isFull) {
|
|
6493
|
+
const $xeTable = this;
|
|
6494
|
+
const props = $xeTable;
|
|
6495
|
+
const internalData = $xeTable;
|
|
6148
6496
|
const {
|
|
6149
|
-
treeConfig
|
|
6150
|
-
|
|
6151
|
-
|
|
6152
|
-
|
|
6497
|
+
treeConfig
|
|
6498
|
+
} = props;
|
|
6499
|
+
const {
|
|
6500
|
+
fullDataRowIdData,
|
|
6501
|
+
treeIndeterminateRowMaps
|
|
6502
|
+
} = internalData;
|
|
6153
6503
|
if (treeConfig) {
|
|
6154
6504
|
const fullRest = [];
|
|
6155
6505
|
const defRest = [];
|
|
6156
|
-
_xeUtils.default.each(
|
|
6506
|
+
_xeUtils.default.each(treeIndeterminateRowMaps, (item, rowid) => {
|
|
6157
6507
|
if (item) {
|
|
6158
6508
|
fullRest.push(item);
|
|
6159
6509
|
if (fullDataRowIdData[rowid]) {
|
|
@@ -6230,9 +6580,13 @@ const Methods = {
|
|
|
6230
6580
|
isCheckedByCheckboxRow(row) {
|
|
6231
6581
|
const $xeTable = this;
|
|
6232
6582
|
const reactData = $xeTable;
|
|
6583
|
+
const internalData = $xeTable;
|
|
6233
6584
|
const {
|
|
6234
|
-
|
|
6585
|
+
updateCheckboxFlag
|
|
6235
6586
|
} = reactData;
|
|
6587
|
+
const {
|
|
6588
|
+
selectCheckboxMaps
|
|
6589
|
+
} = internalData;
|
|
6236
6590
|
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
6237
6591
|
const {
|
|
6238
6592
|
checkField
|
|
@@ -6240,17 +6594,18 @@ const Methods = {
|
|
|
6240
6594
|
if (checkField) {
|
|
6241
6595
|
return _xeUtils.default.get(row, checkField);
|
|
6242
6596
|
}
|
|
6243
|
-
return !!selectCheckboxMaps[(0, _util.getRowid)($xeTable, row)];
|
|
6597
|
+
return !!updateCheckboxFlag && !!selectCheckboxMaps[(0, _util.getRowid)($xeTable, row)];
|
|
6244
6598
|
},
|
|
6245
6599
|
isCheckedByCheckboxRowKey(rowid) {
|
|
6246
6600
|
const $xeTable = this;
|
|
6247
6601
|
const reactData = $xeTable;
|
|
6248
6602
|
const internalData = $xeTable;
|
|
6249
6603
|
const {
|
|
6250
|
-
|
|
6604
|
+
updateCheckboxFlag
|
|
6251
6605
|
} = reactData;
|
|
6252
6606
|
const {
|
|
6253
|
-
fullAllDataRowIdData
|
|
6607
|
+
fullAllDataRowIdData,
|
|
6608
|
+
selectCheckboxMaps
|
|
6254
6609
|
} = internalData;
|
|
6255
6610
|
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
6256
6611
|
const {
|
|
@@ -6263,23 +6618,23 @@ const Methods = {
|
|
|
6263
6618
|
}
|
|
6264
6619
|
return false;
|
|
6265
6620
|
}
|
|
6266
|
-
return !!selectCheckboxMaps[rowid];
|
|
6621
|
+
return !!updateCheckboxFlag && !!selectCheckboxMaps[rowid];
|
|
6267
6622
|
},
|
|
6268
6623
|
isIndeterminateByCheckboxRow(row) {
|
|
6269
6624
|
const $xeTable = this;
|
|
6270
|
-
const
|
|
6625
|
+
const internalData = $xeTable;
|
|
6271
6626
|
const {
|
|
6272
|
-
|
|
6273
|
-
} =
|
|
6274
|
-
return !!
|
|
6627
|
+
treeIndeterminateRowMaps
|
|
6628
|
+
} = internalData;
|
|
6629
|
+
return !!treeIndeterminateRowMaps[(0, _util.getRowid)($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row);
|
|
6275
6630
|
},
|
|
6276
6631
|
isIndeterminateByCheckboxRowKey(rowid) {
|
|
6277
6632
|
const $xeTable = this;
|
|
6278
|
-
const
|
|
6633
|
+
const internalData = $xeTable;
|
|
6279
6634
|
const {
|
|
6280
|
-
|
|
6281
|
-
} =
|
|
6282
|
-
return !!
|
|
6635
|
+
treeIndeterminateRowMaps
|
|
6636
|
+
} = internalData;
|
|
6637
|
+
return !!treeIndeterminateRowMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid);
|
|
6283
6638
|
},
|
|
6284
6639
|
/**
|
|
6285
6640
|
* 切换选中
|
|
@@ -6289,13 +6644,13 @@ const Methods = {
|
|
|
6289
6644
|
const $xeTable = this;
|
|
6290
6645
|
const props = $xeTable;
|
|
6291
6646
|
const reactData = $xeTable;
|
|
6647
|
+
const internalData = $xeTable;
|
|
6292
6648
|
const {
|
|
6293
6649
|
treeConfig
|
|
6294
6650
|
} = props;
|
|
6295
6651
|
const {
|
|
6296
6652
|
selectCheckboxMaps
|
|
6297
|
-
} =
|
|
6298
|
-
const selectRowMaps = Object.assign({}, selectCheckboxMaps);
|
|
6653
|
+
} = internalData;
|
|
6299
6654
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
6300
6655
|
const {
|
|
6301
6656
|
transform,
|
|
@@ -6308,6 +6663,10 @@ const Methods = {
|
|
|
6308
6663
|
checkStrictly,
|
|
6309
6664
|
checkMethod
|
|
6310
6665
|
} = checkboxOpts;
|
|
6666
|
+
const {
|
|
6667
|
+
handleGetRowId
|
|
6668
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
6669
|
+
// indeterminateField 仅支持读取
|
|
6311
6670
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
6312
6671
|
if (checkField) {
|
|
6313
6672
|
// 树结构
|
|
@@ -6326,35 +6685,34 @@ const Methods = {
|
|
|
6326
6685
|
}, {
|
|
6327
6686
|
children: transform ? mapChildrenField : childrenField
|
|
6328
6687
|
});
|
|
6329
|
-
reactData.
|
|
6688
|
+
reactData.updateCheckboxFlag++;
|
|
6330
6689
|
return;
|
|
6331
|
-
} else {
|
|
6332
|
-
// 列表
|
|
6333
|
-
rows.forEach(row => {
|
|
6334
|
-
if (isForce || !checkMethod || checkMethod({
|
|
6335
|
-
row
|
|
6336
|
-
})) {
|
|
6337
|
-
_xeUtils.default.set(row, checkField, checked);
|
|
6338
|
-
handleCheckboxReserveRow($xeTable, row, checked);
|
|
6339
|
-
}
|
|
6340
|
-
});
|
|
6341
6690
|
}
|
|
6342
|
-
|
|
6691
|
+
// 列表
|
|
6692
|
+
rows.forEach(row => {
|
|
6693
|
+
if (isForce || !checkMethod || checkMethod({
|
|
6694
|
+
row
|
|
6695
|
+
})) {
|
|
6696
|
+
_xeUtils.default.set(row, checkField, checked);
|
|
6697
|
+
handleCheckboxReserveRow($xeTable, row, checked);
|
|
6698
|
+
}
|
|
6699
|
+
});
|
|
6700
|
+
reactData.updateCheckboxFlag++;
|
|
6343
6701
|
return;
|
|
6344
6702
|
}
|
|
6345
6703
|
// 树结构
|
|
6346
6704
|
if (treeConfig && !checkStrictly) {
|
|
6347
6705
|
// 更新子节点状态
|
|
6348
6706
|
_xeUtils.default.eachTree(rows, row => {
|
|
6349
|
-
const rowid = (
|
|
6707
|
+
const rowid = handleGetRowId(row);
|
|
6350
6708
|
if (isForce || !checkMethod || checkMethod({
|
|
6351
6709
|
row
|
|
6352
6710
|
})) {
|
|
6353
6711
|
if (checked) {
|
|
6354
|
-
|
|
6712
|
+
selectCheckboxMaps[rowid] = row;
|
|
6355
6713
|
} else {
|
|
6356
|
-
if (
|
|
6357
|
-
delete
|
|
6714
|
+
if (selectCheckboxMaps[rowid]) {
|
|
6715
|
+
delete selectCheckboxMaps[rowid];
|
|
6358
6716
|
}
|
|
6359
6717
|
}
|
|
6360
6718
|
handleCheckboxReserveRow($xeTable, row, checked);
|
|
@@ -6362,28 +6720,28 @@ const Methods = {
|
|
|
6362
6720
|
}, {
|
|
6363
6721
|
children: transform ? mapChildrenField : childrenField
|
|
6364
6722
|
});
|
|
6365
|
-
reactData.
|
|
6723
|
+
reactData.updateCheckboxFlag++;
|
|
6366
6724
|
return;
|
|
6367
6725
|
}
|
|
6368
6726
|
// 列表
|
|
6369
6727
|
rows.forEach(row => {
|
|
6370
|
-
const rowid = (
|
|
6728
|
+
const rowid = handleGetRowId(row);
|
|
6371
6729
|
if (isForce || !checkMethod || checkMethod({
|
|
6372
6730
|
row
|
|
6373
6731
|
})) {
|
|
6374
6732
|
if (checked) {
|
|
6375
|
-
if (!
|
|
6376
|
-
|
|
6733
|
+
if (!selectCheckboxMaps[rowid]) {
|
|
6734
|
+
selectCheckboxMaps[rowid] = row;
|
|
6377
6735
|
}
|
|
6378
6736
|
} else {
|
|
6379
|
-
if (
|
|
6380
|
-
delete
|
|
6737
|
+
if (selectCheckboxMaps[rowid]) {
|
|
6738
|
+
delete selectCheckboxMaps[rowid];
|
|
6381
6739
|
}
|
|
6382
6740
|
}
|
|
6383
6741
|
handleCheckboxReserveRow($xeTable, row, checked);
|
|
6742
|
+
reactData.updateCheckboxFlag++;
|
|
6384
6743
|
}
|
|
6385
6744
|
});
|
|
6386
|
-
reactData.selectCheckboxMaps = selectRowMaps;
|
|
6387
6745
|
},
|
|
6388
6746
|
/**
|
|
6389
6747
|
* 即将移除
|
|
@@ -6396,10 +6754,12 @@ const Methods = {
|
|
|
6396
6754
|
$xeTable.handleBatchSelectRows([row], checked, isForce);
|
|
6397
6755
|
},
|
|
6398
6756
|
handleToggleCheckRowEvent(evnt, params) {
|
|
6757
|
+
const $xeTable = this;
|
|
6758
|
+
const internalData = $xeTable;
|
|
6399
6759
|
const {
|
|
6400
|
-
selectCheckboxMaps
|
|
6401
|
-
|
|
6402
|
-
|
|
6760
|
+
selectCheckboxMaps
|
|
6761
|
+
} = internalData;
|
|
6762
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
6403
6763
|
const {
|
|
6404
6764
|
checkField,
|
|
6405
6765
|
trigger
|
|
@@ -6414,43 +6774,47 @@ const Methods = {
|
|
|
6414
6774
|
if (checkField) {
|
|
6415
6775
|
checked = !_xeUtils.default.get(row, checkField);
|
|
6416
6776
|
} else {
|
|
6417
|
-
checked = !selectCheckboxMaps[(0, _util.getRowid)(
|
|
6777
|
+
checked = !selectCheckboxMaps[(0, _util.getRowid)($xeTable, row)];
|
|
6418
6778
|
}
|
|
6419
6779
|
if (evnt) {
|
|
6420
|
-
|
|
6780
|
+
$xeTable.triggerCheckRowEvent(evnt, params, checked);
|
|
6421
6781
|
} else {
|
|
6422
|
-
|
|
6423
|
-
|
|
6782
|
+
$xeTable.handleBatchSelectRows([row], checked);
|
|
6783
|
+
$xeTable.checkSelectionStatus();
|
|
6424
6784
|
}
|
|
6425
6785
|
},
|
|
6426
6786
|
triggerCheckRowEvent(evnt, params, checked) {
|
|
6427
6787
|
const $xeTable = this;
|
|
6788
|
+
const props = $xeTable;
|
|
6789
|
+
const internalData = $xeTable;
|
|
6790
|
+
const {
|
|
6791
|
+
row
|
|
6792
|
+
} = params;
|
|
6428
6793
|
const {
|
|
6429
|
-
checkboxOpts,
|
|
6430
6794
|
afterFullData
|
|
6431
|
-
} =
|
|
6795
|
+
} = internalData;
|
|
6796
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
6432
6797
|
const {
|
|
6433
6798
|
checkMethod,
|
|
6434
6799
|
trigger
|
|
6435
6800
|
} = checkboxOpts;
|
|
6436
|
-
const {
|
|
6437
|
-
row
|
|
6438
|
-
} = params;
|
|
6439
6801
|
if (trigger === 'manual') {
|
|
6440
6802
|
return;
|
|
6441
6803
|
}
|
|
6442
6804
|
evnt.stopPropagation();
|
|
6443
|
-
if (checkboxOpts.isShiftKey && evnt.shiftKey && !
|
|
6444
|
-
const checkboxRecords =
|
|
6805
|
+
if (checkboxOpts.isShiftKey && evnt.shiftKey && !props.treeConfig) {
|
|
6806
|
+
const checkboxRecords = $xeTable.getCheckboxRecords();
|
|
6445
6807
|
if (checkboxRecords.length) {
|
|
6446
6808
|
const firstRow = checkboxRecords[0];
|
|
6447
|
-
const _rowIndex =
|
|
6448
|
-
const _firstRowIndex =
|
|
6809
|
+
const _rowIndex = $xeTable.getVTRowIndex(row);
|
|
6810
|
+
const _firstRowIndex = $xeTable.getVTRowIndex(firstRow);
|
|
6449
6811
|
if (_rowIndex !== _firstRowIndex) {
|
|
6450
|
-
|
|
6812
|
+
$xeTable.setAllCheckboxRow(false);
|
|
6451
6813
|
const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1);
|
|
6452
|
-
|
|
6453
|
-
|
|
6814
|
+
$xeTable.$nextTick(() => {
|
|
6815
|
+
handleCheckedCheckboxRow($xeTable, rangeRows, true, false);
|
|
6816
|
+
});
|
|
6817
|
+
$xeTable.dispatchEvent('checkbox-range-select', Object.assign({
|
|
6454
6818
|
rangeRecords: rangeRows
|
|
6455
6819
|
}, params), evnt);
|
|
6456
6820
|
return;
|
|
@@ -6460,12 +6824,12 @@ const Methods = {
|
|
|
6460
6824
|
if (!checkMethod || checkMethod({
|
|
6461
6825
|
row
|
|
6462
6826
|
})) {
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
records:
|
|
6467
|
-
reserves:
|
|
6468
|
-
indeterminates:
|
|
6827
|
+
$xeTable.handleBatchSelectRows([row], checked);
|
|
6828
|
+
$xeTable.checkSelectionStatus();
|
|
6829
|
+
$xeTable.dispatchEvent('checkbox-change', Object.assign({
|
|
6830
|
+
records: () => $xeTable.getCheckboxRecords(),
|
|
6831
|
+
reserves: () => $xeTable.getCheckboxReserveRecords(),
|
|
6832
|
+
indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
|
|
6469
6833
|
checked
|
|
6470
6834
|
}, params), evnt);
|
|
6471
6835
|
}
|
|
@@ -6475,10 +6839,11 @@ const Methods = {
|
|
|
6475
6839
|
*/
|
|
6476
6840
|
toggleCheckboxRow(row) {
|
|
6477
6841
|
const $xeTable = this;
|
|
6842
|
+
const internalData = $xeTable;
|
|
6478
6843
|
const {
|
|
6479
|
-
selectCheckboxMaps
|
|
6480
|
-
|
|
6481
|
-
|
|
6844
|
+
selectCheckboxMaps
|
|
6845
|
+
} = internalData;
|
|
6846
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
6482
6847
|
const {
|
|
6483
6848
|
checkField
|
|
6484
6849
|
} = checkboxOpts;
|
|
@@ -6505,10 +6870,8 @@ const Methods = {
|
|
|
6505
6870
|
} = props;
|
|
6506
6871
|
const {
|
|
6507
6872
|
selectCheckboxMaps,
|
|
6508
|
-
|
|
6509
|
-
} =
|
|
6510
|
-
const selectRowMaps = Object.assign({}, selectCheckboxMaps);
|
|
6511
|
-
const halfRowMaps = Object.assign({}, treeIndeterminateMaps);
|
|
6873
|
+
treeIndeterminateRowMaps
|
|
6874
|
+
} = internalData;
|
|
6512
6875
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
6513
6876
|
const {
|
|
6514
6877
|
transform,
|
|
@@ -6529,10 +6892,13 @@ const Methods = {
|
|
|
6529
6892
|
}
|
|
6530
6893
|
// 树结构
|
|
6531
6894
|
if (treeConfig) {
|
|
6895
|
+
const {
|
|
6896
|
+
handleGetRowId
|
|
6897
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
6532
6898
|
const childRowMaps = {};
|
|
6533
6899
|
const childRowList = [];
|
|
6534
6900
|
_xeUtils.default.eachTree(afterTreeFullData, row => {
|
|
6535
|
-
const rowid = (
|
|
6901
|
+
const rowid = handleGetRowId(row);
|
|
6536
6902
|
const childList = row[transform ? mapChildrenField : childrenField];
|
|
6537
6903
|
if (childList && childList.length && !childRowMaps[rowid]) {
|
|
6538
6904
|
childRowMaps[rowid] = 1;
|
|
@@ -6549,30 +6915,30 @@ const Methods = {
|
|
|
6549
6915
|
let hLen = 0; // 半选
|
|
6550
6916
|
let vLen = 0; // 有效行
|
|
6551
6917
|
childList.forEach(checkMethod ? item => {
|
|
6552
|
-
const childRowid = (
|
|
6553
|
-
const isSelect = checkField ? _xeUtils.default.get(item, checkField) :
|
|
6918
|
+
const childRowid = handleGetRowId(item);
|
|
6919
|
+
const isSelect = checkField ? _xeUtils.default.get(item, checkField) : selectCheckboxMaps[childRowid];
|
|
6554
6920
|
if (checkMethod({
|
|
6555
6921
|
row: item
|
|
6556
6922
|
})) {
|
|
6557
6923
|
if (isSelect) {
|
|
6558
6924
|
sLen++;
|
|
6559
|
-
} else if (
|
|
6925
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
6560
6926
|
hLen++;
|
|
6561
6927
|
}
|
|
6562
6928
|
vLen++;
|
|
6563
6929
|
} else {
|
|
6564
6930
|
if (isSelect) {
|
|
6565
6931
|
sLen++;
|
|
6566
|
-
} else if (
|
|
6932
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
6567
6933
|
hLen++;
|
|
6568
6934
|
}
|
|
6569
6935
|
}
|
|
6570
6936
|
} : item => {
|
|
6571
|
-
const childRowid = (
|
|
6572
|
-
const isSelect = checkField ? _xeUtils.default.get(item, checkField) :
|
|
6937
|
+
const childRowid = handleGetRowId(item);
|
|
6938
|
+
const isSelect = checkField ? _xeUtils.default.get(item, checkField) : selectCheckboxMaps[childRowid];
|
|
6573
6939
|
if (isSelect) {
|
|
6574
6940
|
sLen++;
|
|
6575
|
-
} else if (
|
|
6941
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
6576
6942
|
hLen++;
|
|
6577
6943
|
}
|
|
6578
6944
|
vLen++;
|
|
@@ -6584,29 +6950,28 @@ const Methods = {
|
|
|
6584
6950
|
}
|
|
6585
6951
|
if (isSelected) {
|
|
6586
6952
|
if (!checkField) {
|
|
6587
|
-
|
|
6953
|
+
selectCheckboxMaps[rowid] = row;
|
|
6588
6954
|
}
|
|
6589
|
-
if (
|
|
6590
|
-
delete
|
|
6955
|
+
if (treeIndeterminateRowMaps[rowid]) {
|
|
6956
|
+
delete treeIndeterminateRowMaps[rowid];
|
|
6591
6957
|
}
|
|
6592
6958
|
} else {
|
|
6593
6959
|
if (!checkField) {
|
|
6594
|
-
if (
|
|
6595
|
-
delete
|
|
6960
|
+
if (selectCheckboxMaps[rowid]) {
|
|
6961
|
+
delete selectCheckboxMaps[rowid];
|
|
6596
6962
|
}
|
|
6597
6963
|
}
|
|
6598
6964
|
if (halfSelect) {
|
|
6599
|
-
|
|
6965
|
+
treeIndeterminateRowMaps[rowid] = row;
|
|
6600
6966
|
} else {
|
|
6601
|
-
if (
|
|
6602
|
-
delete
|
|
6967
|
+
if (treeIndeterminateRowMaps[rowid]) {
|
|
6968
|
+
delete treeIndeterminateRowMaps[rowid];
|
|
6603
6969
|
}
|
|
6604
6970
|
}
|
|
6605
6971
|
}
|
|
6606
6972
|
});
|
|
6607
6973
|
}
|
|
6608
|
-
reactData.
|
|
6609
|
-
reactData.treeIndeterminateMaps = halfRowMaps;
|
|
6974
|
+
reactData.updateCheckboxFlag++;
|
|
6610
6975
|
},
|
|
6611
6976
|
updateAllCheckboxStatus() {
|
|
6612
6977
|
const $xeTable = this;
|
|
@@ -6617,9 +6982,12 @@ const Methods = {
|
|
|
6617
6982
|
treeConfig
|
|
6618
6983
|
} = props;
|
|
6619
6984
|
const {
|
|
6985
|
+
afterFullData,
|
|
6986
|
+
afterTreeFullData,
|
|
6987
|
+
checkboxReserveRowMap,
|
|
6620
6988
|
selectCheckboxMaps,
|
|
6621
|
-
|
|
6622
|
-
} =
|
|
6989
|
+
treeIndeterminateRowMaps
|
|
6990
|
+
} = internalData;
|
|
6623
6991
|
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
6624
6992
|
const {
|
|
6625
6993
|
checkField,
|
|
@@ -6627,39 +6995,37 @@ const Methods = {
|
|
|
6627
6995
|
showReserveStatus
|
|
6628
6996
|
} = checkboxOpts;
|
|
6629
6997
|
const {
|
|
6630
|
-
|
|
6631
|
-
|
|
6632
|
-
checkboxReserveRowMap
|
|
6633
|
-
} = internalData;
|
|
6998
|
+
handleGetRowId
|
|
6999
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
6634
7000
|
let sLen = 0; // 已选
|
|
6635
7001
|
let hLen = 0; // 半选
|
|
6636
7002
|
let vLen = 0; // 有效行
|
|
6637
7003
|
const rootList = treeConfig ? afterTreeFullData : afterFullData;
|
|
6638
7004
|
rootList.forEach(checkMethod ? row => {
|
|
6639
|
-
const childRowid = (
|
|
7005
|
+
const childRowid = handleGetRowId(row);
|
|
6640
7006
|
const selected = checkField ? _xeUtils.default.get(row, checkField) : selectCheckboxMaps[childRowid];
|
|
6641
7007
|
if (checkMethod({
|
|
6642
7008
|
row
|
|
6643
7009
|
})) {
|
|
6644
7010
|
if (selected) {
|
|
6645
7011
|
sLen++;
|
|
6646
|
-
} else if (
|
|
7012
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
6647
7013
|
hLen++;
|
|
6648
7014
|
}
|
|
6649
7015
|
vLen++;
|
|
6650
7016
|
} else {
|
|
6651
7017
|
if (selected) {
|
|
6652
7018
|
sLen++;
|
|
6653
|
-
} else if (
|
|
7019
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
6654
7020
|
hLen++;
|
|
6655
7021
|
}
|
|
6656
7022
|
}
|
|
6657
7023
|
} : row => {
|
|
6658
|
-
const childRowid = (
|
|
7024
|
+
const childRowid = handleGetRowId(row);
|
|
6659
7025
|
const selected = checkField ? _xeUtils.default.get(row, checkField) : selectCheckboxMaps[childRowid];
|
|
6660
7026
|
if (selected) {
|
|
6661
7027
|
sLen++;
|
|
6662
|
-
} else if (
|
|
7028
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
6663
7029
|
hLen++;
|
|
6664
7030
|
}
|
|
6665
7031
|
vLen++;
|
|
@@ -6723,27 +7089,35 @@ const Methods = {
|
|
|
6723
7089
|
* 获取复选框保留选中的行
|
|
6724
7090
|
*/
|
|
6725
7091
|
getCheckboxReserveRecords(isFull) {
|
|
7092
|
+
const $xeTable = this;
|
|
7093
|
+
const props = $xeTable;
|
|
7094
|
+
const internalData = $xeTable;
|
|
7095
|
+
const {
|
|
7096
|
+
treeConfig
|
|
7097
|
+
} = props;
|
|
6726
7098
|
const {
|
|
6727
|
-
fullDataRowIdData,
|
|
6728
7099
|
afterFullData,
|
|
6729
|
-
|
|
6730
|
-
|
|
6731
|
-
|
|
6732
|
-
|
|
6733
|
-
|
|
7100
|
+
fullDataRowIdData,
|
|
7101
|
+
checkboxReserveRowMap
|
|
7102
|
+
} = internalData;
|
|
7103
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
7104
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
6734
7105
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
6735
7106
|
const reserveSelection = [];
|
|
6736
7107
|
if (checkboxOpts.reserve) {
|
|
7108
|
+
const {
|
|
7109
|
+
handleGetRowId
|
|
7110
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
6737
7111
|
const afterFullIdMaps = {};
|
|
6738
7112
|
if (treeConfig) {
|
|
6739
7113
|
_xeUtils.default.eachTree(afterFullData, row => {
|
|
6740
|
-
afterFullIdMaps[(
|
|
7114
|
+
afterFullIdMaps[handleGetRowId(row)] = 1;
|
|
6741
7115
|
}, {
|
|
6742
7116
|
children: childrenField
|
|
6743
7117
|
});
|
|
6744
7118
|
} else {
|
|
6745
7119
|
afterFullData.forEach(row => {
|
|
6746
|
-
afterFullIdMaps[(
|
|
7120
|
+
afterFullIdMaps[handleGetRowId(row)] = 1;
|
|
6747
7121
|
});
|
|
6748
7122
|
}
|
|
6749
7123
|
_xeUtils.default.each(checkboxReserveRowMap, (oldRow, oldRowid) => {
|
|
@@ -6785,9 +7159,9 @@ const Methods = {
|
|
|
6785
7159
|
handleCheckedAllCheckboxRow($xeTable, value);
|
|
6786
7160
|
if (evnt) {
|
|
6787
7161
|
$xeTable.dispatchEvent('checkbox-all', {
|
|
6788
|
-
records: $xeTable.getCheckboxRecords(),
|
|
6789
|
-
reserves: $xeTable.getCheckboxReserveRecords(),
|
|
6790
|
-
indeterminates: $xeTable.getCheckboxIndeterminateRecords(),
|
|
7162
|
+
records: () => $xeTable.getCheckboxRecords(),
|
|
7163
|
+
reserves: () => $xeTable.getCheckboxReserveRecords(),
|
|
7164
|
+
indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
|
|
6791
7165
|
checked: value
|
|
6792
7166
|
}, evnt);
|
|
6793
7167
|
}
|
|
@@ -6823,17 +7197,24 @@ const Methods = {
|
|
|
6823
7197
|
* 清空行为不管是否被禁用还是保留记录,都将彻底清空选中状态
|
|
6824
7198
|
*/
|
|
6825
7199
|
clearCheckboxRow() {
|
|
7200
|
+
const $xeTable = this;
|
|
7201
|
+
const props = $xeTable;
|
|
7202
|
+
const reactData = $xeTable;
|
|
7203
|
+
const internalData = $xeTable;
|
|
6826
7204
|
const {
|
|
6827
|
-
|
|
6828
|
-
|
|
6829
|
-
|
|
6830
|
-
|
|
6831
|
-
} =
|
|
7205
|
+
treeConfig
|
|
7206
|
+
} = props;
|
|
7207
|
+
const {
|
|
7208
|
+
tableFullData
|
|
7209
|
+
} = internalData;
|
|
7210
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
7211
|
+
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
7212
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
6832
7213
|
const {
|
|
6833
7214
|
checkField,
|
|
6834
7215
|
reserve
|
|
6835
7216
|
} = checkboxOpts;
|
|
6836
|
-
|
|
7217
|
+
// indeterminateField 仅支持读取
|
|
6837
7218
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
6838
7219
|
if (checkField) {
|
|
6839
7220
|
const handleClearChecked = item => {
|
|
@@ -6853,10 +7234,11 @@ const Methods = {
|
|
|
6853
7234
|
if (reserve) {
|
|
6854
7235
|
tableFullData.forEach(row => this.handleCheckboxReserveRow(row, false));
|
|
6855
7236
|
}
|
|
6856
|
-
|
|
6857
|
-
|
|
6858
|
-
|
|
6859
|
-
|
|
7237
|
+
reactData.isAllSelected = false;
|
|
7238
|
+
reactData.isIndeterminate = false;
|
|
7239
|
+
internalData.selectCheckboxMaps = {};
|
|
7240
|
+
internalData.treeIndeterminateRowMaps = {};
|
|
7241
|
+
reactData.updateCheckboxFlag++;
|
|
6860
7242
|
return this.$nextTick();
|
|
6861
7243
|
},
|
|
6862
7244
|
/**
|
|
@@ -7107,12 +7489,14 @@ const Methods = {
|
|
|
7107
7489
|
},
|
|
7108
7490
|
triggerHeaderCellClickEvent(evnt, params) {
|
|
7109
7491
|
const $xeTable = this;
|
|
7492
|
+
const props = $xeTable;
|
|
7110
7493
|
const internalData = $xeTable;
|
|
7111
7494
|
const {
|
|
7112
7495
|
_lastResizeTime
|
|
7113
7496
|
} = internalData;
|
|
7114
7497
|
const sortOpts = $xeTable.computeSortOpts;
|
|
7115
7498
|
const columnOpts = $xeTable.computeColumnOpts;
|
|
7499
|
+
const currentColumnOpts = $xeTable.computeCurrentColumnOpts;
|
|
7116
7500
|
const {
|
|
7117
7501
|
column
|
|
7118
7502
|
} = params;
|
|
@@ -7129,7 +7513,7 @@ const Methods = {
|
|
|
7129
7513
|
triggerFilter,
|
|
7130
7514
|
cell
|
|
7131
7515
|
}, params), evnt);
|
|
7132
|
-
if (columnOpts.isCurrent ||
|
|
7516
|
+
if ((columnOpts.isCurrent || props.highlightCurrentColumn) && (!currentColumnOpts.trigger || ['header', 'default'].includes(currentColumnOpts.trigger))) {
|
|
7133
7517
|
$xeTable.triggerCurrentColumnEvent(evnt, params);
|
|
7134
7518
|
}
|
|
7135
7519
|
return $xeTable.$nextTick();
|
|
@@ -7147,13 +7531,25 @@ const Methods = {
|
|
|
7147
7531
|
* @param {ColumnInfo} fieldOrColumn 列配置
|
|
7148
7532
|
*/
|
|
7149
7533
|
setCurrentColumn(fieldOrColumn) {
|
|
7150
|
-
const
|
|
7534
|
+
const $xeTable = this;
|
|
7535
|
+
const props = $xeTable;
|
|
7536
|
+
const reactData = $xeTable;
|
|
7537
|
+
const {
|
|
7538
|
+
mouseConfig
|
|
7539
|
+
} = props;
|
|
7540
|
+
const mouseOpts = $xeTable.computeMouseOpts;
|
|
7541
|
+
const isMouseSelected = mouseConfig && mouseOpts.selected;
|
|
7542
|
+
const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
|
|
7151
7543
|
if (column) {
|
|
7152
|
-
|
|
7153
|
-
|
|
7154
|
-
this.currentColumn = column;
|
|
7544
|
+
$xeTable.clearCurrentColumn();
|
|
7545
|
+
reactData.currentColumn = column;
|
|
7155
7546
|
}
|
|
7156
|
-
return
|
|
7547
|
+
return $xeTable.$nextTick().then(() => {
|
|
7548
|
+
// 更新状选中态
|
|
7549
|
+
if (isMouseSelected) {
|
|
7550
|
+
$xeTable.addCellSelectedClass();
|
|
7551
|
+
}
|
|
7552
|
+
});
|
|
7157
7553
|
},
|
|
7158
7554
|
/**
|
|
7159
7555
|
* 用于当前列,手动清空当前高亮的状态
|
|
@@ -7162,21 +7558,6 @@ const Methods = {
|
|
|
7162
7558
|
this.currentColumn = null;
|
|
7163
7559
|
return this.$nextTick();
|
|
7164
7560
|
},
|
|
7165
|
-
checkValidate(type) {
|
|
7166
|
-
if (this.triggerValidate) {
|
|
7167
|
-
return this.triggerValidate(type);
|
|
7168
|
-
}
|
|
7169
|
-
return this.$nextTick();
|
|
7170
|
-
},
|
|
7171
|
-
/**
|
|
7172
|
-
* 当单元格发生改变时
|
|
7173
|
-
* 如果存在规则,则校验
|
|
7174
|
-
*/
|
|
7175
|
-
handleChangeCell(evnt, params) {
|
|
7176
|
-
this.checkValidate('blur').catch(e => e).then(() => {
|
|
7177
|
-
this.handleEdit(params, evnt).then(() => this.checkValidate('change')).catch(e => e);
|
|
7178
|
-
});
|
|
7179
|
-
},
|
|
7180
7561
|
/**
|
|
7181
7562
|
* 列点击事件
|
|
7182
7563
|
* 如果是单击模式,则激活为编辑状态
|
|
@@ -7188,6 +7569,7 @@ const Methods = {
|
|
|
7188
7569
|
const reactData = $xeTable;
|
|
7189
7570
|
const {
|
|
7190
7571
|
highlightCurrentRow,
|
|
7572
|
+
highlightCurrentColumn,
|
|
7191
7573
|
editConfig
|
|
7192
7574
|
} = props;
|
|
7193
7575
|
const {
|
|
@@ -7204,6 +7586,8 @@ const Methods = {
|
|
|
7204
7586
|
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
7205
7587
|
const keyboardOpts = $xeTable.computeKeyboardOpts;
|
|
7206
7588
|
const rowOpts = $xeTable.computeRowOpts;
|
|
7589
|
+
const columnOpts = $xeTable.computeColumnOpts;
|
|
7590
|
+
const currentColumnOpts = $xeTable.computeCurrentColumnOpts;
|
|
7207
7591
|
const {
|
|
7208
7592
|
actived,
|
|
7209
7593
|
focused
|
|
@@ -7234,11 +7618,11 @@ const Methods = {
|
|
|
7234
7618
|
if (!triggerCheckbox && !triggerRadio) {
|
|
7235
7619
|
// 如果是展开行
|
|
7236
7620
|
if (!triggerExpandNode && (expandOpts.trigger === 'row' || isExpandType && expandOpts.trigger === 'cell')) {
|
|
7237
|
-
|
|
7621
|
+
$xeTable.triggerRowExpandEvent(evnt, params);
|
|
7238
7622
|
}
|
|
7239
7623
|
// 如果是树形表格
|
|
7240
7624
|
if (treeOpts.trigger === 'row' || treeNode && treeOpts.trigger === 'cell') {
|
|
7241
|
-
|
|
7625
|
+
$xeTable.triggerTreeExpandEvent(evnt, params);
|
|
7242
7626
|
}
|
|
7243
7627
|
}
|
|
7244
7628
|
// 如果点击了树节点
|
|
@@ -7247,16 +7631,22 @@ const Methods = {
|
|
|
7247
7631
|
// 如果是高亮行
|
|
7248
7632
|
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
7249
7633
|
if (!triggerCheckbox && !triggerRadio) {
|
|
7250
|
-
|
|
7634
|
+
$xeTable.triggerCurrentRowEvent(evnt, params);
|
|
7635
|
+
}
|
|
7636
|
+
}
|
|
7637
|
+
// 如果是当前列
|
|
7638
|
+
if ((columnOpts.isCurrent || highlightCurrentColumn) && (!currentColumnOpts.trigger || ['cell', 'default'].includes(currentColumnOpts.trigger))) {
|
|
7639
|
+
if (!triggerCheckbox && !triggerRadio) {
|
|
7640
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params);
|
|
7251
7641
|
}
|
|
7252
7642
|
}
|
|
7253
7643
|
// 如果是单选框
|
|
7254
7644
|
if (!triggerRadio && (radioOpts.trigger === 'row' || isRadioType && radioOpts.trigger === 'cell')) {
|
|
7255
|
-
|
|
7645
|
+
$xeTable.triggerRadioRowEvent(evnt, params);
|
|
7256
7646
|
}
|
|
7257
7647
|
// 如果是复选框
|
|
7258
7648
|
if (!triggerCheckbox && (checkboxOpts.trigger === 'row' || isCheckboxType && checkboxOpts.trigger === 'cell')) {
|
|
7259
|
-
|
|
7649
|
+
$xeTable.handleToggleCheckRowEvent(evnt, params);
|
|
7260
7650
|
}
|
|
7261
7651
|
}
|
|
7262
7652
|
// 如果设置了单元格选中功能,则不会使用点击事件去处理(只能支持双击模式)
|
|
@@ -7268,14 +7658,14 @@ const Methods = {
|
|
|
7268
7658
|
}
|
|
7269
7659
|
if (editOpts.trigger === 'manual') {
|
|
7270
7660
|
if (actived.args && actived.row === row && column !== actived.column) {
|
|
7271
|
-
|
|
7661
|
+
handleChangeCell($xeTable, evnt, params);
|
|
7272
7662
|
}
|
|
7273
7663
|
} else if (!actived.args || row !== actived.row || column !== actived.column) {
|
|
7274
7664
|
if (editOpts.trigger === 'click') {
|
|
7275
|
-
|
|
7665
|
+
handleChangeCell($xeTable, evnt, params);
|
|
7276
7666
|
} else if (editOpts.trigger === 'dblclick') {
|
|
7277
7667
|
if (editOpts.mode === 'row' && actived.row === row) {
|
|
7278
|
-
|
|
7668
|
+
handleChangeCell($xeTable, evnt, params);
|
|
7279
7669
|
}
|
|
7280
7670
|
}
|
|
7281
7671
|
}
|
|
@@ -7295,7 +7685,7 @@ const Methods = {
|
|
|
7295
7685
|
}
|
|
7296
7686
|
}
|
|
7297
7687
|
}
|
|
7298
|
-
|
|
7688
|
+
$xeTable.dispatchEvent('cell-click', params, evnt);
|
|
7299
7689
|
},
|
|
7300
7690
|
/**
|
|
7301
7691
|
* 列双击点击事件
|
|
@@ -7326,11 +7716,11 @@ const Methods = {
|
|
|
7326
7716
|
if ((0, _utils.isEnableConf)(editConfig) && editOpts.trigger === 'dblclick') {
|
|
7327
7717
|
if (!actived.args || evnt.currentTarget !== actived.args.cell) {
|
|
7328
7718
|
if (editOpts.mode === 'row') {
|
|
7329
|
-
|
|
7330
|
-
this.handleEdit(params, evnt).then(() =>
|
|
7719
|
+
checkValidate($xeTable, 'blur').catch(e => e).then(() => {
|
|
7720
|
+
this.handleEdit(params, evnt).then(() => checkValidate($xeTable, 'change')).catch(e => e);
|
|
7331
7721
|
});
|
|
7332
7722
|
} else if (editOpts.mode === 'cell') {
|
|
7333
|
-
this.handleEdit(params, evnt).then(() =>
|
|
7723
|
+
this.handleEdit(params, evnt).then(() => checkValidate($xeTable, 'change')).catch(e => e);
|
|
7334
7724
|
}
|
|
7335
7725
|
}
|
|
7336
7726
|
}
|
|
@@ -7582,6 +7972,8 @@ const Methods = {
|
|
|
7582
7972
|
} = props;
|
|
7583
7973
|
const rowDragOpts = $xeTable.computeRowDragOpts;
|
|
7584
7974
|
const {
|
|
7975
|
+
afterFullData,
|
|
7976
|
+
tableFullData,
|
|
7585
7977
|
fullAllDataRowIdData
|
|
7586
7978
|
} = internalData;
|
|
7587
7979
|
const {
|
|
@@ -7599,12 +7991,11 @@ const Methods = {
|
|
|
7599
7991
|
parentField
|
|
7600
7992
|
} = treeOpts;
|
|
7601
7993
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
7602
|
-
const {
|
|
7603
|
-
afterFullData,
|
|
7604
|
-
tableFullData
|
|
7605
|
-
} = internalData;
|
|
7606
7994
|
const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
|
|
7607
7995
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
7996
|
+
const errRest = {
|
|
7997
|
+
status: false
|
|
7998
|
+
};
|
|
7608
7999
|
if (prevDragRow && dragRow) {
|
|
7609
8000
|
// 判断是否有拖动
|
|
7610
8001
|
if (prevDragRow !== dragRow) {
|
|
@@ -7619,7 +8010,7 @@ const Methods = {
|
|
|
7619
8010
|
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
7620
8011
|
return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then(status => {
|
|
7621
8012
|
if (!status) {
|
|
7622
|
-
return;
|
|
8013
|
+
return errRest;
|
|
7623
8014
|
}
|
|
7624
8015
|
let oafIndex = -1;
|
|
7625
8016
|
let nafIndex = -1;
|
|
@@ -7650,11 +8041,11 @@ const Methods = {
|
|
|
7650
8041
|
if (isPeerDrag && !isCrossDrag) {
|
|
7651
8042
|
if (oldRest.row[parentField] !== newRest.row[parentField]) {
|
|
7652
8043
|
// 非同级
|
|
7653
|
-
return;
|
|
8044
|
+
return errRest;
|
|
7654
8045
|
}
|
|
7655
8046
|
} else {
|
|
7656
8047
|
if (!isCrossDrag) {
|
|
7657
|
-
return;
|
|
8048
|
+
return errRest;
|
|
7658
8049
|
}
|
|
7659
8050
|
if (oldAllMaps[newRowid]) {
|
|
7660
8051
|
isSelfToChildStatus = true;
|
|
@@ -7665,19 +8056,19 @@ const Methods = {
|
|
|
7665
8056
|
content: getI18n('vxe.error.treeDragChild')
|
|
7666
8057
|
});
|
|
7667
8058
|
}
|
|
7668
|
-
return;
|
|
8059
|
+
return errRest;
|
|
7669
8060
|
}
|
|
7670
8061
|
}
|
|
7671
8062
|
}
|
|
7672
8063
|
} else if (oldLevel) {
|
|
7673
8064
|
// 子到根
|
|
7674
8065
|
if (!isCrossDrag) {
|
|
7675
|
-
return;
|
|
8066
|
+
return errRest;
|
|
7676
8067
|
}
|
|
7677
8068
|
} else if (newLevel) {
|
|
7678
8069
|
// 根到子
|
|
7679
8070
|
if (!isCrossDrag) {
|
|
7680
|
-
return;
|
|
8071
|
+
return errRest;
|
|
7681
8072
|
}
|
|
7682
8073
|
if (oldAllMaps[newRowid]) {
|
|
7683
8074
|
isSelfToChildStatus = true;
|
|
@@ -7688,7 +8079,7 @@ const Methods = {
|
|
|
7688
8079
|
content: getI18n('vxe.error.treeDragChild')
|
|
7689
8080
|
});
|
|
7690
8081
|
}
|
|
7691
|
-
return;
|
|
8082
|
+
return errRest;
|
|
7692
8083
|
}
|
|
7693
8084
|
}
|
|
7694
8085
|
} else {
|
|
@@ -7746,26 +8137,34 @@ const Methods = {
|
|
|
7746
8137
|
if (reactData.scrollYLoad) {
|
|
7747
8138
|
$xeTable.updateScrollYSpace();
|
|
7748
8139
|
}
|
|
7749
|
-
|
|
8140
|
+
if (evnt) {
|
|
8141
|
+
$xeTable.dispatchEvent('row-dragend', {
|
|
8142
|
+
oldRow: dragRow,
|
|
8143
|
+
newRow: prevDragRow,
|
|
8144
|
+
dragRow,
|
|
8145
|
+
dragPos: prevDragPos,
|
|
8146
|
+
dragToChild: isDragToChildFlag,
|
|
8147
|
+
offsetIndex: dragOffsetIndex,
|
|
8148
|
+
_index: {
|
|
8149
|
+
newIndex: nafIndex,
|
|
8150
|
+
oldIndex: oafIndex
|
|
8151
|
+
}
|
|
8152
|
+
}, evnt);
|
|
8153
|
+
}
|
|
8154
|
+
return $xeTable.$nextTick().then(() => {
|
|
7750
8155
|
$xeTable.updateCellAreas();
|
|
7751
8156
|
$xeTable.recalculate();
|
|
8157
|
+
}).then(() => {
|
|
8158
|
+
return {
|
|
8159
|
+
status: true
|
|
8160
|
+
};
|
|
7752
8161
|
});
|
|
7753
|
-
|
|
7754
|
-
|
|
7755
|
-
|
|
7756
|
-
dragRow,
|
|
7757
|
-
dragPos: prevDragPos,
|
|
7758
|
-
dragToChild: isDragToChildFlag,
|
|
7759
|
-
offsetIndex: dragOffsetIndex,
|
|
7760
|
-
_index: {
|
|
7761
|
-
newIndex: nafIndex,
|
|
7762
|
-
oldIndex: oafIndex
|
|
7763
|
-
}
|
|
7764
|
-
}, evnt);
|
|
7765
|
-
}).catch(() => {});
|
|
8162
|
+
}).catch(() => {
|
|
8163
|
+
return errRest;
|
|
8164
|
+
});
|
|
7766
8165
|
}
|
|
7767
8166
|
}
|
|
7768
|
-
return Promise.resolve();
|
|
8167
|
+
return Promise.resolve(errRest);
|
|
7769
8168
|
},
|
|
7770
8169
|
handleRowDragDragendEvent(evnt) {
|
|
7771
8170
|
const $xeTable = this;
|
|
@@ -7952,6 +8351,9 @@ const Methods = {
|
|
|
7952
8351
|
collectColumn
|
|
7953
8352
|
} = internalData;
|
|
7954
8353
|
const dragOffsetIndex = prevDragPos === 'right' ? 1 : 0;
|
|
8354
|
+
const errRest = {
|
|
8355
|
+
status: false
|
|
8356
|
+
};
|
|
7955
8357
|
if (prevDragCol && dragCol) {
|
|
7956
8358
|
// 判断是否有拖动
|
|
7957
8359
|
if (prevDragCol !== dragCol) {
|
|
@@ -7968,7 +8370,7 @@ const Methods = {
|
|
|
7968
8370
|
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
7969
8371
|
return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then(status => {
|
|
7970
8372
|
if (!status) {
|
|
7971
|
-
return;
|
|
8373
|
+
return errRest;
|
|
7972
8374
|
}
|
|
7973
8375
|
let oafIndex = -1;
|
|
7974
8376
|
let nafIndex = -1;
|
|
@@ -7982,11 +8384,11 @@ const Methods = {
|
|
|
7982
8384
|
if (isPeerDrag && !isCrossDrag) {
|
|
7983
8385
|
if (dragColumn.parentId !== newColumn.parentId) {
|
|
7984
8386
|
// 非同级
|
|
7985
|
-
return;
|
|
8387
|
+
return errRest;
|
|
7986
8388
|
}
|
|
7987
8389
|
} else {
|
|
7988
8390
|
if (!isCrossDrag) {
|
|
7989
|
-
return;
|
|
8391
|
+
return errRest;
|
|
7990
8392
|
}
|
|
7991
8393
|
if (oldAllMaps[newColumn.id]) {
|
|
7992
8394
|
isSelfToChildStatus = true;
|
|
@@ -7997,19 +8399,19 @@ const Methods = {
|
|
|
7997
8399
|
content: getI18n('vxe.error.treeDragChild')
|
|
7998
8400
|
});
|
|
7999
8401
|
}
|
|
8000
|
-
return;
|
|
8402
|
+
return errRest;
|
|
8001
8403
|
}
|
|
8002
8404
|
}
|
|
8003
8405
|
}
|
|
8004
8406
|
} else if (dragColumn.parentId) {
|
|
8005
8407
|
// 子到根
|
|
8006
8408
|
if (!isCrossDrag) {
|
|
8007
|
-
return;
|
|
8409
|
+
return errRest;
|
|
8008
8410
|
}
|
|
8009
8411
|
} else if (newColumn.parentId) {
|
|
8010
8412
|
// 根到子
|
|
8011
8413
|
if (!isCrossDrag) {
|
|
8012
|
-
return;
|
|
8414
|
+
return errRest;
|
|
8013
8415
|
}
|
|
8014
8416
|
if (oldAllMaps[newColumn.id]) {
|
|
8015
8417
|
isSelfToChildStatus = true;
|
|
@@ -8020,7 +8422,7 @@ const Methods = {
|
|
|
8020
8422
|
content: getI18n('vxe.error.treeDragChild')
|
|
8021
8423
|
});
|
|
8022
8424
|
}
|
|
8023
|
-
return;
|
|
8425
|
+
return errRest;
|
|
8024
8426
|
}
|
|
8025
8427
|
}
|
|
8026
8428
|
} else {
|
|
@@ -8089,25 +8491,32 @@ const Methods = {
|
|
|
8089
8491
|
$xeTable.clearCopyCellArea();
|
|
8090
8492
|
}
|
|
8091
8493
|
}
|
|
8092
|
-
|
|
8093
|
-
|
|
8094
|
-
|
|
8095
|
-
|
|
8096
|
-
|
|
8097
|
-
|
|
8098
|
-
|
|
8099
|
-
|
|
8100
|
-
|
|
8101
|
-
|
|
8102
|
-
|
|
8103
|
-
|
|
8494
|
+
if (evnt) {
|
|
8495
|
+
$xeTable.dispatchEvent('column-dragend', {
|
|
8496
|
+
oldColumn: dragColumn,
|
|
8497
|
+
newColumn,
|
|
8498
|
+
dragColumn,
|
|
8499
|
+
dragPos: prevDragPos,
|
|
8500
|
+
dragToChild: isDragToChildFlag,
|
|
8501
|
+
offsetIndex: dragOffsetIndex,
|
|
8502
|
+
_index: {
|
|
8503
|
+
newIndex: nafIndex,
|
|
8504
|
+
oldIndex: oafIndex
|
|
8505
|
+
}
|
|
8506
|
+
}, evnt);
|
|
8507
|
+
}
|
|
8104
8508
|
if (isSyncColumn) {
|
|
8105
8509
|
$xeTable.handleColDragSwapColumn();
|
|
8106
8510
|
}
|
|
8107
|
-
|
|
8511
|
+
return {
|
|
8512
|
+
status: true
|
|
8513
|
+
};
|
|
8514
|
+
}).catch(() => {
|
|
8515
|
+
return errRest;
|
|
8516
|
+
});
|
|
8108
8517
|
}
|
|
8109
8518
|
}
|
|
8110
|
-
return Promise.resolve();
|
|
8519
|
+
return Promise.resolve(errRest);
|
|
8111
8520
|
},
|
|
8112
8521
|
handleHeaderCellDragDragendEvent(evnt) {
|
|
8113
8522
|
const $xeTable = this;
|
|
@@ -8249,46 +8658,58 @@ const Methods = {
|
|
|
8249
8658
|
setPendingRow(rows, status) {
|
|
8250
8659
|
const $xeTable = this;
|
|
8251
8660
|
const reactData = $xeTable;
|
|
8252
|
-
const
|
|
8661
|
+
const internalData = $xeTable;
|
|
8662
|
+
const {
|
|
8663
|
+
handleGetRowId
|
|
8664
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
8665
|
+
const {
|
|
8666
|
+
pendingRowMaps
|
|
8667
|
+
} = internalData;
|
|
8253
8668
|
if (rows && !_xeUtils.default.isArray(rows)) {
|
|
8254
8669
|
rows = [rows];
|
|
8255
8670
|
}
|
|
8256
8671
|
if (status) {
|
|
8257
8672
|
rows.forEach(row => {
|
|
8258
|
-
const rowid = (
|
|
8259
|
-
if (rowid && !
|
|
8260
|
-
|
|
8673
|
+
const rowid = handleGetRowId(row);
|
|
8674
|
+
if (rowid && !pendingRowMaps[rowid]) {
|
|
8675
|
+
pendingRowMaps[rowid] = row;
|
|
8261
8676
|
}
|
|
8262
8677
|
});
|
|
8263
8678
|
} else {
|
|
8264
8679
|
rows.forEach(row => {
|
|
8265
|
-
const rowid = (
|
|
8266
|
-
if (rowid &&
|
|
8267
|
-
delete
|
|
8680
|
+
const rowid = handleGetRowId(row);
|
|
8681
|
+
if (rowid && pendingRowMaps[rowid]) {
|
|
8682
|
+
delete pendingRowMaps[rowid];
|
|
8268
8683
|
}
|
|
8269
8684
|
});
|
|
8270
8685
|
}
|
|
8271
|
-
reactData.
|
|
8686
|
+
reactData.pendingRowFlag++;
|
|
8272
8687
|
return $xeTable.$nextTick();
|
|
8273
8688
|
},
|
|
8274
8689
|
togglePendingRow(rows) {
|
|
8275
8690
|
const $xeTable = this;
|
|
8276
8691
|
const reactData = $xeTable;
|
|
8277
|
-
const
|
|
8692
|
+
const internalData = $xeTable;
|
|
8693
|
+
const {
|
|
8694
|
+
handleGetRowId
|
|
8695
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
8696
|
+
const {
|
|
8697
|
+
pendingRowMaps
|
|
8698
|
+
} = internalData;
|
|
8278
8699
|
if (rows && !_xeUtils.default.isArray(rows)) {
|
|
8279
8700
|
rows = [rows];
|
|
8280
8701
|
}
|
|
8281
8702
|
rows.forEach(row => {
|
|
8282
|
-
const rowid = (
|
|
8703
|
+
const rowid = handleGetRowId(row);
|
|
8283
8704
|
if (rowid) {
|
|
8284
|
-
if (
|
|
8285
|
-
delete
|
|
8705
|
+
if (pendingRowMaps[rowid]) {
|
|
8706
|
+
delete pendingRowMaps[rowid];
|
|
8286
8707
|
} else {
|
|
8287
|
-
|
|
8708
|
+
pendingRowMaps[rowid] = row;
|
|
8288
8709
|
}
|
|
8289
8710
|
}
|
|
8290
8711
|
});
|
|
8291
|
-
reactData.
|
|
8712
|
+
reactData.pendingRowFlag++;
|
|
8292
8713
|
return $xeTable.$nextTick();
|
|
8293
8714
|
},
|
|
8294
8715
|
hasPendingByRow(row) {
|
|
@@ -8306,13 +8727,10 @@ const Methods = {
|
|
|
8306
8727
|
},
|
|
8307
8728
|
getPendingRecords() {
|
|
8308
8729
|
const $xeTable = this;
|
|
8309
|
-
const reactData = $xeTable;
|
|
8310
8730
|
const internalData = $xeTable;
|
|
8311
8731
|
const {
|
|
8732
|
+
fullAllDataRowIdData,
|
|
8312
8733
|
pendingRowMaps
|
|
8313
|
-
} = reactData;
|
|
8314
|
-
const {
|
|
8315
|
-
fullAllDataRowIdData
|
|
8316
8734
|
} = internalData;
|
|
8317
8735
|
const insertRecords = [];
|
|
8318
8736
|
_xeUtils.default.each(pendingRowMaps, (row, rowid) => {
|
|
@@ -8323,8 +8741,12 @@ const Methods = {
|
|
|
8323
8741
|
return insertRecords;
|
|
8324
8742
|
},
|
|
8325
8743
|
clearPendingRow() {
|
|
8326
|
-
|
|
8327
|
-
|
|
8744
|
+
const $xeTable = this;
|
|
8745
|
+
const reactData = $xeTable;
|
|
8746
|
+
const internalData = $xeTable;
|
|
8747
|
+
internalData.pendingRowMaps = {};
|
|
8748
|
+
reactData.pendingRowFlag++;
|
|
8749
|
+
return $xeTable.$nextTick();
|
|
8328
8750
|
},
|
|
8329
8751
|
sort(sortConfs, sortOrder) {
|
|
8330
8752
|
const $xeTable = this;
|
|
@@ -8505,9 +8927,11 @@ const Methods = {
|
|
|
8505
8927
|
* @param {Event} evnt 事件
|
|
8506
8928
|
*/
|
|
8507
8929
|
closeFilter() {
|
|
8930
|
+
const $xeTable = this;
|
|
8931
|
+
const reactData = $xeTable;
|
|
8508
8932
|
const {
|
|
8509
8933
|
filterStore
|
|
8510
|
-
} =
|
|
8934
|
+
} = reactData;
|
|
8511
8935
|
const {
|
|
8512
8936
|
column,
|
|
8513
8937
|
visible
|
|
@@ -8519,15 +8943,15 @@ const Methods = {
|
|
|
8519
8943
|
visible: false
|
|
8520
8944
|
});
|
|
8521
8945
|
if (visible) {
|
|
8522
|
-
|
|
8946
|
+
$xeTable.dispatchEvent('filter-visible', {
|
|
8523
8947
|
column,
|
|
8524
8948
|
field: column.field,
|
|
8525
8949
|
property: column.field,
|
|
8526
|
-
filterList:
|
|
8950
|
+
filterList: () => $xeTable.getCheckedFilters(),
|
|
8527
8951
|
visible: false
|
|
8528
8952
|
}, null);
|
|
8529
8953
|
}
|
|
8530
|
-
return
|
|
8954
|
+
return $xeTable.$nextTick();
|
|
8531
8955
|
},
|
|
8532
8956
|
/**
|
|
8533
8957
|
* 判断指定列是否为筛选状态,如果为空则判断所有列
|
|
@@ -8560,9 +8984,9 @@ const Methods = {
|
|
|
8560
8984
|
const $xeTable = this;
|
|
8561
8985
|
const reactData = $xeTable;
|
|
8562
8986
|
const internalData = $xeTable;
|
|
8563
|
-
const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
|
|
8564
8987
|
const {
|
|
8565
|
-
fullAllDataRowIdData
|
|
8988
|
+
fullAllDataRowIdData,
|
|
8989
|
+
rowExpandLazyLoadedMaps
|
|
8566
8990
|
} = internalData;
|
|
8567
8991
|
const expandOpts = $xeTable.computeExpandOpts;
|
|
8568
8992
|
const {
|
|
@@ -8572,9 +8996,9 @@ const Methods = {
|
|
|
8572
8996
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
8573
8997
|
if (lazy && rowRest) {
|
|
8574
8998
|
rowRest.expandLoaded = false;
|
|
8575
|
-
delete
|
|
8999
|
+
delete rowExpandLazyLoadedMaps[rowid];
|
|
8576
9000
|
}
|
|
8577
|
-
reactData.
|
|
9001
|
+
reactData.rowExpandedFlag++;
|
|
8578
9002
|
return $xeTable.$nextTick();
|
|
8579
9003
|
},
|
|
8580
9004
|
/**
|
|
@@ -8582,18 +9006,20 @@ const Methods = {
|
|
|
8582
9006
|
* @param {Row} row 行对象
|
|
8583
9007
|
*/
|
|
8584
9008
|
reloadRowExpand(row) {
|
|
9009
|
+
const $xeTable = this;
|
|
9010
|
+
const internalData = $xeTable;
|
|
8585
9011
|
const {
|
|
8586
|
-
expandOpts,
|
|
8587
9012
|
rowExpandLazyLoadedMaps
|
|
8588
|
-
} =
|
|
9013
|
+
} = internalData;
|
|
9014
|
+
const expandOpts = $xeTable.computeExpandOpts;
|
|
8589
9015
|
const {
|
|
8590
9016
|
lazy
|
|
8591
9017
|
} = expandOpts;
|
|
8592
9018
|
const rowid = (0, _util.getRowid)(this, row);
|
|
8593
9019
|
if (lazy && !rowExpandLazyLoadedMaps[rowid]) {
|
|
8594
|
-
|
|
9020
|
+
$xeTable.clearRowExpandLoaded(row).then(() => handleAsyncRowExpand($xeTable, row));
|
|
8595
9021
|
}
|
|
8596
|
-
return
|
|
9022
|
+
return $xeTable.$nextTick();
|
|
8597
9023
|
},
|
|
8598
9024
|
reloadExpandContent(row) {
|
|
8599
9025
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -8606,11 +9032,16 @@ const Methods = {
|
|
|
8606
9032
|
* 展开行事件
|
|
8607
9033
|
*/
|
|
8608
9034
|
triggerRowExpandEvent(evnt, params) {
|
|
9035
|
+
const $xeTable = this;
|
|
9036
|
+
const reactData = $xeTable;
|
|
9037
|
+
const internalData = $xeTable;
|
|
8609
9038
|
const {
|
|
8610
|
-
expandOpts,
|
|
8611
|
-
rowExpandLazyLoadedMaps,
|
|
8612
9039
|
expandColumn: column
|
|
8613
|
-
} =
|
|
9040
|
+
} = reactData;
|
|
9041
|
+
const {
|
|
9042
|
+
rowExpandLazyLoadedMaps
|
|
9043
|
+
} = internalData;
|
|
9044
|
+
const expandOpts = $xeTable.computeExpandOpts;
|
|
8614
9045
|
const {
|
|
8615
9046
|
row
|
|
8616
9047
|
} = params;
|
|
@@ -8622,20 +9053,20 @@ const Methods = {
|
|
|
8622
9053
|
return;
|
|
8623
9054
|
}
|
|
8624
9055
|
evnt.stopPropagation();
|
|
8625
|
-
const rowid = (0, _util.getRowid)(
|
|
9056
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
8626
9057
|
if (!lazy || !rowExpandLazyLoadedMaps[rowid]) {
|
|
8627
|
-
const expanded =
|
|
8628
|
-
const columnIndex =
|
|
8629
|
-
const $columnIndex =
|
|
8630
|
-
|
|
8631
|
-
|
|
9058
|
+
const expanded = !$xeTable.isRowExpandByRow(row);
|
|
9059
|
+
const columnIndex = $xeTable.getColumnIndex(column);
|
|
9060
|
+
const $columnIndex = $xeTable.getVMColumnIndex(column);
|
|
9061
|
+
$xeTable.setRowExpand(row, expanded);
|
|
9062
|
+
$xeTable.dispatchEvent('toggle-row-expand', {
|
|
8632
9063
|
expanded,
|
|
8633
9064
|
column,
|
|
8634
9065
|
columnIndex,
|
|
8635
9066
|
$columnIndex,
|
|
8636
9067
|
row,
|
|
8637
|
-
rowIndex:
|
|
8638
|
-
$rowIndex:
|
|
9068
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
9069
|
+
$rowIndex: $xeTable.getVMRowIndex(row)
|
|
8639
9070
|
}, evnt);
|
|
8640
9071
|
}
|
|
8641
9072
|
},
|
|
@@ -8693,55 +9124,6 @@ const Methods = {
|
|
|
8693
9124
|
}
|
|
8694
9125
|
return this.setRowExpand(expandedRows, expanded);
|
|
8695
9126
|
},
|
|
8696
|
-
handleAsyncRowExpand(row) {
|
|
8697
|
-
const $xeTable = this;
|
|
8698
|
-
const reactData = $xeTable;
|
|
8699
|
-
const internalData = $xeTable;
|
|
8700
|
-
return new Promise(resolve => {
|
|
8701
|
-
const {
|
|
8702
|
-
expandOpts
|
|
8703
|
-
} = this;
|
|
8704
|
-
const {
|
|
8705
|
-
loadMethod
|
|
8706
|
-
} = expandOpts;
|
|
8707
|
-
if (loadMethod) {
|
|
8708
|
-
const {
|
|
8709
|
-
fullAllDataRowIdData
|
|
8710
|
-
} = internalData;
|
|
8711
|
-
const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
|
|
8712
|
-
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
8713
|
-
const rowRest = fullAllDataRowIdData[rowid];
|
|
8714
|
-
rExpandLazyLoadedMaps[rowid] = row;
|
|
8715
|
-
reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
|
|
8716
|
-
loadMethod({
|
|
8717
|
-
$table: $xeTable,
|
|
8718
|
-
row,
|
|
8719
|
-
rowIndex: $xeTable.getRowIndex(row),
|
|
8720
|
-
$rowIndex: $xeTable.getVMRowIndex(row)
|
|
8721
|
-
}).then(() => {
|
|
8722
|
-
const rExpandedMaps = Object.assign({}, reactData.rowExpandedMaps);
|
|
8723
|
-
if (rowRest) {
|
|
8724
|
-
rowRest.expandLoaded = true;
|
|
8725
|
-
}
|
|
8726
|
-
rExpandedMaps[rowid] = row;
|
|
8727
|
-
reactData.rowExpandedMaps = rExpandedMaps;
|
|
8728
|
-
}).catch(() => {
|
|
8729
|
-
if (rowRest) {
|
|
8730
|
-
rowRest.expandLoaded = false;
|
|
8731
|
-
}
|
|
8732
|
-
}).finally(() => {
|
|
8733
|
-
const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
|
|
8734
|
-
if (rExpandLazyLoadedMaps[rowid]) {
|
|
8735
|
-
delete rExpandLazyLoadedMaps[rowid];
|
|
8736
|
-
}
|
|
8737
|
-
reactData.rowExpandLazyLoadedMaps = rExpandLazyLoadedMaps;
|
|
8738
|
-
$xeTable.$nextTick().then(() => $xeTable.recalculate()).then(() => $xeTable.updateCellAreas()).then(() => resolve());
|
|
8739
|
-
});
|
|
8740
|
-
} else {
|
|
8741
|
-
resolve();
|
|
8742
|
-
}
|
|
8743
|
-
});
|
|
8744
|
-
},
|
|
8745
9127
|
/**
|
|
8746
9128
|
* 设置展开行,二个参数设置这一行展开与否
|
|
8747
9129
|
* 支持单行
|
|
@@ -8751,14 +9133,20 @@ const Methods = {
|
|
|
8751
9133
|
*/
|
|
8752
9134
|
setRowExpand(rows, expanded) {
|
|
8753
9135
|
const $xeTable = this;
|
|
9136
|
+
const reactData = $xeTable;
|
|
9137
|
+
const internalData = $xeTable;
|
|
8754
9138
|
const {
|
|
8755
|
-
rowExpandedMaps,
|
|
8756
|
-
fullAllDataRowIdData,
|
|
8757
|
-
rowExpandLazyLoadedMaps,
|
|
8758
|
-
expandOpts,
|
|
8759
9139
|
expandColumn
|
|
8760
|
-
} =
|
|
8761
|
-
let
|
|
9140
|
+
} = reactData;
|
|
9141
|
+
let {
|
|
9142
|
+
fullAllDataRowIdData,
|
|
9143
|
+
rowExpandedMaps,
|
|
9144
|
+
rowExpandLazyLoadedMaps
|
|
9145
|
+
} = internalData;
|
|
9146
|
+
const {
|
|
9147
|
+
handleGetRowId
|
|
9148
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
9149
|
+
const expandOpts = $xeTable.computeExpandOpts;
|
|
8762
9150
|
const {
|
|
8763
9151
|
reserve,
|
|
8764
9152
|
lazy,
|
|
@@ -8774,10 +9162,12 @@ const Methods = {
|
|
|
8774
9162
|
}
|
|
8775
9163
|
if (accordion) {
|
|
8776
9164
|
// 只能同时展开一个
|
|
8777
|
-
|
|
9165
|
+
rowExpandedMaps = {};
|
|
9166
|
+
internalData.rowExpandedMaps = rowExpandedMaps;
|
|
8778
9167
|
rows = rows.slice(rows.length - 1, rows.length);
|
|
8779
9168
|
}
|
|
8780
9169
|
const validRows = toggleMethod ? rows.filter(row => toggleMethod({
|
|
9170
|
+
$table: $xeTable,
|
|
8781
9171
|
expanded,
|
|
8782
9172
|
column: expandColumn,
|
|
8783
9173
|
columnIndex,
|
|
@@ -8788,22 +9178,22 @@ const Methods = {
|
|
|
8788
9178
|
})) : rows;
|
|
8789
9179
|
if (expanded) {
|
|
8790
9180
|
validRows.forEach(row => {
|
|
8791
|
-
const rowid = (
|
|
8792
|
-
if (!
|
|
9181
|
+
const rowid = handleGetRowId(row);
|
|
9182
|
+
if (!rowExpandedMaps[rowid]) {
|
|
8793
9183
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
8794
9184
|
const isLoad = lazy && !rowRest.expandLoaded && !rowExpandLazyLoadedMaps[rowid];
|
|
8795
9185
|
if (isLoad) {
|
|
8796
|
-
lazyRests.push(
|
|
9186
|
+
lazyRests.push(handleAsyncRowExpand($xeTable, row));
|
|
8797
9187
|
} else {
|
|
8798
|
-
|
|
9188
|
+
rowExpandedMaps[rowid] = row;
|
|
8799
9189
|
}
|
|
8800
9190
|
}
|
|
8801
9191
|
});
|
|
8802
9192
|
} else {
|
|
8803
9193
|
validRows.forEach(item => {
|
|
8804
|
-
const rowid = (
|
|
8805
|
-
if (
|
|
8806
|
-
delete
|
|
9194
|
+
const rowid = handleGetRowId(item);
|
|
9195
|
+
if (rowExpandedMaps[rowid]) {
|
|
9196
|
+
delete rowExpandedMaps[rowid];
|
|
8807
9197
|
}
|
|
8808
9198
|
});
|
|
8809
9199
|
}
|
|
@@ -8811,7 +9201,7 @@ const Methods = {
|
|
|
8811
9201
|
validRows.forEach(row => handleRowExpandReserve($xeTable, row, expanded));
|
|
8812
9202
|
}
|
|
8813
9203
|
}
|
|
8814
|
-
|
|
9204
|
+
reactData.rowExpandedFlag++;
|
|
8815
9205
|
return Promise.all(lazyRests).then(() => $xeTable.$nextTick()).then(() => $xeTable.recalculate(true)).then(() => {
|
|
8816
9206
|
updateRowOffsetTop($xeTable);
|
|
8817
9207
|
updateRowExpandStyle($xeTable);
|
|
@@ -8824,11 +9214,17 @@ const Methods = {
|
|
|
8824
9214
|
* @param {Row} row 行对象
|
|
8825
9215
|
*/
|
|
8826
9216
|
isRowExpandByRow(row) {
|
|
9217
|
+
const $xeTable = this;
|
|
9218
|
+
const reactData = $xeTable;
|
|
9219
|
+
const internalData = $xeTable;
|
|
9220
|
+
const {
|
|
9221
|
+
rowExpandedFlag
|
|
9222
|
+
} = reactData;
|
|
8827
9223
|
const {
|
|
8828
9224
|
rowExpandedMaps
|
|
8829
|
-
} =
|
|
9225
|
+
} = internalData;
|
|
8830
9226
|
const rowid = (0, _util.getRowid)(this, row);
|
|
8831
|
-
return !!rowExpandedMaps[rowid];
|
|
9227
|
+
return !!rowExpandedFlag && !!rowExpandedMaps[rowid];
|
|
8832
9228
|
},
|
|
8833
9229
|
isExpandByRow(row) {
|
|
8834
9230
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -8852,7 +9248,8 @@ const Methods = {
|
|
|
8852
9248
|
reserve
|
|
8853
9249
|
} = expandOpts;
|
|
8854
9250
|
const expList = $xeTable.getRowExpandRecords();
|
|
8855
|
-
|
|
9251
|
+
internalData.rowExpandedMaps = {};
|
|
9252
|
+
reactData.rowExpandedFlag++;
|
|
8856
9253
|
if (reserve) {
|
|
8857
9254
|
tableFullData.forEach(row => handleRowExpandReserve($xeTable, row, false));
|
|
8858
9255
|
}
|
|
@@ -8872,8 +9269,10 @@ const Methods = {
|
|
|
8872
9269
|
return this.$nextTick();
|
|
8873
9270
|
},
|
|
8874
9271
|
getRowExpandRecords() {
|
|
9272
|
+
const $xeTable = this;
|
|
9273
|
+
const internalData = $xeTable;
|
|
8875
9274
|
const rest = [];
|
|
8876
|
-
_xeUtils.default.each(
|
|
9275
|
+
_xeUtils.default.each(internalData.rowExpandedMaps, item => {
|
|
8877
9276
|
if (item) {
|
|
8878
9277
|
rest.push(item);
|
|
8879
9278
|
}
|
|
@@ -8881,8 +9280,10 @@ const Methods = {
|
|
|
8881
9280
|
return rest;
|
|
8882
9281
|
},
|
|
8883
9282
|
getTreeExpandRecords() {
|
|
9283
|
+
const $xeTable = this;
|
|
9284
|
+
const internalData = $xeTable;
|
|
8884
9285
|
const rest = [];
|
|
8885
|
-
_xeUtils.default.each(
|
|
9286
|
+
_xeUtils.default.each(internalData.treeExpandedMaps, item => {
|
|
8886
9287
|
if (item) {
|
|
8887
9288
|
rest.push(item);
|
|
8888
9289
|
}
|
|
@@ -8918,15 +9319,14 @@ const Methods = {
|
|
|
8918
9319
|
const reactData = $xeTable;
|
|
8919
9320
|
const internalData = $xeTable;
|
|
8920
9321
|
const {
|
|
8921
|
-
fullAllDataRowIdData
|
|
9322
|
+
fullAllDataRowIdData,
|
|
9323
|
+
treeExpandedMaps
|
|
8922
9324
|
} = internalData;
|
|
8923
9325
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
8924
9326
|
const {
|
|
8925
9327
|
transform
|
|
8926
9328
|
} = treeOpts;
|
|
8927
|
-
let tExpandedMaps = {};
|
|
8928
9329
|
if (rows) {
|
|
8929
|
-
tExpandedMaps = Object.assign({}, reactData.treeExpandedMaps);
|
|
8930
9330
|
if (!_xeUtils.default.isArray(rows)) {
|
|
8931
9331
|
rows = [rows];
|
|
8932
9332
|
}
|
|
@@ -8935,8 +9335,8 @@ const Methods = {
|
|
|
8935
9335
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
8936
9336
|
if (rowRest) {
|
|
8937
9337
|
rowRest.treeLoaded = false;
|
|
8938
|
-
if (
|
|
8939
|
-
delete
|
|
9338
|
+
if (treeExpandedMaps[rowid]) {
|
|
9339
|
+
delete treeExpandedMaps[rowid];
|
|
8940
9340
|
}
|
|
8941
9341
|
}
|
|
8942
9342
|
});
|
|
@@ -8945,7 +9345,8 @@ const Methods = {
|
|
|
8945
9345
|
rowRest.treeLoaded = false;
|
|
8946
9346
|
});
|
|
8947
9347
|
}
|
|
8948
|
-
|
|
9348
|
+
internalData.treeExpandedMaps = {};
|
|
9349
|
+
reactData.treeExpandedFlag++;
|
|
8949
9350
|
if (transform) {
|
|
8950
9351
|
handleVirtualTreeToList($xeTable);
|
|
8951
9352
|
return $xeTable.handleTableData();
|
|
@@ -8958,45 +9359,49 @@ const Methods = {
|
|
|
8958
9359
|
*/
|
|
8959
9360
|
reloadTreeExpand(row) {
|
|
8960
9361
|
const $xeTable = this;
|
|
9362
|
+
const internalData = $xeTable;
|
|
8961
9363
|
const {
|
|
8962
|
-
treeOpts,
|
|
8963
9364
|
treeExpandLazyLoadedMaps
|
|
8964
|
-
} =
|
|
9365
|
+
} = internalData;
|
|
9366
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
8965
9367
|
const {
|
|
8966
9368
|
transform,
|
|
8967
9369
|
lazy
|
|
8968
9370
|
} = treeOpts;
|
|
8969
9371
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
8970
|
-
const rowid = (0, _util.getRowid)(
|
|
9372
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
8971
9373
|
if (lazy && row[hasChildField] && !treeExpandLazyLoadedMaps[rowid]) {
|
|
8972
|
-
return
|
|
8973
|
-
return
|
|
9374
|
+
return $xeTable.clearTreeExpandLoaded(row).then(() => {
|
|
9375
|
+
return handleAsyncTreeExpandChilds($xeTable, row);
|
|
8974
9376
|
}).then(() => {
|
|
8975
9377
|
if (transform) {
|
|
8976
9378
|
handleVirtualTreeToList($xeTable);
|
|
8977
|
-
return
|
|
9379
|
+
return $xeTable.handleTableData();
|
|
8978
9380
|
}
|
|
8979
9381
|
}).then(() => {
|
|
8980
|
-
return
|
|
9382
|
+
return $xeTable.recalculate();
|
|
8981
9383
|
});
|
|
8982
9384
|
}
|
|
8983
|
-
return
|
|
9385
|
+
return $xeTable.$nextTick();
|
|
8984
9386
|
},
|
|
8985
9387
|
reloadTreeChilds(row) {
|
|
9388
|
+
const $xeTable = this;
|
|
8986
9389
|
if (process.env.NODE_ENV === 'development') {
|
|
8987
9390
|
(0, _log.warnLog)('vxe.error.delFunc', ['reloadTreeChilds', 'reloadTreeExpand']);
|
|
8988
9391
|
}
|
|
8989
9392
|
// 即将废弃
|
|
8990
|
-
return
|
|
9393
|
+
return $xeTable.reloadTreeExpand(row);
|
|
8991
9394
|
},
|
|
8992
9395
|
/**
|
|
8993
9396
|
* 展开树节点事件
|
|
8994
9397
|
*/
|
|
8995
9398
|
triggerTreeExpandEvent(evnt, params) {
|
|
9399
|
+
const $xeTable = this;
|
|
9400
|
+
const internalData = $xeTable;
|
|
8996
9401
|
const {
|
|
8997
|
-
treeOpts,
|
|
8998
9402
|
treeExpandLazyLoadedMaps
|
|
8999
|
-
} =
|
|
9403
|
+
} = internalData;
|
|
9404
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
9000
9405
|
const {
|
|
9001
9406
|
row,
|
|
9002
9407
|
column
|
|
@@ -9011,11 +9416,11 @@ const Methods = {
|
|
|
9011
9416
|
evnt.stopPropagation();
|
|
9012
9417
|
const rowid = (0, _util.getRowid)(this, row);
|
|
9013
9418
|
if (!lazy || !treeExpandLazyLoadedMaps[rowid]) {
|
|
9014
|
-
const expanded =
|
|
9015
|
-
const columnIndex =
|
|
9016
|
-
const $columnIndex =
|
|
9017
|
-
|
|
9018
|
-
|
|
9419
|
+
const expanded = !$xeTable.isTreeExpandByRow(row);
|
|
9420
|
+
const columnIndex = $xeTable.getColumnIndex(column);
|
|
9421
|
+
const $columnIndex = $xeTable.getVMColumnIndex(column);
|
|
9422
|
+
$xeTable.setTreeExpand(row, expanded);
|
|
9423
|
+
$xeTable.dispatchEvent('toggle-tree-expand', {
|
|
9019
9424
|
expanded,
|
|
9020
9425
|
column,
|
|
9021
9426
|
columnIndex,
|
|
@@ -9030,112 +9435,6 @@ const Methods = {
|
|
|
9030
9435
|
toggleTreeExpand(row) {
|
|
9031
9436
|
return this.setTreeExpand(row, !this.isTreeExpandByRow(row));
|
|
9032
9437
|
},
|
|
9033
|
-
/**
|
|
9034
|
-
* 处理默认展开树节点
|
|
9035
|
-
*/
|
|
9036
|
-
handleDefaultTreeExpand() {
|
|
9037
|
-
const {
|
|
9038
|
-
treeConfig,
|
|
9039
|
-
treeOpts,
|
|
9040
|
-
tableFullData
|
|
9041
|
-
} = this;
|
|
9042
|
-
if (treeConfig) {
|
|
9043
|
-
const {
|
|
9044
|
-
expandAll,
|
|
9045
|
-
expandRowKeys
|
|
9046
|
-
} = treeOpts;
|
|
9047
|
-
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
9048
|
-
if (expandAll) {
|
|
9049
|
-
this.setAllTreeExpand(true);
|
|
9050
|
-
} else if (expandRowKeys) {
|
|
9051
|
-
const defExpandeds = [];
|
|
9052
|
-
const rowkey = (0, _util.getRowkey)(this);
|
|
9053
|
-
expandRowKeys.forEach(rowid => {
|
|
9054
|
-
const matchObj = _xeUtils.default.findTree(tableFullData, item => rowid === _xeUtils.default.get(item, rowkey), {
|
|
9055
|
-
children: childrenField
|
|
9056
|
-
});
|
|
9057
|
-
if (matchObj) {
|
|
9058
|
-
defExpandeds.push(matchObj.item);
|
|
9059
|
-
}
|
|
9060
|
-
});
|
|
9061
|
-
this.setTreeExpand(defExpandeds, true);
|
|
9062
|
-
}
|
|
9063
|
-
}
|
|
9064
|
-
},
|
|
9065
|
-
handleAsyncTreeExpandChilds(row) {
|
|
9066
|
-
const $xeTable = this;
|
|
9067
|
-
const {
|
|
9068
|
-
treeOpts,
|
|
9069
|
-
checkboxOpts
|
|
9070
|
-
} = this;
|
|
9071
|
-
const {
|
|
9072
|
-
transform,
|
|
9073
|
-
loadMethod
|
|
9074
|
-
} = treeOpts;
|
|
9075
|
-
const {
|
|
9076
|
-
checkStrictly
|
|
9077
|
-
} = checkboxOpts;
|
|
9078
|
-
return new Promise(resolve => {
|
|
9079
|
-
if (loadMethod) {
|
|
9080
|
-
const {
|
|
9081
|
-
treeExpandLazyLoadedMaps,
|
|
9082
|
-
fullAllDataRowIdData
|
|
9083
|
-
} = this;
|
|
9084
|
-
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
9085
|
-
const rowRest = fullAllDataRowIdData[rowid];
|
|
9086
|
-
treeExpandLazyLoadedMaps[rowid] = row;
|
|
9087
|
-
Promise.resolve(loadMethod({
|
|
9088
|
-
$table: $xeTable,
|
|
9089
|
-
row
|
|
9090
|
-
})).then(childRecords => {
|
|
9091
|
-
if (rowRest) {
|
|
9092
|
-
rowRest.treeLoaded = true;
|
|
9093
|
-
}
|
|
9094
|
-
if (treeExpandLazyLoadedMaps[rowid]) {
|
|
9095
|
-
delete treeExpandLazyLoadedMaps[rowid];
|
|
9096
|
-
}
|
|
9097
|
-
if (!_xeUtils.default.isArray(childRecords)) {
|
|
9098
|
-
childRecords = [];
|
|
9099
|
-
}
|
|
9100
|
-
if (childRecords) {
|
|
9101
|
-
return this.loadTreeChildren(row, childRecords).then(childRows => {
|
|
9102
|
-
const {
|
|
9103
|
-
treeExpandedMaps
|
|
9104
|
-
} = this;
|
|
9105
|
-
if (childRows.length && !treeExpandedMaps[rowid]) {
|
|
9106
|
-
treeExpandedMaps[rowid] = row;
|
|
9107
|
-
}
|
|
9108
|
-
// 如果当前节点已选中,则展开后子节点也被选中
|
|
9109
|
-
if (!checkStrictly && this.isCheckedByCheckboxRow(row)) {
|
|
9110
|
-
handleCheckedCheckboxRow($xeTable, childRows, true);
|
|
9111
|
-
}
|
|
9112
|
-
return this.$nextTick().then(() => {
|
|
9113
|
-
if (transform) {
|
|
9114
|
-
this.handleTableData();
|
|
9115
|
-
updateAfterDataIndex($xeTable);
|
|
9116
|
-
return this.$nextTick();
|
|
9117
|
-
}
|
|
9118
|
-
});
|
|
9119
|
-
});
|
|
9120
|
-
}
|
|
9121
|
-
}).catch(() => {
|
|
9122
|
-
const {
|
|
9123
|
-
treeExpandLazyLoadedMaps
|
|
9124
|
-
} = this;
|
|
9125
|
-
if (rowRest) {
|
|
9126
|
-
rowRest.treeLoaded = false;
|
|
9127
|
-
}
|
|
9128
|
-
if (treeExpandLazyLoadedMaps[rowid]) {
|
|
9129
|
-
delete treeExpandLazyLoadedMaps[rowid];
|
|
9130
|
-
}
|
|
9131
|
-
}).finally(() => {
|
|
9132
|
-
this.$nextTick().then(() => this.recalculate()).then(() => resolve());
|
|
9133
|
-
});
|
|
9134
|
-
} else {
|
|
9135
|
-
resolve();
|
|
9136
|
-
}
|
|
9137
|
-
});
|
|
9138
|
-
},
|
|
9139
9438
|
/**
|
|
9140
9439
|
* 设置所有树节点的展开与否
|
|
9141
9440
|
* @param {Boolean} expanded 是否展开
|
|
@@ -9167,27 +9466,35 @@ const Methods = {
|
|
|
9167
9466
|
* @returns
|
|
9168
9467
|
*/
|
|
9169
9468
|
handleBaseTreeExpand(rows, expanded) {
|
|
9469
|
+
const $xeTable = this;
|
|
9470
|
+
const reactData = $xeTable;
|
|
9471
|
+
const internalData = $xeTable;
|
|
9472
|
+
const {
|
|
9473
|
+
treeNodeColumn
|
|
9474
|
+
} = reactData;
|
|
9170
9475
|
const {
|
|
9171
9476
|
fullAllDataRowIdData,
|
|
9172
9477
|
tableFullData,
|
|
9173
9478
|
treeExpandedMaps,
|
|
9174
|
-
|
|
9175
|
-
|
|
9176
|
-
|
|
9177
|
-
} = this;
|
|
9479
|
+
treeExpandLazyLoadedMaps
|
|
9480
|
+
} = internalData;
|
|
9481
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
9178
9482
|
const {
|
|
9179
9483
|
reserve,
|
|
9180
9484
|
lazy,
|
|
9181
9485
|
accordion,
|
|
9182
9486
|
toggleMethod
|
|
9183
9487
|
} = treeOpts;
|
|
9184
|
-
const treeTempExpandedMaps = Object.assign({}, treeExpandedMaps);
|
|
9185
9488
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
9186
9489
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
9187
9490
|
const result = [];
|
|
9188
|
-
const columnIndex =
|
|
9189
|
-
const $columnIndex =
|
|
9491
|
+
const columnIndex = $xeTable.getColumnIndex(treeNodeColumn);
|
|
9492
|
+
const $columnIndex = $xeTable.getVMColumnIndex(treeNodeColumn);
|
|
9493
|
+
const {
|
|
9494
|
+
handleGetRowId
|
|
9495
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
9190
9496
|
let validRows = toggleMethod ? rows.filter(row => toggleMethod({
|
|
9497
|
+
$table: $xeTable,
|
|
9191
9498
|
expanded,
|
|
9192
9499
|
column: treeNodeColumn,
|
|
9193
9500
|
columnIndex,
|
|
@@ -9202,26 +9509,26 @@ const Methods = {
|
|
|
9202
9509
|
});
|
|
9203
9510
|
if (matchObj) {
|
|
9204
9511
|
matchObj.items.forEach(item => {
|
|
9205
|
-
const rowid = (
|
|
9206
|
-
if (
|
|
9207
|
-
delete
|
|
9512
|
+
const rowid = handleGetRowId(item);
|
|
9513
|
+
if (treeExpandedMaps[rowid]) {
|
|
9514
|
+
delete treeExpandedMaps[rowid];
|
|
9208
9515
|
}
|
|
9209
9516
|
});
|
|
9210
9517
|
}
|
|
9211
9518
|
}
|
|
9212
9519
|
if (expanded) {
|
|
9213
9520
|
validRows.forEach(row => {
|
|
9214
|
-
const rowid = (
|
|
9215
|
-
if (!
|
|
9521
|
+
const rowid = handleGetRowId(row);
|
|
9522
|
+
if (!treeExpandedMaps[rowid]) {
|
|
9216
9523
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
9217
9524
|
if (rowRest) {
|
|
9218
9525
|
const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
|
|
9219
9526
|
// 是否使用懒加载
|
|
9220
9527
|
if (isLoad) {
|
|
9221
|
-
result.push(
|
|
9528
|
+
result.push(handleAsyncTreeExpandChilds($xeTable, row));
|
|
9222
9529
|
} else {
|
|
9223
9530
|
if (row[childrenField] && row[childrenField].length) {
|
|
9224
|
-
|
|
9531
|
+
treeExpandedMaps[rowid] = row;
|
|
9225
9532
|
}
|
|
9226
9533
|
}
|
|
9227
9534
|
}
|
|
@@ -9229,18 +9536,18 @@ const Methods = {
|
|
|
9229
9536
|
});
|
|
9230
9537
|
} else {
|
|
9231
9538
|
validRows.forEach(item => {
|
|
9232
|
-
const rowid = (
|
|
9233
|
-
if (
|
|
9234
|
-
delete
|
|
9539
|
+
const rowid = handleGetRowId(item);
|
|
9540
|
+
if (treeExpandedMaps[rowid]) {
|
|
9541
|
+
delete treeExpandedMaps[rowid];
|
|
9235
9542
|
}
|
|
9236
9543
|
});
|
|
9237
9544
|
}
|
|
9238
9545
|
if (reserve) {
|
|
9239
|
-
validRows.forEach(row =>
|
|
9546
|
+
validRows.forEach(row => handleTreeExpandReserve($xeTable, row, expanded));
|
|
9240
9547
|
}
|
|
9241
|
-
|
|
9548
|
+
reactData.treeExpandedFlag++;
|
|
9242
9549
|
return Promise.all(result).then(() => {
|
|
9243
|
-
return
|
|
9550
|
+
return $xeTable.recalculate();
|
|
9244
9551
|
});
|
|
9245
9552
|
},
|
|
9246
9553
|
/**
|
|
@@ -9297,40 +9604,49 @@ const Methods = {
|
|
|
9297
9604
|
* @param {Row} row 行对象
|
|
9298
9605
|
*/
|
|
9299
9606
|
isTreeExpandByRow(row) {
|
|
9607
|
+
const $xeTable = this;
|
|
9608
|
+
const reactData = $xeTable;
|
|
9609
|
+
const internalData = $xeTable;
|
|
9610
|
+
const {
|
|
9611
|
+
treeExpandedFlag
|
|
9612
|
+
} = reactData;
|
|
9300
9613
|
const {
|
|
9301
9614
|
treeExpandedMaps
|
|
9302
|
-
} =
|
|
9303
|
-
return !!treeExpandedMaps[(0, _util.getRowid)(
|
|
9615
|
+
} = internalData;
|
|
9616
|
+
return !!treeExpandedFlag && !!treeExpandedMaps[(0, _util.getRowid)($xeTable, row)];
|
|
9304
9617
|
},
|
|
9305
9618
|
/**
|
|
9306
9619
|
* 手动清空树形节点的展开状态,数据会恢复成未展开的状态
|
|
9307
9620
|
*/
|
|
9308
9621
|
clearTreeExpand() {
|
|
9309
9622
|
const $xeTable = this;
|
|
9623
|
+
const reactData = $xeTable;
|
|
9624
|
+
const internalData = $xeTable;
|
|
9310
9625
|
const {
|
|
9311
|
-
|
|
9312
|
-
|
|
9313
|
-
|
|
9626
|
+
tableFullTreeData
|
|
9627
|
+
} = internalData;
|
|
9628
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
9629
|
+
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
9314
9630
|
const {
|
|
9315
9631
|
transform,
|
|
9316
9632
|
reserve
|
|
9317
9633
|
} = treeOpts;
|
|
9318
|
-
const
|
|
9319
|
-
|
|
9320
|
-
|
|
9634
|
+
const expList = $xeTable.getTreeExpandRecords();
|
|
9635
|
+
internalData.treeExpandedMaps = {};
|
|
9636
|
+
reactData.treeExpandedFlag++;
|
|
9321
9637
|
if (reserve) {
|
|
9322
|
-
_xeUtils.default.eachTree(
|
|
9638
|
+
_xeUtils.default.eachTree(tableFullTreeData, row => handleTreeExpandReserve($xeTable, row, false), {
|
|
9323
9639
|
children: childrenField
|
|
9324
9640
|
});
|
|
9325
9641
|
}
|
|
9326
|
-
return
|
|
9642
|
+
return $xeTable.handleTableData().then(() => {
|
|
9327
9643
|
if (transform) {
|
|
9328
9644
|
handleVirtualTreeToList($xeTable);
|
|
9329
|
-
return
|
|
9645
|
+
return $xeTable.handleTableData();
|
|
9330
9646
|
}
|
|
9331
9647
|
}).then(() => {
|
|
9332
9648
|
if (expList.length) {
|
|
9333
|
-
|
|
9649
|
+
$xeTable.recalculate();
|
|
9334
9650
|
}
|
|
9335
9651
|
});
|
|
9336
9652
|
},
|
|
@@ -9338,20 +9654,6 @@ const Methods = {
|
|
|
9338
9654
|
this.treeExpandedReserveRowMap = {};
|
|
9339
9655
|
return this.$nextTick();
|
|
9340
9656
|
},
|
|
9341
|
-
handleTreeExpandReserve(row, expanded) {
|
|
9342
|
-
const {
|
|
9343
|
-
treeExpandedReserveRowMap,
|
|
9344
|
-
treeOpts
|
|
9345
|
-
} = this;
|
|
9346
|
-
if (treeOpts.reserve) {
|
|
9347
|
-
const rowid = (0, _util.getRowid)(this, row);
|
|
9348
|
-
if (expanded) {
|
|
9349
|
-
treeExpandedReserveRowMap[rowid] = row;
|
|
9350
|
-
} else if (treeExpandedReserveRowMap[rowid]) {
|
|
9351
|
-
delete treeExpandedReserveRowMap[rowid];
|
|
9352
|
-
}
|
|
9353
|
-
}
|
|
9354
|
-
},
|
|
9355
9657
|
/**
|
|
9356
9658
|
* 获取表格的滚动状态
|
|
9357
9659
|
*/
|
|
@@ -9717,11 +10019,12 @@ const Methods = {
|
|
|
9717
10019
|
} = tableProps;
|
|
9718
10020
|
const {
|
|
9719
10021
|
scrollXLoad,
|
|
9720
|
-
scrollYLoad
|
|
10022
|
+
scrollYLoad,
|
|
10023
|
+
expandColumn
|
|
9721
10024
|
} = reactData;
|
|
9722
10025
|
const leftFixedWidth = $xeTable.computeLeftFixedWidth;
|
|
9723
10026
|
const rightFixedWidth = $xeTable.computeRightFixedWidth;
|
|
9724
|
-
if (!(scrollYLoad || leftFixedWidth || rightFixedWidth)) {
|
|
10027
|
+
if (!(scrollYLoad || leftFixedWidth || rightFixedWidth || expandColumn)) {
|
|
9725
10028
|
return;
|
|
9726
10029
|
}
|
|
9727
10030
|
const {
|
|
@@ -10013,15 +10316,15 @@ const Methods = {
|
|
|
10013
10316
|
const {
|
|
10014
10317
|
isAllOverflow,
|
|
10015
10318
|
scrollYLoad,
|
|
10016
|
-
expandColumn
|
|
10017
|
-
rowExpandedMaps
|
|
10319
|
+
expandColumn
|
|
10018
10320
|
} = reactData;
|
|
10019
10321
|
const {
|
|
10020
10322
|
scrollYStore,
|
|
10021
10323
|
elemStore,
|
|
10022
10324
|
isResizeCellHeight,
|
|
10023
10325
|
afterFullData,
|
|
10024
|
-
fullAllDataRowIdData
|
|
10326
|
+
fullAllDataRowIdData,
|
|
10327
|
+
rowExpandedMaps
|
|
10025
10328
|
} = internalData;
|
|
10026
10329
|
const {
|
|
10027
10330
|
startIndex
|
|
@@ -10378,7 +10681,7 @@ const Methods = {
|
|
|
10378
10681
|
if (this.footerSpanMethod) {
|
|
10379
10682
|
(0, _log.errLog)('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
|
|
10380
10683
|
}
|
|
10381
|
-
setMerges(this, merges, this.mergeFooterList
|
|
10684
|
+
setMerges(this, merges, this.mergeFooterList);
|
|
10382
10685
|
return this.$nextTick().then(() => {
|
|
10383
10686
|
this.updateCellAreas();
|
|
10384
10687
|
return updateStyle($xeTable);
|