vxe-table 3.15.19 → 3.15.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.
@@ -649,6 +649,7 @@ function updateAfterDataIndex($xeTable) {
649
649
  const {
650
650
  fullDataRowIdData,
651
651
  fullAllDataRowIdData,
652
+ afterFullData,
652
653
  afterTreeFullData
653
654
  } = internalData;
654
655
  const treeOpts = $xeTable.computeTreeOpts;
@@ -692,8 +693,20 @@ function updateAfterDataIndex($xeTable) {
692
693
  }, {
693
694
  children: transform ? treeOpts.mapChildrenField : childrenField
694
695
  });
696
+ if (transform) {
697
+ afterFullData.forEach((row, index) => {
698
+ const rowid = handleGetRowId(row);
699
+ const rowRest = fullAllDataRowIdData[rowid];
700
+ const seq = index + 1;
701
+ if (rowRest) {
702
+ if (!treeConfig) {
703
+ rowRest.seq = seq;
704
+ }
705
+ rowRest._index = index;
706
+ }
707
+ });
708
+ }
695
709
  internalData.afterFullRowMaps = fullMaps;
696
- updateAfterListIndex($xeTable);
697
710
  } else {
698
711
  updateAfterListIndex($xeTable);
699
712
  }
@@ -2224,7 +2237,8 @@ const handleFooterMerge = ($xeTable, merges) => {
2224
2237
  } = reactData;
2225
2238
  const {
2226
2239
  mergeFooterList,
2227
- mergeFooterMaps
2240
+ mergeFooterMaps,
2241
+ fullColumnIdData
2228
2242
  } = internalData;
2229
2243
  if (merges) {
2230
2244
  const {
@@ -2244,6 +2258,12 @@ const handleFooterMerge = ($xeTable, merges) => {
2244
2258
  let mergeColumnIndex = -1;
2245
2259
  if (_xeUtils.default.isNumber(margeCol)) {
2246
2260
  mergeColumnIndex = margeCol;
2261
+ } else {
2262
+ const colid = margeCol ? margeCol.id : null;
2263
+ const colRest = colid ? fullColumnIdData[colid] : null;
2264
+ if (colRest) {
2265
+ mergeColumnIndex = colRest._index;
2266
+ }
2247
2267
  }
2248
2268
  if (mergeRowIndex > -1 && mergeColumnIndex > -1 && (rowspan || colspan)) {
2249
2269
  rowspan = _xeUtils.default.toNumber(rowspan) || 1;
@@ -2276,36 +2296,100 @@ const handleFooterMerge = ($xeTable, merges) => {
2276
2296
  });
2277
2297
  }
2278
2298
  };
2279
- function removeMerges($xeTable, merges, mList, rowList) {
2280
- // const props = $xeTable
2299
+ function removeBodyMerges($xeTable, merges) {
2281
2300
  const internalData = $xeTable;
2301
+ const {
2302
+ mergeBodyList,
2303
+ fullColumnIdData,
2304
+ fullAllDataRowIdData,
2305
+ mergeBodyMaps
2306
+ } = internalData;
2282
2307
  const rest = [];
2283
2308
  if (merges) {
2284
- // const { treeConfig } = props
2285
2309
  const {
2286
- visibleColumn
2287
- } = internalData;
2310
+ handleGetRowId
2311
+ } = (0, _util.createHandleGetRowId)($xeTable);
2288
2312
  if (!_xeUtils.default.isArray(merges)) {
2289
2313
  merges = [merges];
2290
2314
  }
2291
- // if (treeConfig && merges.length) {
2292
- // errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
2293
- // }
2294
2315
  merges.forEach(item => {
2295
- let {
2296
- row,
2297
- col
2316
+ const {
2317
+ row: margeRow,
2318
+ col: margeCol
2298
2319
  } = item;
2299
- if (rowList && _xeUtils.default.isNumber(row)) {
2300
- row = rowList[row];
2320
+ let mergeRowIndex = -1;
2321
+ let mergeColumnIndex = -1;
2322
+ if (_xeUtils.default.isNumber(margeRow)) {
2323
+ mergeRowIndex = margeRow;
2324
+ } else {
2325
+ const rowid = margeRow ? handleGetRowId(margeRow) : null;
2326
+ const rowRest = rowid ? fullAllDataRowIdData[rowid] : null;
2327
+ if (rowRest) {
2328
+ mergeRowIndex = rowRest._index;
2329
+ }
2301
2330
  }
2302
- if (_xeUtils.default.isNumber(col)) {
2303
- col = visibleColumn[col];
2331
+ if (_xeUtils.default.isNumber(margeCol)) {
2332
+ mergeColumnIndex = margeCol;
2333
+ } else {
2334
+ const colid = margeCol ? margeCol.id : null;
2335
+ const colRest = colid ? fullColumnIdData[colid] : null;
2336
+ if (colRest) {
2337
+ mergeColumnIndex = colRest._index;
2338
+ }
2339
+ }
2340
+ const mcIndex = _xeUtils.default.findIndexOf(mergeBodyList, item => item.row === mergeRowIndex && item.col === mergeColumnIndex);
2341
+ if (mcIndex > -1) {
2342
+ const rItems = mergeBodyList.splice(mcIndex, 1);
2343
+ const item = rItems[0];
2344
+ if (item) {
2345
+ rest.push(rItems[0]);
2346
+ if (mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]) {
2347
+ delete mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`];
2348
+ }
2349
+ }
2350
+ }
2351
+ });
2352
+ }
2353
+ return rest;
2354
+ }
2355
+ function removeFooterMerges($xeTable, merges) {
2356
+ const internalData = $xeTable;
2357
+ const {
2358
+ mergeFooterList,
2359
+ fullColumnIdData,
2360
+ mergeFooterMaps
2361
+ } = internalData;
2362
+ const rest = [];
2363
+ if (merges) {
2364
+ if (!_xeUtils.default.isArray(merges)) {
2365
+ merges = [merges];
2366
+ }
2367
+ merges.forEach(item => {
2368
+ const {
2369
+ row: margeRow,
2370
+ col: margeCol
2371
+ } = item;
2372
+ const mergeRowIndex = _xeUtils.default.isNumber(margeRow) ? margeRow : -1;
2373
+ let mergeColumnIndex = -1;
2374
+ if (_xeUtils.default.isNumber(margeCol)) {
2375
+ mergeColumnIndex = margeCol;
2376
+ } else {
2377
+ const colid = margeCol ? margeCol.id : null;
2378
+ const colRest = colid ? fullColumnIdData[colid] : null;
2379
+ if (colRest) {
2380
+ mergeColumnIndex = colRest._index;
2381
+ }
2304
2382
  }
2305
- const mcIndex = _xeUtils.default.findIndexOf(mList, item => item._row === row && item._col === col);
2383
+ const mcIndex = _xeUtils.default.findIndexOf(mergeFooterList, item => item.row === mergeRowIndex && item.col === mergeColumnIndex);
2306
2384
  if (mcIndex > -1) {
2307
- const rItems = mList.splice(mcIndex, 1);
2308
- rest.push(rItems[0]);
2385
+ const rItems = mergeFooterList.splice(mcIndex, 1);
2386
+ const item = rItems[0];
2387
+ if (item) {
2388
+ rest.push(item);
2389
+ if (mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`]) {
2390
+ delete mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`];
2391
+ }
2392
+ }
2309
2393
  }
2310
2394
  });
2311
2395
  }
@@ -11498,11 +11582,11 @@ const Methods = {
11498
11582
  removeMergeCells(merges) {
11499
11583
  const $xeTable = this;
11500
11584
  const props = $xeTable;
11501
- const internalData = $xeTable;
11502
11585
  if (props.spanMethod) {
11503
11586
  (0, _log.errLog)('vxe.error.errConflicts', ['merge-cells', 'span-method']);
11504
11587
  }
11505
- const rest = removeMerges($xeTable, merges, internalData.mergeBodyList, internalData.afterFullData);
11588
+ const rest = removeBodyMerges($xeTable, merges);
11589
+ $xeTable.handleUpdateBodyMerge();
11506
11590
  return $xeTable.$nextTick().then(() => {
11507
11591
  $xeTable.updateCellAreas();
11508
11592
  updateStyle($xeTable);
@@ -11522,10 +11606,12 @@ const Methods = {
11522
11606
  */
11523
11607
  clearMergeCells() {
11524
11608
  const $xeTable = this;
11609
+ const reactData = $xeTable;
11525
11610
  const internalData = $xeTable;
11526
11611
  internalData.mergeBodyList = [];
11527
11612
  internalData.mergeBodyMaps = {};
11528
11613
  internalData.mergeBodyCellMaps = {};
11614
+ reactData.mergeBodyFlag++;
11529
11615
  return $xeTable.$nextTick().then(() => {
11530
11616
  return updateStyle($xeTable);
11531
11617
  });
@@ -11546,11 +11632,11 @@ const Methods = {
11546
11632
  removeMergeFooterItems(merges) {
11547
11633
  const $xeTable = this;
11548
11634
  const props = $xeTable;
11549
- const internalData = $xeTable;
11550
11635
  if (props.footerSpanMethod) {
11551
11636
  (0, _log.errLog)('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
11552
11637
  }
11553
- const rest = removeMerges($xeTable, merges, internalData.mergeFooterList);
11638
+ const rest = removeFooterMerges($xeTable, merges);
11639
+ $xeTable.handleUpdateFooterMerge();
11554
11640
  return $xeTable.$nextTick().then(() => {
11555
11641
  $xeTable.updateCellAreas();
11556
11642
  updateStyle($xeTable);
@@ -11570,10 +11656,12 @@ const Methods = {
11570
11656
  */
11571
11657
  clearMergeFooterItems() {
11572
11658
  const $xeTable = this;
11659
+ const reactData = $xeTable;
11573
11660
  const internalData = $xeTable;
11574
11661
  internalData.mergeFooterList = [];
11575
11662
  internalData.mergeFooterMaps = {};
11576
11663
  internalData.mergeFooterCellMaps = {};
11664
+ reactData.mergeFootFlag++;
11577
11665
  return $xeTable.$nextTick().then(() => {
11578
11666
  return updateStyle($xeTable);
11579
11667
  });