vxe-table 3.15.19 → 3.15.20

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.
@@ -2224,7 +2224,8 @@ const handleFooterMerge = ($xeTable, merges) => {
2224
2224
  } = reactData;
2225
2225
  const {
2226
2226
  mergeFooterList,
2227
- mergeFooterMaps
2227
+ mergeFooterMaps,
2228
+ fullColumnIdData
2228
2229
  } = internalData;
2229
2230
  if (merges) {
2230
2231
  const {
@@ -2244,6 +2245,12 @@ const handleFooterMerge = ($xeTable, merges) => {
2244
2245
  let mergeColumnIndex = -1;
2245
2246
  if (_xeUtils.default.isNumber(margeCol)) {
2246
2247
  mergeColumnIndex = margeCol;
2248
+ } else {
2249
+ const colid = margeCol ? margeCol.id : null;
2250
+ const colRest = colid ? fullColumnIdData[colid] : null;
2251
+ if (colRest) {
2252
+ mergeColumnIndex = colRest._index;
2253
+ }
2247
2254
  }
2248
2255
  if (mergeRowIndex > -1 && mergeColumnIndex > -1 && (rowspan || colspan)) {
2249
2256
  rowspan = _xeUtils.default.toNumber(rowspan) || 1;
@@ -2276,36 +2283,92 @@ const handleFooterMerge = ($xeTable, merges) => {
2276
2283
  });
2277
2284
  }
2278
2285
  };
2279
- function removeMerges($xeTable, merges, mList, rowList) {
2280
- // const props = $xeTable
2286
+ function removeBodyMerges($xeTable, merges) {
2281
2287
  const internalData = $xeTable;
2288
+ const {
2289
+ mergeBodyList,
2290
+ fullColumnIdData,
2291
+ fullAllDataRowIdData
2292
+ } = internalData;
2282
2293
  const rest = [];
2283
2294
  if (merges) {
2284
- // const { treeConfig } = props
2285
2295
  const {
2286
- visibleColumn
2287
- } = internalData;
2296
+ handleGetRowId
2297
+ } = (0, _util.createHandleGetRowId)($xeTable);
2288
2298
  if (!_xeUtils.default.isArray(merges)) {
2289
2299
  merges = [merges];
2290
2300
  }
2291
- // if (treeConfig && merges.length) {
2292
- // errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
2293
- // }
2294
2301
  merges.forEach(item => {
2295
- let {
2296
- row,
2297
- col
2302
+ const {
2303
+ row: margeRow,
2304
+ col: margeCol
2298
2305
  } = item;
2299
- if (rowList && _xeUtils.default.isNumber(row)) {
2300
- row = rowList[row];
2306
+ let mergeRowIndex = -1;
2307
+ let mergeColumnIndex = -1;
2308
+ if (_xeUtils.default.isNumber(margeRow)) {
2309
+ mergeRowIndex = margeRow;
2310
+ } else {
2311
+ const rowid = margeRow ? handleGetRowId(margeRow) : null;
2312
+ const rowRest = rowid ? fullAllDataRowIdData[rowid] : null;
2313
+ if (rowRest) {
2314
+ mergeRowIndex = rowRest._index;
2315
+ }
2301
2316
  }
2302
- if (_xeUtils.default.isNumber(col)) {
2303
- col = visibleColumn[col];
2317
+ if (_xeUtils.default.isNumber(margeCol)) {
2318
+ mergeColumnIndex = margeCol;
2319
+ } else {
2320
+ const colid = margeCol ? margeCol.id : null;
2321
+ const colRest = colid ? fullColumnIdData[colid] : null;
2322
+ if (colRest) {
2323
+ mergeColumnIndex = colRest._index;
2324
+ }
2304
2325
  }
2305
- const mcIndex = _xeUtils.default.findIndexOf(mList, item => item._row === row && item._col === col);
2326
+ const mcIndex = _xeUtils.default.findIndexOf(mergeBodyList, item => item.row === mergeRowIndex && item.col === mergeColumnIndex);
2306
2327
  if (mcIndex > -1) {
2307
- const rItems = mList.splice(mcIndex, 1);
2308
- rest.push(rItems[0]);
2328
+ const rItems = mergeBodyList.splice(mcIndex, 1);
2329
+ const item = rItems[0];
2330
+ if (item) {
2331
+ rest.push(rItems[0]);
2332
+ }
2333
+ }
2334
+ });
2335
+ }
2336
+ return rest;
2337
+ }
2338
+ function removeFooterMerges($xeTable, merges) {
2339
+ const internalData = $xeTable;
2340
+ const {
2341
+ mergeFooterList,
2342
+ fullColumnIdData
2343
+ } = internalData;
2344
+ const rest = [];
2345
+ if (merges) {
2346
+ if (!_xeUtils.default.isArray(merges)) {
2347
+ merges = [merges];
2348
+ }
2349
+ merges.forEach(item => {
2350
+ const {
2351
+ row: margeRow,
2352
+ col: margeCol
2353
+ } = item;
2354
+ const mergeRowIndex = _xeUtils.default.isNumber(margeRow) ? margeRow : -1;
2355
+ let mergeColumnIndex = -1;
2356
+ if (_xeUtils.default.isNumber(margeCol)) {
2357
+ mergeColumnIndex = margeCol;
2358
+ } else {
2359
+ const colid = margeCol ? margeCol.id : null;
2360
+ const colRest = colid ? fullColumnIdData[colid] : null;
2361
+ if (colRest) {
2362
+ mergeColumnIndex = colRest._index;
2363
+ }
2364
+ }
2365
+ const mcIndex = _xeUtils.default.findIndexOf(mergeFooterList, item => item.row === mergeRowIndex && item.col === mergeColumnIndex);
2366
+ if (mcIndex > -1) {
2367
+ const rItems = mergeFooterList.splice(mcIndex, 1);
2368
+ const item = rItems[0];
2369
+ if (item) {
2370
+ rest.push(item);
2371
+ }
2309
2372
  }
2310
2373
  });
2311
2374
  }
@@ -11498,11 +11561,11 @@ const Methods = {
11498
11561
  removeMergeCells(merges) {
11499
11562
  const $xeTable = this;
11500
11563
  const props = $xeTable;
11501
- const internalData = $xeTable;
11502
11564
  if (props.spanMethod) {
11503
11565
  (0, _log.errLog)('vxe.error.errConflicts', ['merge-cells', 'span-method']);
11504
11566
  }
11505
- const rest = removeMerges($xeTable, merges, internalData.mergeBodyList, internalData.afterFullData);
11567
+ const rest = removeBodyMerges($xeTable, merges);
11568
+ $xeTable.handleUpdateBodyMerge();
11506
11569
  return $xeTable.$nextTick().then(() => {
11507
11570
  $xeTable.updateCellAreas();
11508
11571
  updateStyle($xeTable);
@@ -11522,10 +11585,12 @@ const Methods = {
11522
11585
  */
11523
11586
  clearMergeCells() {
11524
11587
  const $xeTable = this;
11588
+ const reactData = $xeTable;
11525
11589
  const internalData = $xeTable;
11526
11590
  internalData.mergeBodyList = [];
11527
11591
  internalData.mergeBodyMaps = {};
11528
11592
  internalData.mergeBodyCellMaps = {};
11593
+ reactData.mergeBodyFlag++;
11529
11594
  return $xeTable.$nextTick().then(() => {
11530
11595
  return updateStyle($xeTable);
11531
11596
  });
@@ -11546,11 +11611,11 @@ const Methods = {
11546
11611
  removeMergeFooterItems(merges) {
11547
11612
  const $xeTable = this;
11548
11613
  const props = $xeTable;
11549
- const internalData = $xeTable;
11550
11614
  if (props.footerSpanMethod) {
11551
11615
  (0, _log.errLog)('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
11552
11616
  }
11553
- const rest = removeMerges($xeTable, merges, internalData.mergeFooterList);
11617
+ const rest = removeFooterMerges($xeTable, merges);
11618
+ $xeTable.handleUpdateFooterMerge();
11554
11619
  return $xeTable.$nextTick().then(() => {
11555
11620
  $xeTable.updateCellAreas();
11556
11621
  updateStyle($xeTable);
@@ -11570,10 +11635,12 @@ const Methods = {
11570
11635
  */
11571
11636
  clearMergeFooterItems() {
11572
11637
  const $xeTable = this;
11638
+ const reactData = $xeTable;
11573
11639
  const internalData = $xeTable;
11574
11640
  internalData.mergeFooterList = [];
11575
11641
  internalData.mergeFooterMaps = {};
11576
11642
  internalData.mergeFooterCellMaps = {};
11643
+ reactData.mergeFootFlag++;
11577
11644
  return $xeTable.$nextTick().then(() => {
11578
11645
  return updateStyle($xeTable);
11579
11646
  });