vxe-table 4.12.5 → 4.13.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/grid/src/grid.js +2 -2
- package/es/style.css +1 -1
- package/es/table/module/edit/hook.js +10 -9
- package/es/table/module/export/hook.js +13 -11
- package/es/table/src/body.js +11 -13
- package/es/table/src/footer.js +3 -16
- package/es/table/src/table.js +186 -63
- package/es/table/src/util.js +0 -13
- package/es/ui/index.js +2 -2
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +2 -2
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +8504 -8547
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/hook.js +9 -9
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/export/hook.js +16 -13
- package/lib/table/module/export/hook.min.js +1 -1
- package/lib/table/src/body.js +14 -15
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +4 -27
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/table.js +211 -63
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +0 -25
- package/lib/table/src/util.min.js +1 -1
- package/lib/ui/index.js +2 -2
- 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 +2 -2
- package/packages/table/module/edit/hook.ts +10 -9
- package/packages/table/module/export/hook.ts +15 -13
- package/packages/table/src/body.ts +11 -13
- package/packages/table/src/footer.ts +3 -17
- package/packages/table/src/table.ts +184 -64
- package/packages/table/src/util.ts +0 -14
- package/packages/ui/index.ts +1 -1
- /package/es/{iconfont.1743479147314.ttf → iconfont.1743578564396.ttf} +0 -0
- /package/es/{iconfont.1743479147314.woff → iconfont.1743578564396.woff} +0 -0
- /package/es/{iconfont.1743479147314.woff2 → iconfont.1743578564396.woff2} +0 -0
- /package/lib/{iconfont.1743479147314.ttf → iconfont.1743578564396.ttf} +0 -0
- /package/lib/{iconfont.1743479147314.woff → iconfont.1743578564396.woff} +0 -0
- /package/lib/{iconfont.1743479147314.woff2 → iconfont.1743578564396.woff2} +0 -0
package/es/table/src/table.js
CHANGED
|
@@ -82,10 +82,6 @@ export default defineComponent({
|
|
|
82
82
|
// 树节点列信息
|
|
83
83
|
treeNodeColumn: null,
|
|
84
84
|
hasFixedColumn: false,
|
|
85
|
-
// 合并单元格的对象集
|
|
86
|
-
mergeList: [],
|
|
87
|
-
// 合并表尾数据的对象集
|
|
88
|
-
mergeFooterList: [],
|
|
89
85
|
// 刷新列标识,当列筛选被改变时,触发表格刷新数据
|
|
90
86
|
upDataFlag: 0,
|
|
91
87
|
// 刷新列标识,当列的特定属性被改变时,触发表格刷新列
|
|
@@ -238,6 +234,8 @@ export default defineComponent({
|
|
|
238
234
|
pendingRowFlag: 1,
|
|
239
235
|
insertRowFlag: 1,
|
|
240
236
|
removeRowFlag: 1,
|
|
237
|
+
mergeBodyFlag: 1,
|
|
238
|
+
mergeFootFlag: 1,
|
|
241
239
|
rowHeightStore: {
|
|
242
240
|
default: 48,
|
|
243
241
|
medium: 44,
|
|
@@ -330,13 +328,26 @@ export default defineComponent({
|
|
|
330
328
|
tableFullColumn: [],
|
|
331
329
|
// 渲染所有列
|
|
332
330
|
visibleColumn: [],
|
|
333
|
-
//
|
|
331
|
+
// 全量数据集(包括当前和已删除)
|
|
334
332
|
fullAllDataRowIdData: {},
|
|
333
|
+
// 数据集(仅当前)
|
|
334
|
+
fullDataRowIdData: {},
|
|
335
|
+
// 数据集(仅可视)
|
|
336
|
+
visibleDataRowIdData: {},
|
|
335
337
|
// 渲染中缓存数据
|
|
336
338
|
sourceDataRowIdData: {},
|
|
337
|
-
fullDataRowIdData: {},
|
|
338
339
|
fullColumnIdData: {},
|
|
339
340
|
fullColumnFieldData: {},
|
|
341
|
+
// 合并单元格的数据
|
|
342
|
+
mergeBodyList: [],
|
|
343
|
+
mergeBodyMaps: {},
|
|
344
|
+
// 合并表尾的数据
|
|
345
|
+
mergeFooterList: [],
|
|
346
|
+
mergeFooterMaps: {},
|
|
347
|
+
// 已合并单元格数据集合
|
|
348
|
+
mergeBodyCellMaps: {},
|
|
349
|
+
// 已合并表尾数据集合
|
|
350
|
+
mergeFooterCellMaps: {},
|
|
340
351
|
// 已展开的行集合
|
|
341
352
|
rowExpandedMaps: {},
|
|
342
353
|
// 懒加载中的展开行的集合
|
|
@@ -643,17 +654,18 @@ export default defineComponent({
|
|
|
643
654
|
return Object.assign({}, getConfig().table.customConfig, props.customConfig);
|
|
644
655
|
});
|
|
645
656
|
const computeTableRowExpandedList = computed(() => {
|
|
646
|
-
const {
|
|
647
|
-
const {
|
|
648
|
-
const {
|
|
657
|
+
const { treeConfig } = props;
|
|
658
|
+
const { rowExpandedFlag, expandColumn } = reactData;
|
|
659
|
+
const { visibleDataRowIdData, rowExpandedMaps } = internalData;
|
|
660
|
+
const treeOpts = computeTreeOpts.value;
|
|
661
|
+
const { transform } = treeOpts;
|
|
649
662
|
const expandList = [];
|
|
650
663
|
if (expandColumn && rowExpandedFlag) {
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
});
|
|
664
|
+
if (treeConfig && !transform) {
|
|
665
|
+
return XEUtils.values(rowExpandedMaps);
|
|
666
|
+
}
|
|
655
667
|
XEUtils.each(rowExpandedMaps, (row, rowid) => {
|
|
656
|
-
if (
|
|
668
|
+
if (visibleDataRowIdData[rowid]) {
|
|
657
669
|
expandList.push(row);
|
|
658
670
|
}
|
|
659
671
|
});
|
|
@@ -1024,30 +1036,66 @@ export default defineComponent({
|
|
|
1024
1036
|
}
|
|
1025
1037
|
}
|
|
1026
1038
|
};
|
|
1027
|
-
|
|
1039
|
+
function buildMergeData(mergeConfigs) {
|
|
1040
|
+
const mergeMaps = {};
|
|
1041
|
+
if (mergeConfigs && mergeConfigs.length) {
|
|
1042
|
+
for (let mIndex = 0; mIndex < mergeConfigs.length; mIndex++) {
|
|
1043
|
+
const { row: _rowIndex, col: _columnIndex, rowspan: mergeRowspan, colspan: mergeColspan } = mergeConfigs[mIndex];
|
|
1044
|
+
for (let i = 0; i < mergeRowspan; i++) {
|
|
1045
|
+
for (let j = 0; j < mergeColspan; j++) {
|
|
1046
|
+
mergeMaps[`${_rowIndex + i}:${_columnIndex + j}`] = !i && !j
|
|
1047
|
+
? {
|
|
1048
|
+
rowspan: mergeRowspan,
|
|
1049
|
+
colspan: mergeColspan
|
|
1050
|
+
}
|
|
1051
|
+
: {
|
|
1052
|
+
rowspan: 0,
|
|
1053
|
+
colspan: 0
|
|
1054
|
+
};
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1059
|
+
return mergeMaps;
|
|
1060
|
+
}
|
|
1061
|
+
const handleBodyMerge = (merges) => {
|
|
1062
|
+
const { fullAllDataRowIdData, fullColumnIdData, visibleColumn, afterFullData, mergeBodyList, mergeBodyMaps } = internalData;
|
|
1028
1063
|
if (merges) {
|
|
1029
|
-
|
|
1030
|
-
const { visibleColumn } = internalData;
|
|
1064
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
1031
1065
|
if (!XEUtils.isArray(merges)) {
|
|
1032
1066
|
merges = [merges];
|
|
1033
1067
|
}
|
|
1034
|
-
// if (treeConfig && merges.length) {
|
|
1035
|
-
// errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
|
|
1036
|
-
// }
|
|
1037
1068
|
merges.forEach((item) => {
|
|
1038
|
-
let { row, col, rowspan, colspan } = item;
|
|
1039
|
-
|
|
1040
|
-
|
|
1069
|
+
let { row: margeRow, col: margeCol, rowspan, colspan } = item;
|
|
1070
|
+
let mergeRowIndex = -1;
|
|
1071
|
+
let mergeColumnIndex = -1;
|
|
1072
|
+
if (XEUtils.isNumber(margeRow)) {
|
|
1073
|
+
mergeRowIndex = margeRow;
|
|
1041
1074
|
}
|
|
1042
|
-
|
|
1043
|
-
|
|
1075
|
+
else {
|
|
1076
|
+
const rowid = margeRow ? handleGetRowId(margeRow) : null;
|
|
1077
|
+
const rowRest = rowid ? fullAllDataRowIdData[rowid] : null;
|
|
1078
|
+
if (rowRest) {
|
|
1079
|
+
mergeRowIndex = rowRest._index;
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
if (XEUtils.isNumber(margeCol)) {
|
|
1083
|
+
mergeColumnIndex = margeCol;
|
|
1084
|
+
}
|
|
1085
|
+
else {
|
|
1086
|
+
const colid = margeCol ? margeCol.id : null;
|
|
1087
|
+
const colRest = colid ? fullColumnIdData[colid] : null;
|
|
1088
|
+
if (colRest) {
|
|
1089
|
+
mergeColumnIndex = colRest._index;
|
|
1090
|
+
}
|
|
1044
1091
|
}
|
|
1045
|
-
if (
|
|
1092
|
+
if (mergeRowIndex > -1 && mergeColumnIndex > -1 && (rowspan || colspan)) {
|
|
1046
1093
|
rowspan = XEUtils.toNumber(rowspan) || 1;
|
|
1047
1094
|
colspan = XEUtils.toNumber(colspan) || 1;
|
|
1048
1095
|
if (rowspan > 1 || colspan > 1) {
|
|
1049
|
-
const
|
|
1050
|
-
const
|
|
1096
|
+
const row = afterFullData[mergeRowIndex];
|
|
1097
|
+
const column = visibleColumn[mergeColumnIndex];
|
|
1098
|
+
let mergeItem = mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`];
|
|
1051
1099
|
if (mergeItem) {
|
|
1052
1100
|
mergeItem.rowspan = rowspan;
|
|
1053
1101
|
mergeItem.colspan = colspan;
|
|
@@ -1055,18 +1103,65 @@ export default defineComponent({
|
|
|
1055
1103
|
mergeItem._colspan = colspan;
|
|
1056
1104
|
}
|
|
1057
1105
|
else {
|
|
1058
|
-
|
|
1059
|
-
const mergeColIndex = tableMethods.getVTColumnIndex(col);
|
|
1060
|
-
mList.push({
|
|
1106
|
+
mergeItem = {
|
|
1061
1107
|
row: mergeRowIndex,
|
|
1062
|
-
col:
|
|
1108
|
+
col: mergeColumnIndex,
|
|
1063
1109
|
rowspan,
|
|
1064
1110
|
colspan,
|
|
1065
1111
|
_row: row,
|
|
1066
|
-
_col:
|
|
1112
|
+
_col: column,
|
|
1067
1113
|
_rowspan: rowspan,
|
|
1068
1114
|
_colspan: colspan
|
|
1069
|
-
}
|
|
1115
|
+
};
|
|
1116
|
+
mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`] = mergeItem;
|
|
1117
|
+
mergeBodyList.push(mergeItem);
|
|
1118
|
+
}
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
|
+
});
|
|
1122
|
+
}
|
|
1123
|
+
};
|
|
1124
|
+
const handleFooterMerge = (merges) => {
|
|
1125
|
+
const { footerTableData } = reactData;
|
|
1126
|
+
const { mergeFooterList, mergeFooterMaps } = internalData;
|
|
1127
|
+
if (merges) {
|
|
1128
|
+
const { visibleColumn } = internalData;
|
|
1129
|
+
if (!XEUtils.isArray(merges)) {
|
|
1130
|
+
merges = [merges];
|
|
1131
|
+
}
|
|
1132
|
+
merges.forEach((item) => {
|
|
1133
|
+
let { row: margeRow, col: margeCol, rowspan, colspan } = item;
|
|
1134
|
+
const mergeRowIndex = XEUtils.isNumber(margeRow) ? margeRow : -1;
|
|
1135
|
+
let mergeColumnIndex = -1;
|
|
1136
|
+
if (XEUtils.isNumber(margeCol)) {
|
|
1137
|
+
mergeColumnIndex = margeCol;
|
|
1138
|
+
}
|
|
1139
|
+
if (mergeRowIndex > -1 && mergeColumnIndex > -1 && (rowspan || colspan)) {
|
|
1140
|
+
rowspan = XEUtils.toNumber(rowspan) || 1;
|
|
1141
|
+
colspan = XEUtils.toNumber(colspan) || 1;
|
|
1142
|
+
if (rowspan > 1 || colspan > 1) {
|
|
1143
|
+
const row = footerTableData[mergeRowIndex];
|
|
1144
|
+
const column = visibleColumn[mergeColumnIndex];
|
|
1145
|
+
let mergeItem = mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`];
|
|
1146
|
+
if (mergeItem) {
|
|
1147
|
+
mergeItem.rowspan = rowspan;
|
|
1148
|
+
mergeItem.colspan = colspan;
|
|
1149
|
+
mergeItem._rowspan = rowspan;
|
|
1150
|
+
mergeItem._colspan = colspan;
|
|
1151
|
+
}
|
|
1152
|
+
else {
|
|
1153
|
+
mergeItem = {
|
|
1154
|
+
row: mergeRowIndex,
|
|
1155
|
+
col: mergeColumnIndex,
|
|
1156
|
+
rowspan,
|
|
1157
|
+
colspan,
|
|
1158
|
+
_row: row,
|
|
1159
|
+
_col: column,
|
|
1160
|
+
_rowspan: rowspan,
|
|
1161
|
+
_colspan: colspan
|
|
1162
|
+
};
|
|
1163
|
+
mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`] = mergeItem;
|
|
1164
|
+
mergeFooterList.push(mergeItem);
|
|
1070
1165
|
}
|
|
1071
1166
|
}
|
|
1072
1167
|
}
|
|
@@ -2668,7 +2763,7 @@ export default defineComponent({
|
|
|
2668
2763
|
internalData.tableFullData = fullData;
|
|
2669
2764
|
internalData.tableFullTreeData = treeData;
|
|
2670
2765
|
// 缓存数据
|
|
2671
|
-
$xeTable.cacheRowMap(
|
|
2766
|
+
$xeTable.cacheRowMap(isReset);
|
|
2672
2767
|
// 原始数据
|
|
2673
2768
|
internalData.tableSynchData = datas;
|
|
2674
2769
|
if (isReset) {
|
|
@@ -2686,6 +2781,7 @@ export default defineComponent({
|
|
|
2686
2781
|
$xeTable.clearMergeFooterItems();
|
|
2687
2782
|
$xeTable.handleTableData(true);
|
|
2688
2783
|
$xeTable.updateFooter();
|
|
2784
|
+
$xeTable.handleUpdateBodyMerge();
|
|
2689
2785
|
return nextTick().then(() => {
|
|
2690
2786
|
updateHeight();
|
|
2691
2787
|
updateStyle();
|
|
@@ -2798,8 +2894,8 @@ export default defineComponent({
|
|
|
2798
2894
|
cacheColumnMap();
|
|
2799
2895
|
};
|
|
2800
2896
|
const loadScrollXData = () => {
|
|
2801
|
-
const {
|
|
2802
|
-
const { scrollXStore } = internalData;
|
|
2897
|
+
const { isScrollXBig } = reactData;
|
|
2898
|
+
const { mergeBodyList, mergeFooterList, scrollXStore } = internalData;
|
|
2803
2899
|
const { preloadSize, startIndex, endIndex, offsetSize } = scrollXStore;
|
|
2804
2900
|
const { toVisibleIndex, visibleSize } = handleVirtualXVisible();
|
|
2805
2901
|
const offsetItem = {
|
|
@@ -2808,7 +2904,7 @@ export default defineComponent({
|
|
|
2808
2904
|
};
|
|
2809
2905
|
scrollXStore.visibleStartIndex = toVisibleIndex - 1;
|
|
2810
2906
|
scrollXStore.visibleEndIndex = toVisibleIndex + visibleSize + 1;
|
|
2811
|
-
calculateMergerOffsetIndex(
|
|
2907
|
+
calculateMergerOffsetIndex(mergeBodyList.concat(mergeFooterList), offsetItem, 'col');
|
|
2812
2908
|
const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem;
|
|
2813
2909
|
if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
|
|
2814
2910
|
if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
|
|
@@ -3118,8 +3214,8 @@ export default defineComponent({
|
|
|
3118
3214
|
* 纵向 Y 可视渲染处理
|
|
3119
3215
|
*/
|
|
3120
3216
|
const loadScrollYData = () => {
|
|
3121
|
-
const {
|
|
3122
|
-
const { scrollYStore } = internalData;
|
|
3217
|
+
const { isAllOverflow, isScrollYBig } = reactData;
|
|
3218
|
+
const { mergeBodyList, scrollYStore } = internalData;
|
|
3123
3219
|
const { preloadSize, startIndex, endIndex, offsetSize } = scrollYStore;
|
|
3124
3220
|
const autoOffsetYSize = isAllOverflow ? offsetSize : offsetSize + 1;
|
|
3125
3221
|
const { toVisibleIndex, visibleSize } = handleVirtualYVisible();
|
|
@@ -3129,7 +3225,7 @@ export default defineComponent({
|
|
|
3129
3225
|
};
|
|
3130
3226
|
scrollYStore.visibleStartIndex = toVisibleIndex - 1;
|
|
3131
3227
|
scrollYStore.visibleEndIndex = toVisibleIndex + visibleSize + 1;
|
|
3132
|
-
calculateMergerOffsetIndex(
|
|
3228
|
+
calculateMergerOffsetIndex(mergeBodyList, offsetItem, 'row');
|
|
3133
3229
|
const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem;
|
|
3134
3230
|
if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
|
|
3135
3231
|
if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
|
|
@@ -3424,7 +3520,7 @@ export default defineComponent({
|
|
|
3424
3520
|
* 对于某些特殊的场景,比如深层树节点元素发生变动时可能会用到
|
|
3425
3521
|
*/
|
|
3426
3522
|
syncData() {
|
|
3427
|
-
|
|
3523
|
+
errLog('vxe.error.delFunc', ['syncData', 'getData']);
|
|
3428
3524
|
return nextTick().then(() => {
|
|
3429
3525
|
reactData.tableData = [];
|
|
3430
3526
|
emit('update:data', internalData.tableFullData);
|
|
@@ -5699,6 +5795,7 @@ export default defineComponent({
|
|
|
5699
5795
|
footData = visibleColumn.length ? footerMethod({ columns: visibleColumn, data: afterFullData, $table: $xeTable, $grid: $xeGrid }) : [];
|
|
5700
5796
|
}
|
|
5701
5797
|
reactData.footerTableData = footData;
|
|
5798
|
+
$xeTable.handleUpdateFooterMerge();
|
|
5702
5799
|
return nextTick();
|
|
5703
5800
|
},
|
|
5704
5801
|
/**
|
|
@@ -5722,9 +5819,10 @@ export default defineComponent({
|
|
|
5722
5819
|
if (props.spanMethod) {
|
|
5723
5820
|
errLog('vxe.error.errConflicts', ['merge-cells', 'span-method']);
|
|
5724
5821
|
}
|
|
5725
|
-
|
|
5822
|
+
handleBodyMerge(merges);
|
|
5823
|
+
$xeTable.handleUpdateBodyMerge();
|
|
5726
5824
|
return nextTick().then(() => {
|
|
5727
|
-
|
|
5825
|
+
$xeTable.updateCellAreas();
|
|
5728
5826
|
return updateStyle();
|
|
5729
5827
|
});
|
|
5730
5828
|
},
|
|
@@ -5736,9 +5834,9 @@ export default defineComponent({
|
|
|
5736
5834
|
if (props.spanMethod) {
|
|
5737
5835
|
errLog('vxe.error.errConflicts', ['merge-cells', 'span-method']);
|
|
5738
5836
|
}
|
|
5739
|
-
const rest = removeMerges(merges,
|
|
5837
|
+
const rest = removeMerges(merges, internalData.mergeBodyList, internalData.afterFullData);
|
|
5740
5838
|
return nextTick().then(() => {
|
|
5741
|
-
|
|
5839
|
+
$xeTable.updateCellAreas();
|
|
5742
5840
|
updateStyle();
|
|
5743
5841
|
return rest;
|
|
5744
5842
|
});
|
|
@@ -5747,13 +5845,15 @@ export default defineComponent({
|
|
|
5747
5845
|
* 获取所有被合并的单元格
|
|
5748
5846
|
*/
|
|
5749
5847
|
getMergeCells() {
|
|
5750
|
-
return
|
|
5848
|
+
return internalData.mergeBodyList.slice(0);
|
|
5751
5849
|
},
|
|
5752
5850
|
/**
|
|
5753
5851
|
* 清除所有单元格合并
|
|
5754
5852
|
*/
|
|
5755
5853
|
clearMergeCells() {
|
|
5756
|
-
|
|
5854
|
+
internalData.mergeBodyList = [];
|
|
5855
|
+
internalData.mergeBodyMaps = {};
|
|
5856
|
+
internalData.mergeBodyCellMaps = {};
|
|
5757
5857
|
return nextTick().then(() => {
|
|
5758
5858
|
return updateStyle();
|
|
5759
5859
|
});
|
|
@@ -5762,7 +5862,8 @@ export default defineComponent({
|
|
|
5762
5862
|
if (props.footerSpanMethod) {
|
|
5763
5863
|
errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
|
|
5764
5864
|
}
|
|
5765
|
-
|
|
5865
|
+
handleFooterMerge(merges);
|
|
5866
|
+
$xeTable.handleUpdateFooterMerge();
|
|
5766
5867
|
return nextTick().then(() => {
|
|
5767
5868
|
tableMethods.updateCellAreas();
|
|
5768
5869
|
return updateStyle();
|
|
@@ -5772,7 +5873,7 @@ export default defineComponent({
|
|
|
5772
5873
|
if (props.footerSpanMethod) {
|
|
5773
5874
|
errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
|
|
5774
5875
|
}
|
|
5775
|
-
const rest = removeMerges(merges,
|
|
5876
|
+
const rest = removeMerges(merges, internalData.mergeFooterList);
|
|
5776
5877
|
return nextTick().then(() => {
|
|
5777
5878
|
tableMethods.updateCellAreas();
|
|
5778
5879
|
updateStyle();
|
|
@@ -5783,13 +5884,15 @@ export default defineComponent({
|
|
|
5783
5884
|
* 获取所有被合并的表尾
|
|
5784
5885
|
*/
|
|
5785
5886
|
getMergeFooterItems() {
|
|
5786
|
-
return
|
|
5887
|
+
return internalData.mergeFooterList.slice(0);
|
|
5787
5888
|
},
|
|
5788
5889
|
/**
|
|
5789
5890
|
* 清除所有表尾合并
|
|
5790
5891
|
*/
|
|
5791
5892
|
clearMergeFooterItems() {
|
|
5792
|
-
|
|
5893
|
+
internalData.mergeFooterList = [];
|
|
5894
|
+
internalData.mergeFooterMaps = {};
|
|
5895
|
+
internalData.mergeFooterCellMaps = {};
|
|
5793
5896
|
return nextTick().then(() => {
|
|
5794
5897
|
return updateStyle();
|
|
5795
5898
|
});
|
|
@@ -6826,27 +6929,30 @@ export default defineComponent({
|
|
|
6826
6929
|
fullList = handleVirtualTreeToList();
|
|
6827
6930
|
}
|
|
6828
6931
|
const tableData = scrollYLoad ? fullList.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullList.slice(0);
|
|
6932
|
+
const visibleDataRowIdMaps = {};
|
|
6829
6933
|
tableData.forEach((row, $index) => {
|
|
6830
6934
|
const rowid = getRowid($xeTable, row);
|
|
6831
6935
|
const rest = fullDataRowIdData[rowid];
|
|
6832
6936
|
if (rest) {
|
|
6833
6937
|
rest.$index = $index;
|
|
6834
6938
|
}
|
|
6939
|
+
visibleDataRowIdMaps[rowid] = row;
|
|
6835
6940
|
});
|
|
6836
6941
|
reactData.tableData = tableData;
|
|
6942
|
+
internalData.visibleDataRowIdData = visibleDataRowIdMaps;
|
|
6837
6943
|
return nextTick();
|
|
6838
6944
|
},
|
|
6839
6945
|
/**
|
|
6840
6946
|
* 更新数据行的 Map
|
|
6841
6947
|
*/
|
|
6842
|
-
cacheRowMap() {
|
|
6948
|
+
cacheRowMap(isReset) {
|
|
6843
6949
|
const { treeConfig } = props;
|
|
6844
6950
|
const { fullAllDataRowIdData, tableFullData, tableFullTreeData, treeExpandedMaps } = internalData;
|
|
6845
6951
|
const treeOpts = computeTreeOpts.value;
|
|
6846
6952
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
6847
6953
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
6848
6954
|
const { lazy } = treeOpts;
|
|
6849
|
-
const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
|
|
6955
|
+
const fullAllDataRowIdMaps = isReset ? {} : Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
|
|
6850
6956
|
const fullDataRowIdMaps = {};
|
|
6851
6957
|
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable);
|
|
6852
6958
|
const handleRowCache = (row, index, items, currIndex, parentRow, rowid, level, seq) => {
|
|
@@ -7627,6 +7733,19 @@ export default defineComponent({
|
|
|
7627
7733
|
handleSelectRow({ row }, checked, isForce) {
|
|
7628
7734
|
$xeTable.handleBatchSelectRows([row], checked, isForce);
|
|
7629
7735
|
},
|
|
7736
|
+
/**
|
|
7737
|
+
* 处理合并
|
|
7738
|
+
*/
|
|
7739
|
+
handleUpdateBodyMerge() {
|
|
7740
|
+
const { mergeBodyList } = internalData;
|
|
7741
|
+
internalData.mergeBodyCellMaps = buildMergeData(mergeBodyList);
|
|
7742
|
+
reactData.mergeBodyFlag++;
|
|
7743
|
+
},
|
|
7744
|
+
handleUpdateFooterMerge() {
|
|
7745
|
+
const { mergeFooterList } = internalData;
|
|
7746
|
+
internalData.mergeFooterCellMaps = buildMergeData(mergeFooterList);
|
|
7747
|
+
reactData.mergeFootFlag++;
|
|
7748
|
+
},
|
|
7630
7749
|
triggerHeaderTitleEvent(evnt, iconParams, params) {
|
|
7631
7750
|
const tipContent = iconParams.content || iconParams.message;
|
|
7632
7751
|
if (tipContent) {
|
|
@@ -9671,21 +9790,23 @@ export default defineComponent({
|
|
|
9671
9790
|
const { transform, seqMode } = treeOpts;
|
|
9672
9791
|
const cellStyle = {};
|
|
9673
9792
|
const rowid = handleGetRowId(row);
|
|
9674
|
-
const
|
|
9793
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
9675
9794
|
let rowLevel = 0;
|
|
9676
9795
|
let seq = -1;
|
|
9677
|
-
let _rowIndex =
|
|
9678
|
-
|
|
9679
|
-
|
|
9680
|
-
if (
|
|
9681
|
-
rowLevel =
|
|
9796
|
+
let _rowIndex = -1;
|
|
9797
|
+
let rowIndex = -1;
|
|
9798
|
+
let $rowIndex = -1;
|
|
9799
|
+
if (rowRest) {
|
|
9800
|
+
rowLevel = rowRest.level;
|
|
9682
9801
|
if (treeConfig && transform && seqMode === 'increasing') {
|
|
9683
|
-
seq =
|
|
9802
|
+
seq = rowRest._index + 1;
|
|
9684
9803
|
}
|
|
9685
9804
|
else {
|
|
9686
|
-
seq =
|
|
9805
|
+
seq = rowRest.seq;
|
|
9687
9806
|
}
|
|
9688
|
-
|
|
9807
|
+
rowIndex = rowRest.index;
|
|
9808
|
+
$rowIndex = rowRest.$index;
|
|
9809
|
+
_rowIndex = rowRest._index;
|
|
9689
9810
|
}
|
|
9690
9811
|
if (expandHeight) {
|
|
9691
9812
|
cellStyle.height = `${expandHeight}px`;
|
|
@@ -10278,6 +10399,8 @@ export default defineComponent({
|
|
|
10278
10399
|
if (columnOpts.drag || rowOpts.drag || customOpts.allowSort) {
|
|
10279
10400
|
initTpImg();
|
|
10280
10401
|
}
|
|
10402
|
+
;
|
|
10403
|
+
window.aa = $xeTable;
|
|
10281
10404
|
nextTick(() => {
|
|
10282
10405
|
const { data, exportConfig, importConfig, treeConfig, showOverflow, highlightCurrentRow, highlightCurrentColumn } = props;
|
|
10283
10406
|
const { scrollXStore, scrollYStore } = internalData;
|
package/es/table/src/util.js
CHANGED
|
@@ -407,19 +407,6 @@ export function calcTreeLine(params, prevRow) {
|
|
|
407
407
|
}
|
|
408
408
|
return cellHeight * expandSize - (prevRow ? 1 : (12 - getOffsetSize($table)));
|
|
409
409
|
}
|
|
410
|
-
export function mergeBodyMethod(mergeList, _rowIndex, _columnIndex) {
|
|
411
|
-
for (let mIndex = 0; mIndex < mergeList.length; mIndex++) {
|
|
412
|
-
const { row: mergeRowIndex, col: mergeColIndex, rowspan: mergeRowspan, colspan: mergeColspan } = mergeList[mIndex];
|
|
413
|
-
if (mergeColIndex > -1 && mergeRowIndex > -1 && mergeRowspan && mergeColspan) {
|
|
414
|
-
if (mergeRowIndex === _rowIndex && mergeColIndex === _columnIndex) {
|
|
415
|
-
return { rowspan: mergeRowspan, colspan: mergeColspan };
|
|
416
|
-
}
|
|
417
|
-
if (_rowIndex >= mergeRowIndex && _rowIndex < mergeRowIndex + mergeRowspan && _columnIndex >= mergeColIndex && _columnIndex < mergeColIndex + mergeColspan) {
|
|
418
|
-
return { rowspan: 0, colspan: 0 };
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
410
|
export function clearTableDefaultStatus($xeTable) {
|
|
424
411
|
const { props, internalData } = $xeTable;
|
|
425
412
|
internalData.initStatus = false;
|
package/es/ui/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core';
|
|
2
2
|
import { getFuncText } from './src/utils';
|
|
3
|
-
export const version = "4.
|
|
3
|
+
export const version = "4.13.0-beta.0";
|
|
4
4
|
VxeUI.version = version;
|
|
5
5
|
VxeUI.tableVersion = version;
|
|
6
6
|
VxeUI.setConfig({
|
|
@@ -191,7 +191,7 @@ VxeUI.setConfig({
|
|
|
191
191
|
},
|
|
192
192
|
virtualXConfig: {
|
|
193
193
|
enabled: true,
|
|
194
|
-
gt:
|
|
194
|
+
gt: 28,
|
|
195
195
|
preSize: 1,
|
|
196
196
|
oSize: 0
|
|
197
197
|
},
|
package/es/ui/src/log.js
CHANGED
package/lib/grid/src/grid.js
CHANGED
|
@@ -9,8 +9,8 @@ var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
|
9
9
|
var _utils = require("../../ui/src/utils");
|
|
10
10
|
var _dom = require("../../ui/src/dom");
|
|
11
11
|
var _ui = require("../../ui");
|
|
12
|
-
var _table = _interopRequireDefault(require("../../table"));
|
|
13
|
-
var _toolbar = _interopRequireDefault(require("../../toolbar"));
|
|
12
|
+
var _table = _interopRequireDefault(require("../../table/src/table"));
|
|
13
|
+
var _toolbar = _interopRequireDefault(require("../../toolbar/src/toolbar"));
|
|
14
14
|
var _props = _interopRequireDefault(require("../../table/src/props"));
|
|
15
15
|
var _emits = _interopRequireDefault(require("../../table/src/emits"));
|
|
16
16
|
var _vn = require("../../ui/src/vn");
|