vxe-table 3.14.4 → 3.15.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/locale/lang/ar-EG.js +3 -1
- package/es/locale/lang/de-DE.js +3 -1
- package/es/locale/lang/en-US.js +7 -5
- package/es/locale/lang/es-ES.js +3 -1
- package/es/locale/lang/fr-FR.js +3 -1
- package/es/locale/lang/hu-HU.js +3 -1
- package/es/locale/lang/hy-AM.js +3 -1
- package/es/locale/lang/id-ID.js +3 -1
- package/es/locale/lang/it-IT.js +3 -1
- package/es/locale/lang/ja-JP.js +3 -1
- package/es/locale/lang/ko-KR.js +3 -1
- package/es/locale/lang/nb-NO.js +3 -1
- package/es/locale/lang/pt-BR.js +3 -1
- package/es/locale/lang/ru-RU.js +3 -1
- package/es/locale/lang/th-TH.js +3 -1
- package/es/locale/lang/ug-CN.js +3 -1
- package/es/locale/lang/uk-UA.js +3 -1
- package/es/locale/lang/vi-VN.js +3 -1
- package/es/locale/lang/zh-CHT.js +3 -1
- package/es/locale/lang/zh-CN.js +3 -1
- package/es/style.css +1 -1
- package/es/table/module/edit/mixin.js +10 -9
- package/es/table/module/export/export-panel.js +32 -17
- package/es/table/module/export/mixin.js +17 -12
- package/es/table/src/body.js +11 -13
- package/es/table/src/footer.js +3 -16
- package/es/table/src/methods.js +246 -109
- package/es/table/src/table.js +50 -25
- 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/index.umd.js +410 -247
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +3 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +3 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +7 -5
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +7 -5
- package/lib/locale/lang/es-ES.js +3 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +3 -1
- package/lib/locale/lang/fr-FR.js +3 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +3 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +3 -1
- package/lib/locale/lang/hy-AM.js +3 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/id-ID.js +3 -1
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/it-IT.js +3 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +3 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +3 -1
- package/lib/locale/lang/ko-KR.js +3 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +3 -1
- package/lib/locale/lang/nb-NO.js +3 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +3 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +3 -1
- package/lib/locale/lang/ru-RU.js +3 -1
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +3 -1
- package/lib/locale/lang/th-TH.js +3 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +3 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +3 -1
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +3 -1
- package/lib/locale/lang/vi-VN.js +3 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +3 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +3 -1
- package/lib/locale/lang/zh-CN.js +3 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +3 -1
- package/lib/style.css +1 -1
- package/lib/table/module/edit/mixin.js +9 -9
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/module/export/export-panel.js +29 -17
- package/lib/table/module/export/export-panel.min.js +1 -1
- package/lib/table/module/export/mixin.js +18 -12
- package/lib/table/module/export/mixin.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/methods.js +278 -114
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +52 -25
- 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/locale/lang/ar-EG.ts +3 -1
- package/packages/locale/lang/de-DE.ts +3 -1
- package/packages/locale/lang/en-US.ts +7 -5
- package/packages/locale/lang/es-ES.ts +3 -1
- package/packages/locale/lang/fr-FR.ts +3 -1
- package/packages/locale/lang/hu-HU.ts +3 -1
- package/packages/locale/lang/hy-AM.ts +3 -1
- package/packages/locale/lang/id-ID.ts +3 -1
- package/packages/locale/lang/it-IT.ts +3 -1
- package/packages/locale/lang/ja-JP.ts +3 -1
- package/packages/locale/lang/ko-KR.ts +3 -1
- package/packages/locale/lang/nb-NO.ts +3 -1
- package/packages/locale/lang/pt-BR.ts +3 -1
- package/packages/locale/lang/ru-RU.ts +3 -1
- package/packages/locale/lang/th-TH.ts +3 -1
- package/packages/locale/lang/ug-CN.ts +3 -1
- package/packages/locale/lang/uk-UA.ts +3 -1
- package/packages/locale/lang/vi-VN.ts +3 -1
- package/packages/locale/lang/zh-CHT.ts +3 -1
- package/packages/locale/lang/zh-CN.ts +3 -1
- package/packages/table/module/edit/mixin.ts +10 -9
- package/packages/table/module/export/export-panel.ts +33 -17
- package/packages/table/module/export/mixin.ts +17 -12
- package/packages/table/src/body.ts +11 -13
- package/packages/table/src/footer.ts +3 -17
- package/packages/table/src/methods.ts +261 -119
- package/packages/table/src/table.ts +50 -25
- package/packages/table/src/util.ts +0 -14
- package/packages/ui/index.ts +1 -1
- /package/es/{iconfont.1743393991959.ttf → iconfont.1743578536739.ttf} +0 -0
- /package/es/{iconfont.1743393991959.woff → iconfont.1743578536739.woff} +0 -0
- /package/es/{iconfont.1743393991959.woff2 → iconfont.1743578536739.woff2} +0 -0
- /package/lib/{iconfont.1743393991959.ttf → iconfont.1743578536739.ttf} +0 -0
- /package/lib/{iconfont.1743393991959.woff → iconfont.1743578536739.woff} +0 -0
- /package/lib/{iconfont.1743393991959.woff2 → iconfont.1743578536739.woff2} +0 -0
package/lib/table/src/methods.js
CHANGED
|
@@ -299,39 +299,33 @@ function cacheColumnMap($xeTable) {
|
|
|
299
299
|
htmlColumn = column;
|
|
300
300
|
}
|
|
301
301
|
if (treeNode) {
|
|
302
|
-
if (
|
|
303
|
-
|
|
304
|
-
(0, _log.warnLog)('vxe.error.colRepet', ['tree-node', treeNode]);
|
|
305
|
-
}
|
|
302
|
+
if (treeNodeColumn) {
|
|
303
|
+
(0, _log.warnLog)('vxe.error.colRepet', ['tree-node', treeNode]);
|
|
306
304
|
}
|
|
307
305
|
if (!treeNodeColumn) {
|
|
308
306
|
treeNodeColumn = column;
|
|
309
307
|
}
|
|
310
308
|
} else if (type === 'expand') {
|
|
311
|
-
if (
|
|
312
|
-
|
|
313
|
-
(0, _log.warnLog)('vxe.error.colRepet', ['type', type]);
|
|
314
|
-
}
|
|
309
|
+
if (expandColumn) {
|
|
310
|
+
(0, _log.warnLog)('vxe.error.colRepet', ['type', type]);
|
|
315
311
|
}
|
|
316
312
|
if (!expandColumn) {
|
|
317
313
|
expandColumn = column;
|
|
318
314
|
}
|
|
319
315
|
}
|
|
320
|
-
if (
|
|
321
|
-
if (
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
radioColumn = column;
|
|
334
|
-
}
|
|
316
|
+
if (type === 'checkbox') {
|
|
317
|
+
if (checkboxColumn) {
|
|
318
|
+
(0, _log.warnLog)('vxe.error.colRepet', ['type', type]);
|
|
319
|
+
}
|
|
320
|
+
if (!checkboxColumn) {
|
|
321
|
+
checkboxColumn = column;
|
|
322
|
+
}
|
|
323
|
+
} else if (type === 'radio') {
|
|
324
|
+
if (radioColumn) {
|
|
325
|
+
(0, _log.warnLog)('vxe.error.colRepet', ['type', type]);
|
|
326
|
+
}
|
|
327
|
+
if (!radioColumn) {
|
|
328
|
+
radioColumn = column;
|
|
335
329
|
}
|
|
336
330
|
}
|
|
337
331
|
if (isAllOverflow && column.showOverflow === false) {
|
|
@@ -1526,20 +1520,48 @@ function calculateMergerOffsetIndex(list, offsetItem, type) {
|
|
|
1526
1520
|
}
|
|
1527
1521
|
}
|
|
1528
1522
|
}
|
|
1529
|
-
function
|
|
1530
|
-
|
|
1523
|
+
function buildMergeData(mergeConfigs) {
|
|
1524
|
+
const mergeMaps = {};
|
|
1525
|
+
if (mergeConfigs && mergeConfigs.length) {
|
|
1526
|
+
for (let mIndex = 0; mIndex < mergeConfigs.length; mIndex++) {
|
|
1527
|
+
const {
|
|
1528
|
+
row: _rowIndex,
|
|
1529
|
+
col: _columnIndex,
|
|
1530
|
+
rowspan: mergeRowspan,
|
|
1531
|
+
colspan: mergeColspan
|
|
1532
|
+
} = mergeConfigs[mIndex];
|
|
1533
|
+
for (let i = 0; i < mergeRowspan; i++) {
|
|
1534
|
+
for (let j = 0; j < mergeColspan; j++) {
|
|
1535
|
+
mergeMaps[`${_rowIndex + i}:${_columnIndex + j}`] = !i && !j ? {
|
|
1536
|
+
rowspan: mergeRowspan,
|
|
1537
|
+
colspan: mergeColspan
|
|
1538
|
+
} : {
|
|
1539
|
+
rowspan: 0,
|
|
1540
|
+
colspan: 0
|
|
1541
|
+
};
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1545
|
+
}
|
|
1546
|
+
return mergeMaps;
|
|
1547
|
+
}
|
|
1548
|
+
const handleBodyMerge = ($xeTable, merges) => {
|
|
1531
1549
|
const internalData = $xeTable;
|
|
1550
|
+
const {
|
|
1551
|
+
fullAllDataRowIdData,
|
|
1552
|
+
fullColumnIdData,
|
|
1553
|
+
visibleColumn,
|
|
1554
|
+
afterFullData,
|
|
1555
|
+
mergeBodyList,
|
|
1556
|
+
mergeBodyMaps
|
|
1557
|
+
} = internalData;
|
|
1532
1558
|
if (merges) {
|
|
1533
|
-
// const { treeConfig } = props
|
|
1534
1559
|
const {
|
|
1535
|
-
|
|
1536
|
-
} =
|
|
1560
|
+
handleGetRowId
|
|
1561
|
+
} = (0, _util.createHandleGetRowId)($xeTable);
|
|
1537
1562
|
if (!_xeUtils.default.isArray(merges)) {
|
|
1538
1563
|
merges = [merges];
|
|
1539
1564
|
}
|
|
1540
|
-
// if (treeConfig && merges.length) {
|
|
1541
|
-
// errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
|
|
1542
|
-
// }
|
|
1543
1565
|
merges.forEach(item => {
|
|
1544
1566
|
let {
|
|
1545
1567
|
row,
|
|
@@ -1547,42 +1569,117 @@ function setMerges($xeTable, merges, mList, rowList) {
|
|
|
1547
1569
|
rowspan,
|
|
1548
1570
|
colspan
|
|
1549
1571
|
} = item;
|
|
1550
|
-
|
|
1551
|
-
|
|
1572
|
+
let mergeRowIndex = -1;
|
|
1573
|
+
let mergeColumnIndex = -1;
|
|
1574
|
+
if (_xeUtils.default.isNumber(row)) {
|
|
1575
|
+
mergeRowIndex = row;
|
|
1576
|
+
} else {
|
|
1577
|
+
const rowid = row ? handleGetRowId(row) : null;
|
|
1578
|
+
const rowRest = rowid ? fullAllDataRowIdData[rowid] : null;
|
|
1579
|
+
if (rowRest) {
|
|
1580
|
+
mergeRowIndex = rowRest._index;
|
|
1581
|
+
}
|
|
1552
1582
|
}
|
|
1553
1583
|
if (_xeUtils.default.isNumber(col)) {
|
|
1554
|
-
|
|
1584
|
+
mergeColumnIndex = col;
|
|
1585
|
+
} else {
|
|
1586
|
+
const colid = col ? col.id : null;
|
|
1587
|
+
const colRest = colid ? fullColumnIdData[colid] : null;
|
|
1588
|
+
if (colRest) {
|
|
1589
|
+
mergeColumnIndex = colRest._index;
|
|
1590
|
+
}
|
|
1555
1591
|
}
|
|
1556
|
-
if (
|
|
1592
|
+
if (mergeRowIndex > -1 && mergeColumnIndex > -1 && (rowspan || colspan)) {
|
|
1557
1593
|
rowspan = _xeUtils.default.toNumber(rowspan) || 1;
|
|
1558
1594
|
colspan = _xeUtils.default.toNumber(colspan) || 1;
|
|
1559
1595
|
if (rowspan > 1 || colspan > 1) {
|
|
1560
|
-
const
|
|
1561
|
-
const
|
|
1596
|
+
const row = afterFullData[mergeRowIndex];
|
|
1597
|
+
const column = visibleColumn[mergeColumnIndex];
|
|
1598
|
+
let mergeItem = mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`];
|
|
1562
1599
|
if (mergeItem) {
|
|
1563
1600
|
mergeItem.rowspan = rowspan;
|
|
1564
1601
|
mergeItem.colspan = colspan;
|
|
1565
1602
|
mergeItem._rowspan = rowspan;
|
|
1566
1603
|
mergeItem._colspan = colspan;
|
|
1567
1604
|
} else {
|
|
1568
|
-
|
|
1569
|
-
const mergeColIndex = visibleColumn.indexOf(col);
|
|
1570
|
-
mList.push({
|
|
1605
|
+
mergeItem = {
|
|
1571
1606
|
row: mergeRowIndex,
|
|
1572
|
-
col:
|
|
1607
|
+
col: mergeColumnIndex,
|
|
1573
1608
|
rowspan,
|
|
1574
1609
|
colspan,
|
|
1575
1610
|
_row: row,
|
|
1576
|
-
_col:
|
|
1611
|
+
_col: column,
|
|
1577
1612
|
_rowspan: rowspan,
|
|
1578
1613
|
_colspan: colspan
|
|
1579
|
-
}
|
|
1614
|
+
};
|
|
1615
|
+
mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`] = mergeItem;
|
|
1616
|
+
mergeBodyList.push(mergeItem);
|
|
1580
1617
|
}
|
|
1581
1618
|
}
|
|
1582
1619
|
}
|
|
1583
1620
|
});
|
|
1584
1621
|
}
|
|
1585
|
-
}
|
|
1622
|
+
};
|
|
1623
|
+
const handleFooterMerge = ($xeTable, merges) => {
|
|
1624
|
+
const reactData = $xeTable;
|
|
1625
|
+
const internalData = $xeTable;
|
|
1626
|
+
const {
|
|
1627
|
+
footerTableData
|
|
1628
|
+
} = reactData;
|
|
1629
|
+
const {
|
|
1630
|
+
mergeFooterList,
|
|
1631
|
+
mergeFooterMaps
|
|
1632
|
+
} = internalData;
|
|
1633
|
+
if (merges) {
|
|
1634
|
+
const {
|
|
1635
|
+
visibleColumn
|
|
1636
|
+
} = internalData;
|
|
1637
|
+
if (!_xeUtils.default.isArray(merges)) {
|
|
1638
|
+
merges = [merges];
|
|
1639
|
+
}
|
|
1640
|
+
merges.forEach(item => {
|
|
1641
|
+
let {
|
|
1642
|
+
row: margeRow,
|
|
1643
|
+
col: margeCol,
|
|
1644
|
+
rowspan,
|
|
1645
|
+
colspan
|
|
1646
|
+
} = item;
|
|
1647
|
+
const mergeRowIndex = _xeUtils.default.isNumber(margeRow) ? margeRow : -1;
|
|
1648
|
+
let mergeColumnIndex = -1;
|
|
1649
|
+
if (_xeUtils.default.isNumber(margeCol)) {
|
|
1650
|
+
mergeColumnIndex = margeCol;
|
|
1651
|
+
}
|
|
1652
|
+
if (mergeRowIndex > -1 && mergeColumnIndex > -1 && (rowspan || colspan)) {
|
|
1653
|
+
rowspan = _xeUtils.default.toNumber(rowspan) || 1;
|
|
1654
|
+
colspan = _xeUtils.default.toNumber(colspan) || 1;
|
|
1655
|
+
if (rowspan > 1 || colspan > 1) {
|
|
1656
|
+
const row = footerTableData[mergeRowIndex];
|
|
1657
|
+
const column = visibleColumn[mergeColumnIndex];
|
|
1658
|
+
let mergeItem = mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`];
|
|
1659
|
+
if (mergeItem) {
|
|
1660
|
+
mergeItem.rowspan = rowspan;
|
|
1661
|
+
mergeItem.colspan = colspan;
|
|
1662
|
+
mergeItem._rowspan = rowspan;
|
|
1663
|
+
mergeItem._colspan = colspan;
|
|
1664
|
+
} else {
|
|
1665
|
+
mergeItem = {
|
|
1666
|
+
row: mergeRowIndex,
|
|
1667
|
+
col: mergeColumnIndex,
|
|
1668
|
+
rowspan,
|
|
1669
|
+
colspan,
|
|
1670
|
+
_row: row,
|
|
1671
|
+
_col: column,
|
|
1672
|
+
_rowspan: rowspan,
|
|
1673
|
+
_colspan: colspan
|
|
1674
|
+
};
|
|
1675
|
+
mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`] = mergeItem;
|
|
1676
|
+
mergeFooterList.push(mergeItem);
|
|
1677
|
+
}
|
|
1678
|
+
}
|
|
1679
|
+
}
|
|
1680
|
+
});
|
|
1681
|
+
}
|
|
1682
|
+
};
|
|
1586
1683
|
function removeMerges($xeTable, merges, mList, rowList) {
|
|
1587
1684
|
// const props = $xeTable
|
|
1588
1685
|
const internalData = $xeTable;
|
|
@@ -2317,11 +2414,11 @@ function loadScrollXData($xeTable) {
|
|
|
2317
2414
|
const reactData = $xeTable;
|
|
2318
2415
|
const internalData = $xeTable;
|
|
2319
2416
|
const {
|
|
2320
|
-
mergeList,
|
|
2321
|
-
mergeFooterList,
|
|
2322
2417
|
isScrollXBig
|
|
2323
2418
|
} = reactData;
|
|
2324
2419
|
const {
|
|
2420
|
+
mergeBodyList,
|
|
2421
|
+
mergeFooterList,
|
|
2325
2422
|
scrollXStore
|
|
2326
2423
|
} = internalData;
|
|
2327
2424
|
const {
|
|
@@ -2340,7 +2437,7 @@ function loadScrollXData($xeTable) {
|
|
|
2340
2437
|
};
|
|
2341
2438
|
scrollXStore.visibleStartIndex = toVisibleIndex - 1;
|
|
2342
2439
|
scrollXStore.visibleEndIndex = toVisibleIndex + visibleSize + 1;
|
|
2343
|
-
calculateMergerOffsetIndex(
|
|
2440
|
+
calculateMergerOffsetIndex(mergeBodyList.concat(mergeFooterList), offsetItem, 'col');
|
|
2344
2441
|
const {
|
|
2345
2442
|
startIndex: offsetStartIndex,
|
|
2346
2443
|
endIndex: offsetEndIndex
|
|
@@ -2565,11 +2662,11 @@ function loadScrollYData($xeTable) {
|
|
|
2565
2662
|
const reactData = $xeTable;
|
|
2566
2663
|
const internalData = $xeTable;
|
|
2567
2664
|
const {
|
|
2568
|
-
mergeList,
|
|
2569
2665
|
isAllOverflow,
|
|
2570
2666
|
isScrollYBig
|
|
2571
2667
|
} = reactData;
|
|
2572
2668
|
const {
|
|
2669
|
+
mergeBodyList,
|
|
2573
2670
|
scrollYStore
|
|
2574
2671
|
} = internalData;
|
|
2575
2672
|
const {
|
|
@@ -2589,7 +2686,7 @@ function loadScrollYData($xeTable) {
|
|
|
2589
2686
|
};
|
|
2590
2687
|
scrollYStore.visibleStartIndex = toVisibleIndex - 1;
|
|
2591
2688
|
scrollYStore.visibleEndIndex = toVisibleIndex + visibleSize + 1;
|
|
2592
|
-
calculateMergerOffsetIndex(
|
|
2689
|
+
calculateMergerOffsetIndex(mergeBodyList, offsetItem, 'row');
|
|
2593
2690
|
const {
|
|
2594
2691
|
startIndex: offsetStartIndex,
|
|
2595
2692
|
endIndex: offsetEndIndex
|
|
@@ -3023,7 +3120,7 @@ const Methods = {
|
|
|
3023
3120
|
* 对于某些特殊的场景,比如深层树节点元素发生变动时可能会用到
|
|
3024
3121
|
*/
|
|
3025
3122
|
syncData() {
|
|
3026
|
-
(0, _log.
|
|
3123
|
+
(0, _log.errLog)('vxe.error.delFunc', ['syncData', 'getData']);
|
|
3027
3124
|
return this.$nextTick().then(() => {
|
|
3028
3125
|
this.tableData = [];
|
|
3029
3126
|
return this.$nextTick().then(() => this.loadTableData(this.tableFullData, true));
|
|
@@ -3034,38 +3131,43 @@ const Methods = {
|
|
|
3034
3131
|
* 对于手动更改了排序、筛选...等条件后需要重新处理数据时可能会用到
|
|
3035
3132
|
*/
|
|
3036
3133
|
updateData() {
|
|
3134
|
+
const $xeTable = this;
|
|
3135
|
+
const reactData = $xeTable;
|
|
3037
3136
|
const {
|
|
3038
3137
|
scrollXLoad,
|
|
3039
3138
|
scrollYLoad
|
|
3040
|
-
} =
|
|
3041
|
-
return
|
|
3042
|
-
|
|
3139
|
+
} = reactData;
|
|
3140
|
+
return $xeTable.handleTableData(true).then(() => {
|
|
3141
|
+
$xeTable.updateFooter();
|
|
3043
3142
|
if (scrollXLoad || scrollYLoad) {
|
|
3044
3143
|
if (scrollXLoad) {
|
|
3045
|
-
|
|
3144
|
+
$xeTable.updateScrollXSpace();
|
|
3046
3145
|
}
|
|
3047
3146
|
if (scrollYLoad) {
|
|
3048
|
-
|
|
3147
|
+
$xeTable.updateScrollYSpace();
|
|
3049
3148
|
}
|
|
3050
|
-
return
|
|
3149
|
+
return $xeTable.refreshScroll();
|
|
3051
3150
|
}
|
|
3052
3151
|
}).then(() => {
|
|
3053
|
-
|
|
3054
|
-
return
|
|
3152
|
+
$xeTable.updateCellAreas();
|
|
3153
|
+
return $xeTable.recalculate(true);
|
|
3055
3154
|
}).then(() => {
|
|
3056
3155
|
// 存在滚动行为未结束情况
|
|
3057
|
-
setTimeout(() =>
|
|
3156
|
+
setTimeout(() => $xeTable.recalculate(), 50);
|
|
3058
3157
|
});
|
|
3059
3158
|
},
|
|
3060
3159
|
handleTableData(force) {
|
|
3061
3160
|
const $xeTable = this;
|
|
3161
|
+
const reactData = $xeTable;
|
|
3162
|
+
const internalData = $xeTable;
|
|
3163
|
+
const {
|
|
3164
|
+
scrollYLoad
|
|
3165
|
+
} = reactData;
|
|
3062
3166
|
const {
|
|
3063
|
-
scrollYLoad,
|
|
3064
3167
|
scrollYStore,
|
|
3065
|
-
fullDataRowIdData
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
let fullList = afterFullData;
|
|
3168
|
+
fullDataRowIdData
|
|
3169
|
+
} = internalData;
|
|
3170
|
+
let fullList = internalData.afterFullData;
|
|
3069
3171
|
// 是否进行数据处理
|
|
3070
3172
|
if (force) {
|
|
3071
3173
|
// 更新数据,处理筛选和排序
|
|
@@ -3074,14 +3176,17 @@ const Methods = {
|
|
|
3074
3176
|
fullList = handleVirtualTreeToList($xeTable);
|
|
3075
3177
|
}
|
|
3076
3178
|
const tableData = scrollYLoad ? fullList.slice(scrollYStore.startIndex, scrollYStore.endIndex) : fullList.slice(0);
|
|
3179
|
+
const visibleDataRowIdMaps = {};
|
|
3077
3180
|
tableData.forEach((row, $index) => {
|
|
3078
3181
|
const rowid = (0, _util.getRowid)(this, row);
|
|
3079
3182
|
const rest = fullDataRowIdData[rowid];
|
|
3080
3183
|
if (rest) {
|
|
3081
3184
|
rest.$index = $index;
|
|
3082
3185
|
}
|
|
3186
|
+
visibleDataRowIdMaps[rowid] = row;
|
|
3083
3187
|
});
|
|
3084
3188
|
this.tableData = tableData;
|
|
3189
|
+
internalData.visibleDataRowIdData = visibleDataRowIdMaps;
|
|
3085
3190
|
return this.$nextTick();
|
|
3086
3191
|
},
|
|
3087
3192
|
/**
|
|
@@ -3107,6 +3212,7 @@ const Methods = {
|
|
|
3107
3212
|
lastScrollTop
|
|
3108
3213
|
} = internalData;
|
|
3109
3214
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
3215
|
+
const expandOpts = $xeTable.computeExpandOpts;
|
|
3110
3216
|
const {
|
|
3111
3217
|
transform
|
|
3112
3218
|
} = treeOpts;
|
|
@@ -3165,7 +3271,7 @@ const Methods = {
|
|
|
3165
3271
|
internalData.tableFullData = fullData;
|
|
3166
3272
|
internalData.tableFullTreeData = treeData;
|
|
3167
3273
|
// 缓存数据
|
|
3168
|
-
$xeTable.cacheRowMap(
|
|
3274
|
+
$xeTable.cacheRowMap(isReset);
|
|
3169
3275
|
// 原始数据
|
|
3170
3276
|
internalData.tableSynchData = datas;
|
|
3171
3277
|
if (isReset) {
|
|
@@ -3183,6 +3289,7 @@ const Methods = {
|
|
|
3183
3289
|
$xeTable.clearMergeFooterItems();
|
|
3184
3290
|
$xeTable.handleTableData(true);
|
|
3185
3291
|
$xeTable.updateFooter();
|
|
3292
|
+
$xeTable.handleUpdateBodyMerge();
|
|
3186
3293
|
return $xeTable.$nextTick().then(() => {
|
|
3187
3294
|
updateHeight($xeTable);
|
|
3188
3295
|
updateStyle($xeTable);
|
|
@@ -3194,6 +3301,9 @@ const Methods = {
|
|
|
3194
3301
|
scrollYStore.endIndex = scrollYStore.visibleSize;
|
|
3195
3302
|
}
|
|
3196
3303
|
if (sYLoad) {
|
|
3304
|
+
if (reactData.expandColumn && expandOpts.mode !== 'fixed') {
|
|
3305
|
+
(0, _log.errLog)('vxe.error.notConflictProp', ['column.type="expand', 'expand-config.mode="fixed"']);
|
|
3306
|
+
}
|
|
3197
3307
|
// if (showOverflow) {
|
|
3198
3308
|
// if (!rowOpts.height) {
|
|
3199
3309
|
// const errColumn = internalData.tableFullColumn.find((column: any) => column.showOverflow === false)
|
|
@@ -3354,7 +3464,7 @@ const Methods = {
|
|
|
3354
3464
|
/**
|
|
3355
3465
|
* 更新数据行的 Map
|
|
3356
3466
|
*/
|
|
3357
|
-
cacheRowMap() {
|
|
3467
|
+
cacheRowMap(isReset) {
|
|
3358
3468
|
const $xeTable = this;
|
|
3359
3469
|
const props = $xeTable;
|
|
3360
3470
|
const reactData = $xeTable;
|
|
@@ -3374,7 +3484,7 @@ const Methods = {
|
|
|
3374
3484
|
const {
|
|
3375
3485
|
lazy
|
|
3376
3486
|
} = treeOpts;
|
|
3377
|
-
const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
|
|
3487
|
+
const fullAllDataRowIdMaps = isReset ? {} : Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
|
|
3378
3488
|
const fullDataRowIdMaps = {};
|
|
3379
3489
|
const {
|
|
3380
3490
|
handleUpdateRowId
|
|
@@ -4228,10 +4338,14 @@ const Methods = {
|
|
|
4228
4338
|
getCheckboxRecords(isFull) {
|
|
4229
4339
|
const $xeTable = this;
|
|
4230
4340
|
const props = $xeTable;
|
|
4341
|
+
const reactData = $xeTable;
|
|
4231
4342
|
const internalData = $xeTable;
|
|
4232
4343
|
const {
|
|
4233
4344
|
treeConfig
|
|
4234
4345
|
} = props;
|
|
4346
|
+
const {
|
|
4347
|
+
updateCheckboxFlag
|
|
4348
|
+
} = reactData;
|
|
4235
4349
|
const {
|
|
4236
4350
|
tableFullData,
|
|
4237
4351
|
afterFullData,
|
|
@@ -4252,28 +4366,30 @@ const Methods = {
|
|
|
4252
4366
|
} = checkboxOpts;
|
|
4253
4367
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
4254
4368
|
let rowList = [];
|
|
4255
|
-
if (
|
|
4256
|
-
if (
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
const currTableData = isFull ? tableFullData : afterFullData;
|
|
4263
|
-
rowList = currTableData.filter(row => _xeUtils.default.get(row, checkField));
|
|
4264
|
-
}
|
|
4265
|
-
} else {
|
|
4266
|
-
_xeUtils.default.each(selectCheckboxMaps, (row, rowid) => {
|
|
4267
|
-
if (isFull) {
|
|
4268
|
-
if (fullDataRowIdData[rowid]) {
|
|
4269
|
-
rowList.push(fullDataRowIdData[rowid].row);
|
|
4270
|
-
}
|
|
4369
|
+
if (updateCheckboxFlag) {
|
|
4370
|
+
if (checkField) {
|
|
4371
|
+
if (treeConfig) {
|
|
4372
|
+
const currTableData = isFull ? transform ? tableFullTreeData : tableFullData : transform ? afterTreeFullData : afterFullData;
|
|
4373
|
+
rowList = _xeUtils.default.filterTree(currTableData, row => _xeUtils.default.get(row, checkField), {
|
|
4374
|
+
children: transform ? mapChildrenField : childrenField
|
|
4375
|
+
});
|
|
4271
4376
|
} else {
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
}
|
|
4377
|
+
const currTableData = isFull ? tableFullData : afterFullData;
|
|
4378
|
+
rowList = currTableData.filter(row => _xeUtils.default.get(row, checkField));
|
|
4275
4379
|
}
|
|
4276
|
-
}
|
|
4380
|
+
} else {
|
|
4381
|
+
_xeUtils.default.each(selectCheckboxMaps, (row, rowid) => {
|
|
4382
|
+
if (isFull) {
|
|
4383
|
+
if (fullDataRowIdData[rowid]) {
|
|
4384
|
+
rowList.push(fullDataRowIdData[rowid].row);
|
|
4385
|
+
}
|
|
4386
|
+
} else {
|
|
4387
|
+
if (afterFullRowMaps[rowid]) {
|
|
4388
|
+
rowList.push(afterFullRowMaps[rowid]);
|
|
4389
|
+
}
|
|
4390
|
+
}
|
|
4391
|
+
});
|
|
4392
|
+
}
|
|
4277
4393
|
}
|
|
4278
4394
|
return rowList;
|
|
4279
4395
|
},
|
|
@@ -6377,6 +6493,29 @@ const Methods = {
|
|
|
6377
6493
|
this.updateCellAreas();
|
|
6378
6494
|
this.recalculate(true);
|
|
6379
6495
|
},
|
|
6496
|
+
/**
|
|
6497
|
+
* 处理合并
|
|
6498
|
+
*/
|
|
6499
|
+
handleUpdateBodyMerge() {
|
|
6500
|
+
const $xeTable = this;
|
|
6501
|
+
const reactData = $xeTable;
|
|
6502
|
+
const internalData = $xeTable;
|
|
6503
|
+
const {
|
|
6504
|
+
mergeBodyList
|
|
6505
|
+
} = internalData;
|
|
6506
|
+
internalData.mergeBodyCellMaps = buildMergeData(mergeBodyList);
|
|
6507
|
+
reactData.mergeBodyFlag++;
|
|
6508
|
+
},
|
|
6509
|
+
handleUpdateFooterMerge() {
|
|
6510
|
+
const $xeTable = this;
|
|
6511
|
+
const reactData = $xeTable;
|
|
6512
|
+
const internalData = $xeTable;
|
|
6513
|
+
const {
|
|
6514
|
+
mergeFooterList
|
|
6515
|
+
} = internalData;
|
|
6516
|
+
internalData.mergeFooterCellMaps = buildMergeData(mergeFooterList);
|
|
6517
|
+
reactData.mergeFootFlag++;
|
|
6518
|
+
},
|
|
6380
6519
|
handleTargetLeaveEvent() {
|
|
6381
6520
|
const $xeTable = this;
|
|
6382
6521
|
const internalData = $xeTable;
|
|
@@ -10565,26 +10704,33 @@ const Methods = {
|
|
|
10565
10704
|
*/
|
|
10566
10705
|
updateFooter() {
|
|
10567
10706
|
const $xeTable = this;
|
|
10707
|
+
const props = $xeTable;
|
|
10708
|
+
const reactData = $xeTable;
|
|
10709
|
+
const internalData = $xeTable;
|
|
10568
10710
|
const $xeGrid = $xeTable.$xeGrid;
|
|
10569
10711
|
const {
|
|
10570
10712
|
showFooter,
|
|
10571
|
-
visibleColumn,
|
|
10572
10713
|
footerData,
|
|
10573
10714
|
footerMethod
|
|
10574
|
-
} =
|
|
10715
|
+
} = props;
|
|
10716
|
+
const {
|
|
10717
|
+
visibleColumn,
|
|
10718
|
+
afterFullData
|
|
10719
|
+
} = internalData;
|
|
10575
10720
|
let footData = [];
|
|
10576
10721
|
if (showFooter && footerData && footerData.length) {
|
|
10577
10722
|
footData = footerData.slice(0);
|
|
10578
10723
|
} else if (showFooter && footerMethod) {
|
|
10579
10724
|
footData = visibleColumn.length ? footerMethod({
|
|
10580
10725
|
columns: visibleColumn,
|
|
10581
|
-
data:
|
|
10726
|
+
data: afterFullData,
|
|
10582
10727
|
$table: $xeTable,
|
|
10583
10728
|
$grid: $xeGrid
|
|
10584
10729
|
}) : [];
|
|
10585
10730
|
}
|
|
10586
|
-
|
|
10587
|
-
|
|
10731
|
+
reactData.footerTableData = footData;
|
|
10732
|
+
$xeTable.handleUpdateFooterMerge();
|
|
10733
|
+
return $xeTable.$nextTick();
|
|
10588
10734
|
},
|
|
10589
10735
|
/**
|
|
10590
10736
|
* 更新列状态 updateStatus({ row, column }, cellValue)
|
|
@@ -10609,12 +10755,14 @@ const Methods = {
|
|
|
10609
10755
|
*/
|
|
10610
10756
|
setMergeCells(merges) {
|
|
10611
10757
|
const $xeTable = this;
|
|
10612
|
-
|
|
10758
|
+
const props = $xeTable;
|
|
10759
|
+
if (props.spanMethod) {
|
|
10613
10760
|
(0, _log.errLog)('vxe.error.errConflicts', ['merge-cells', 'span-method']);
|
|
10614
10761
|
}
|
|
10615
|
-
|
|
10616
|
-
|
|
10617
|
-
|
|
10762
|
+
handleBodyMerge($xeTable, merges);
|
|
10763
|
+
$xeTable.handleUpdateBodyMerge();
|
|
10764
|
+
return $xeTable.$nextTick().then(() => {
|
|
10765
|
+
$xeTable.updateCellAreas();
|
|
10618
10766
|
return updateStyle($xeTable);
|
|
10619
10767
|
});
|
|
10620
10768
|
},
|
|
@@ -10624,12 +10772,14 @@ const Methods = {
|
|
|
10624
10772
|
*/
|
|
10625
10773
|
removeMergeCells(merges) {
|
|
10626
10774
|
const $xeTable = this;
|
|
10627
|
-
|
|
10775
|
+
const props = $xeTable;
|
|
10776
|
+
const internalData = $xeTable;
|
|
10777
|
+
if (props.spanMethod) {
|
|
10628
10778
|
(0, _log.errLog)('vxe.error.errConflicts', ['merge-cells', 'span-method']);
|
|
10629
10779
|
}
|
|
10630
|
-
const rest = removeMerges(
|
|
10631
|
-
return
|
|
10632
|
-
|
|
10780
|
+
const rest = removeMerges($xeTable, merges, internalData.mergeBodyList, internalData.afterFullData);
|
|
10781
|
+
return $xeTable.$nextTick().then(() => {
|
|
10782
|
+
$xeTable.updateCellAreas();
|
|
10633
10783
|
updateStyle($xeTable);
|
|
10634
10784
|
return rest;
|
|
10635
10785
|
});
|
|
@@ -10638,37 +10788,46 @@ const Methods = {
|
|
|
10638
10788
|
* 获取所有被合并的单元格
|
|
10639
10789
|
*/
|
|
10640
10790
|
getMergeCells() {
|
|
10641
|
-
|
|
10791
|
+
const $xeTable = this;
|
|
10792
|
+
const internalData = $xeTable;
|
|
10793
|
+
return internalData.mergeBodyList.slice(0);
|
|
10642
10794
|
},
|
|
10643
10795
|
/**
|
|
10644
10796
|
* 清除所有单元格合并
|
|
10645
10797
|
*/
|
|
10646
10798
|
clearMergeCells() {
|
|
10647
10799
|
const $xeTable = this;
|
|
10648
|
-
|
|
10649
|
-
|
|
10800
|
+
const internalData = $xeTable;
|
|
10801
|
+
internalData.mergeBodyList = [];
|
|
10802
|
+
internalData.mergeBodyMaps = {};
|
|
10803
|
+
internalData.mergeBodyCellMaps = {};
|
|
10804
|
+
return $xeTable.$nextTick().then(() => {
|
|
10650
10805
|
return updateStyle($xeTable);
|
|
10651
10806
|
});
|
|
10652
10807
|
},
|
|
10653
10808
|
setMergeFooterItems(merges) {
|
|
10654
10809
|
const $xeTable = this;
|
|
10655
|
-
|
|
10810
|
+
const props = $xeTable;
|
|
10811
|
+
if (props.footerSpanMethod) {
|
|
10656
10812
|
(0, _log.errLog)('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
|
|
10657
10813
|
}
|
|
10658
|
-
|
|
10659
|
-
|
|
10660
|
-
|
|
10814
|
+
handleFooterMerge($xeTable, merges);
|
|
10815
|
+
$xeTable.handleUpdateFooterMerge();
|
|
10816
|
+
return $xeTable.$nextTick().then(() => {
|
|
10817
|
+
$xeTable.updateCellAreas();
|
|
10661
10818
|
return updateStyle($xeTable);
|
|
10662
10819
|
});
|
|
10663
10820
|
},
|
|
10664
10821
|
removeMergeFooterItems(merges) {
|
|
10665
10822
|
const $xeTable = this;
|
|
10666
|
-
|
|
10823
|
+
const props = $xeTable;
|
|
10824
|
+
const internalData = $xeTable;
|
|
10825
|
+
if (props.footerSpanMethod) {
|
|
10667
10826
|
(0, _log.errLog)('vxe.error.errConflicts', ['merge-footer-items', 'footer-span-method']);
|
|
10668
10827
|
}
|
|
10669
|
-
const rest = removeMerges(
|
|
10670
|
-
return
|
|
10671
|
-
|
|
10828
|
+
const rest = removeMerges($xeTable, merges, internalData.mergeFooterList);
|
|
10829
|
+
return $xeTable.$nextTick().then(() => {
|
|
10830
|
+
$xeTable.updateCellAreas();
|
|
10672
10831
|
updateStyle($xeTable);
|
|
10673
10832
|
return rest;
|
|
10674
10833
|
});
|
|
@@ -10677,15 +10836,20 @@ const Methods = {
|
|
|
10677
10836
|
* 获取所有被合并的表尾
|
|
10678
10837
|
*/
|
|
10679
10838
|
getMergeFooterItems() {
|
|
10680
|
-
|
|
10839
|
+
const $xeTable = this;
|
|
10840
|
+
const internalData = $xeTable;
|
|
10841
|
+
return internalData.mergeFooterList.slice(0);
|
|
10681
10842
|
},
|
|
10682
10843
|
/**
|
|
10683
10844
|
* 清除所有表尾合并
|
|
10684
10845
|
*/
|
|
10685
10846
|
clearMergeFooterItems() {
|
|
10686
10847
|
const $xeTable = this;
|
|
10687
|
-
|
|
10688
|
-
|
|
10848
|
+
const internalData = $xeTable;
|
|
10849
|
+
internalData.mergeFooterList = [];
|
|
10850
|
+
internalData.mergeFooterMaps = {};
|
|
10851
|
+
internalData.mergeFooterCellMaps = {};
|
|
10852
|
+
return $xeTable.$nextTick().then(() => {
|
|
10689
10853
|
return updateStyle($xeTable);
|
|
10690
10854
|
});
|
|
10691
10855
|
},
|