vxe-table 4.12.5 → 4.13.0-beta.1
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/module/keyboard/hook.js +2 -2
- package/es/table/src/body.js +11 -13
- package/es/table/src/footer.js +3 -16
- package/es/table/src/table.js +187 -64
- 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 +8467 -8510
- 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/module/keyboard/hook.js +2 -2
- package/lib/table/module/keyboard/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 +212 -64
- 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/module/keyboard/hook.ts +2 -2
- package/packages/table/src/body.ts +11 -13
- package/packages/table/src/footer.ts +3 -17
- package/packages/table/src/table.ts +185 -65
- package/packages/table/src/util.ts +0 -14
- package/packages/ui/index.ts +1 -1
- /package/es/{iconfont.1743479147314.ttf → iconfont.1743583449887.ttf} +0 -0
- /package/es/{iconfont.1743479147314.woff → iconfont.1743583449887.woff} +0 -0
- /package/es/{iconfont.1743479147314.woff2 → iconfont.1743583449887.woff2} +0 -0
- /package/lib/{iconfont.1743479147314.ttf → iconfont.1743583449887.ttf} +0 -0
- /package/lib/{iconfont.1743479147314.woff → iconfont.1743583449887.woff} +0 -0
- /package/lib/{iconfont.1743479147314.woff2 → iconfont.1743583449887.woff2} +0 -0
|
@@ -94,10 +94,6 @@ export default defineComponent({
|
|
|
94
94
|
// 树节点列信息
|
|
95
95
|
treeNodeColumn: null,
|
|
96
96
|
hasFixedColumn: false,
|
|
97
|
-
// 合并单元格的对象集
|
|
98
|
-
mergeList: [],
|
|
99
|
-
// 合并表尾数据的对象集
|
|
100
|
-
mergeFooterList: [],
|
|
101
97
|
// 刷新列标识,当列筛选被改变时,触发表格刷新数据
|
|
102
98
|
upDataFlag: 0,
|
|
103
99
|
// 刷新列标识,当列的特定属性被改变时,触发表格刷新列
|
|
@@ -251,6 +247,8 @@ export default defineComponent({
|
|
|
251
247
|
pendingRowFlag: 1,
|
|
252
248
|
insertRowFlag: 1,
|
|
253
249
|
removeRowFlag: 1,
|
|
250
|
+
mergeBodyFlag: 1,
|
|
251
|
+
mergeFootFlag: 1,
|
|
254
252
|
|
|
255
253
|
rowHeightStore: {
|
|
256
254
|
default: 48,
|
|
@@ -350,14 +348,27 @@ export default defineComponent({
|
|
|
350
348
|
tableFullColumn: [],
|
|
351
349
|
// 渲染所有列
|
|
352
350
|
visibleColumn: [],
|
|
353
|
-
//
|
|
351
|
+
// 全量数据集(包括当前和已删除)
|
|
354
352
|
fullAllDataRowIdData: {},
|
|
353
|
+
// 数据集(仅当前)
|
|
354
|
+
fullDataRowIdData: {},
|
|
355
|
+
// 数据集(仅可视)
|
|
356
|
+
visibleDataRowIdData: {},
|
|
355
357
|
// 渲染中缓存数据
|
|
356
358
|
sourceDataRowIdData: {},
|
|
357
|
-
fullDataRowIdData: {},
|
|
358
359
|
fullColumnIdData: {},
|
|
359
360
|
fullColumnFieldData: {},
|
|
360
361
|
|
|
362
|
+
// 合并单元格的数据
|
|
363
|
+
mergeBodyList: [],
|
|
364
|
+
mergeBodyMaps: {},
|
|
365
|
+
// 合并表尾的数据
|
|
366
|
+
mergeFooterList: [],
|
|
367
|
+
mergeFooterMaps: {},
|
|
368
|
+
// 已合并单元格数据集合
|
|
369
|
+
mergeBodyCellMaps: {},
|
|
370
|
+
// 已合并表尾数据集合
|
|
371
|
+
mergeFooterCellMaps: {},
|
|
361
372
|
// 已展开的行集合
|
|
362
373
|
rowExpandedMaps: {},
|
|
363
374
|
// 懒加载中的展开行的集合
|
|
@@ -729,17 +740,18 @@ export default defineComponent({
|
|
|
729
740
|
})
|
|
730
741
|
|
|
731
742
|
const computeTableRowExpandedList = computed(() => {
|
|
732
|
-
const {
|
|
733
|
-
const {
|
|
734
|
-
const {
|
|
743
|
+
const { treeConfig } = props
|
|
744
|
+
const { rowExpandedFlag, expandColumn } = reactData
|
|
745
|
+
const { visibleDataRowIdData, rowExpandedMaps } = internalData
|
|
746
|
+
const treeOpts = computeTreeOpts.value
|
|
747
|
+
const { transform } = treeOpts
|
|
735
748
|
const expandList: any[] = []
|
|
736
749
|
if (expandColumn && rowExpandedFlag) {
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
})
|
|
750
|
+
if (treeConfig && !transform) {
|
|
751
|
+
return XEUtils.values(rowExpandedMaps)
|
|
752
|
+
}
|
|
741
753
|
XEUtils.each(rowExpandedMaps, (row, rowid) => {
|
|
742
|
-
if (
|
|
754
|
+
if (visibleDataRowIdData[rowid]) {
|
|
743
755
|
expandList.push(row)
|
|
744
756
|
}
|
|
745
757
|
})
|
|
@@ -1129,48 +1141,130 @@ export default defineComponent({
|
|
|
1129
1141
|
}
|
|
1130
1142
|
}
|
|
1131
1143
|
|
|
1132
|
-
|
|
1144
|
+
function buildMergeData (mergeConfigs: VxeTableDefines.MergeItem[]) {
|
|
1145
|
+
const mergeMaps: Record<string, VxeTableDefines.MergeCacheItem> = {}
|
|
1146
|
+
if (mergeConfigs && mergeConfigs.length) {
|
|
1147
|
+
for (let mIndex = 0; mIndex < mergeConfigs.length; mIndex++) {
|
|
1148
|
+
const { row: _rowIndex, col: _columnIndex, rowspan: mergeRowspan, colspan: mergeColspan } = mergeConfigs[mIndex]
|
|
1149
|
+
for (let i = 0; i < mergeRowspan; i++) {
|
|
1150
|
+
for (let j = 0; j < mergeColspan; j++) {
|
|
1151
|
+
mergeMaps[`${_rowIndex + i}:${_columnIndex + j}`] = !i && !j
|
|
1152
|
+
? {
|
|
1153
|
+
rowspan: mergeRowspan,
|
|
1154
|
+
colspan: mergeColspan
|
|
1155
|
+
}
|
|
1156
|
+
: {
|
|
1157
|
+
rowspan: 0,
|
|
1158
|
+
colspan: 0
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
}
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
return mergeMaps
|
|
1165
|
+
}
|
|
1166
|
+
|
|
1167
|
+
const handleBodyMerge = (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) => {
|
|
1168
|
+
const { fullAllDataRowIdData, fullColumnIdData, visibleColumn, afterFullData, mergeBodyList, mergeBodyMaps } = internalData
|
|
1133
1169
|
if (merges) {
|
|
1134
|
-
|
|
1135
|
-
const { visibleColumn } = internalData
|
|
1170
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
1136
1171
|
if (!XEUtils.isArray(merges)) {
|
|
1137
1172
|
merges = [merges]
|
|
1138
1173
|
}
|
|
1139
|
-
// if (treeConfig && merges.length) {
|
|
1140
|
-
// errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
|
|
1141
|
-
// }
|
|
1142
1174
|
merges.forEach((item) => {
|
|
1143
|
-
let { row, col, rowspan, colspan } = item
|
|
1144
|
-
|
|
1145
|
-
|
|
1175
|
+
let { row: margeRow, col: margeCol, rowspan, colspan } = item
|
|
1176
|
+
let mergeRowIndex = -1
|
|
1177
|
+
let mergeColumnIndex = -1
|
|
1178
|
+
if (XEUtils.isNumber(margeRow)) {
|
|
1179
|
+
mergeRowIndex = margeRow
|
|
1180
|
+
} else {
|
|
1181
|
+
const rowid = margeRow ? handleGetRowId(margeRow) : null
|
|
1182
|
+
const rowRest = rowid ? fullAllDataRowIdData[rowid] : null
|
|
1183
|
+
if (rowRest) {
|
|
1184
|
+
mergeRowIndex = rowRest._index
|
|
1185
|
+
}
|
|
1146
1186
|
}
|
|
1147
|
-
if (XEUtils.isNumber(
|
|
1148
|
-
|
|
1187
|
+
if (XEUtils.isNumber(margeCol)) {
|
|
1188
|
+
mergeColumnIndex = margeCol
|
|
1189
|
+
} else {
|
|
1190
|
+
const colid = margeCol ? margeCol.id : null
|
|
1191
|
+
const colRest = colid ? fullColumnIdData[colid] : null
|
|
1192
|
+
if (colRest) {
|
|
1193
|
+
mergeColumnIndex = colRest._index
|
|
1194
|
+
}
|
|
1149
1195
|
}
|
|
1150
|
-
if (
|
|
1196
|
+
if (mergeRowIndex > -1 && mergeColumnIndex > -1 && (rowspan || colspan)) {
|
|
1151
1197
|
rowspan = XEUtils.toNumber(rowspan) || 1
|
|
1152
1198
|
colspan = XEUtils.toNumber(colspan) || 1
|
|
1153
1199
|
if (rowspan > 1 || colspan > 1) {
|
|
1154
|
-
const
|
|
1155
|
-
const
|
|
1200
|
+
const row = afterFullData[mergeRowIndex]
|
|
1201
|
+
const column = visibleColumn[mergeColumnIndex]
|
|
1202
|
+
let mergeItem = mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]
|
|
1156
1203
|
if (mergeItem) {
|
|
1157
1204
|
mergeItem.rowspan = rowspan
|
|
1158
1205
|
mergeItem.colspan = colspan
|
|
1159
1206
|
mergeItem._rowspan = rowspan
|
|
1160
1207
|
mergeItem._colspan = colspan
|
|
1161
1208
|
} else {
|
|
1162
|
-
|
|
1163
|
-
const mergeColIndex = tableMethods.getVTColumnIndex(col)
|
|
1164
|
-
mList.push({
|
|
1209
|
+
mergeItem = {
|
|
1165
1210
|
row: mergeRowIndex,
|
|
1166
|
-
col:
|
|
1211
|
+
col: mergeColumnIndex,
|
|
1167
1212
|
rowspan,
|
|
1168
1213
|
colspan,
|
|
1169
1214
|
_row: row,
|
|
1170
|
-
_col:
|
|
1215
|
+
_col: column,
|
|
1171
1216
|
_rowspan: rowspan,
|
|
1172
1217
|
_colspan: colspan
|
|
1173
|
-
}
|
|
1218
|
+
}
|
|
1219
|
+
mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`] = mergeItem
|
|
1220
|
+
mergeBodyList.push(mergeItem)
|
|
1221
|
+
}
|
|
1222
|
+
}
|
|
1223
|
+
}
|
|
1224
|
+
})
|
|
1225
|
+
}
|
|
1226
|
+
}
|
|
1227
|
+
|
|
1228
|
+
const handleFooterMerge = (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[]) => {
|
|
1229
|
+
const { footerTableData } = reactData
|
|
1230
|
+
const { mergeFooterList, mergeFooterMaps } = internalData
|
|
1231
|
+
if (merges) {
|
|
1232
|
+
const { visibleColumn } = internalData
|
|
1233
|
+
if (!XEUtils.isArray(merges)) {
|
|
1234
|
+
merges = [merges]
|
|
1235
|
+
}
|
|
1236
|
+
merges.forEach((item) => {
|
|
1237
|
+
let { row: margeRow, col: margeCol, rowspan, colspan } = item
|
|
1238
|
+
const mergeRowIndex = XEUtils.isNumber(margeRow) ? margeRow : -1
|
|
1239
|
+
let mergeColumnIndex = -1
|
|
1240
|
+
if (XEUtils.isNumber(margeCol)) {
|
|
1241
|
+
mergeColumnIndex = margeCol
|
|
1242
|
+
}
|
|
1243
|
+
if (mergeRowIndex > -1 && mergeColumnIndex > -1 && (rowspan || colspan)) {
|
|
1244
|
+
rowspan = XEUtils.toNumber(rowspan) || 1
|
|
1245
|
+
colspan = XEUtils.toNumber(colspan) || 1
|
|
1246
|
+
if (rowspan > 1 || colspan > 1) {
|
|
1247
|
+
const row = footerTableData[mergeRowIndex]
|
|
1248
|
+
const column = visibleColumn[mergeColumnIndex]
|
|
1249
|
+
let mergeItem = mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`]
|
|
1250
|
+
if (mergeItem) {
|
|
1251
|
+
mergeItem.rowspan = rowspan
|
|
1252
|
+
mergeItem.colspan = colspan
|
|
1253
|
+
mergeItem._rowspan = rowspan
|
|
1254
|
+
mergeItem._colspan = colspan
|
|
1255
|
+
} else {
|
|
1256
|
+
mergeItem = {
|
|
1257
|
+
row: mergeRowIndex,
|
|
1258
|
+
col: mergeColumnIndex,
|
|
1259
|
+
rowspan,
|
|
1260
|
+
colspan,
|
|
1261
|
+
_row: row,
|
|
1262
|
+
_col: column,
|
|
1263
|
+
_rowspan: rowspan,
|
|
1264
|
+
_colspan: colspan
|
|
1265
|
+
}
|
|
1266
|
+
mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`] = mergeItem
|
|
1267
|
+
mergeFooterList.push(mergeItem)
|
|
1174
1268
|
}
|
|
1175
1269
|
}
|
|
1176
1270
|
}
|
|
@@ -2803,7 +2897,7 @@ export default defineComponent({
|
|
|
2803
2897
|
internalData.tableFullData = fullData
|
|
2804
2898
|
internalData.tableFullTreeData = treeData
|
|
2805
2899
|
// 缓存数据
|
|
2806
|
-
$xeTable.cacheRowMap(
|
|
2900
|
+
$xeTable.cacheRowMap(isReset)
|
|
2807
2901
|
// 原始数据
|
|
2808
2902
|
internalData.tableSynchData = datas
|
|
2809
2903
|
if (isReset) {
|
|
@@ -2821,6 +2915,7 @@ export default defineComponent({
|
|
|
2821
2915
|
$xeTable.clearMergeFooterItems()
|
|
2822
2916
|
$xeTable.handleTableData(true)
|
|
2823
2917
|
$xeTable.updateFooter()
|
|
2918
|
+
$xeTable.handleUpdateBodyMerge()
|
|
2824
2919
|
return nextTick().then(() => {
|
|
2825
2920
|
updateHeight()
|
|
2826
2921
|
updateStyle()
|
|
@@ -2940,8 +3035,8 @@ export default defineComponent({
|
|
|
2940
3035
|
}
|
|
2941
3036
|
|
|
2942
3037
|
const loadScrollXData = () => {
|
|
2943
|
-
const {
|
|
2944
|
-
const { scrollXStore } = internalData
|
|
3038
|
+
const { isScrollXBig } = reactData
|
|
3039
|
+
const { mergeBodyList, mergeFooterList, scrollXStore } = internalData
|
|
2945
3040
|
const { preloadSize, startIndex, endIndex, offsetSize } = scrollXStore
|
|
2946
3041
|
const { toVisibleIndex, visibleSize } = handleVirtualXVisible()
|
|
2947
3042
|
const offsetItem = {
|
|
@@ -2950,7 +3045,7 @@ export default defineComponent({
|
|
|
2950
3045
|
}
|
|
2951
3046
|
scrollXStore.visibleStartIndex = toVisibleIndex - 1
|
|
2952
3047
|
scrollXStore.visibleEndIndex = toVisibleIndex + visibleSize + 1
|
|
2953
|
-
calculateMergerOffsetIndex(
|
|
3048
|
+
calculateMergerOffsetIndex(mergeBodyList.concat(mergeFooterList), offsetItem, 'col')
|
|
2954
3049
|
const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem
|
|
2955
3050
|
if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
|
|
2956
3051
|
if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
|
|
@@ -3263,8 +3358,8 @@ export default defineComponent({
|
|
|
3263
3358
|
* 纵向 Y 可视渲染处理
|
|
3264
3359
|
*/
|
|
3265
3360
|
const loadScrollYData = () => {
|
|
3266
|
-
const {
|
|
3267
|
-
const { scrollYStore } = internalData
|
|
3361
|
+
const { isAllOverflow, isScrollYBig } = reactData
|
|
3362
|
+
const { mergeBodyList, scrollYStore } = internalData
|
|
3268
3363
|
const { preloadSize, startIndex, endIndex, offsetSize } = scrollYStore
|
|
3269
3364
|
const autoOffsetYSize = isAllOverflow ? offsetSize : offsetSize + 1
|
|
3270
3365
|
const { toVisibleIndex, visibleSize } = handleVirtualYVisible()
|
|
@@ -3274,7 +3369,7 @@ export default defineComponent({
|
|
|
3274
3369
|
}
|
|
3275
3370
|
scrollYStore.visibleStartIndex = toVisibleIndex - 1
|
|
3276
3371
|
scrollYStore.visibleEndIndex = toVisibleIndex + visibleSize + 1
|
|
3277
|
-
calculateMergerOffsetIndex(
|
|
3372
|
+
calculateMergerOffsetIndex(mergeBodyList, offsetItem, 'row')
|
|
3278
3373
|
const { startIndex: offsetStartIndex, endIndex: offsetEndIndex } = offsetItem
|
|
3279
3374
|
if (toVisibleIndex <= startIndex || toVisibleIndex >= endIndex - visibleSize - 1) {
|
|
3280
3375
|
if (startIndex !== offsetStartIndex || endIndex !== offsetEndIndex) {
|
|
@@ -3582,7 +3677,7 @@ export default defineComponent({
|
|
|
3582
3677
|
* 对于某些特殊的场景,比如深层树节点元素发生变动时可能会用到
|
|
3583
3678
|
*/
|
|
3584
3679
|
syncData () {
|
|
3585
|
-
|
|
3680
|
+
errLog('vxe.error.delFunc', ['syncData', 'getData'])
|
|
3586
3681
|
return nextTick().then(() => {
|
|
3587
3682
|
reactData.tableData = []
|
|
3588
3683
|
emit('update:data', internalData.tableFullData)
|
|
@@ -5837,6 +5932,7 @@ export default defineComponent({
|
|
|
5837
5932
|
footData = visibleColumn.length ? footerMethod({ columns: visibleColumn, data: afterFullData, $table: $xeTable, $grid: $xeGrid }) : []
|
|
5838
5933
|
}
|
|
5839
5934
|
reactData.footerTableData = footData
|
|
5935
|
+
$xeTable.handleUpdateFooterMerge()
|
|
5840
5936
|
return nextTick()
|
|
5841
5937
|
},
|
|
5842
5938
|
/**
|
|
@@ -5860,9 +5956,10 @@ export default defineComponent({
|
|
|
5860
5956
|
if (props.spanMethod) {
|
|
5861
5957
|
errLog('vxe.error.errConflicts', ['merge-cells', 'span-method'])
|
|
5862
5958
|
}
|
|
5863
|
-
|
|
5959
|
+
handleBodyMerge(merges)
|
|
5960
|
+
$xeTable.handleUpdateBodyMerge()
|
|
5864
5961
|
return nextTick().then(() => {
|
|
5865
|
-
|
|
5962
|
+
$xeTable.updateCellAreas()
|
|
5866
5963
|
return updateStyle()
|
|
5867
5964
|
})
|
|
5868
5965
|
},
|
|
@@ -5874,9 +5971,9 @@ export default defineComponent({
|
|
|
5874
5971
|
if (props.spanMethod) {
|
|
5875
5972
|
errLog('vxe.error.errConflicts', ['merge-cells', 'span-method'])
|
|
5876
5973
|
}
|
|
5877
|
-
const rest = removeMerges(merges,
|
|
5974
|
+
const rest = removeMerges(merges, internalData.mergeBodyList, internalData.afterFullData)
|
|
5878
5975
|
return nextTick().then(() => {
|
|
5879
|
-
|
|
5976
|
+
$xeTable.updateCellAreas()
|
|
5880
5977
|
updateStyle()
|
|
5881
5978
|
return rest
|
|
5882
5979
|
})
|
|
@@ -5885,13 +5982,15 @@ export default defineComponent({
|
|
|
5885
5982
|
* 获取所有被合并的单元格
|
|
5886
5983
|
*/
|
|
5887
5984
|
getMergeCells () {
|
|
5888
|
-
return
|
|
5985
|
+
return internalData.mergeBodyList.slice(0)
|
|
5889
5986
|
},
|
|
5890
5987
|
/**
|
|
5891
5988
|
* 清除所有单元格合并
|
|
5892
5989
|
*/
|
|
5893
5990
|
clearMergeCells () {
|
|
5894
|
-
|
|
5991
|
+
internalData.mergeBodyList = []
|
|
5992
|
+
internalData.mergeBodyMaps = {}
|
|
5993
|
+
internalData.mergeBodyCellMaps = {}
|
|
5895
5994
|
return nextTick().then(() => {
|
|
5896
5995
|
return updateStyle()
|
|
5897
5996
|
})
|
|
@@ -5900,7 +5999,8 @@ export default defineComponent({
|
|
|
5900
5999
|
if (props.footerSpanMethod) {
|
|
5901
6000
|
errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method'])
|
|
5902
6001
|
}
|
|
5903
|
-
|
|
6002
|
+
handleFooterMerge(merges)
|
|
6003
|
+
$xeTable.handleUpdateFooterMerge()
|
|
5904
6004
|
return nextTick().then(() => {
|
|
5905
6005
|
tableMethods.updateCellAreas()
|
|
5906
6006
|
return updateStyle()
|
|
@@ -5910,7 +6010,7 @@ export default defineComponent({
|
|
|
5910
6010
|
if (props.footerSpanMethod) {
|
|
5911
6011
|
errLog('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method'])
|
|
5912
6012
|
}
|
|
5913
|
-
const rest = removeMerges(merges,
|
|
6013
|
+
const rest = removeMerges(merges, internalData.mergeFooterList)
|
|
5914
6014
|
return nextTick().then(() => {
|
|
5915
6015
|
tableMethods.updateCellAreas()
|
|
5916
6016
|
updateStyle()
|
|
@@ -5921,13 +6021,15 @@ export default defineComponent({
|
|
|
5921
6021
|
* 获取所有被合并的表尾
|
|
5922
6022
|
*/
|
|
5923
6023
|
getMergeFooterItems () {
|
|
5924
|
-
return
|
|
6024
|
+
return internalData.mergeFooterList.slice(0)
|
|
5925
6025
|
},
|
|
5926
6026
|
/**
|
|
5927
6027
|
* 清除所有表尾合并
|
|
5928
6028
|
*/
|
|
5929
6029
|
clearMergeFooterItems () {
|
|
5930
|
-
|
|
6030
|
+
internalData.mergeFooterList = []
|
|
6031
|
+
internalData.mergeFooterMaps = {}
|
|
6032
|
+
internalData.mergeFooterCellMaps = {}
|
|
5931
6033
|
return nextTick().then(() => {
|
|
5932
6034
|
return updateStyle()
|
|
5933
6035
|
})
|
|
@@ -6946,27 +7048,30 @@ export default defineComponent({
|
|
|
6946
7048
|
fullList = handleVirtualTreeToList()
|
|
6947
7049
|
}
|
|
6948
7050
|
const tableData = scrollYLoad ? fullList.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullList.slice(0)
|
|
7051
|
+
const visibleDataRowIdMaps: Record<string, any> = {}
|
|
6949
7052
|
tableData.forEach((row, $index) => {
|
|
6950
7053
|
const rowid = getRowid($xeTable, row)
|
|
6951
7054
|
const rest = fullDataRowIdData[rowid]
|
|
6952
7055
|
if (rest) {
|
|
6953
7056
|
rest.$index = $index
|
|
6954
7057
|
}
|
|
7058
|
+
visibleDataRowIdMaps[rowid] = row
|
|
6955
7059
|
})
|
|
6956
7060
|
reactData.tableData = tableData
|
|
7061
|
+
internalData.visibleDataRowIdData = visibleDataRowIdMaps
|
|
6957
7062
|
return nextTick()
|
|
6958
7063
|
},
|
|
6959
7064
|
/**
|
|
6960
7065
|
* 更新数据行的 Map
|
|
6961
7066
|
*/
|
|
6962
|
-
cacheRowMap () {
|
|
7067
|
+
cacheRowMap (isReset) {
|
|
6963
7068
|
const { treeConfig } = props
|
|
6964
7069
|
const { fullAllDataRowIdData, tableFullData, tableFullTreeData, treeExpandedMaps } = internalData
|
|
6965
7070
|
const treeOpts = computeTreeOpts.value
|
|
6966
7071
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
6967
7072
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
|
|
6968
7073
|
const { lazy } = treeOpts
|
|
6969
|
-
const fullAllDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = { ...fullAllDataRowIdData } // 存在已删除数据
|
|
7074
|
+
const fullAllDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = isReset ? {} : { ...fullAllDataRowIdData } // 存在已删除数据
|
|
6970
7075
|
const fullDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = {}
|
|
6971
7076
|
|
|
6972
7077
|
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable)
|
|
@@ -7741,6 +7846,19 @@ export default defineComponent({
|
|
|
7741
7846
|
handleSelectRow ({ row }, checked, isForce) {
|
|
7742
7847
|
$xeTable.handleBatchSelectRows([row], checked, isForce)
|
|
7743
7848
|
},
|
|
7849
|
+
/**
|
|
7850
|
+
* 处理合并
|
|
7851
|
+
*/
|
|
7852
|
+
handleUpdateBodyMerge () {
|
|
7853
|
+
const { mergeBodyList } = internalData
|
|
7854
|
+
internalData.mergeBodyCellMaps = buildMergeData(mergeBodyList)
|
|
7855
|
+
reactData.mergeBodyFlag++
|
|
7856
|
+
},
|
|
7857
|
+
handleUpdateFooterMerge () {
|
|
7858
|
+
const { mergeFooterList } = internalData
|
|
7859
|
+
internalData.mergeFooterCellMaps = buildMergeData(mergeFooterList)
|
|
7860
|
+
reactData.mergeFootFlag++
|
|
7861
|
+
},
|
|
7744
7862
|
triggerHeaderTitleEvent (evnt, iconParams, params) {
|
|
7745
7863
|
const tipContent = iconParams.content || (iconParams as any).message
|
|
7746
7864
|
if (tipContent) {
|
|
@@ -9799,7 +9917,6 @@ export default defineComponent({
|
|
|
9799
9917
|
ref: refRowExpandYSpaceElem
|
|
9800
9918
|
})
|
|
9801
9919
|
]
|
|
9802
|
-
|
|
9803
9920
|
if (expandColumn) {
|
|
9804
9921
|
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
9805
9922
|
tableRowExpandedList.forEach((row) => {
|
|
@@ -9810,20 +9927,22 @@ export default defineComponent({
|
|
|
9810
9927
|
const { transform, seqMode } = treeOpts
|
|
9811
9928
|
const cellStyle: Record<string, string> = {}
|
|
9812
9929
|
const rowid = handleGetRowId(row)
|
|
9813
|
-
const
|
|
9930
|
+
const rowRest = fullAllDataRowIdData[rowid]
|
|
9814
9931
|
let rowLevel = 0
|
|
9815
9932
|
let seq: string | number = -1
|
|
9816
|
-
let _rowIndex =
|
|
9817
|
-
|
|
9818
|
-
|
|
9819
|
-
if (
|
|
9820
|
-
rowLevel =
|
|
9933
|
+
let _rowIndex = -1
|
|
9934
|
+
let rowIndex = -1
|
|
9935
|
+
let $rowIndex = -1
|
|
9936
|
+
if (rowRest) {
|
|
9937
|
+
rowLevel = rowRest.level
|
|
9821
9938
|
if (treeConfig && transform && seqMode === 'increasing') {
|
|
9822
|
-
seq =
|
|
9939
|
+
seq = rowRest._index + 1
|
|
9823
9940
|
} else {
|
|
9824
|
-
seq =
|
|
9941
|
+
seq = rowRest.seq
|
|
9825
9942
|
}
|
|
9826
|
-
|
|
9943
|
+
rowIndex = rowRest.index
|
|
9944
|
+
$rowIndex = rowRest.$index
|
|
9945
|
+
_rowIndex = rowRest._index
|
|
9827
9946
|
}
|
|
9828
9947
|
if (expandHeight) {
|
|
9829
9948
|
cellStyle.height = `${expandHeight}px`
|
|
@@ -10445,6 +10564,7 @@ export default defineComponent({
|
|
|
10445
10564
|
initTpImg()
|
|
10446
10565
|
}
|
|
10447
10566
|
|
|
10567
|
+
;(window as any).aa = $xeTable
|
|
10448
10568
|
nextTick(() => {
|
|
10449
10569
|
const { data, exportConfig, importConfig, treeConfig, showOverflow, highlightCurrentRow, highlightCurrentColumn } = props
|
|
10450
10570
|
const { scrollXStore, scrollYStore } = internalData
|
|
@@ -10528,7 +10648,7 @@ export default defineComponent({
|
|
|
10528
10648
|
if (rowOpts.height && !props.showOverflow) {
|
|
10529
10649
|
warnLog('vxe.error.notProp', ['table.show-overflow'])
|
|
10530
10650
|
}
|
|
10531
|
-
if (!$xeTable.
|
|
10651
|
+
if (!$xeTable.triggerCellAreaMousedownEvent) {
|
|
10532
10652
|
if (props.areaConfig) {
|
|
10533
10653
|
warnLog('vxe.error.notProp', ['area-config'])
|
|
10534
10654
|
}
|
|
@@ -468,20 +468,6 @@ export function calcTreeLine (params: VxeTableDefines.CellRenderBodyParams, prev
|
|
|
468
468
|
return cellHeight * expandSize - (prevRow ? 1 : (12 - getOffsetSize($table)))
|
|
469
469
|
}
|
|
470
470
|
|
|
471
|
-
export function mergeBodyMethod (mergeList: VxeTableDefines.MergeItem[], _rowIndex: number, _columnIndex: number) {
|
|
472
|
-
for (let mIndex = 0; mIndex < mergeList.length; mIndex++) {
|
|
473
|
-
const { row: mergeRowIndex, col: mergeColIndex, rowspan: mergeRowspan, colspan: mergeColspan } = mergeList[mIndex]
|
|
474
|
-
if (mergeColIndex > -1 && mergeRowIndex > -1 && mergeRowspan && mergeColspan) {
|
|
475
|
-
if (mergeRowIndex === _rowIndex && mergeColIndex === _columnIndex) {
|
|
476
|
-
return { rowspan: mergeRowspan, colspan: mergeColspan }
|
|
477
|
-
}
|
|
478
|
-
if (_rowIndex >= mergeRowIndex && _rowIndex < mergeRowIndex + mergeRowspan && _columnIndex >= mergeColIndex && _columnIndex < mergeColIndex + mergeColspan) {
|
|
479
|
-
return { rowspan: 0, colspan: 0 }
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
|
|
485
471
|
export function clearTableDefaultStatus ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
486
472
|
const { props, internalData } = $xeTable
|
|
487
473
|
internalData.initStatus = false
|
package/packages/ui/index.ts
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|