vxe-table 4.12.0-beta.8 → 4.12.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 +58 -44
- package/es/locale/lang/ar-EG.js +7 -1
- package/es/locale/lang/de-DE.js +7 -1
- package/es/locale/lang/en-US.js +7 -1
- package/es/locale/lang/es-ES.js +7 -1
- package/es/locale/lang/fr-FR.js +7 -1
- package/es/locale/lang/hu-HU.js +7 -1
- package/es/locale/lang/hy-AM.js +7 -1
- package/es/locale/lang/id-ID.js +7 -1
- package/es/locale/lang/it-IT.js +7 -1
- package/es/locale/lang/ja-JP.js +7 -1
- package/es/locale/lang/ko-KR.js +7 -1
- package/es/locale/lang/nb-NO.js +7 -1
- package/es/locale/lang/pt-BR.js +7 -1
- package/es/locale/lang/ru-RU.js +7 -1
- package/es/locale/lang/th-TH.js +7 -1
- package/es/locale/lang/ug-CN.js +7 -1
- package/es/locale/lang/uk-UA.js +7 -1
- package/es/locale/lang/vi-VN.js +7 -1
- package/es/locale/lang/zh-CHT.js +7 -1
- package/es/locale/lang/zh-CN.js +7 -1
- package/es/style.css +1 -1
- package/es/table/module/custom/hook.js +1 -1
- package/es/table/module/custom/panel.js +4 -2
- package/es/table/module/edit/hook.js +11 -12
- package/es/table/module/export/export-panel.js +3 -2
- package/es/table/module/export/import-panel.js +3 -2
- package/es/table/module/filter/panel.js +12 -2
- package/es/table/module/keyboard/hook.js +105 -30
- package/es/table/module/menu/hook.js +2 -1
- package/es/table/module/validator/hook.js +4 -3
- package/es/table/render/index.js +3 -3
- package/es/table/src/body.js +40 -21
- package/es/table/src/cell.js +43 -24
- package/es/table/src/columnInfo.js +2 -2
- package/es/table/src/footer.js +12 -7
- package/es/table/src/header.js +12 -7
- package/es/table/src/props.js +4 -0
- package/es/table/src/table.js +444 -423
- package/es/table/src/util.js +34 -6
- package/es/ui/index.js +2 -1
- package/es/ui/src/log.js +1 -1
- package/helper/vetur/attributes.json +1 -1
- package/helper/vetur/tags.json +1 -1
- package/lib/grid/src/grid.js +55 -48
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +515 -302
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +7 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +7 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +7 -1
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +7 -1
- package/lib/locale/lang/es-ES.js +7 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +7 -1
- package/lib/locale/lang/fr-FR.js +7 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +7 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +7 -1
- package/lib/locale/lang/hy-AM.js +7 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/id-ID.js +7 -1
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/it-IT.js +7 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +7 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +7 -1
- package/lib/locale/lang/ko-KR.js +7 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +7 -1
- package/lib/locale/lang/nb-NO.js +7 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +7 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +7 -1
- package/lib/locale/lang/ru-RU.js +7 -1
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +7 -1
- package/lib/locale/lang/th-TH.js +7 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +7 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +7 -1
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +7 -1
- package/lib/locale/lang/vi-VN.js +7 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +7 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CN.js +7 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +7 -1
- package/lib/style.css +1 -1
- package/lib/table/module/custom/hook.js +1 -1
- package/lib/table/module/custom/hook.min.js +1 -1
- package/lib/table/module/custom/panel.js +4 -2
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/edit/hook.js +13 -13
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/export/export-panel.js +3 -2
- package/lib/table/module/export/export-panel.min.js +1 -1
- package/lib/table/module/export/import-panel.js +3 -2
- package/lib/table/module/export/import-panel.min.js +1 -1
- package/lib/table/module/filter/panel.js +8 -2
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/module/keyboard/hook.js +113 -31
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/module/menu/hook.js +2 -1
- package/lib/table/module/menu/hook.min.js +1 -1
- package/lib/table/module/validator/hook.js +5 -4
- package/lib/table/module/validator/hook.min.js +1 -1
- package/lib/table/render/index.js +4 -3
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +48 -20
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +49 -25
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/columnInfo.js +2 -4
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/footer.js +12 -5
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +12 -5
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/props.js +4 -0
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +534 -459
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +36 -6
- package/lib/table/src/util.min.js +1 -1
- package/lib/ui/index.js +2 -1
- 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 +62 -50
- package/packages/locale/lang/ar-EG.ts +7 -1
- package/packages/locale/lang/de-DE.ts +7 -1
- package/packages/locale/lang/en-US.ts +7 -1
- package/packages/locale/lang/es-ES.ts +7 -1
- package/packages/locale/lang/fr-FR.ts +7 -1
- package/packages/locale/lang/hu-HU.ts +7 -1
- package/packages/locale/lang/hy-AM.ts +7 -1
- package/packages/locale/lang/id-ID.ts +7 -1
- package/packages/locale/lang/it-IT.ts +7 -1
- package/packages/locale/lang/ja-JP.ts +7 -1
- package/packages/locale/lang/ko-KR.ts +7 -1
- package/packages/locale/lang/nb-NO.ts +7 -1
- package/packages/locale/lang/pt-BR.ts +7 -1
- package/packages/locale/lang/ru-RU.ts +7 -1
- package/packages/locale/lang/th-TH.ts +7 -1
- package/packages/locale/lang/ug-CN.ts +7 -1
- package/packages/locale/lang/uk-UA.ts +7 -1
- package/packages/locale/lang/vi-VN.ts +7 -1
- package/packages/locale/lang/zh-CHT.ts +7 -1
- package/packages/locale/lang/zh-CN.ts +7 -1
- package/packages/table/module/custom/hook.ts +1 -1
- package/packages/table/module/custom/panel.ts +6 -2
- package/packages/table/module/edit/hook.ts +12 -12
- package/packages/table/module/export/export-panel.ts +4 -2
- package/packages/table/module/export/import-panel.ts +4 -2
- package/packages/table/module/filter/panel.ts +12 -2
- package/packages/table/module/keyboard/hook.ts +106 -32
- package/packages/table/module/menu/hook.ts +3 -1
- package/packages/table/module/validator/hook.ts +5 -3
- package/packages/table/render/index.ts +3 -4
- package/packages/table/src/body.ts +41 -21
- package/packages/table/src/cell.ts +43 -24
- package/packages/table/src/columnInfo.ts +3 -2
- package/packages/table/src/footer.ts +13 -7
- package/packages/table/src/header.ts +13 -7
- package/packages/table/src/props.ts +4 -0
- package/packages/table/src/table.ts +451 -421
- package/packages/table/src/util.ts +39 -6
- package/packages/ui/index.ts +1 -0
- /package/es/{iconfont.1741333670965.ttf → iconfont.1742955995631.ttf} +0 -0
- /package/es/{iconfont.1741333670965.woff → iconfont.1742955995631.woff} +0 -0
- /package/es/{iconfont.1741333670965.woff2 → iconfont.1742955995631.woff2} +0 -0
- /package/lib/{iconfont.1741333670965.ttf → iconfont.1742955995631.ttf} +0 -0
- /package/lib/{iconfont.1741333670965.woff → iconfont.1742955995631.woff} +0 -0
- /package/lib/{iconfont.1741333670965.woff2 → iconfont.1742955995631.woff2} +0 -0
package/es/table/src/table.js
CHANGED
|
@@ -9,7 +9,7 @@ import TableHeaderComponent from './header';
|
|
|
9
9
|
import TableFooterComponent from './footer';
|
|
10
10
|
import tableProps from './props';
|
|
11
11
|
import tableEmits from './emits';
|
|
12
|
-
import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth,
|
|
12
|
+
import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId } from './util';
|
|
13
13
|
import { getSlotVNs } from '../../ui/src/vn';
|
|
14
14
|
import { warnLog, errLog } from '../../ui/src/log';
|
|
15
15
|
import TableCustomPanelComponent from '../module/custom/panel';
|
|
@@ -18,6 +18,7 @@ import TableImportPanelComponent from '../module/export/import-panel';
|
|
|
18
18
|
import TableExportPanelComponent from '../module/export/export-panel';
|
|
19
19
|
import TableMenuPanelComponent from '../module/menu/panel';
|
|
20
20
|
const { getConfig, getIcon, getI18n, renderer, formats, createEvent, globalResize, interceptor, hooks, globalEvents, GLOBAL_EVENT_KEYS, useFns, renderEmptyElement } = VxeUI;
|
|
21
|
+
const supportMaxRow = 5e6;
|
|
21
22
|
const customStorageKey = 'VXE_CUSTOM_STORE';
|
|
22
23
|
const maxYHeight = 5e6;
|
|
23
24
|
const maxXWidth = 5e6;
|
|
@@ -67,8 +68,6 @@ export default defineComponent({
|
|
|
67
68
|
isAllSelected: false,
|
|
68
69
|
// 复选框属性,有选中且非全选状态
|
|
69
70
|
isIndeterminate: false,
|
|
70
|
-
// 复选框属性,已选中的行集合
|
|
71
|
-
selectCheckboxMaps: {},
|
|
72
71
|
// 当前行
|
|
73
72
|
currentRow: null,
|
|
74
73
|
// 单选框属性,选中列
|
|
@@ -82,16 +81,6 @@ export default defineComponent({
|
|
|
82
81
|
// 树节点列信息
|
|
83
82
|
treeNodeColumn: null,
|
|
84
83
|
hasFixedColumn: false,
|
|
85
|
-
// 已展开的行集合
|
|
86
|
-
rowExpandedMaps: {},
|
|
87
|
-
// 懒加载中的展开行的集合
|
|
88
|
-
rowExpandLazyLoadedMaps: {},
|
|
89
|
-
// 已展开树节点集合
|
|
90
|
-
treeExpandedMaps: {},
|
|
91
|
-
// 懒加载中的树节点的集合
|
|
92
|
-
treeExpandLazyLoadedMaps: {},
|
|
93
|
-
// 树节点不确定状态的集合
|
|
94
|
-
treeIndeterminateMaps: {},
|
|
95
84
|
// 合并单元格的对象集
|
|
96
85
|
mergeList: [],
|
|
97
86
|
// 合并表尾数据的对象集
|
|
@@ -100,8 +89,6 @@ export default defineComponent({
|
|
|
100
89
|
upDataFlag: 0,
|
|
101
90
|
// 刷新列标识,当列的特定属性被改变时,触发表格刷新列
|
|
102
91
|
reColumnFlag: 0,
|
|
103
|
-
// 已标记的对象集
|
|
104
|
-
pendingRowMaps: {},
|
|
105
92
|
// 初始化标识
|
|
106
93
|
initStore: {
|
|
107
94
|
filter: false,
|
|
@@ -245,6 +232,10 @@ export default defineComponent({
|
|
|
245
232
|
isHeader: false,
|
|
246
233
|
isFooter: false
|
|
247
234
|
},
|
|
235
|
+
rowExpandedFlag: 1,
|
|
236
|
+
treeExpandedFlag: 1,
|
|
237
|
+
updateCheckboxFlag: 1,
|
|
238
|
+
pendingRowFlag: 1,
|
|
248
239
|
rowHeightStore: {
|
|
249
240
|
default: 48,
|
|
250
241
|
medium: 44,
|
|
@@ -261,6 +252,7 @@ export default defineComponent({
|
|
|
261
252
|
rowExpandHeightFlag: 1,
|
|
262
253
|
calcCellHeightFlag: 1,
|
|
263
254
|
resizeHeightFlag: 1,
|
|
255
|
+
resizeWidthFlag: 1,
|
|
264
256
|
isCustomStatus: false,
|
|
265
257
|
isDragRowMove: false,
|
|
266
258
|
dragRow: null,
|
|
@@ -344,6 +336,18 @@ export default defineComponent({
|
|
|
344
336
|
fullColumnIdData: {},
|
|
345
337
|
fullColumnFieldData: {},
|
|
346
338
|
// prevDragRow: null,
|
|
339
|
+
// 已展开的行集合
|
|
340
|
+
rowExpandedMaps: {},
|
|
341
|
+
// 懒加载中的展开行的集合
|
|
342
|
+
rowExpandLazyLoadedMaps: {},
|
|
343
|
+
// 已展开树节点集合
|
|
344
|
+
treeExpandedMaps: {},
|
|
345
|
+
// 懒加载中的树节点的集合
|
|
346
|
+
treeExpandLazyLoadedMaps: {},
|
|
347
|
+
// 复选框属性,已选中的行集合
|
|
348
|
+
selectCheckboxMaps: {},
|
|
349
|
+
// 已标记的对象集
|
|
350
|
+
pendingRowMaps: {},
|
|
347
351
|
inited: false,
|
|
348
352
|
tooltipTimeout: null,
|
|
349
353
|
initStatus: false,
|
|
@@ -464,18 +468,36 @@ export default defineComponent({
|
|
|
464
468
|
const computeColumnOpts = computed(() => {
|
|
465
469
|
return Object.assign({}, getConfig().table.columnConfig, props.columnConfig);
|
|
466
470
|
});
|
|
471
|
+
const computeCurrentColumnOpts = computed(() => {
|
|
472
|
+
return Object.assign({}, getConfig().table.currentColumnConfig, props.currentColumnConfig);
|
|
473
|
+
});
|
|
467
474
|
const computeCellOpts = computed(() => {
|
|
468
|
-
|
|
475
|
+
const cellOpts = Object.assign({}, getConfig().table.cellConfig, props.cellConfig);
|
|
476
|
+
if (cellOpts.height) {
|
|
477
|
+
cellOpts.height = XEUtils.toNumber(cellOpts.height);
|
|
478
|
+
}
|
|
479
|
+
return cellOpts;
|
|
469
480
|
});
|
|
470
481
|
const computeHeaderCellOpts = computed(() => {
|
|
471
|
-
|
|
482
|
+
const headerCellOpts = Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig);
|
|
483
|
+
if (headerCellOpts.height) {
|
|
484
|
+
headerCellOpts.height = XEUtils.toNumber(headerCellOpts.height);
|
|
485
|
+
}
|
|
486
|
+
return headerCellOpts;
|
|
472
487
|
});
|
|
473
488
|
const computeFooterCellOpts = computed(() => {
|
|
474
|
-
|
|
489
|
+
const footerCellOpts = Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig);
|
|
490
|
+
if (footerCellOpts.height) {
|
|
491
|
+
footerCellOpts.height = XEUtils.toNumber(footerCellOpts.height);
|
|
492
|
+
}
|
|
493
|
+
return footerCellOpts;
|
|
475
494
|
});
|
|
476
495
|
const computeRowOpts = computed(() => {
|
|
477
496
|
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
|
|
478
497
|
});
|
|
498
|
+
const computeCurrentRowOpts = computed(() => {
|
|
499
|
+
return Object.assign({}, getConfig().table.currentRowConfig, props.currentRowConfig);
|
|
500
|
+
});
|
|
479
501
|
const computeRowDragOpts = computed(() => {
|
|
480
502
|
return Object.assign({}, getConfig().table.rowDragConfig, props.rowDragConfig);
|
|
481
503
|
});
|
|
@@ -616,12 +638,14 @@ export default defineComponent({
|
|
|
616
638
|
return Object.assign({}, getConfig().table.customConfig, props.customConfig);
|
|
617
639
|
});
|
|
618
640
|
const computeTableRowExpandedList = computed(() => {
|
|
619
|
-
const {
|
|
641
|
+
const { rowExpandedFlag, tableData, expandColumn } = reactData;
|
|
642
|
+
const { rowExpandedMaps } = internalData;
|
|
643
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
620
644
|
const expandList = [];
|
|
621
|
-
if (expandColumn) {
|
|
645
|
+
if (expandColumn && rowExpandedFlag) {
|
|
622
646
|
const rowKeys = {};
|
|
623
647
|
tableData.forEach(row => {
|
|
624
|
-
rowKeys[
|
|
648
|
+
rowKeys[handleGetRowId(row)] = true;
|
|
625
649
|
});
|
|
626
650
|
XEUtils.each(rowExpandedMaps, (row, rowid) => {
|
|
627
651
|
if (rowKeys[rowid]) {
|
|
@@ -734,13 +758,16 @@ export default defineComponent({
|
|
|
734
758
|
computeScrollbarXToTop,
|
|
735
759
|
computeScrollbarYToLeft,
|
|
736
760
|
computeColumnOpts,
|
|
761
|
+
computeCurrentColumnOpts,
|
|
737
762
|
computeScrollXThreshold,
|
|
738
763
|
computeScrollYThreshold,
|
|
764
|
+
computeRowHeightMaps,
|
|
739
765
|
computeDefaultRowHeight,
|
|
740
766
|
computeCellOpts,
|
|
741
767
|
computeHeaderCellOpts,
|
|
742
768
|
computeFooterCellOpts,
|
|
743
769
|
computeRowOpts,
|
|
770
|
+
computeCurrentRowOpts,
|
|
744
771
|
computeRowDragOpts,
|
|
745
772
|
computeColumnDragOpts,
|
|
746
773
|
computeResizeOpts,
|
|
@@ -788,6 +815,7 @@ export default defineComponent({
|
|
|
788
815
|
internalData,
|
|
789
816
|
getRefMaps: () => refMaps,
|
|
790
817
|
getComputeMaps: () => computeMaps,
|
|
818
|
+
xeGrid: $xeGrid,
|
|
791
819
|
xegrid: $xeGrid
|
|
792
820
|
};
|
|
793
821
|
const eqCellValue = (row1, row2, field) => {
|
|
@@ -942,12 +970,13 @@ export default defineComponent({
|
|
|
942
970
|
visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1;
|
|
943
971
|
}
|
|
944
972
|
else {
|
|
973
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
945
974
|
let leftIndex = 0;
|
|
946
975
|
let rightIndex = afterFullData.length;
|
|
947
976
|
while (leftIndex < rightIndex) {
|
|
948
977
|
const rIndex = Math.floor((leftIndex + rightIndex) / 2);
|
|
949
978
|
const row = afterFullData[rIndex];
|
|
950
|
-
const rowid =
|
|
979
|
+
const rowid = handleGetRowId(row);
|
|
951
980
|
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
952
981
|
if (rowRest.oTop <= startTop) {
|
|
953
982
|
leftIndex = rIndex + 1;
|
|
@@ -959,7 +988,7 @@ export default defineComponent({
|
|
|
959
988
|
toVisibleIndex = Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0);
|
|
960
989
|
for (let rIndex = toVisibleIndex, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
|
|
961
990
|
const row = afterFullData[rIndex];
|
|
962
|
-
const rowid =
|
|
991
|
+
const rowid = handleGetRowId(row);
|
|
963
992
|
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
964
993
|
visibleSize++;
|
|
965
994
|
if (rowRest.oTop > endTop || visibleSize >= 100) {
|
|
@@ -1198,7 +1227,7 @@ export default defineComponent({
|
|
|
1198
1227
|
}
|
|
1199
1228
|
else {
|
|
1200
1229
|
if ((storage && !type) || (columnOpts.drag && (isCrossDrag || isSelfToChildDrag))) {
|
|
1201
|
-
errLog('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field
|
|
1230
|
+
errLog('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field=?`]);
|
|
1202
1231
|
}
|
|
1203
1232
|
}
|
|
1204
1233
|
if (!hasFixed && fixed) {
|
|
@@ -1442,6 +1471,7 @@ export default defineComponent({
|
|
|
1442
1471
|
internalData.headerHeight = headerHeight;
|
|
1443
1472
|
internalData.footerHeight = footerHeight;
|
|
1444
1473
|
reactData.overflowX = overflowX;
|
|
1474
|
+
reactData.resizeWidthFlag++;
|
|
1445
1475
|
updateColumnOffsetLeft();
|
|
1446
1476
|
updateHeight();
|
|
1447
1477
|
reactData.parentHeight = Math.max(internalData.headerHeight + footerHeight + 20, $xeTable.getParentHeight());
|
|
@@ -1467,9 +1497,10 @@ export default defineComponent({
|
|
|
1467
1497
|
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
1468
1498
|
const el = refElem.value;
|
|
1469
1499
|
if (!isAllOverflow && scrollYLoad && el) {
|
|
1500
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
1470
1501
|
el.setAttribute('data-calc-row', 'Y');
|
|
1471
1502
|
tableData.forEach(row => {
|
|
1472
|
-
const rowid =
|
|
1503
|
+
const rowid = handleGetRowId(row);
|
|
1473
1504
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
1474
1505
|
if (rowRest) {
|
|
1475
1506
|
const reHeight = calcCellAutoHeight(rowRest, el);
|
|
@@ -1505,9 +1536,10 @@ export default defineComponent({
|
|
|
1505
1536
|
const updateAfterListIndex = () => {
|
|
1506
1537
|
const { treeConfig } = props;
|
|
1507
1538
|
const { afterFullData, fullDataRowIdData, fullAllDataRowIdData } = internalData;
|
|
1539
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
1508
1540
|
const fullMaps = {};
|
|
1509
1541
|
afterFullData.forEach((row, index) => {
|
|
1510
|
-
const rowid =
|
|
1542
|
+
const rowid = handleGetRowId(row);
|
|
1511
1543
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
1512
1544
|
const seq = index + 1;
|
|
1513
1545
|
if (rowRest) {
|
|
@@ -1537,8 +1569,9 @@ export default defineComponent({
|
|
|
1537
1569
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
1538
1570
|
const fullMaps = {};
|
|
1539
1571
|
if (treeConfig) {
|
|
1572
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
1540
1573
|
XEUtils.eachTree(afterTreeFullData, (row, index, items, path) => {
|
|
1541
|
-
const rowid =
|
|
1574
|
+
const rowid = handleGetRowId(row);
|
|
1542
1575
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
1543
1576
|
const seq = path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('');
|
|
1544
1577
|
if (rowRest) {
|
|
@@ -1565,16 +1598,16 @@ export default defineComponent({
|
|
|
1565
1598
|
*/
|
|
1566
1599
|
const handleVirtualTreeToList = () => {
|
|
1567
1600
|
const { treeConfig } = props;
|
|
1568
|
-
const { treeExpandedMaps } =
|
|
1569
|
-
const { fullAllDataRowIdData } = internalData;
|
|
1601
|
+
const { fullAllDataRowIdData, treeExpandedMaps } = internalData;
|
|
1570
1602
|
const treeOpts = computeTreeOpts.value;
|
|
1571
1603
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
1572
1604
|
if (treeConfig && treeOpts.transform) {
|
|
1605
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
1573
1606
|
const fullData = [];
|
|
1574
1607
|
const expandMaps = {};
|
|
1575
1608
|
XEUtils.eachTree(internalData.afterTreeFullData, (row, index, items, path, parentRow) => {
|
|
1576
|
-
const rowid =
|
|
1577
|
-
const parentRowid =
|
|
1609
|
+
const rowid = handleGetRowId(row);
|
|
1610
|
+
const parentRowid = handleGetRowId(parentRow);
|
|
1578
1611
|
if (!parentRow || (expandMaps[parentRowid] && treeExpandedMaps[parentRowid])) {
|
|
1579
1612
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
1580
1613
|
if (rowRest) {
|
|
@@ -1602,7 +1635,7 @@ export default defineComponent({
|
|
|
1602
1635
|
const treeOpts = computeTreeOpts.value;
|
|
1603
1636
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
1604
1637
|
const { transform, rowField, parentField, mapChildrenField } = treeOpts;
|
|
1605
|
-
const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts;
|
|
1638
|
+
const { isEvery, remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts;
|
|
1606
1639
|
const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts;
|
|
1607
1640
|
let tableData = [];
|
|
1608
1641
|
let tableTree = [];
|
|
@@ -1661,7 +1694,7 @@ export default defineComponent({
|
|
|
1661
1694
|
// 筛选虚拟树
|
|
1662
1695
|
tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, {
|
|
1663
1696
|
original: true,
|
|
1664
|
-
isEvery
|
|
1697
|
+
isEvery,
|
|
1665
1698
|
children: mapChildrenField,
|
|
1666
1699
|
mapChildren: childrenField
|
|
1667
1700
|
});
|
|
@@ -1677,7 +1710,7 @@ export default defineComponent({
|
|
|
1677
1710
|
// 还原虚拟树
|
|
1678
1711
|
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
|
|
1679
1712
|
original: true,
|
|
1680
|
-
isEvery
|
|
1713
|
+
isEvery,
|
|
1681
1714
|
children: mapChildrenField,
|
|
1682
1715
|
mapChildren: childrenField
|
|
1683
1716
|
});
|
|
@@ -1727,7 +1760,7 @@ export default defineComponent({
|
|
|
1727
1760
|
// 还原虚拟树
|
|
1728
1761
|
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
|
|
1729
1762
|
original: true,
|
|
1730
|
-
isEvery
|
|
1763
|
+
isEvery,
|
|
1731
1764
|
children: treeOpts.mapChildrenField,
|
|
1732
1765
|
mapChildren: childrenField
|
|
1733
1766
|
});
|
|
@@ -1745,7 +1778,7 @@ export default defineComponent({
|
|
|
1745
1778
|
const updateStyle = () => {
|
|
1746
1779
|
const { border, showHeaderOverflow: allColumnHeaderOverflow, showFooterOverflow: allColumnFooterOverflow, mouseConfig, spanMethod, footerSpanMethod } = props;
|
|
1747
1780
|
const { isGroup, currentRow, tableColumn, scrollXLoad, scrollYLoad, overflowX, scrollbarWidth, overflowY, scrollbarHeight, scrollXWidth, columnStore, editStore, isAllOverflow, expandColumn } = reactData;
|
|
1748
|
-
const { visibleColumn,
|
|
1781
|
+
const { visibleColumn, tableHeight, headerHeight, footerHeight, elemStore, customHeight, customMinHeight, customMaxHeight } = internalData;
|
|
1749
1782
|
const el = refElem.value;
|
|
1750
1783
|
if (!el) {
|
|
1751
1784
|
return;
|
|
@@ -1754,7 +1787,6 @@ export default defineComponent({
|
|
|
1754
1787
|
const osbWidth = overflowY ? scrollbarWidth : 0;
|
|
1755
1788
|
const osbHeight = overflowX ? scrollbarHeight : 0;
|
|
1756
1789
|
const emptyPlaceholderElem = refEmptyPlaceholder.value;
|
|
1757
|
-
const cellOffsetWidth = computeCellOffsetWidth.value;
|
|
1758
1790
|
const mouseOpts = computeMouseOpts.value;
|
|
1759
1791
|
const expandOpts = computeExpandOpts.value;
|
|
1760
1792
|
const bodyWrapperElem = getRefElem(elemStore['main-body-wrapper']);
|
|
@@ -2022,56 +2054,6 @@ export default defineComponent({
|
|
|
2022
2054
|
tableElem.style.width = tWidth ? `${tWidth}px` : '';
|
|
2023
2055
|
}
|
|
2024
2056
|
}
|
|
2025
|
-
const colgroupElem = getRefElem(elemStore[`${name}-${layout}-colgroup`]);
|
|
2026
|
-
if (colgroupElem) {
|
|
2027
|
-
XEUtils.arrayEach(colgroupElem.children, (colElem) => {
|
|
2028
|
-
const colid = colElem.getAttribute('name');
|
|
2029
|
-
if (fullColumnIdData[colid]) {
|
|
2030
|
-
const colRest = fullColumnIdData[colid];
|
|
2031
|
-
const column = colRest.column;
|
|
2032
|
-
const { showHeaderOverflow, showFooterOverflow, showOverflow } = column;
|
|
2033
|
-
let cellOverflow;
|
|
2034
|
-
colElem.style.width = `${column.renderWidth}px`;
|
|
2035
|
-
if (layout === 'header') {
|
|
2036
|
-
cellOverflow = XEUtils.isUndefined(showHeaderOverflow) || XEUtils.isNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
|
|
2037
|
-
}
|
|
2038
|
-
else if (layout === 'footer') {
|
|
2039
|
-
cellOverflow = XEUtils.isUndefined(showFooterOverflow) || XEUtils.isNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
|
|
2040
|
-
}
|
|
2041
|
-
else {
|
|
2042
|
-
cellOverflow = XEUtils.isUndefined(showOverflow) || XEUtils.isNull(showOverflow) ? isAllOverflow : showOverflow;
|
|
2043
|
-
}
|
|
2044
|
-
const showEllipsis = cellOverflow === 'ellipsis';
|
|
2045
|
-
const showTitle = cellOverflow === 'title';
|
|
2046
|
-
const showTooltip = cellOverflow === true || cellOverflow === 'tooltip';
|
|
2047
|
-
let hasEllipsis = showTitle || showTooltip || showEllipsis;
|
|
2048
|
-
const listElem = getRefElem(elemStore[`${name}-${layout}-list`]);
|
|
2049
|
-
// 纵向虚拟滚动不支持动态行高
|
|
2050
|
-
if (scrollYLoad && !hasEllipsis) {
|
|
2051
|
-
hasEllipsis = true;
|
|
2052
|
-
}
|
|
2053
|
-
if (listElem) {
|
|
2054
|
-
XEUtils.arrayEach(listElem.querySelectorAll(`.${column.id}`), (elem) => {
|
|
2055
|
-
const colspan = parseInt(elem.getAttribute('colspan') || 1);
|
|
2056
|
-
const cellElem = elem.querySelector('.vxe-cell');
|
|
2057
|
-
let colWidth = column.renderWidth;
|
|
2058
|
-
if (cellElem) {
|
|
2059
|
-
if (colspan > 1) {
|
|
2060
|
-
const columnIndex = $xeTable.getColumnIndex(column);
|
|
2061
|
-
for (let index = 1; index < colspan; index++) {
|
|
2062
|
-
const nextColumn = $xeTable.getColumns(columnIndex + index);
|
|
2063
|
-
if (nextColumn) {
|
|
2064
|
-
colWidth += nextColumn.renderWidth;
|
|
2065
|
-
}
|
|
2066
|
-
}
|
|
2067
|
-
}
|
|
2068
|
-
cellElem.style.width = hasEllipsis ? `${colWidth - (cellOffsetWidth * colspan)}px` : '';
|
|
2069
|
-
}
|
|
2070
|
-
});
|
|
2071
|
-
}
|
|
2072
|
-
}
|
|
2073
|
-
});
|
|
2074
|
-
}
|
|
2075
2057
|
});
|
|
2076
2058
|
});
|
|
2077
2059
|
if (currentRow) {
|
|
@@ -2232,12 +2214,12 @@ export default defineComponent({
|
|
|
2232
2214
|
};
|
|
2233
2215
|
const handleCheckedAllCheckboxRow = (checked, isForce) => {
|
|
2234
2216
|
const { treeConfig } = props;
|
|
2235
|
-
const { selectCheckboxMaps } =
|
|
2236
|
-
const { afterFullData, checkboxReserveRowMap } = internalData;
|
|
2217
|
+
const { afterFullData, checkboxReserveRowMap, selectCheckboxMaps } = internalData;
|
|
2237
2218
|
const treeOpts = computeTreeOpts.value;
|
|
2238
2219
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
2239
2220
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
2240
2221
|
const { checkField, reserve, checkMethod } = checkboxOpts;
|
|
2222
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
2241
2223
|
// indeterminateField 仅支持读取
|
|
2242
2224
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
2243
2225
|
const selectRowMaps = {};
|
|
@@ -2249,7 +2231,7 @@ export default defineComponent({
|
|
|
2249
2231
|
const checkValFn = (row) => {
|
|
2250
2232
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
2251
2233
|
if (checked) {
|
|
2252
|
-
selectRowMaps[
|
|
2234
|
+
selectRowMaps[handleGetRowId(row)] = row;
|
|
2253
2235
|
}
|
|
2254
2236
|
XEUtils.set(row, checkField, checked);
|
|
2255
2237
|
}
|
|
@@ -2279,7 +2261,8 @@ export default defineComponent({
|
|
|
2279
2261
|
*/
|
|
2280
2262
|
XEUtils.eachTree(afterFullData, (row) => {
|
|
2281
2263
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
2282
|
-
|
|
2264
|
+
const rowid = handleGetRowId(row);
|
|
2265
|
+
selectRowMaps[rowid] = row;
|
|
2283
2266
|
}
|
|
2284
2267
|
}, { children: childrenField });
|
|
2285
2268
|
}
|
|
@@ -2290,7 +2273,7 @@ export default defineComponent({
|
|
|
2290
2273
|
*/
|
|
2291
2274
|
if (!isForce && checkMethod) {
|
|
2292
2275
|
XEUtils.eachTree(afterFullData, (row) => {
|
|
2293
|
-
const rowid =
|
|
2276
|
+
const rowid = handleGetRowId(row);
|
|
2294
2277
|
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
2295
2278
|
selectRowMaps[rowid] = row;
|
|
2296
2279
|
}
|
|
@@ -2307,7 +2290,7 @@ export default defineComponent({
|
|
|
2307
2290
|
*/
|
|
2308
2291
|
if (!isForce && checkMethod) {
|
|
2309
2292
|
afterFullData.forEach((row) => {
|
|
2310
|
-
const rowid =
|
|
2293
|
+
const rowid = handleGetRowId(row);
|
|
2311
2294
|
if (selectCheckboxMaps[rowid] || checkMethod({ row })) {
|
|
2312
2295
|
selectRowMaps[rowid] = row;
|
|
2313
2296
|
}
|
|
@@ -2315,7 +2298,8 @@ export default defineComponent({
|
|
|
2315
2298
|
}
|
|
2316
2299
|
else {
|
|
2317
2300
|
afterFullData.forEach(row => {
|
|
2318
|
-
|
|
2301
|
+
const rowid = handleGetRowId(row);
|
|
2302
|
+
selectRowMaps[rowid] = row;
|
|
2319
2303
|
});
|
|
2320
2304
|
}
|
|
2321
2305
|
}
|
|
@@ -2327,7 +2311,7 @@ export default defineComponent({
|
|
|
2327
2311
|
*/
|
|
2328
2312
|
if (!isForce && checkMethod) {
|
|
2329
2313
|
afterFullData.forEach((row) => {
|
|
2330
|
-
const rowid =
|
|
2314
|
+
const rowid = handleGetRowId(row);
|
|
2331
2315
|
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
2332
2316
|
selectRowMaps[rowid] = row;
|
|
2333
2317
|
}
|
|
@@ -2346,10 +2330,10 @@ export default defineComponent({
|
|
|
2346
2330
|
afterFullData.forEach((row) => handleCheckboxReserveRow(row, false));
|
|
2347
2331
|
}
|
|
2348
2332
|
}
|
|
2349
|
-
reactData.
|
|
2333
|
+
reactData.updateCheckboxFlag++;
|
|
2334
|
+
internalData.selectCheckboxMaps = checkField ? {} : selectRowMaps;
|
|
2350
2335
|
reactData.isAllSelected = checked;
|
|
2351
2336
|
reactData.isIndeterminate = false;
|
|
2352
|
-
reactData.treeIndeterminateMaps = {};
|
|
2353
2337
|
internalData.treeIndeterminateRowMaps = {};
|
|
2354
2338
|
$xeTable.checkSelectionStatus();
|
|
2355
2339
|
return nextTick();
|
|
@@ -2357,8 +2341,8 @@ export default defineComponent({
|
|
|
2357
2341
|
// 还原展开、选中等相关状态
|
|
2358
2342
|
const handleReserveStatus = () => {
|
|
2359
2343
|
const { treeConfig } = props;
|
|
2360
|
-
const { expandColumn, currentRow,
|
|
2361
|
-
const { fullDataRowIdData, fullAllDataRowIdData, radioReserveRow } = internalData;
|
|
2344
|
+
const { expandColumn, currentRow, selectRadioRow } = reactData;
|
|
2345
|
+
const { fullDataRowIdData, fullAllDataRowIdData, radioReserveRow, selectCheckboxMaps, treeExpandedMaps, rowExpandedMaps } = internalData;
|
|
2362
2346
|
const expandOpts = computeExpandOpts.value;
|
|
2363
2347
|
const treeOpts = computeTreeOpts.value;
|
|
2364
2348
|
const radioOpts = computeRadioOpts.value;
|
|
@@ -2375,7 +2359,8 @@ export default defineComponent({
|
|
|
2375
2359
|
}
|
|
2376
2360
|
}
|
|
2377
2361
|
// 复选框
|
|
2378
|
-
|
|
2362
|
+
internalData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps); // 刷新多选行状态
|
|
2363
|
+
reactData.updateCheckboxFlag++;
|
|
2379
2364
|
// 还原保留选中状态
|
|
2380
2365
|
if (checkboxOpts.reserve) {
|
|
2381
2366
|
handleCheckedCheckboxRow(handleReserveRow(internalData.checkboxReserveRowMap), true, true);
|
|
@@ -2384,13 +2369,15 @@ export default defineComponent({
|
|
|
2384
2369
|
reactData.currentRow = null; // 刷新当前行状态
|
|
2385
2370
|
}
|
|
2386
2371
|
// 行展开
|
|
2387
|
-
|
|
2372
|
+
internalData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {}; // 刷新行展开状态
|
|
2373
|
+
reactData.rowExpandedFlag++;
|
|
2388
2374
|
// 还原保留状态
|
|
2389
2375
|
if (expandColumn && expandOpts.reserve) {
|
|
2390
2376
|
$xeTable.setRowExpand(handleReserveRow(internalData.rowExpandedReserveRowMap), true);
|
|
2391
2377
|
}
|
|
2392
2378
|
// 树展开
|
|
2393
|
-
|
|
2379
|
+
internalData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {}; // 刷新树展开状态
|
|
2380
|
+
reactData.treeExpandedFlag++;
|
|
2394
2381
|
if (treeConfig && treeOpts.reserve) {
|
|
2395
2382
|
$xeTable.setTreeExpand(handleReserveRow(internalData.treeExpandedReserveRowMap), true);
|
|
2396
2383
|
}
|
|
@@ -2406,7 +2393,7 @@ export default defineComponent({
|
|
|
2406
2393
|
const { expandAll, expandRowKeys } = treeOpts;
|
|
2407
2394
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
2408
2395
|
if (expandAll) {
|
|
2409
|
-
|
|
2396
|
+
$xeTable.setAllTreeExpand(true);
|
|
2410
2397
|
}
|
|
2411
2398
|
else if (expandRowKeys) {
|
|
2412
2399
|
const defExpandeds = [];
|
|
@@ -2417,7 +2404,7 @@ export default defineComponent({
|
|
|
2417
2404
|
defExpandeds.push(matchObj.item);
|
|
2418
2405
|
}
|
|
2419
2406
|
});
|
|
2420
|
-
|
|
2407
|
+
$xeTable.setTreeExpand(defExpandeds, true);
|
|
2421
2408
|
}
|
|
2422
2409
|
}
|
|
2423
2410
|
};
|
|
@@ -2428,8 +2415,7 @@ export default defineComponent({
|
|
|
2428
2415
|
const { checkStrictly } = checkboxOpts;
|
|
2429
2416
|
return new Promise(resolve => {
|
|
2430
2417
|
if (loadMethod) {
|
|
2431
|
-
const { treeExpandLazyLoadedMaps } =
|
|
2432
|
-
const { fullAllDataRowIdData } = internalData;
|
|
2418
|
+
const { fullAllDataRowIdData, treeExpandLazyLoadedMaps } = internalData;
|
|
2433
2419
|
const rowid = getRowid($xeTable, row);
|
|
2434
2420
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
2435
2421
|
treeExpandLazyLoadedMaps[rowid] = row;
|
|
@@ -2444,18 +2430,19 @@ export default defineComponent({
|
|
|
2444
2430
|
childRecords = [];
|
|
2445
2431
|
}
|
|
2446
2432
|
if (childRecords) {
|
|
2447
|
-
return
|
|
2448
|
-
const { treeExpandedMaps } =
|
|
2433
|
+
return $xeTable.loadTreeChildren(row, childRecords).then(childRows => {
|
|
2434
|
+
const { treeExpandedMaps } = internalData;
|
|
2449
2435
|
if (childRows.length && !treeExpandedMaps[rowid]) {
|
|
2450
2436
|
treeExpandedMaps[rowid] = row;
|
|
2451
2437
|
}
|
|
2438
|
+
reactData.treeExpandedFlag++;
|
|
2452
2439
|
// 如果当前节点已选中,则展开后子节点也被选中
|
|
2453
|
-
if (!checkStrictly &&
|
|
2440
|
+
if (!checkStrictly && $xeTable.isCheckedByCheckboxRow(row)) {
|
|
2454
2441
|
handleCheckedCheckboxRow(childRows, true);
|
|
2455
2442
|
}
|
|
2456
2443
|
return nextTick().then(() => {
|
|
2457
2444
|
if (transform) {
|
|
2458
|
-
|
|
2445
|
+
$xeTable.handleTableData();
|
|
2459
2446
|
updateAfterDataIndex();
|
|
2460
2447
|
return nextTick();
|
|
2461
2448
|
}
|
|
@@ -2463,7 +2450,7 @@ export default defineComponent({
|
|
|
2463
2450
|
});
|
|
2464
2451
|
}
|
|
2465
2452
|
}).catch(() => {
|
|
2466
|
-
const { treeExpandLazyLoadedMaps } =
|
|
2453
|
+
const { treeExpandLazyLoadedMaps } = internalData;
|
|
2467
2454
|
if (rowRest) {
|
|
2468
2455
|
rowRest.treeLoaded = false;
|
|
2469
2456
|
}
|
|
@@ -2471,7 +2458,8 @@ export default defineComponent({
|
|
|
2471
2458
|
delete treeExpandLazyLoadedMaps[rowid];
|
|
2472
2459
|
}
|
|
2473
2460
|
}).finally(() => {
|
|
2474
|
-
|
|
2461
|
+
reactData.treeExpandedFlag++;
|
|
2462
|
+
nextTick().then(() => $xeTable.recalculate()).then(() => resolve());
|
|
2475
2463
|
});
|
|
2476
2464
|
}
|
|
2477
2465
|
else {
|
|
@@ -2497,29 +2485,27 @@ export default defineComponent({
|
|
|
2497
2485
|
const expandOpts = computeExpandOpts.value;
|
|
2498
2486
|
const { loadMethod } = expandOpts;
|
|
2499
2487
|
if (loadMethod) {
|
|
2500
|
-
const { fullAllDataRowIdData } = internalData;
|
|
2501
|
-
const rExpandLazyLoadedMaps = Object.assign({}, reactData.rowExpandLazyLoadedMaps);
|
|
2488
|
+
const { fullAllDataRowIdData, rowExpandLazyLoadedMaps } = internalData;
|
|
2502
2489
|
const rowid = getRowid($xeTable, row);
|
|
2503
2490
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
const rowTempExpandedMaps = Object.assign({}, reactData.rowExpandedMaps);
|
|
2491
|
+
rowExpandLazyLoadedMaps[rowid] = row;
|
|
2492
|
+
loadMethod({ $table: $xeTable, row, rowIndex: $xeTable.getRowIndex(row), $rowIndex: $xeTable.getVMRowIndex(row) }).then(() => {
|
|
2493
|
+
const { rowExpandedMaps } = internalData;
|
|
2508
2494
|
if (rowRest) {
|
|
2509
2495
|
rowRest.expandLoaded = true;
|
|
2510
2496
|
}
|
|
2511
|
-
|
|
2512
|
-
reactData.
|
|
2497
|
+
rowExpandedMaps[rowid] = row;
|
|
2498
|
+
reactData.rowExpandedFlag++;
|
|
2513
2499
|
}).catch(() => {
|
|
2514
2500
|
if (rowRest) {
|
|
2515
2501
|
rowRest.expandLoaded = false;
|
|
2516
2502
|
}
|
|
2517
2503
|
}).finally(() => {
|
|
2518
|
-
const
|
|
2519
|
-
if (
|
|
2520
|
-
delete
|
|
2504
|
+
const { rowExpandLazyLoadedMaps } = internalData;
|
|
2505
|
+
if (rowExpandLazyLoadedMaps[rowid]) {
|
|
2506
|
+
delete rowExpandLazyLoadedMaps[rowid];
|
|
2521
2507
|
}
|
|
2522
|
-
reactData.
|
|
2508
|
+
reactData.rowExpandedFlag++;
|
|
2523
2509
|
nextTick()
|
|
2524
2510
|
.then(() => $xeTable.recalculate())
|
|
2525
2511
|
.then(() => $xeTable.updateCellAreas())
|
|
@@ -2622,9 +2608,6 @@ export default defineComponent({
|
|
|
2622
2608
|
calcCellWidth();
|
|
2623
2609
|
autoCellWidth();
|
|
2624
2610
|
updateStyle();
|
|
2625
|
-
if (reFull) {
|
|
2626
|
-
updateRowOffsetTop();
|
|
2627
|
-
}
|
|
2628
2611
|
updateRowExpandStyle();
|
|
2629
2612
|
return computeScrollLoad().then(() => {
|
|
2630
2613
|
if (reFull === true) {
|
|
@@ -2653,6 +2636,9 @@ export default defineComponent({
|
|
|
2653
2636
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
2654
2637
|
let treeData = [];
|
|
2655
2638
|
let fullData = reactive(datas ? datas.slice(0) : []); // 转为响应式数据
|
|
2639
|
+
if (fullData.length > supportMaxRow) {
|
|
2640
|
+
errLog('vxe.error.errMaxRow', [supportMaxRow]);
|
|
2641
|
+
}
|
|
2656
2642
|
if (treeConfig) {
|
|
2657
2643
|
if (transform) {
|
|
2658
2644
|
// 树结构自动转换
|
|
@@ -2860,8 +2846,8 @@ export default defineComponent({
|
|
|
2860
2846
|
return result;
|
|
2861
2847
|
};
|
|
2862
2848
|
const parseColumns = (isReset) => {
|
|
2863
|
-
const { showOverflow } = props
|
|
2864
|
-
const rowOpts = computeRowOpts.value
|
|
2849
|
+
// const { showOverflow } = props
|
|
2850
|
+
// const rowOpts = computeRowOpts.value
|
|
2865
2851
|
const leftList = [];
|
|
2866
2852
|
const centerList = [];
|
|
2867
2853
|
const rightList = [];
|
|
@@ -2934,28 +2920,28 @@ export default defineComponent({
|
|
|
2934
2920
|
reactData.hasFixedColumn = leftList.length > 0 || rightList.length > 0;
|
|
2935
2921
|
Object.assign(columnStore, { leftList, centerList, rightList });
|
|
2936
2922
|
if (scrollXLoad) {
|
|
2937
|
-
if (showOverflow) {
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2923
|
+
// if (showOverflow) {
|
|
2924
|
+
// if (!rowOpts.height) {
|
|
2925
|
+
// const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
|
|
2926
|
+
// if (errColumn) {
|
|
2927
|
+
// errLog('vxe.error.errProp', [`column[field="${errColumn.field}"].show-overflow=false`, 'show-overflow=true'])
|
|
2928
|
+
// }
|
|
2929
|
+
// }
|
|
2930
|
+
// }
|
|
2931
|
+
// if (process.env.NODE_ENV === 'development') {
|
|
2932
|
+
// if (props.showHeader && !props.showHeaderOverflow) {
|
|
2933
|
+
// warnLog('vxe.error.reqProp', ['show-header-overflow'])
|
|
2934
|
+
// }
|
|
2935
|
+
// if (props.showFooter && !props.showFooterOverflow) {
|
|
2936
|
+
// warnLog('vxe.error.reqProp', ['show-footer-overflow'])
|
|
2937
|
+
// }
|
|
2938
|
+
if (props.spanMethod) {
|
|
2939
|
+
warnLog('vxe.error.scrollErrProp', ['span-method']);
|
|
2944
2940
|
}
|
|
2945
|
-
if (
|
|
2946
|
-
|
|
2947
|
-
// warnLog('vxe.error.reqProp', ['show-header-overflow'])
|
|
2948
|
-
// }
|
|
2949
|
-
// if (props.showFooter && !props.showFooterOverflow) {
|
|
2950
|
-
// warnLog('vxe.error.reqProp', ['show-footer-overflow'])
|
|
2951
|
-
// }
|
|
2952
|
-
if (props.spanMethod) {
|
|
2953
|
-
warnLog('vxe.error.scrollErrProp', ['span-method']);
|
|
2954
|
-
}
|
|
2955
|
-
if (props.footerSpanMethod) {
|
|
2956
|
-
warnLog('vxe.error.scrollErrProp', ['footer-span-method']);
|
|
2957
|
-
}
|
|
2941
|
+
if (props.footerSpanMethod) {
|
|
2942
|
+
warnLog('vxe.error.scrollErrProp', ['footer-span-method']);
|
|
2958
2943
|
}
|
|
2944
|
+
// }
|
|
2959
2945
|
if (isReset) {
|
|
2960
2946
|
const { visibleSize } = handleVirtualXVisible();
|
|
2961
2947
|
scrollXStore.startIndex = 0;
|
|
@@ -3055,9 +3041,8 @@ export default defineComponent({
|
|
|
3055
3041
|
* @returns
|
|
3056
3042
|
*/
|
|
3057
3043
|
const handleBaseTreeExpand = (rows, expanded) => {
|
|
3058
|
-
const {
|
|
3059
|
-
const
|
|
3060
|
-
const { fullAllDataRowIdData, tableFullData } = internalData;
|
|
3044
|
+
const { treeNodeColumn } = reactData;
|
|
3045
|
+
const { fullAllDataRowIdData, tableFullData, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData;
|
|
3061
3046
|
const treeOpts = computeTreeOpts.value;
|
|
3062
3047
|
const { reserve, lazy, accordion, toggleMethod } = treeOpts;
|
|
3063
3048
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
@@ -3065,6 +3050,7 @@ export default defineComponent({
|
|
|
3065
3050
|
const result = [];
|
|
3066
3051
|
const columnIndex = tableMethods.getColumnIndex(treeNodeColumn);
|
|
3067
3052
|
const $columnIndex = tableMethods.getVMColumnIndex(treeNodeColumn);
|
|
3053
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
3068
3054
|
let validRows = toggleMethod ? rows.filter((row) => toggleMethod({ $table: $xeTable, expanded, column: treeNodeColumn, columnIndex, $columnIndex, row })) : rows;
|
|
3069
3055
|
if (accordion) {
|
|
3070
3056
|
validRows = validRows.length ? [validRows[validRows.length - 1]] : [];
|
|
@@ -3072,17 +3058,17 @@ export default defineComponent({
|
|
|
3072
3058
|
const matchObj = XEUtils.findTree(tableFullData, item => item === validRows[0], { children: childrenField });
|
|
3073
3059
|
if (matchObj) {
|
|
3074
3060
|
matchObj.items.forEach(item => {
|
|
3075
|
-
const rowid =
|
|
3076
|
-
if (
|
|
3077
|
-
delete
|
|
3061
|
+
const rowid = handleGetRowId(item);
|
|
3062
|
+
if (treeExpandedMaps[rowid]) {
|
|
3063
|
+
delete treeExpandedMaps[rowid];
|
|
3078
3064
|
}
|
|
3079
3065
|
});
|
|
3080
3066
|
}
|
|
3081
3067
|
}
|
|
3082
3068
|
if (expanded) {
|
|
3083
3069
|
validRows.forEach((row) => {
|
|
3084
|
-
const rowid =
|
|
3085
|
-
if (!
|
|
3070
|
+
const rowid = handleGetRowId(row);
|
|
3071
|
+
if (!treeExpandedMaps[rowid]) {
|
|
3086
3072
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
3087
3073
|
if (rowRest) {
|
|
3088
3074
|
const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
|
|
@@ -3092,7 +3078,7 @@ export default defineComponent({
|
|
|
3092
3078
|
}
|
|
3093
3079
|
else {
|
|
3094
3080
|
if (row[childrenField] && row[childrenField].length) {
|
|
3095
|
-
|
|
3081
|
+
treeExpandedMaps[rowid] = row;
|
|
3096
3082
|
}
|
|
3097
3083
|
}
|
|
3098
3084
|
}
|
|
@@ -3101,16 +3087,16 @@ export default defineComponent({
|
|
|
3101
3087
|
}
|
|
3102
3088
|
else {
|
|
3103
3089
|
validRows.forEach(item => {
|
|
3104
|
-
const rowid =
|
|
3105
|
-
if (
|
|
3106
|
-
delete
|
|
3090
|
+
const rowid = handleGetRowId(item);
|
|
3091
|
+
if (treeExpandedMaps[rowid]) {
|
|
3092
|
+
delete treeExpandedMaps[rowid];
|
|
3107
3093
|
}
|
|
3108
3094
|
});
|
|
3109
3095
|
}
|
|
3110
3096
|
if (reserve) {
|
|
3111
3097
|
validRows.forEach((row) => handleTreeExpandReserve(row, expanded));
|
|
3112
3098
|
}
|
|
3113
|
-
reactData.
|
|
3099
|
+
reactData.treeExpandedFlag++;
|
|
3114
3100
|
return Promise.all(result).then(() => {
|
|
3115
3101
|
return tableMethods.recalculate();
|
|
3116
3102
|
});
|
|
@@ -3139,9 +3125,9 @@ export default defineComponent({
|
|
|
3139
3125
|
handleCheckedAllCheckboxRow(value);
|
|
3140
3126
|
if (evnt) {
|
|
3141
3127
|
dispatchEvent('checkbox-all', {
|
|
3142
|
-
records: $xeTable.getCheckboxRecords(),
|
|
3143
|
-
reserves: $xeTable.getCheckboxReserveRecords(),
|
|
3144
|
-
indeterminates: $xeTable.getCheckboxIndeterminateRecords(),
|
|
3128
|
+
records: () => $xeTable.getCheckboxRecords(),
|
|
3129
|
+
reserves: () => $xeTable.getCheckboxReserveRecords(),
|
|
3130
|
+
indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
|
|
3145
3131
|
checked: value
|
|
3146
3132
|
}, evnt);
|
|
3147
3133
|
}
|
|
@@ -3172,10 +3158,11 @@ export default defineComponent({
|
|
|
3172
3158
|
}
|
|
3173
3159
|
};
|
|
3174
3160
|
const createGetRowCacheProp = (prop) => {
|
|
3161
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
3175
3162
|
return function (row) {
|
|
3176
3163
|
const { fullAllDataRowIdData } = internalData;
|
|
3177
3164
|
if (row) {
|
|
3178
|
-
const rowid =
|
|
3165
|
+
const rowid = handleGetRowId(row);
|
|
3179
3166
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
3180
3167
|
if (rowRest) {
|
|
3181
3168
|
return rowRest[prop];
|
|
@@ -3326,7 +3313,7 @@ export default defineComponent({
|
|
|
3326
3313
|
};
|
|
3327
3314
|
const handleUpdateColResize = (evnt, params) => {
|
|
3328
3315
|
$xeTable.analyColumnWidth();
|
|
3329
|
-
$xeTable.recalculate(
|
|
3316
|
+
$xeTable.recalculate().then(() => {
|
|
3330
3317
|
$xeTable.saveCustomStore('update:width');
|
|
3331
3318
|
$xeTable.updateCellAreas();
|
|
3332
3319
|
$xeTable.dispatchEvent('column-resizable-change', params, evnt);
|
|
@@ -3337,7 +3324,7 @@ export default defineComponent({
|
|
|
3337
3324
|
};
|
|
3338
3325
|
const handleUpdateRowResize = (evnt, params) => {
|
|
3339
3326
|
reactData.resizeHeightFlag++;
|
|
3340
|
-
$xeTable.recalculate(
|
|
3327
|
+
$xeTable.recalculate().then(() => {
|
|
3341
3328
|
$xeTable.updateCellAreas();
|
|
3342
3329
|
$xeTable.dispatchEvent('row-resizable-change', params, evnt);
|
|
3343
3330
|
setTimeout(() => $xeTable.recalculate(true), 300);
|
|
@@ -3355,16 +3342,17 @@ export default defineComponent({
|
|
|
3355
3342
|
}
|
|
3356
3343
|
};
|
|
3357
3344
|
const updateRowOffsetTop = () => {
|
|
3358
|
-
const { expandColumn
|
|
3359
|
-
const { afterFullData, fullAllDataRowIdData } = internalData;
|
|
3345
|
+
const { expandColumn } = reactData;
|
|
3346
|
+
const { afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData;
|
|
3360
3347
|
const expandOpts = computeExpandOpts.value;
|
|
3361
3348
|
const rowOpts = computeRowOpts.value;
|
|
3362
3349
|
const cellOpts = computeCellOpts.value;
|
|
3363
3350
|
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
3351
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
3364
3352
|
let offsetTop = 0;
|
|
3365
3353
|
for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
|
|
3366
3354
|
const row = afterFullData[rIndex];
|
|
3367
|
-
const rowid =
|
|
3355
|
+
const rowid = handleGetRowId(row);
|
|
3368
3356
|
const rowRest = fullAllDataRowIdData[rowid] || {};
|
|
3369
3357
|
rowRest.oTop = offsetTop;
|
|
3370
3358
|
offsetTop += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
|
|
@@ -3744,9 +3732,12 @@ export default defineComponent({
|
|
|
3744
3732
|
*/
|
|
3745
3733
|
revertData(rows, field) {
|
|
3746
3734
|
const { keepSource, treeConfig } = props;
|
|
3735
|
+
const { editStore } = reactData;
|
|
3747
3736
|
const { fullAllDataRowIdData, fullDataRowIdData, tableSourceData, sourceDataRowIdData, tableFullData, afterFullData } = internalData;
|
|
3737
|
+
const removeTempMaps = Object.assign({}, editStore.removeMaps);
|
|
3748
3738
|
const treeOpts = computeTreeOpts.value;
|
|
3749
3739
|
const { transform } = treeOpts;
|
|
3740
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
3750
3741
|
if (!keepSource) {
|
|
3751
3742
|
if (process.env.NODE_ENV === 'development') {
|
|
3752
3743
|
errLog('vxe.error.reqProp', ['keep-source']);
|
|
@@ -3765,7 +3756,7 @@ export default defineComponent({
|
|
|
3765
3756
|
let reDelFlag = false;
|
|
3766
3757
|
if (targetRows.length) {
|
|
3767
3758
|
targetRows.forEach((item) => {
|
|
3768
|
-
const rowid =
|
|
3759
|
+
const rowid = handleGetRowId(item);
|
|
3769
3760
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
3770
3761
|
if (rowRest) {
|
|
3771
3762
|
const row = rowRest.row;
|
|
@@ -3779,6 +3770,7 @@ export default defineComponent({
|
|
|
3779
3770
|
XEUtils.destructuring(row, XEUtils.clone(oRow, true));
|
|
3780
3771
|
}
|
|
3781
3772
|
if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
|
|
3773
|
+
delete removeTempMaps[rowid];
|
|
3782
3774
|
tableFullData.unshift(row);
|
|
3783
3775
|
afterFullData.unshift(row);
|
|
3784
3776
|
reDelFlag = true;
|
|
@@ -3790,6 +3782,7 @@ export default defineComponent({
|
|
|
3790
3782
|
}
|
|
3791
3783
|
if (rows) {
|
|
3792
3784
|
if (reDelFlag) {
|
|
3785
|
+
editStore.removeMaps = removeTempMaps;
|
|
3793
3786
|
$xeTable.updateFooter();
|
|
3794
3787
|
$xeTable.cacheRowMap(false);
|
|
3795
3788
|
$xeTable.handleTableData(treeConfig && transform);
|
|
@@ -3942,14 +3935,14 @@ export default defineComponent({
|
|
|
3942
3935
|
},
|
|
3943
3936
|
/**
|
|
3944
3937
|
* 检查行或列数据是否发生改变
|
|
3945
|
-
* @param {Row}
|
|
3938
|
+
* @param {Row} rowidOrRow 行对象、行主键
|
|
3946
3939
|
* @param {String} field 字段名
|
|
3947
3940
|
*/
|
|
3948
|
-
isUpdateByRow(
|
|
3941
|
+
isUpdateByRow(rowidOrRow, field) {
|
|
3949
3942
|
const { keepSource } = props;
|
|
3950
3943
|
const { tableFullColumn, fullDataRowIdData, sourceDataRowIdData } = internalData;
|
|
3951
3944
|
if (keepSource) {
|
|
3952
|
-
const rowid = XEUtils.isString(
|
|
3945
|
+
const rowid = XEUtils.isString(rowidOrRow) || XEUtils.isNumber(rowidOrRow) ? rowidOrRow : getRowid($xeTable, rowidOrRow);
|
|
3953
3946
|
const rowRest = fullDataRowIdData[rowid];
|
|
3954
3947
|
// 新增的数据不需要检测
|
|
3955
3948
|
if (!rowRest) {
|
|
@@ -4126,8 +4119,7 @@ export default defineComponent({
|
|
|
4126
4119
|
*/
|
|
4127
4120
|
getCheckboxRecords(isFull) {
|
|
4128
4121
|
const { treeConfig } = props;
|
|
4129
|
-
const { selectCheckboxMaps } =
|
|
4130
|
-
const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps } = internalData;
|
|
4122
|
+
const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps, selectCheckboxMaps } = internalData;
|
|
4131
4123
|
const treeOpts = computeTreeOpts.value;
|
|
4132
4124
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
4133
4125
|
const { transform, mapChildrenField } = treeOpts;
|
|
@@ -4457,12 +4449,13 @@ export default defineComponent({
|
|
|
4457
4449
|
},
|
|
4458
4450
|
getRowHeightConf(isFull) {
|
|
4459
4451
|
const { fullAllDataRowIdData, afterFullData } = internalData;
|
|
4452
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
4460
4453
|
const rowOpts = computeRowOpts.value;
|
|
4461
4454
|
const cellOpts = computeCellOpts.value;
|
|
4462
4455
|
const defaultRowHeight = computeDefaultRowHeight.value;
|
|
4463
4456
|
const rest = {};
|
|
4464
4457
|
afterFullData.forEach(row => {
|
|
4465
|
-
const rowid =
|
|
4458
|
+
const rowid = handleGetRowId(row);
|
|
4466
4459
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
4467
4460
|
if (rowRest) {
|
|
4468
4461
|
const resizeHeight = rowRest.resizeHeight;
|
|
@@ -4486,8 +4479,9 @@ export default defineComponent({
|
|
|
4486
4479
|
rHeight = Math.floor(rHeight * bodyHeight);
|
|
4487
4480
|
}
|
|
4488
4481
|
if (rHeight) {
|
|
4482
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
4489
4483
|
rows.forEach(row => {
|
|
4490
|
-
const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row :
|
|
4484
|
+
const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row : handleGetRowId(row);
|
|
4491
4485
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
4492
4486
|
if (rowRest) {
|
|
4493
4487
|
rowRest.resizeHeight = rHeight;
|
|
@@ -4636,12 +4630,11 @@ export default defineComponent({
|
|
|
4636
4630
|
*/
|
|
4637
4631
|
getCheckboxIndeterminateRecords(isFull) {
|
|
4638
4632
|
const { treeConfig } = props;
|
|
4639
|
-
const { fullDataRowIdData } = internalData;
|
|
4640
|
-
const { treeIndeterminateMaps } = reactData;
|
|
4633
|
+
const { fullDataRowIdData, treeIndeterminateRowMaps } = internalData;
|
|
4641
4634
|
if (treeConfig) {
|
|
4642
4635
|
const fullRest = [];
|
|
4643
4636
|
const defRest = [];
|
|
4644
|
-
XEUtils.each(
|
|
4637
|
+
XEUtils.each(treeIndeterminateRowMaps, (item, rowid) => {
|
|
4645
4638
|
if (item) {
|
|
4646
4639
|
fullRest.push(item);
|
|
4647
4640
|
if (fullDataRowIdData[rowid]) {
|
|
@@ -4682,17 +4675,18 @@ export default defineComponent({
|
|
|
4682
4675
|
return handleCheckedCheckboxRow(rows, checked, true);
|
|
4683
4676
|
},
|
|
4684
4677
|
isCheckedByCheckboxRow(row) {
|
|
4685
|
-
const {
|
|
4678
|
+
const { updateCheckboxFlag } = reactData;
|
|
4679
|
+
const { selectCheckboxMaps } = internalData;
|
|
4686
4680
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
4687
4681
|
const { checkField } = checkboxOpts;
|
|
4688
4682
|
if (checkField) {
|
|
4689
4683
|
return XEUtils.get(row, checkField);
|
|
4690
4684
|
}
|
|
4691
|
-
return !!selectCheckboxMaps[getRowid($xeTable, row)];
|
|
4685
|
+
return !!updateCheckboxFlag && !!selectCheckboxMaps[getRowid($xeTable, row)];
|
|
4692
4686
|
},
|
|
4693
4687
|
isCheckedByCheckboxRowKey(rowid) {
|
|
4694
|
-
const {
|
|
4695
|
-
const { fullAllDataRowIdData } = internalData;
|
|
4688
|
+
const { updateCheckboxFlag } = reactData;
|
|
4689
|
+
const { fullAllDataRowIdData, selectCheckboxMaps } = internalData;
|
|
4696
4690
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
4697
4691
|
const { checkField } = checkboxOpts;
|
|
4698
4692
|
if (checkField) {
|
|
@@ -4702,21 +4696,21 @@ export default defineComponent({
|
|
|
4702
4696
|
}
|
|
4703
4697
|
return false;
|
|
4704
4698
|
}
|
|
4705
|
-
return !!selectCheckboxMaps[rowid];
|
|
4699
|
+
return !!updateCheckboxFlag && !!selectCheckboxMaps[rowid];
|
|
4706
4700
|
},
|
|
4707
4701
|
isIndeterminateByCheckboxRow(row) {
|
|
4708
|
-
const {
|
|
4709
|
-
return !!
|
|
4702
|
+
const { treeIndeterminateRowMaps } = internalData;
|
|
4703
|
+
return !!treeIndeterminateRowMaps[getRowid($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row);
|
|
4710
4704
|
},
|
|
4711
4705
|
isIndeterminateByCheckboxRowKey(rowid) {
|
|
4712
|
-
const {
|
|
4713
|
-
return !!
|
|
4706
|
+
const { treeIndeterminateRowMaps } = internalData;
|
|
4707
|
+
return !!treeIndeterminateRowMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid);
|
|
4714
4708
|
},
|
|
4715
4709
|
/**
|
|
4716
4710
|
* 多选,切换某一行的选中状态
|
|
4717
4711
|
*/
|
|
4718
4712
|
toggleCheckboxRow(row) {
|
|
4719
|
-
const { selectCheckboxMaps } =
|
|
4713
|
+
const { selectCheckboxMaps } = internalData;
|
|
4720
4714
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
4721
4715
|
const { checkField } = checkboxOpts;
|
|
4722
4716
|
const checked = checkField ? !XEUtils.get(row, checkField) : !selectCheckboxMaps[getRowid($xeTable, row)];
|
|
@@ -4779,15 +4773,16 @@ export default defineComponent({
|
|
|
4779
4773
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
4780
4774
|
const reserveSelection = [];
|
|
4781
4775
|
if (checkboxOpts.reserve) {
|
|
4776
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
4782
4777
|
const afterFullIdMaps = {};
|
|
4783
4778
|
if (treeConfig) {
|
|
4784
4779
|
XEUtils.eachTree(afterFullData, row => {
|
|
4785
|
-
afterFullIdMaps[
|
|
4780
|
+
afterFullIdMaps[handleGetRowId(row)] = 1;
|
|
4786
4781
|
}, { children: childrenField });
|
|
4787
4782
|
}
|
|
4788
4783
|
else {
|
|
4789
4784
|
afterFullData.forEach(row => {
|
|
4790
|
-
afterFullIdMaps[
|
|
4785
|
+
afterFullIdMaps[handleGetRowId(row)] = 1;
|
|
4791
4786
|
});
|
|
4792
4787
|
}
|
|
4793
4788
|
XEUtils.each(checkboxReserveRowMap, (oldRow, oldRowid) => {
|
|
@@ -4850,8 +4845,9 @@ export default defineComponent({
|
|
|
4850
4845
|
}
|
|
4851
4846
|
reactData.isAllSelected = false;
|
|
4852
4847
|
reactData.isIndeterminate = false;
|
|
4853
|
-
|
|
4854
|
-
|
|
4848
|
+
internalData.selectCheckboxMaps = {};
|
|
4849
|
+
internalData.treeIndeterminateRowMaps = {};
|
|
4850
|
+
reactData.updateCheckboxFlag++;
|
|
4855
4851
|
return nextTick();
|
|
4856
4852
|
},
|
|
4857
4853
|
/**
|
|
@@ -4959,13 +4955,20 @@ export default defineComponent({
|
|
|
4959
4955
|
* 用于当前列,设置某列行为高亮状态
|
|
4960
4956
|
*/
|
|
4961
4957
|
setCurrentColumn(fieldOrColumn) {
|
|
4958
|
+
const { mouseConfig } = props;
|
|
4959
|
+
const mouseOpts = computeMouseOpts.value;
|
|
4960
|
+
const isMouseSelected = mouseConfig && mouseOpts.selected;
|
|
4962
4961
|
const column = handleFieldOrColumn($xeTable, fieldOrColumn);
|
|
4963
4962
|
if (column) {
|
|
4964
|
-
|
|
4965
|
-
tableMethods.clearCurrentColumn();
|
|
4963
|
+
$xeTable.clearCurrentColumn();
|
|
4966
4964
|
reactData.currentColumn = column;
|
|
4967
4965
|
}
|
|
4968
|
-
return nextTick()
|
|
4966
|
+
return nextTick().then(() => {
|
|
4967
|
+
// 更新状选中态
|
|
4968
|
+
if (isMouseSelected) {
|
|
4969
|
+
$xeTable.addCellSelectedClass();
|
|
4970
|
+
}
|
|
4971
|
+
});
|
|
4969
4972
|
},
|
|
4970
4973
|
/**
|
|
4971
4974
|
* 用于当前列,手动清空当前高亮的状态
|
|
@@ -4975,59 +4978,60 @@ export default defineComponent({
|
|
|
4975
4978
|
return nextTick();
|
|
4976
4979
|
},
|
|
4977
4980
|
setPendingRow(rows, status) {
|
|
4978
|
-
const
|
|
4981
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
4982
|
+
const { pendingRowMaps } = internalData;
|
|
4979
4983
|
if (rows && !XEUtils.isArray(rows)) {
|
|
4980
4984
|
rows = [rows];
|
|
4981
4985
|
}
|
|
4982
4986
|
if (status) {
|
|
4983
4987
|
rows.forEach((row) => {
|
|
4984
|
-
const rowid =
|
|
4985
|
-
if (rowid && !
|
|
4986
|
-
|
|
4988
|
+
const rowid = handleGetRowId(row);
|
|
4989
|
+
if (rowid && !pendingRowMaps[rowid]) {
|
|
4990
|
+
pendingRowMaps[rowid] = row;
|
|
4987
4991
|
}
|
|
4988
4992
|
});
|
|
4989
4993
|
}
|
|
4990
4994
|
else {
|
|
4991
4995
|
rows.forEach((row) => {
|
|
4992
|
-
const rowid =
|
|
4993
|
-
if (rowid &&
|
|
4994
|
-
delete
|
|
4996
|
+
const rowid = handleGetRowId(row);
|
|
4997
|
+
if (rowid && pendingRowMaps[rowid]) {
|
|
4998
|
+
delete pendingRowMaps[rowid];
|
|
4995
4999
|
}
|
|
4996
5000
|
});
|
|
4997
5001
|
}
|
|
4998
|
-
reactData.
|
|
5002
|
+
reactData.pendingRowFlag++;
|
|
4999
5003
|
return nextTick();
|
|
5000
5004
|
},
|
|
5001
5005
|
togglePendingRow(rows) {
|
|
5002
|
-
const
|
|
5006
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
5007
|
+
const { pendingRowMaps } = internalData;
|
|
5003
5008
|
if (rows && !XEUtils.isArray(rows)) {
|
|
5004
5009
|
rows = [rows];
|
|
5005
5010
|
}
|
|
5006
5011
|
rows.forEach((row) => {
|
|
5007
|
-
const rowid =
|
|
5012
|
+
const rowid = handleGetRowId(row);
|
|
5008
5013
|
if (rowid) {
|
|
5009
|
-
if (
|
|
5010
|
-
delete
|
|
5014
|
+
if (pendingRowMaps[rowid]) {
|
|
5015
|
+
delete pendingRowMaps[rowid];
|
|
5011
5016
|
}
|
|
5012
5017
|
else {
|
|
5013
|
-
|
|
5018
|
+
pendingRowMaps[rowid] = row;
|
|
5014
5019
|
}
|
|
5015
5020
|
}
|
|
5016
5021
|
});
|
|
5017
|
-
reactData.
|
|
5022
|
+
reactData.pendingRowFlag++;
|
|
5018
5023
|
return nextTick();
|
|
5019
5024
|
},
|
|
5020
5025
|
hasPendingByRow(row) {
|
|
5021
5026
|
return tableMethods.isPendingByRow(row);
|
|
5022
5027
|
},
|
|
5023
5028
|
isPendingByRow(row) {
|
|
5024
|
-
const { pendingRowMaps } =
|
|
5029
|
+
const { pendingRowMaps } = internalData;
|
|
5025
5030
|
const rowid = getRowid($xeTable, row);
|
|
5026
5031
|
return !!pendingRowMaps[rowid];
|
|
5027
5032
|
},
|
|
5028
5033
|
getPendingRecords() {
|
|
5029
|
-
const { pendingRowMaps } =
|
|
5030
|
-
const { fullAllDataRowIdData } = internalData;
|
|
5034
|
+
const { fullAllDataRowIdData, pendingRowMaps } = internalData;
|
|
5031
5035
|
const insertRecords = [];
|
|
5032
5036
|
XEUtils.each(pendingRowMaps, (row, rowid) => {
|
|
5033
5037
|
if (fullAllDataRowIdData[rowid]) {
|
|
@@ -5037,7 +5041,8 @@ export default defineComponent({
|
|
|
5037
5041
|
return insertRecords;
|
|
5038
5042
|
},
|
|
5039
5043
|
clearPendingRow() {
|
|
5040
|
-
|
|
5044
|
+
internalData.pendingRowMaps = {};
|
|
5045
|
+
reactData.pendingRowFlag++;
|
|
5041
5046
|
return nextTick();
|
|
5042
5047
|
},
|
|
5043
5048
|
sort(sortConfs, sortOrder) {
|
|
@@ -5186,7 +5191,13 @@ export default defineComponent({
|
|
|
5186
5191
|
visible: false
|
|
5187
5192
|
});
|
|
5188
5193
|
if (visible) {
|
|
5189
|
-
dispatchEvent('filter-visible', {
|
|
5194
|
+
dispatchEvent('filter-visible', {
|
|
5195
|
+
column,
|
|
5196
|
+
property: column.field,
|
|
5197
|
+
field: column.field,
|
|
5198
|
+
filterList: () => $xeTable.getCheckedFilters(),
|
|
5199
|
+
visible: false
|
|
5200
|
+
}, null);
|
|
5190
5201
|
}
|
|
5191
5202
|
return nextTick();
|
|
5192
5203
|
},
|
|
@@ -5214,17 +5225,16 @@ export default defineComponent({
|
|
|
5214
5225
|
return rowRest && !!rowRest.expandLoaded;
|
|
5215
5226
|
},
|
|
5216
5227
|
clearRowExpandLoaded(row) {
|
|
5217
|
-
const
|
|
5218
|
-
const { fullAllDataRowIdData } = internalData;
|
|
5228
|
+
const { fullAllDataRowIdData, rowExpandLazyLoadedMaps } = internalData;
|
|
5219
5229
|
const expandOpts = computeExpandOpts.value;
|
|
5220
5230
|
const { lazy } = expandOpts;
|
|
5221
5231
|
const rowid = getRowid($xeTable, row);
|
|
5222
5232
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
5223
5233
|
if (lazy && rowRest) {
|
|
5224
5234
|
rowRest.expandLoaded = false;
|
|
5225
|
-
delete
|
|
5235
|
+
delete rowExpandLazyLoadedMaps[rowid];
|
|
5226
5236
|
}
|
|
5227
|
-
reactData.
|
|
5237
|
+
reactData.rowExpandedFlag++;
|
|
5228
5238
|
return nextTick();
|
|
5229
5239
|
},
|
|
5230
5240
|
/**
|
|
@@ -5232,12 +5242,12 @@ export default defineComponent({
|
|
|
5232
5242
|
* @param {Row} row 行对象
|
|
5233
5243
|
*/
|
|
5234
5244
|
reloadRowExpand(row) {
|
|
5235
|
-
const { rowExpandLazyLoadedMaps } =
|
|
5245
|
+
const { rowExpandLazyLoadedMaps } = internalData;
|
|
5236
5246
|
const expandOpts = computeExpandOpts.value;
|
|
5237
5247
|
const { lazy } = expandOpts;
|
|
5238
5248
|
const rowid = getRowid($xeTable, row);
|
|
5239
5249
|
if (lazy && !rowExpandLazyLoadedMaps[rowid]) {
|
|
5240
|
-
|
|
5250
|
+
$xeTable.clearRowExpandLoaded(row)
|
|
5241
5251
|
.then(() => handleAsyncRowExpand(row));
|
|
5242
5252
|
}
|
|
5243
5253
|
return nextTick();
|
|
@@ -5247,13 +5257,13 @@ export default defineComponent({
|
|
|
5247
5257
|
warnLog('vxe.error.delFunc', ['reloadExpandContent', 'reloadRowExpand']);
|
|
5248
5258
|
}
|
|
5249
5259
|
// 即将废弃
|
|
5250
|
-
return
|
|
5260
|
+
return $xeTable.reloadRowExpand(row);
|
|
5251
5261
|
},
|
|
5252
5262
|
/**
|
|
5253
5263
|
* 切换展开行
|
|
5254
5264
|
*/
|
|
5255
5265
|
toggleRowExpand(row) {
|
|
5256
|
-
return
|
|
5266
|
+
return $xeTable.setRowExpand(row, !$xeTable.isRowExpandByRow(row));
|
|
5257
5267
|
},
|
|
5258
5268
|
/**
|
|
5259
5269
|
* 设置所有行的展开与否
|
|
@@ -5282,9 +5292,9 @@ export default defineComponent({
|
|
|
5282
5292
|
* @param {Boolean} expanded 是否展开
|
|
5283
5293
|
*/
|
|
5284
5294
|
setRowExpand(rows, expanded) {
|
|
5285
|
-
const {
|
|
5286
|
-
|
|
5287
|
-
|
|
5295
|
+
const { expandColumn } = reactData;
|
|
5296
|
+
let { fullAllDataRowIdData, rowExpandedMaps, rowExpandLazyLoadedMaps } = internalData;
|
|
5297
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
5288
5298
|
const expandOpts = computeExpandOpts.value;
|
|
5289
5299
|
const { reserve, lazy, accordion, toggleMethod } = expandOpts;
|
|
5290
5300
|
const lazyRests = [];
|
|
@@ -5296,30 +5306,31 @@ export default defineComponent({
|
|
|
5296
5306
|
}
|
|
5297
5307
|
if (accordion) {
|
|
5298
5308
|
// 只能同时展开一个
|
|
5299
|
-
|
|
5309
|
+
rowExpandedMaps = {};
|
|
5310
|
+
internalData.rowExpandedMaps = rowExpandedMaps;
|
|
5300
5311
|
rows = rows.slice(rows.length - 1, rows.length);
|
|
5301
5312
|
}
|
|
5302
5313
|
const validRows = toggleMethod ? rows.filter((row) => toggleMethod({ $table: $xeTable, expanded, column: expandColumn, columnIndex, $columnIndex, row, rowIndex: tableMethods.getRowIndex(row), $rowIndex: tableMethods.getVMRowIndex(row) })) : rows;
|
|
5303
5314
|
if (expanded) {
|
|
5304
5315
|
validRows.forEach((row) => {
|
|
5305
|
-
const rowid =
|
|
5306
|
-
if (!
|
|
5316
|
+
const rowid = handleGetRowId(row);
|
|
5317
|
+
if (!rowExpandedMaps[rowid]) {
|
|
5307
5318
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
5308
5319
|
const isLoad = lazy && !rowRest.expandLoaded && !rowExpandLazyLoadedMaps[rowid];
|
|
5309
5320
|
if (isLoad) {
|
|
5310
5321
|
lazyRests.push(handleAsyncRowExpand(row));
|
|
5311
5322
|
}
|
|
5312
5323
|
else {
|
|
5313
|
-
|
|
5324
|
+
rowExpandedMaps[rowid] = row;
|
|
5314
5325
|
}
|
|
5315
5326
|
}
|
|
5316
5327
|
});
|
|
5317
5328
|
}
|
|
5318
5329
|
else {
|
|
5319
5330
|
validRows.forEach(item => {
|
|
5320
|
-
const rowid =
|
|
5321
|
-
if (
|
|
5322
|
-
delete
|
|
5331
|
+
const rowid = handleGetRowId(item);
|
|
5332
|
+
if (rowExpandedMaps[rowid]) {
|
|
5333
|
+
delete rowExpandedMaps[rowid];
|
|
5323
5334
|
}
|
|
5324
5335
|
});
|
|
5325
5336
|
}
|
|
@@ -5327,7 +5338,7 @@ export default defineComponent({
|
|
|
5327
5338
|
validRows.forEach((row) => handleRowExpandReserve(row, expanded));
|
|
5328
5339
|
}
|
|
5329
5340
|
}
|
|
5330
|
-
reactData.
|
|
5341
|
+
reactData.rowExpandedFlag++;
|
|
5331
5342
|
return Promise.all(lazyRests)
|
|
5332
5343
|
.then(() => nextTick())
|
|
5333
5344
|
.then(() => $xeTable.recalculate(true))
|
|
@@ -5343,9 +5354,10 @@ export default defineComponent({
|
|
|
5343
5354
|
* @param {Row} row 行对象
|
|
5344
5355
|
*/
|
|
5345
5356
|
isRowExpandByRow(row) {
|
|
5346
|
-
const {
|
|
5357
|
+
const { rowExpandedFlag } = reactData;
|
|
5358
|
+
const { rowExpandedMaps } = internalData;
|
|
5347
5359
|
const rowid = getRowid($xeTable, row);
|
|
5348
|
-
return !!rowExpandedMaps[rowid];
|
|
5360
|
+
return !!rowExpandedFlag && !!rowExpandedMaps[rowid];
|
|
5349
5361
|
},
|
|
5350
5362
|
isExpandByRow(row) {
|
|
5351
5363
|
// 已废弃
|
|
@@ -5362,7 +5374,8 @@ export default defineComponent({
|
|
|
5362
5374
|
const expandOpts = computeExpandOpts.value;
|
|
5363
5375
|
const { reserve } = expandOpts;
|
|
5364
5376
|
const expList = $xeTable.getRowExpandRecords();
|
|
5365
|
-
|
|
5377
|
+
internalData.rowExpandedMaps = {};
|
|
5378
|
+
reactData.rowExpandedFlag++;
|
|
5366
5379
|
if (reserve) {
|
|
5367
5380
|
tableFullData.forEach((row) => handleRowExpandReserve(row, false));
|
|
5368
5381
|
}
|
|
@@ -5383,7 +5396,7 @@ export default defineComponent({
|
|
|
5383
5396
|
},
|
|
5384
5397
|
getRowExpandRecords() {
|
|
5385
5398
|
const rest = [];
|
|
5386
|
-
XEUtils.each(
|
|
5399
|
+
XEUtils.each(internalData.rowExpandedMaps, item => {
|
|
5387
5400
|
if (item) {
|
|
5388
5401
|
rest.push(item);
|
|
5389
5402
|
}
|
|
@@ -5392,7 +5405,7 @@ export default defineComponent({
|
|
|
5392
5405
|
},
|
|
5393
5406
|
getTreeExpandRecords() {
|
|
5394
5407
|
const rest = [];
|
|
5395
|
-
XEUtils.each(
|
|
5408
|
+
XEUtils.each(internalData.treeExpandedMaps, item => {
|
|
5396
5409
|
if (item) {
|
|
5397
5410
|
rest.push(item);
|
|
5398
5411
|
}
|
|
@@ -5409,12 +5422,10 @@ export default defineComponent({
|
|
|
5409
5422
|
return rowRest && !!rowRest.treeLoaded;
|
|
5410
5423
|
},
|
|
5411
5424
|
clearTreeExpandLoaded(rows) {
|
|
5412
|
-
const { fullAllDataRowIdData } = internalData;
|
|
5425
|
+
const { fullAllDataRowIdData, treeExpandedMaps } = internalData;
|
|
5413
5426
|
const treeOpts = computeTreeOpts.value;
|
|
5414
5427
|
const { transform } = treeOpts;
|
|
5415
|
-
let tExpandedMaps = {};
|
|
5416
5428
|
if (rows) {
|
|
5417
|
-
tExpandedMaps = Object.assign({}, reactData.treeExpandedMaps);
|
|
5418
5429
|
if (!XEUtils.isArray(rows)) {
|
|
5419
5430
|
rows = [rows];
|
|
5420
5431
|
}
|
|
@@ -5423,8 +5434,8 @@ export default defineComponent({
|
|
|
5423
5434
|
const rowRest = fullAllDataRowIdData[rowid];
|
|
5424
5435
|
if (rowRest) {
|
|
5425
5436
|
rowRest.treeLoaded = false;
|
|
5426
|
-
if (
|
|
5427
|
-
delete
|
|
5437
|
+
if (treeExpandedMaps[rowid]) {
|
|
5438
|
+
delete treeExpandedMaps[rowid];
|
|
5428
5439
|
}
|
|
5429
5440
|
}
|
|
5430
5441
|
});
|
|
@@ -5434,7 +5445,8 @@ export default defineComponent({
|
|
|
5434
5445
|
rowRest.treeLoaded = false;
|
|
5435
5446
|
});
|
|
5436
5447
|
}
|
|
5437
|
-
|
|
5448
|
+
internalData.treeExpandedMaps = {};
|
|
5449
|
+
reactData.treeExpandedFlag++;
|
|
5438
5450
|
if (transform) {
|
|
5439
5451
|
handleVirtualTreeToList();
|
|
5440
5452
|
return $xeTable.handleTableData();
|
|
@@ -5446,7 +5458,7 @@ export default defineComponent({
|
|
|
5446
5458
|
* @param {Row} row 行对象
|
|
5447
5459
|
*/
|
|
5448
5460
|
reloadTreeExpand(row) {
|
|
5449
|
-
const { treeExpandLazyLoadedMaps } =
|
|
5461
|
+
const { treeExpandLazyLoadedMaps } = internalData;
|
|
5450
5462
|
const treeOpts = computeTreeOpts.value;
|
|
5451
5463
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
5452
5464
|
const { transform, lazy } = treeOpts;
|
|
@@ -5532,8 +5544,9 @@ export default defineComponent({
|
|
|
5532
5544
|
* @param {Row} row 行对象
|
|
5533
5545
|
*/
|
|
5534
5546
|
isTreeExpandByRow(row) {
|
|
5535
|
-
const {
|
|
5536
|
-
|
|
5547
|
+
const { treeExpandedFlag } = reactData;
|
|
5548
|
+
const { treeExpandedMaps } = internalData;
|
|
5549
|
+
return !!treeExpandedFlag && !!treeExpandedMaps[getRowid($xeTable, row)];
|
|
5537
5550
|
},
|
|
5538
5551
|
/**
|
|
5539
5552
|
* 手动清空树形节点的展开状态,数据会恢复成未展开的状态
|
|
@@ -5543,19 +5556,20 @@ export default defineComponent({
|
|
|
5543
5556
|
const treeOpts = computeTreeOpts.value;
|
|
5544
5557
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
5545
5558
|
const { transform, reserve } = treeOpts;
|
|
5546
|
-
const expList =
|
|
5547
|
-
|
|
5559
|
+
const expList = $xeTable.getTreeExpandRecords();
|
|
5560
|
+
internalData.treeExpandedMaps = {};
|
|
5561
|
+
reactData.treeExpandedFlag++;
|
|
5548
5562
|
if (reserve) {
|
|
5549
5563
|
XEUtils.eachTree(tableFullTreeData, row => handleTreeExpandReserve(row, false), { children: childrenField });
|
|
5550
5564
|
}
|
|
5551
|
-
return
|
|
5565
|
+
return $xeTable.handleTableData().then(() => {
|
|
5552
5566
|
if (transform) {
|
|
5553
5567
|
handleVirtualTreeToList();
|
|
5554
|
-
return
|
|
5568
|
+
return $xeTable.handleTableData();
|
|
5555
5569
|
}
|
|
5556
5570
|
}).then(() => {
|
|
5557
5571
|
if (expList.length) {
|
|
5558
|
-
return
|
|
5572
|
+
return $xeTable.recalculate();
|
|
5559
5573
|
}
|
|
5560
5574
|
});
|
|
5561
5575
|
},
|
|
@@ -5810,7 +5824,13 @@ export default defineComponent({
|
|
|
5810
5824
|
const { id } = props;
|
|
5811
5825
|
const customOpts = computeCustomOpts.value;
|
|
5812
5826
|
const { collectColumn } = internalData;
|
|
5813
|
-
const { checkMethod } = customOpts;
|
|
5827
|
+
const { storage, checkMethod } = customOpts;
|
|
5828
|
+
const isAllCustom = storage === true;
|
|
5829
|
+
const storageOpts = isAllCustom ? {} : Object.assign({}, storage || {});
|
|
5830
|
+
const isCustomResizable = isAllCustom || storageOpts.resizable;
|
|
5831
|
+
const isCustomVisible = isAllCustom || storageOpts.visible;
|
|
5832
|
+
const isCustomFixed = isAllCustom || storageOpts.fixed;
|
|
5833
|
+
const isCustomSort = isAllCustom || storageOpts.sort;
|
|
5814
5834
|
const resizableData = {};
|
|
5815
5835
|
const sortData = {};
|
|
5816
5836
|
const visibleData = {};
|
|
@@ -5830,44 +5850,34 @@ export default defineComponent({
|
|
|
5830
5850
|
let hasFixed = 0;
|
|
5831
5851
|
let hasVisible = 0;
|
|
5832
5852
|
XEUtils.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
|
|
5853
|
+
const colKey = column.getKey();
|
|
5854
|
+
if (!colKey) {
|
|
5855
|
+
errLog('vxe.error.reqProp', [`${column.getTitle() || column.type || ''} -> column.field=?`]);
|
|
5856
|
+
return;
|
|
5857
|
+
}
|
|
5833
5858
|
// 只支持一级
|
|
5834
5859
|
if (!parentColumn) {
|
|
5835
|
-
|
|
5836
|
-
|
|
5837
|
-
|
|
5838
|
-
hasSort = 1;
|
|
5839
|
-
sortData[colKey] = column.renderSortNumber;
|
|
5840
|
-
}
|
|
5841
|
-
});
|
|
5842
|
-
if (column.fixed !== column.defaultFixed) {
|
|
5843
|
-
const colKey = column.getKey();
|
|
5844
|
-
if (colKey) {
|
|
5845
|
-
hasFixed = 1;
|
|
5846
|
-
fixedData[colKey] = column.fixed;
|
|
5847
|
-
}
|
|
5860
|
+
if (isCustomSort) {
|
|
5861
|
+
hasSort = 1;
|
|
5862
|
+
sortData[colKey] = column.renderSortNumber;
|
|
5848
5863
|
}
|
|
5849
|
-
|
|
5850
|
-
|
|
5851
|
-
|
|
5852
|
-
if (colKey) {
|
|
5853
|
-
hasResizable = 1;
|
|
5854
|
-
resizableData[colKey] = column.renderWidth;
|
|
5864
|
+
if (isCustomFixed && column.fixed !== column.defaultFixed) {
|
|
5865
|
+
hasFixed = 1;
|
|
5866
|
+
fixedData[colKey] = column.fixed;
|
|
5855
5867
|
}
|
|
5856
5868
|
}
|
|
5857
|
-
if (
|
|
5869
|
+
if (isCustomResizable && column.resizeWidth) {
|
|
5870
|
+
hasResizable = 1;
|
|
5871
|
+
resizableData[colKey] = column.renderWidth;
|
|
5872
|
+
}
|
|
5873
|
+
if (isCustomVisible && (!checkMethod || checkMethod({ column }))) {
|
|
5858
5874
|
if (!column.visible && column.defaultVisible) {
|
|
5859
|
-
|
|
5860
|
-
|
|
5861
|
-
hasVisible = 1;
|
|
5862
|
-
visibleData[colKey] = false;
|
|
5863
|
-
}
|
|
5875
|
+
hasVisible = 1;
|
|
5876
|
+
visibleData[colKey] = false;
|
|
5864
5877
|
}
|
|
5865
5878
|
else if (column.visible && !column.defaultVisible) {
|
|
5866
|
-
|
|
5867
|
-
|
|
5868
|
-
hasVisible = 1;
|
|
5869
|
-
visibleData[colKey] = true;
|
|
5870
|
-
}
|
|
5879
|
+
hasVisible = 1;
|
|
5880
|
+
visibleData[colKey] = true;
|
|
5871
5881
|
}
|
|
5872
5882
|
}
|
|
5873
5883
|
});
|
|
@@ -6228,7 +6238,7 @@ export default defineComponent({
|
|
|
6228
6238
|
$xeTable.moveTabSelected(activeParams, hasShiftKey, evnt);
|
|
6229
6239
|
}
|
|
6230
6240
|
else {
|
|
6231
|
-
$xeTable.
|
|
6241
|
+
$xeTable.moveEnterSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt);
|
|
6232
6242
|
}
|
|
6233
6243
|
}
|
|
6234
6244
|
else {
|
|
@@ -6262,7 +6272,7 @@ export default defineComponent({
|
|
|
6262
6272
|
return;
|
|
6263
6273
|
}
|
|
6264
6274
|
}
|
|
6265
|
-
$xeTable.
|
|
6275
|
+
$xeTable.moveEnterSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt);
|
|
6266
6276
|
if (enterMethod) {
|
|
6267
6277
|
enterMethod(etrParams);
|
|
6268
6278
|
}
|
|
@@ -6293,11 +6303,7 @@ export default defineComponent({
|
|
|
6293
6303
|
if (!isEditStatus) {
|
|
6294
6304
|
// 如果按下了方向键
|
|
6295
6305
|
if (selected.row && selected.column) {
|
|
6296
|
-
$xeTable.
|
|
6297
|
-
}
|
|
6298
|
-
else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
6299
|
-
// 当前行按键上下移动
|
|
6300
|
-
$xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
|
|
6306
|
+
$xeTable.moveArrowSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
|
|
6301
6307
|
}
|
|
6302
6308
|
}
|
|
6303
6309
|
}
|
|
@@ -6676,8 +6682,9 @@ export default defineComponent({
|
|
|
6676
6682
|
* @param {Event} evnt 事件
|
|
6677
6683
|
* @param {Row} row 行对象
|
|
6678
6684
|
*/
|
|
6679
|
-
const handleTooltip = (evnt, tdEl, overflowElem,
|
|
6680
|
-
|
|
6685
|
+
const handleTooltip = (evnt, tdEl, overflowElem, params) => {
|
|
6686
|
+
const tipOverEl = overflowElem || tdEl;
|
|
6687
|
+
if (!tipOverEl) {
|
|
6681
6688
|
return nextTick();
|
|
6682
6689
|
}
|
|
6683
6690
|
params.cell = tdEl;
|
|
@@ -6687,9 +6694,8 @@ export default defineComponent({
|
|
|
6687
6694
|
const { showAll, contentMethod } = tooltipOpts;
|
|
6688
6695
|
const customContent = contentMethod ? contentMethod(params) : null;
|
|
6689
6696
|
const useCustom = contentMethod && !XEUtils.eqNull(customContent);
|
|
6690
|
-
const content = useCustom ? customContent : XEUtils.toString(column.type === 'html' ?
|
|
6691
|
-
|
|
6692
|
-
if (content && (showAll || useCustom || isCellOverflow)) {
|
|
6697
|
+
const content = useCustom ? customContent : XEUtils.toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim();
|
|
6698
|
+
if (content && (showAll || useCustom || (tipOverEl.scrollWidth > tipOverEl.clientWidth))) {
|
|
6693
6699
|
Object.assign(tooltipStore, {
|
|
6694
6700
|
row,
|
|
6695
6701
|
column,
|
|
@@ -6699,7 +6705,7 @@ export default defineComponent({
|
|
|
6699
6705
|
nextTick(() => {
|
|
6700
6706
|
const $tooltip = refTooltip.value;
|
|
6701
6707
|
if ($tooltip && $tooltip.open) {
|
|
6702
|
-
$tooltip.open(
|
|
6708
|
+
$tooltip.open(tipOverEl, formatText(content));
|
|
6703
6709
|
}
|
|
6704
6710
|
});
|
|
6705
6711
|
}
|
|
@@ -6841,18 +6847,14 @@ export default defineComponent({
|
|
|
6841
6847
|
*/
|
|
6842
6848
|
cacheRowMap() {
|
|
6843
6849
|
const { treeConfig } = props;
|
|
6844
|
-
const { treeExpandedMaps } =
|
|
6845
|
-
const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData;
|
|
6850
|
+
const { fullAllDataRowIdData, tableFullData, tableFullTreeData, treeExpandedMaps } = internalData;
|
|
6846
6851
|
const treeOpts = computeTreeOpts.value;
|
|
6847
6852
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
6848
6853
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
6849
6854
|
const { lazy } = treeOpts;
|
|
6850
|
-
const rowkey = getRowkey($xeTable);
|
|
6851
|
-
const isDeepKey = rowkey.indexOf('.') > -1;
|
|
6852
6855
|
const fullAllDataRowIdMaps = Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
|
|
6853
6856
|
const fullDataRowIdMaps = {};
|
|
6854
|
-
const
|
|
6855
|
-
const handleRowId = isDeepKey ? updateDeepRowKey : updateFastRowKey;
|
|
6857
|
+
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable);
|
|
6856
6858
|
const handleRowCache = (row, index, items, currIndex, parentRow, rowid, level, seq) => {
|
|
6857
6859
|
let rowRest = fullAllDataRowIdMaps[rowid];
|
|
6858
6860
|
if (!rowRest) {
|
|
@@ -6868,18 +6870,19 @@ export default defineComponent({
|
|
|
6868
6870
|
rowRest.level = level;
|
|
6869
6871
|
rowRest.index = currIndex;
|
|
6870
6872
|
rowRest.treeIndex = index;
|
|
6873
|
+
fullDataRowIdMaps[rowid] = rowRest;
|
|
6874
|
+
fullAllDataRowIdMaps[rowid] = rowRest;
|
|
6871
6875
|
};
|
|
6872
6876
|
if (treeConfig) {
|
|
6873
6877
|
XEUtils.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
|
|
6874
|
-
const rowid =
|
|
6878
|
+
const rowid = handleUpdateRowId(row);
|
|
6875
6879
|
if (treeConfig && lazy) {
|
|
6876
|
-
const treeExpRest = treeTempExpandedMaps[rowid];
|
|
6877
6880
|
if (row[hasChildField] && row[childrenField] === undefined) {
|
|
6878
6881
|
row[childrenField] = null;
|
|
6879
6882
|
}
|
|
6880
|
-
if (
|
|
6883
|
+
if (treeExpandedMaps[rowid]) {
|
|
6881
6884
|
if (!row[childrenField] || !row[childrenField].length) {
|
|
6882
|
-
delete
|
|
6885
|
+
delete treeExpandedMaps[rowid];
|
|
6883
6886
|
}
|
|
6884
6887
|
}
|
|
6885
6888
|
}
|
|
@@ -6888,27 +6891,22 @@ export default defineComponent({
|
|
|
6888
6891
|
}
|
|
6889
6892
|
else {
|
|
6890
6893
|
tableFullData.forEach((row, index, items) => {
|
|
6891
|
-
handleRowCache(row, index, items, index, null,
|
|
6894
|
+
handleRowCache(row, index, items, index, null, handleUpdateRowId(row), 0, index + 1);
|
|
6892
6895
|
});
|
|
6893
6896
|
}
|
|
6894
6897
|
internalData.fullDataRowIdData = fullDataRowIdMaps;
|
|
6895
6898
|
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
|
|
6896
|
-
reactData.
|
|
6899
|
+
reactData.treeExpandedFlag++;
|
|
6897
6900
|
},
|
|
6898
6901
|
cacheSourceMap(fullData) {
|
|
6899
6902
|
const { treeConfig } = props;
|
|
6900
6903
|
const treeOpts = computeTreeOpts.value;
|
|
6901
|
-
let { sourceDataRowIdData } = internalData;
|
|
6902
6904
|
const sourceData = XEUtils.clone(fullData, true);
|
|
6903
|
-
const
|
|
6904
|
-
|
|
6905
|
+
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable);
|
|
6906
|
+
const sourceRowIdData = {};
|
|
6905
6907
|
const handleSourceRow = (row) => {
|
|
6906
|
-
|
|
6907
|
-
|
|
6908
|
-
rowid = getRowUniqueId();
|
|
6909
|
-
XEUtils.set(row, rowkey, rowid);
|
|
6910
|
-
}
|
|
6911
|
-
sourceDataRowIdData[rowid] = row;
|
|
6908
|
+
const rowid = handleUpdateRowId(row);
|
|
6909
|
+
sourceRowIdData[rowid] = row;
|
|
6912
6910
|
};
|
|
6913
6911
|
// 源数据缓存
|
|
6914
6912
|
if (treeConfig) {
|
|
@@ -6918,6 +6916,7 @@ export default defineComponent({
|
|
|
6918
6916
|
else {
|
|
6919
6917
|
sourceData.forEach(handleSourceRow);
|
|
6920
6918
|
}
|
|
6919
|
+
internalData.sourceDataRowIdData = sourceRowIdData;
|
|
6921
6920
|
internalData.tableSourceData = sourceData;
|
|
6922
6921
|
},
|
|
6923
6922
|
/**
|
|
@@ -7369,8 +7368,22 @@ export default defineComponent({
|
|
|
7369
7368
|
}
|
|
7370
7369
|
}
|
|
7371
7370
|
// 兼容老版本
|
|
7372
|
-
let rest;
|
|
7373
|
-
|
|
7371
|
+
let rest = null;
|
|
7372
|
+
let isStop = false;
|
|
7373
|
+
for (let i = 0; i < evntList.length; i++) {
|
|
7374
|
+
const func = evntList[i];
|
|
7375
|
+
const fnRest = func(Object.assign({ $grid: $xeGrid, $table: $xeTable, $event: evnt }, args));
|
|
7376
|
+
if (fnRest === false) {
|
|
7377
|
+
isStop = true;
|
|
7378
|
+
break;
|
|
7379
|
+
}
|
|
7380
|
+
else if (fnRest && fnRest.status === false) {
|
|
7381
|
+
rest = fnRest.result;
|
|
7382
|
+
isStop = true;
|
|
7383
|
+
break;
|
|
7384
|
+
}
|
|
7385
|
+
}
|
|
7386
|
+
if (!isStop) {
|
|
7374
7387
|
if (next) {
|
|
7375
7388
|
rest = next();
|
|
7376
7389
|
}
|
|
@@ -7382,9 +7395,7 @@ export default defineComponent({
|
|
|
7382
7395
|
},
|
|
7383
7396
|
updateCheckboxStatus() {
|
|
7384
7397
|
const { treeConfig } = props;
|
|
7385
|
-
const { selectCheckboxMaps,
|
|
7386
|
-
const selectRowMaps = Object.assign({}, selectCheckboxMaps);
|
|
7387
|
-
const halfRowMaps = Object.assign({}, treeIndeterminateMaps);
|
|
7398
|
+
const { selectCheckboxMaps, treeIndeterminateRowMaps } = internalData;
|
|
7388
7399
|
const treeOpts = computeTreeOpts.value;
|
|
7389
7400
|
const { transform, mapChildrenField } = treeOpts;
|
|
7390
7401
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
@@ -7396,10 +7407,11 @@ export default defineComponent({
|
|
|
7396
7407
|
}
|
|
7397
7408
|
// 树结构
|
|
7398
7409
|
if (treeConfig) {
|
|
7410
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
7399
7411
|
const childRowMaps = {};
|
|
7400
7412
|
const childRowList = [];
|
|
7401
7413
|
XEUtils.eachTree(afterTreeFullData, (row) => {
|
|
7402
|
-
const rowid =
|
|
7414
|
+
const rowid = handleGetRowId(row);
|
|
7403
7415
|
const childList = row[transform ? mapChildrenField : childrenField];
|
|
7404
7416
|
if (childList && childList.length && !childRowMaps[rowid]) {
|
|
7405
7417
|
childRowMaps[rowid] = 1;
|
|
@@ -7415,13 +7427,13 @@ export default defineComponent({
|
|
|
7415
7427
|
let vLen = 0; // 有效行
|
|
7416
7428
|
childList.forEach(checkMethod
|
|
7417
7429
|
? (item) => {
|
|
7418
|
-
const childRowid =
|
|
7419
|
-
const isSelect = checkField ? XEUtils.get(item, checkField) :
|
|
7430
|
+
const childRowid = handleGetRowId(item);
|
|
7431
|
+
const isSelect = checkField ? XEUtils.get(item, checkField) : selectCheckboxMaps[childRowid];
|
|
7420
7432
|
if (checkMethod({ row: item })) {
|
|
7421
7433
|
if (isSelect) {
|
|
7422
7434
|
sLen++;
|
|
7423
7435
|
}
|
|
7424
|
-
else if (
|
|
7436
|
+
else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7425
7437
|
hLen++;
|
|
7426
7438
|
}
|
|
7427
7439
|
vLen++;
|
|
@@ -7430,18 +7442,18 @@ export default defineComponent({
|
|
|
7430
7442
|
if (isSelect) {
|
|
7431
7443
|
sLen++;
|
|
7432
7444
|
}
|
|
7433
|
-
else if (
|
|
7445
|
+
else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7434
7446
|
hLen++;
|
|
7435
7447
|
}
|
|
7436
7448
|
}
|
|
7437
7449
|
}
|
|
7438
7450
|
: item => {
|
|
7439
|
-
const childRowid =
|
|
7440
|
-
const isSelect = checkField ? XEUtils.get(item, checkField) :
|
|
7451
|
+
const childRowid = handleGetRowId(item);
|
|
7452
|
+
const isSelect = checkField ? XEUtils.get(item, checkField) : selectCheckboxMaps[childRowid];
|
|
7441
7453
|
if (isSelect) {
|
|
7442
7454
|
sLen++;
|
|
7443
7455
|
}
|
|
7444
|
-
else if (
|
|
7456
|
+
else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7445
7457
|
hLen++;
|
|
7446
7458
|
}
|
|
7447
7459
|
vLen++;
|
|
@@ -7453,51 +7465,50 @@ export default defineComponent({
|
|
|
7453
7465
|
}
|
|
7454
7466
|
if (isSelected) {
|
|
7455
7467
|
if (!checkField) {
|
|
7456
|
-
|
|
7468
|
+
selectCheckboxMaps[rowid] = row;
|
|
7457
7469
|
}
|
|
7458
|
-
if (
|
|
7459
|
-
delete
|
|
7470
|
+
if (treeIndeterminateRowMaps[rowid]) {
|
|
7471
|
+
delete treeIndeterminateRowMaps[rowid];
|
|
7460
7472
|
}
|
|
7461
7473
|
}
|
|
7462
7474
|
else {
|
|
7463
7475
|
if (!checkField) {
|
|
7464
|
-
if (
|
|
7465
|
-
delete
|
|
7476
|
+
if (selectCheckboxMaps[rowid]) {
|
|
7477
|
+
delete selectCheckboxMaps[rowid];
|
|
7466
7478
|
}
|
|
7467
7479
|
}
|
|
7468
7480
|
if (halfSelect) {
|
|
7469
|
-
|
|
7481
|
+
treeIndeterminateRowMaps[rowid] = row;
|
|
7470
7482
|
}
|
|
7471
7483
|
else {
|
|
7472
|
-
if (
|
|
7473
|
-
delete
|
|
7484
|
+
if (treeIndeterminateRowMaps[rowid]) {
|
|
7485
|
+
delete treeIndeterminateRowMaps[rowid];
|
|
7474
7486
|
}
|
|
7475
7487
|
}
|
|
7476
7488
|
}
|
|
7477
7489
|
});
|
|
7478
7490
|
}
|
|
7479
|
-
reactData.
|
|
7480
|
-
reactData.treeIndeterminateMaps = halfRowMaps;
|
|
7491
|
+
reactData.updateCheckboxFlag++;
|
|
7481
7492
|
},
|
|
7482
7493
|
updateAllCheckboxStatus() {
|
|
7483
7494
|
const { treeConfig } = props;
|
|
7484
|
-
const { selectCheckboxMaps,
|
|
7495
|
+
const { afterFullData, afterTreeFullData, checkboxReserveRowMap, selectCheckboxMaps, treeIndeterminateRowMaps } = internalData;
|
|
7485
7496
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
7486
7497
|
const { checkField, checkMethod, showReserveStatus } = checkboxOpts;
|
|
7487
|
-
const {
|
|
7498
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
7488
7499
|
let sLen = 0; // 已选
|
|
7489
7500
|
let hLen = 0; // 半选
|
|
7490
7501
|
let vLen = 0; // 有效行
|
|
7491
7502
|
const rootList = (treeConfig ? afterTreeFullData : afterFullData);
|
|
7492
7503
|
rootList.forEach(checkMethod
|
|
7493
7504
|
? row => {
|
|
7494
|
-
const childRowid =
|
|
7505
|
+
const childRowid = handleGetRowId(row);
|
|
7495
7506
|
const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid];
|
|
7496
7507
|
if (checkMethod({ row })) {
|
|
7497
7508
|
if (selected) {
|
|
7498
7509
|
sLen++;
|
|
7499
7510
|
}
|
|
7500
|
-
else if (
|
|
7511
|
+
else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7501
7512
|
hLen++;
|
|
7502
7513
|
}
|
|
7503
7514
|
vLen++;
|
|
@@ -7506,18 +7517,18 @@ export default defineComponent({
|
|
|
7506
7517
|
if (selected) {
|
|
7507
7518
|
sLen++;
|
|
7508
7519
|
}
|
|
7509
|
-
else if (
|
|
7520
|
+
else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7510
7521
|
hLen++;
|
|
7511
7522
|
}
|
|
7512
7523
|
}
|
|
7513
7524
|
}
|
|
7514
7525
|
: row => {
|
|
7515
|
-
const childRowid =
|
|
7526
|
+
const childRowid = handleGetRowId(row);
|
|
7516
7527
|
const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid];
|
|
7517
7528
|
if (selected) {
|
|
7518
7529
|
sLen++;
|
|
7519
7530
|
}
|
|
7520
|
-
else if (
|
|
7531
|
+
else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7521
7532
|
hLen++;
|
|
7522
7533
|
}
|
|
7523
7534
|
vLen++;
|
|
@@ -7541,13 +7552,13 @@ export default defineComponent({
|
|
|
7541
7552
|
*/
|
|
7542
7553
|
handleBatchSelectRows(rows, checked, isForce) {
|
|
7543
7554
|
const { treeConfig } = props;
|
|
7544
|
-
const { selectCheckboxMaps } =
|
|
7545
|
-
const selectRowMaps = Object.assign({}, selectCheckboxMaps);
|
|
7555
|
+
const { selectCheckboxMaps } = internalData;
|
|
7546
7556
|
const treeOpts = computeTreeOpts.value;
|
|
7547
7557
|
const { transform, mapChildrenField } = treeOpts;
|
|
7548
7558
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
7549
7559
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
7550
7560
|
const { checkField, checkStrictly, checkMethod } = checkboxOpts;
|
|
7561
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
7551
7562
|
// indeterminateField 仅支持读取
|
|
7552
7563
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
7553
7564
|
if (checkField) {
|
|
@@ -7563,59 +7574,57 @@ export default defineComponent({
|
|
|
7563
7574
|
handleCheckboxReserveRow(row, checked);
|
|
7564
7575
|
}
|
|
7565
7576
|
}, { children: transform ? mapChildrenField : childrenField });
|
|
7566
|
-
reactData.
|
|
7577
|
+
reactData.updateCheckboxFlag++;
|
|
7567
7578
|
return;
|
|
7568
7579
|
}
|
|
7569
|
-
|
|
7570
|
-
|
|
7571
|
-
|
|
7572
|
-
|
|
7573
|
-
|
|
7574
|
-
|
|
7575
|
-
|
|
7576
|
-
|
|
7577
|
-
}
|
|
7578
|
-
reactData.selectCheckboxMaps = selectRowMaps;
|
|
7580
|
+
// 列表
|
|
7581
|
+
rows.forEach(row => {
|
|
7582
|
+
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
7583
|
+
XEUtils.set(row, checkField, checked);
|
|
7584
|
+
handleCheckboxReserveRow(row, checked);
|
|
7585
|
+
}
|
|
7586
|
+
});
|
|
7587
|
+
reactData.updateCheckboxFlag++;
|
|
7579
7588
|
return;
|
|
7580
7589
|
}
|
|
7581
7590
|
// 树结构
|
|
7582
7591
|
if (treeConfig && !checkStrictly) {
|
|
7583
7592
|
// 更新子节点状态
|
|
7584
7593
|
XEUtils.eachTree(rows, (row) => {
|
|
7585
|
-
const rowid =
|
|
7594
|
+
const rowid = handleGetRowId(row);
|
|
7586
7595
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
7587
7596
|
if (checked) {
|
|
7588
|
-
|
|
7597
|
+
selectCheckboxMaps[rowid] = row;
|
|
7589
7598
|
}
|
|
7590
7599
|
else {
|
|
7591
|
-
if (
|
|
7592
|
-
delete
|
|
7600
|
+
if (selectCheckboxMaps[rowid]) {
|
|
7601
|
+
delete selectCheckboxMaps[rowid];
|
|
7593
7602
|
}
|
|
7594
7603
|
}
|
|
7595
7604
|
handleCheckboxReserveRow(row, checked);
|
|
7596
7605
|
}
|
|
7597
7606
|
}, { children: transform ? mapChildrenField : childrenField });
|
|
7598
|
-
reactData.
|
|
7607
|
+
reactData.updateCheckboxFlag++;
|
|
7599
7608
|
return;
|
|
7600
7609
|
}
|
|
7601
7610
|
// 列表
|
|
7602
7611
|
rows.forEach(row => {
|
|
7603
|
-
const rowid =
|
|
7612
|
+
const rowid = handleGetRowId(row);
|
|
7604
7613
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
7605
7614
|
if (checked) {
|
|
7606
|
-
if (!
|
|
7607
|
-
|
|
7615
|
+
if (!selectCheckboxMaps[rowid]) {
|
|
7616
|
+
selectCheckboxMaps[rowid] = row;
|
|
7608
7617
|
}
|
|
7609
7618
|
}
|
|
7610
7619
|
else {
|
|
7611
|
-
if (
|
|
7612
|
-
delete
|
|
7620
|
+
if (selectCheckboxMaps[rowid]) {
|
|
7621
|
+
delete selectCheckboxMaps[rowid];
|
|
7613
7622
|
}
|
|
7614
7623
|
}
|
|
7615
7624
|
handleCheckboxReserveRow(row, checked);
|
|
7625
|
+
reactData.updateCheckboxFlag++;
|
|
7616
7626
|
}
|
|
7617
7627
|
});
|
|
7618
|
-
reactData.selectCheckboxMaps = selectRowMaps;
|
|
7619
7628
|
},
|
|
7620
7629
|
/**
|
|
7621
7630
|
* 即将移除
|
|
@@ -7663,7 +7672,7 @@ export default defineComponent({
|
|
|
7663
7672
|
return;
|
|
7664
7673
|
}
|
|
7665
7674
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
7666
|
-
handleTooltip(evnt, thEl, cellEl,
|
|
7675
|
+
handleTooltip(evnt, thEl, thEl.querySelector('.vxe-cell--title') || cellEl, params);
|
|
7667
7676
|
}
|
|
7668
7677
|
},
|
|
7669
7678
|
/**
|
|
@@ -7690,7 +7699,7 @@ export default defineComponent({
|
|
|
7690
7699
|
}
|
|
7691
7700
|
}
|
|
7692
7701
|
if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
|
|
7693
|
-
handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--wrapper'),
|
|
7702
|
+
handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
|
|
7694
7703
|
}
|
|
7695
7704
|
},
|
|
7696
7705
|
/**
|
|
@@ -7699,10 +7708,10 @@ export default defineComponent({
|
|
|
7699
7708
|
triggerFooterTooltipEvent(evnt, params) {
|
|
7700
7709
|
const { column } = params;
|
|
7701
7710
|
const { tooltipStore } = reactData;
|
|
7702
|
-
const
|
|
7711
|
+
const tdEl = evnt.currentTarget;
|
|
7703
7712
|
handleTargetEnterEvent(tooltipStore.column !== column || !!tooltipStore.row);
|
|
7704
7713
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
7705
|
-
handleTooltip(evnt,
|
|
7714
|
+
handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
|
|
7706
7715
|
}
|
|
7707
7716
|
},
|
|
7708
7717
|
handleTargetLeaveEvent() {
|
|
@@ -7727,17 +7736,18 @@ export default defineComponent({
|
|
|
7727
7736
|
const { _lastResizeTime } = internalData;
|
|
7728
7737
|
const sortOpts = computeSortOpts.value;
|
|
7729
7738
|
const columnOpts = computeColumnOpts.value;
|
|
7739
|
+
const currentColumnOpts = computeCurrentColumnOpts.value;
|
|
7730
7740
|
const { column } = params;
|
|
7731
7741
|
const cell = evnt.currentTarget;
|
|
7732
7742
|
const triggerResizable = _lastResizeTime && _lastResizeTime > Date.now() - 300;
|
|
7733
7743
|
const triggerSort = getEventTargetNode(evnt, cell, 'vxe-cell--sort').flag;
|
|
7734
7744
|
const triggerFilter = getEventTargetNode(evnt, cell, 'vxe-cell--filter').flag;
|
|
7735
7745
|
if (sortOpts.trigger === 'cell' && !(triggerResizable || triggerSort || triggerFilter)) {
|
|
7736
|
-
|
|
7746
|
+
$xeTable.triggerSortEvent(evnt, column, getNextSortOrder(column));
|
|
7737
7747
|
}
|
|
7738
7748
|
dispatchEvent('header-cell-click', Object.assign({ triggerResizable, triggerSort, triggerFilter, cell }, params), evnt);
|
|
7739
|
-
if (columnOpts.isCurrent || props.highlightCurrentColumn) {
|
|
7740
|
-
|
|
7749
|
+
if ((columnOpts.isCurrent || props.highlightCurrentColumn) && (!currentColumnOpts.trigger || ['header', 'default'].includes(currentColumnOpts.trigger))) {
|
|
7750
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params);
|
|
7741
7751
|
}
|
|
7742
7752
|
},
|
|
7743
7753
|
triggerHeaderCellDblclickEvent(evnt, params) {
|
|
@@ -7749,7 +7759,7 @@ export default defineComponent({
|
|
|
7749
7759
|
* 如果是双击模式,则单击后选中状态
|
|
7750
7760
|
*/
|
|
7751
7761
|
triggerCellClickEvent(evnt, params) {
|
|
7752
|
-
const { highlightCurrentRow, editConfig } = props;
|
|
7762
|
+
const { highlightCurrentRow, highlightCurrentColumn, editConfig } = props;
|
|
7753
7763
|
const { editStore, isDragResize } = reactData;
|
|
7754
7764
|
if (isDragResize) {
|
|
7755
7765
|
return;
|
|
@@ -7761,6 +7771,8 @@ export default defineComponent({
|
|
|
7761
7771
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
7762
7772
|
const keyboardOpts = computeKeyboardOpts.value;
|
|
7763
7773
|
const rowOpts = computeRowOpts.value;
|
|
7774
|
+
const columnOpts = computeColumnOpts.value;
|
|
7775
|
+
const currentColumnOpts = computeCurrentColumnOpts.value;
|
|
7764
7776
|
const { actived, focused } = editStore;
|
|
7765
7777
|
const { row, column } = params;
|
|
7766
7778
|
const { type, treeNode } = column;
|
|
@@ -7776,29 +7788,35 @@ export default defineComponent({
|
|
|
7776
7788
|
if (!triggerCheckbox && !triggerRadio) {
|
|
7777
7789
|
// 如果是展开行
|
|
7778
7790
|
if (!triggerExpandNode && (expandOpts.trigger === 'row' || (isExpandType && expandOpts.trigger === 'cell'))) {
|
|
7779
|
-
|
|
7791
|
+
$xeTable.triggerRowExpandEvent(evnt, params);
|
|
7780
7792
|
}
|
|
7781
7793
|
// 如果是树形表格
|
|
7782
7794
|
if ((treeOpts.trigger === 'row' || (treeNode && treeOpts.trigger === 'cell'))) {
|
|
7783
|
-
|
|
7795
|
+
$xeTable.triggerTreeExpandEvent(evnt, params);
|
|
7784
7796
|
}
|
|
7785
7797
|
}
|
|
7786
7798
|
// 如果点击了树节点
|
|
7787
7799
|
if (!triggerTreeNode) {
|
|
7788
7800
|
if (!triggerExpandNode) {
|
|
7789
|
-
//
|
|
7801
|
+
// 如果是当前行
|
|
7790
7802
|
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
7791
7803
|
if (!triggerCheckbox && !triggerRadio) {
|
|
7792
|
-
|
|
7804
|
+
$xeTable.triggerCurrentRowEvent(evnt, params);
|
|
7805
|
+
}
|
|
7806
|
+
}
|
|
7807
|
+
// 如果是当前列
|
|
7808
|
+
if ((columnOpts.isCurrent || highlightCurrentColumn) && (!currentColumnOpts.trigger || ['cell', 'default'].includes(currentColumnOpts.trigger))) {
|
|
7809
|
+
if (!triggerCheckbox && !triggerRadio) {
|
|
7810
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params);
|
|
7793
7811
|
}
|
|
7794
7812
|
}
|
|
7795
7813
|
// 如果是单选框
|
|
7796
7814
|
if (!triggerRadio && (radioOpts.trigger === 'row' || (isRadioType && radioOpts.trigger === 'cell'))) {
|
|
7797
|
-
|
|
7815
|
+
$xeTable.triggerRadioRowEvent(evnt, params);
|
|
7798
7816
|
}
|
|
7799
7817
|
// 如果是复选框
|
|
7800
7818
|
if (!triggerCheckbox && (checkboxOpts.trigger === 'row' || (isCheckboxType && checkboxOpts.trigger === 'cell'))) {
|
|
7801
|
-
|
|
7819
|
+
$xeTable.handleToggleCheckRowEvent(evnt, params);
|
|
7802
7820
|
}
|
|
7803
7821
|
}
|
|
7804
7822
|
// 如果设置了单元格选中功能,则不会使用点击事件去处理(只能支持双击模式)
|
|
@@ -7877,7 +7895,7 @@ export default defineComponent({
|
|
|
7877
7895
|
dispatchEvent('cell-dblclick', params, evnt);
|
|
7878
7896
|
},
|
|
7879
7897
|
handleToggleCheckRowEvent(evnt, params) {
|
|
7880
|
-
const { selectCheckboxMaps } =
|
|
7898
|
+
const { selectCheckboxMaps } = internalData;
|
|
7881
7899
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
7882
7900
|
const { checkField, trigger } = checkboxOpts;
|
|
7883
7901
|
const { row } = params;
|
|
@@ -7892,44 +7910,46 @@ export default defineComponent({
|
|
|
7892
7910
|
checked = !selectCheckboxMaps[getRowid($xeTable, row)];
|
|
7893
7911
|
}
|
|
7894
7912
|
if (evnt) {
|
|
7895
|
-
|
|
7913
|
+
$xeTable.triggerCheckRowEvent(evnt, params, checked);
|
|
7896
7914
|
}
|
|
7897
7915
|
else {
|
|
7898
|
-
|
|
7899
|
-
|
|
7916
|
+
$xeTable.handleBatchSelectRows([row], checked);
|
|
7917
|
+
$xeTable.checkSelectionStatus();
|
|
7900
7918
|
}
|
|
7901
7919
|
},
|
|
7902
7920
|
triggerCheckRowEvent(evnt, params, checked) {
|
|
7903
|
-
const checkboxOpts = computeCheckboxOpts.value;
|
|
7904
7921
|
const { row } = params;
|
|
7905
7922
|
const { afterFullData } = internalData;
|
|
7923
|
+
const checkboxOpts = computeCheckboxOpts.value;
|
|
7906
7924
|
const { checkMethod, trigger } = checkboxOpts;
|
|
7907
7925
|
if (trigger === 'manual') {
|
|
7908
7926
|
return;
|
|
7909
7927
|
}
|
|
7910
7928
|
evnt.stopPropagation();
|
|
7911
7929
|
if (checkboxOpts.isShiftKey && evnt.shiftKey && !props.treeConfig) {
|
|
7912
|
-
const checkboxRecords =
|
|
7930
|
+
const checkboxRecords = $xeTable.getCheckboxRecords();
|
|
7913
7931
|
if (checkboxRecords.length) {
|
|
7914
7932
|
const firstRow = checkboxRecords[0];
|
|
7915
|
-
const _rowIndex =
|
|
7916
|
-
const _firstRowIndex =
|
|
7933
|
+
const _rowIndex = $xeTable.getVTRowIndex(row);
|
|
7934
|
+
const _firstRowIndex = $xeTable.getVTRowIndex(firstRow);
|
|
7917
7935
|
if (_rowIndex !== _firstRowIndex) {
|
|
7918
|
-
|
|
7936
|
+
$xeTable.setAllCheckboxRow(false);
|
|
7919
7937
|
const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1);
|
|
7920
|
-
|
|
7938
|
+
nextTick(() => {
|
|
7939
|
+
handleCheckedCheckboxRow(rangeRows, true, false);
|
|
7940
|
+
});
|
|
7921
7941
|
dispatchEvent('checkbox-range-select', Object.assign({ rangeRecords: rangeRows }, params), evnt);
|
|
7922
7942
|
return;
|
|
7923
7943
|
}
|
|
7924
7944
|
}
|
|
7925
7945
|
}
|
|
7926
7946
|
if (!checkMethod || checkMethod({ row })) {
|
|
7927
|
-
|
|
7928
|
-
|
|
7947
|
+
$xeTable.handleBatchSelectRows([row], checked);
|
|
7948
|
+
$xeTable.checkSelectionStatus();
|
|
7929
7949
|
dispatchEvent('checkbox-change', Object.assign({
|
|
7930
|
-
records:
|
|
7931
|
-
reserves:
|
|
7932
|
-
indeterminates:
|
|
7950
|
+
records: () => $xeTable.getCheckboxRecords(),
|
|
7951
|
+
reserves: () => $xeTable.getCheckboxReserveRecords(),
|
|
7952
|
+
indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
|
|
7933
7953
|
checked
|
|
7934
7954
|
}, params), evnt);
|
|
7935
7955
|
}
|
|
@@ -8001,7 +8021,8 @@ export default defineComponent({
|
|
|
8001
8021
|
* 展开行事件
|
|
8002
8022
|
*/
|
|
8003
8023
|
triggerRowExpandEvent(evnt, params) {
|
|
8004
|
-
const {
|
|
8024
|
+
const { expandColumn: column } = reactData;
|
|
8025
|
+
const { rowExpandLazyLoadedMaps } = internalData;
|
|
8005
8026
|
const expandOpts = computeExpandOpts.value;
|
|
8006
8027
|
const { row } = params;
|
|
8007
8028
|
const { lazy, trigger } = expandOpts;
|
|
@@ -8011,18 +8032,18 @@ export default defineComponent({
|
|
|
8011
8032
|
evnt.stopPropagation();
|
|
8012
8033
|
const rowid = getRowid($xeTable, row);
|
|
8013
8034
|
if (!lazy || !rowExpandLazyLoadedMaps[rowid]) {
|
|
8014
|
-
const expanded =
|
|
8015
|
-
const columnIndex =
|
|
8016
|
-
const $columnIndex =
|
|
8017
|
-
|
|
8035
|
+
const expanded = !$xeTable.isRowExpandByRow(row);
|
|
8036
|
+
const columnIndex = $xeTable.getColumnIndex(column);
|
|
8037
|
+
const $columnIndex = $xeTable.getVMColumnIndex(column);
|
|
8038
|
+
$xeTable.setRowExpand(row, expanded);
|
|
8018
8039
|
dispatchEvent('toggle-row-expand', {
|
|
8019
8040
|
expanded,
|
|
8020
8041
|
column,
|
|
8021
8042
|
columnIndex,
|
|
8022
8043
|
$columnIndex,
|
|
8023
8044
|
row,
|
|
8024
|
-
rowIndex:
|
|
8025
|
-
$rowIndex:
|
|
8045
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
8046
|
+
$rowIndex: $xeTable.getVMRowIndex(row)
|
|
8026
8047
|
}, evnt);
|
|
8027
8048
|
}
|
|
8028
8049
|
},
|
|
@@ -8030,7 +8051,7 @@ export default defineComponent({
|
|
|
8030
8051
|
* 展开树节点事件
|
|
8031
8052
|
*/
|
|
8032
8053
|
triggerTreeExpandEvent(evnt, params) {
|
|
8033
|
-
const { treeExpandLazyLoadedMaps } =
|
|
8054
|
+
const { treeExpandLazyLoadedMaps } = internalData;
|
|
8034
8055
|
const treeOpts = computeTreeOpts.value;
|
|
8035
8056
|
const { row, column } = params;
|
|
8036
8057
|
const { lazy, trigger } = treeOpts;
|
|
@@ -8040,10 +8061,10 @@ export default defineComponent({
|
|
|
8040
8061
|
evnt.stopPropagation();
|
|
8041
8062
|
const rowid = getRowid($xeTable, row);
|
|
8042
8063
|
if (!lazy || !treeExpandLazyLoadedMaps[rowid]) {
|
|
8043
|
-
const expanded =
|
|
8044
|
-
const columnIndex =
|
|
8045
|
-
const $columnIndex =
|
|
8046
|
-
|
|
8064
|
+
const expanded = !$xeTable.isTreeExpandByRow(row);
|
|
8065
|
+
const columnIndex = $xeTable.getColumnIndex(column);
|
|
8066
|
+
const $columnIndex = $xeTable.getVMColumnIndex(column);
|
|
8067
|
+
$xeTable.setTreeExpand(row, expanded);
|
|
8047
8068
|
dispatchEvent('toggle-tree-expand', { expanded, column, columnIndex, $columnIndex, row }, evnt);
|
|
8048
8069
|
}
|
|
8049
8070
|
},
|
|
@@ -8188,12 +8209,11 @@ export default defineComponent({
|
|
|
8188
8209
|
handleRowDragSwapEvent(evnt, isSyncRow, dragRow, prevDragRow, prevDragPos, prevDragToChild) {
|
|
8189
8210
|
const { treeConfig, dragConfig } = props;
|
|
8190
8211
|
const rowDragOpts = computeRowDragOpts.value;
|
|
8191
|
-
const { fullAllDataRowIdData } = internalData;
|
|
8212
|
+
const { afterFullData, tableFullData, fullAllDataRowIdData } = internalData;
|
|
8192
8213
|
const { isPeerDrag, isCrossDrag, isSelfToChildDrag, dragEndMethod, dragToChildMethod } = rowDragOpts;
|
|
8193
8214
|
const treeOpts = computeTreeOpts.value;
|
|
8194
8215
|
const { transform, rowField, mapChildrenField, parentField } = treeOpts;
|
|
8195
8216
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
8196
|
-
const { afterFullData, tableFullData } = internalData;
|
|
8197
8217
|
const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
|
|
8198
8218
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
8199
8219
|
const errRest = {
|
|
@@ -9047,10 +9067,10 @@ export default defineComponent({
|
|
|
9047
9067
|
return;
|
|
9048
9068
|
}
|
|
9049
9069
|
const { highlightHoverRow } = tableProps;
|
|
9050
|
-
const { scrollXLoad, scrollYLoad } = reactData;
|
|
9070
|
+
const { scrollXLoad, scrollYLoad, expandColumn } = reactData;
|
|
9051
9071
|
const leftFixedWidth = computeLeftFixedWidth.value;
|
|
9052
9072
|
const rightFixedWidth = computeRightFixedWidth.value;
|
|
9053
|
-
if (!(
|
|
9073
|
+
if (!(leftFixedWidth || rightFixedWidth || expandColumn)) {
|
|
9054
9074
|
return;
|
|
9055
9075
|
}
|
|
9056
9076
|
const { elemStore, lastScrollTop, lastScrollLeft } = internalData;
|
|
@@ -9292,8 +9312,8 @@ export default defineComponent({
|
|
|
9292
9312
|
},
|
|
9293
9313
|
// 更新纵向 Y 可视渲染上下剩余空间大小
|
|
9294
9314
|
updateScrollYSpace() {
|
|
9295
|
-
const { isAllOverflow, scrollYLoad, expandColumn
|
|
9296
|
-
const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData } = internalData;
|
|
9315
|
+
const { isAllOverflow, scrollYLoad, expandColumn } = reactData;
|
|
9316
|
+
const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData;
|
|
9297
9317
|
const { startIndex } = scrollYStore;
|
|
9298
9318
|
const expandOpts = computeExpandOpts.value;
|
|
9299
9319
|
const rowOpts = computeRowOpts.value;
|
|
@@ -9638,6 +9658,7 @@ export default defineComponent({
|
|
|
9638
9658
|
})
|
|
9639
9659
|
];
|
|
9640
9660
|
if (expandColumn) {
|
|
9661
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
9641
9662
|
tableRowExpandedList.forEach((row) => {
|
|
9642
9663
|
const expandOpts = computeExpandOpts.value;
|
|
9643
9664
|
const { height: expandHeight, padding } = expandOpts;
|
|
@@ -9645,7 +9666,7 @@ export default defineComponent({
|
|
|
9645
9666
|
const treeOpts = computeTreeOpts.value;
|
|
9646
9667
|
const { transform, seqMode } = treeOpts;
|
|
9647
9668
|
const cellStyle = {};
|
|
9648
|
-
const rowid =
|
|
9669
|
+
const rowid = handleGetRowId(row);
|
|
9649
9670
|
const rest = fullAllDataRowIdData[rowid];
|
|
9650
9671
|
let rowLevel = 0;
|
|
9651
9672
|
let seq = -1;
|