vxe-table 4.12.0-beta.9 → 4.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/grid/src/grid.js +45 -36
- 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 +29 -33
- 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 -5
- package/es/table/render/index.js +3 -3
- package/es/table/src/body.js +45 -27
- 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 +501 -512
- package/es/table/src/util.js +34 -6
- package/es/ui/index.js +4 -3
- 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 +42 -40
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +12594 -1185
- 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 +36 -45
- 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 +6 -10
- 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 +53 -26
- 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 +594 -564
- 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 +4 -3
- 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 +49 -42
- 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 +30 -33
- 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 -5
- package/packages/table/render/index.ts +3 -4
- package/packages/table/src/body.ts +46 -27
- 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 +513 -518
- package/packages/table/src/util.ts +39 -6
- package/packages/ui/index.ts +3 -2
- /package/es/{iconfont.1741337003908.ttf → iconfont.1743045589885.ttf} +0 -0
- /package/es/{iconfont.1741337003908.woff → iconfont.1743045589885.woff} +0 -0
- /package/es/{iconfont.1741337003908.woff2 → iconfont.1743045589885.woff2} +0 -0
- /package/lib/{iconfont.1741337003908.ttf → iconfont.1743045589885.ttf} +0 -0
- /package/lib/{iconfont.1741337003908.woff → iconfont.1743045589885.woff} +0 -0
- /package/lib/{iconfont.1741337003908.woff2 → iconfont.1743045589885.woff2} +0 -0
|
@@ -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'
|
|
@@ -23,6 +23,7 @@ import type { VxeGridConstructor, VxeGridPrivateMethods, VxeTableConstructor, Ta
|
|
|
23
23
|
|
|
24
24
|
const { getConfig, getIcon, getI18n, renderer, formats, createEvent, globalResize, interceptor, hooks, globalEvents, GLOBAL_EVENT_KEYS, useFns, renderEmptyElement } = VxeUI
|
|
25
25
|
|
|
26
|
+
const supportMaxRow = 5e6
|
|
26
27
|
const customStorageKey = 'VXE_CUSTOM_STORE'
|
|
27
28
|
const maxYHeight = 5e6
|
|
28
29
|
const maxXWidth = 5e6
|
|
@@ -78,8 +79,6 @@ export default defineComponent({
|
|
|
78
79
|
isAllSelected: false,
|
|
79
80
|
// 复选框属性,有选中且非全选状态
|
|
80
81
|
isIndeterminate: false,
|
|
81
|
-
// 复选框属性,已选中的行集合
|
|
82
|
-
selectCheckboxMaps: {},
|
|
83
82
|
// 当前行
|
|
84
83
|
currentRow: null,
|
|
85
84
|
// 单选框属性,选中列
|
|
@@ -93,16 +92,6 @@ export default defineComponent({
|
|
|
93
92
|
// 树节点列信息
|
|
94
93
|
treeNodeColumn: null,
|
|
95
94
|
hasFixedColumn: false,
|
|
96
|
-
// 已展开的行集合
|
|
97
|
-
rowExpandedMaps: {},
|
|
98
|
-
// 懒加载中的展开行的集合
|
|
99
|
-
rowExpandLazyLoadedMaps: {},
|
|
100
|
-
// 已展开树节点集合
|
|
101
|
-
treeExpandedMaps: {},
|
|
102
|
-
// 懒加载中的树节点的集合
|
|
103
|
-
treeExpandLazyLoadedMaps: {},
|
|
104
|
-
// 树节点不确定状态的集合
|
|
105
|
-
treeIndeterminateMaps: {},
|
|
106
95
|
// 合并单元格的对象集
|
|
107
96
|
mergeList: [],
|
|
108
97
|
// 合并表尾数据的对象集
|
|
@@ -111,8 +100,6 @@ export default defineComponent({
|
|
|
111
100
|
upDataFlag: 0,
|
|
112
101
|
// 刷新列标识,当列的特定属性被改变时,触发表格刷新列
|
|
113
102
|
reColumnFlag: 0,
|
|
114
|
-
// 已标记的对象集
|
|
115
|
-
pendingRowMaps: {},
|
|
116
103
|
// 初始化标识
|
|
117
104
|
initStore: {
|
|
118
105
|
filter: false,
|
|
@@ -196,9 +183,7 @@ export default defineComponent({
|
|
|
196
183
|
focused: {
|
|
197
184
|
row: null,
|
|
198
185
|
column: null
|
|
199
|
-
}
|
|
200
|
-
insertMaps: {},
|
|
201
|
-
removeMaps: {}
|
|
186
|
+
}
|
|
202
187
|
},
|
|
203
188
|
// 存放 tooltip 相关信息
|
|
204
189
|
tooltipStore: {
|
|
@@ -257,6 +242,13 @@ export default defineComponent({
|
|
|
257
242
|
isFooter: false
|
|
258
243
|
},
|
|
259
244
|
|
|
245
|
+
rowExpandedFlag: 1,
|
|
246
|
+
treeExpandedFlag: 1,
|
|
247
|
+
updateCheckboxFlag: 1,
|
|
248
|
+
pendingRowFlag: 1,
|
|
249
|
+
insertRowFlag: 1,
|
|
250
|
+
removeRowFlag: 1,
|
|
251
|
+
|
|
260
252
|
rowHeightStore: {
|
|
261
253
|
default: 48,
|
|
262
254
|
medium: 44,
|
|
@@ -275,6 +267,7 @@ export default defineComponent({
|
|
|
275
267
|
rowExpandHeightFlag: 1,
|
|
276
268
|
calcCellHeightFlag: 1,
|
|
277
269
|
resizeHeightFlag: 1,
|
|
270
|
+
resizeWidthFlag: 1,
|
|
278
271
|
|
|
279
272
|
isCustomStatus: false,
|
|
280
273
|
|
|
@@ -361,7 +354,23 @@ export default defineComponent({
|
|
|
361
354
|
fullDataRowIdData: {},
|
|
362
355
|
fullColumnIdData: {},
|
|
363
356
|
fullColumnFieldData: {},
|
|
364
|
-
|
|
357
|
+
|
|
358
|
+
// 已展开的行集合
|
|
359
|
+
rowExpandedMaps: {},
|
|
360
|
+
// 懒加载中的展开行的集合
|
|
361
|
+
rowExpandLazyLoadedMaps: {},
|
|
362
|
+
// 已展开树节点集合
|
|
363
|
+
treeExpandedMaps: {},
|
|
364
|
+
// 懒加载中的树节点的集合
|
|
365
|
+
treeExpandLazyLoadedMaps: {},
|
|
366
|
+
// 复选框属性,已选中的行集合
|
|
367
|
+
selectCheckboxMaps: {},
|
|
368
|
+
// 已标记的对象集
|
|
369
|
+
pendingRowMaps: {},
|
|
370
|
+
// 已新增的临时行
|
|
371
|
+
insertRowMaps: {},
|
|
372
|
+
// 已删除行
|
|
373
|
+
removeRowMaps: {},
|
|
365
374
|
|
|
366
375
|
inited: false,
|
|
367
376
|
tooltipTimeout: null,
|
|
@@ -433,7 +442,7 @@ export default defineComponent({
|
|
|
433
442
|
})
|
|
434
443
|
|
|
435
444
|
const computeValidOpts = computed(() => {
|
|
436
|
-
return Object.assign({}, getConfig().table.validConfig, props.validConfig)
|
|
445
|
+
return Object.assign({}, getConfig().table.validConfig, props.validConfig)
|
|
437
446
|
})
|
|
438
447
|
|
|
439
448
|
/**
|
|
@@ -441,12 +450,12 @@ export default defineComponent({
|
|
|
441
450
|
*/
|
|
442
451
|
const computeSXOpts = computed(() => {
|
|
443
452
|
const virtualXOpts = computeVirtualXOpts.value
|
|
444
|
-
return virtualXOpts
|
|
453
|
+
return virtualXOpts
|
|
445
454
|
})
|
|
446
455
|
|
|
447
456
|
const computeScrollXThreshold = computed(() => {
|
|
448
|
-
const
|
|
449
|
-
const { threshold } =
|
|
457
|
+
const virtualXOpts = computeVirtualXOpts.value
|
|
458
|
+
const { threshold } = virtualXOpts
|
|
450
459
|
if (threshold) {
|
|
451
460
|
return XEUtils.toNumber(threshold)
|
|
452
461
|
}
|
|
@@ -458,15 +467,15 @@ export default defineComponent({
|
|
|
458
467
|
*/
|
|
459
468
|
const computeSYOpts = computed(() => {
|
|
460
469
|
const virtualYOpts = computeVirtualYOpts.value
|
|
461
|
-
return virtualYOpts
|
|
470
|
+
return virtualYOpts
|
|
462
471
|
})
|
|
463
472
|
|
|
464
473
|
const computeVirtualXOpts = computed(() => {
|
|
465
|
-
return Object.assign({}, getConfig().table.scrollX, getConfig().table.virtualXConfig, props.scrollX, props.virtualXConfig) as VxeTablePropTypes.VirtualXConfig
|
|
474
|
+
return Object.assign({}, getConfig().table.scrollX, getConfig().table.virtualXConfig, props.scrollX, props.virtualXConfig) as VxeTablePropTypes.VirtualXConfig & { gt: number }
|
|
466
475
|
})
|
|
467
476
|
|
|
468
477
|
const computeVirtualYOpts = computed(() => {
|
|
469
|
-
return Object.assign({}, getConfig().table.scrollY, getConfig().table.virtualYConfig, props.scrollY, props.virtualYConfig) as VxeTablePropTypes.VirtualYConfig
|
|
478
|
+
return Object.assign({}, getConfig().table.scrollY, getConfig().table.virtualYConfig, props.scrollY, props.virtualYConfig) as VxeTablePropTypes.VirtualYConfig & { gt: number }
|
|
470
479
|
})
|
|
471
480
|
|
|
472
481
|
const computeScrollbarOpts = computed(() => {
|
|
@@ -484,8 +493,8 @@ export default defineComponent({
|
|
|
484
493
|
})
|
|
485
494
|
|
|
486
495
|
const computeScrollYThreshold = computed(() => {
|
|
487
|
-
const
|
|
488
|
-
const { threshold } =
|
|
496
|
+
const virtualYOpts = computeVirtualYOpts.value
|
|
497
|
+
const { threshold } = virtualYOpts
|
|
489
498
|
if (threshold) {
|
|
490
499
|
return XEUtils.toNumber(threshold)
|
|
491
500
|
}
|
|
@@ -503,23 +512,43 @@ export default defineComponent({
|
|
|
503
512
|
})
|
|
504
513
|
|
|
505
514
|
const computeColumnOpts = computed(() => {
|
|
506
|
-
return Object.assign({}, getConfig().table.columnConfig, props.columnConfig)
|
|
515
|
+
return Object.assign({}, getConfig().table.columnConfig, props.columnConfig)
|
|
516
|
+
})
|
|
517
|
+
|
|
518
|
+
const computeCurrentColumnOpts = computed(() => {
|
|
519
|
+
return Object.assign({}, getConfig().table.currentColumnConfig, props.currentColumnConfig)
|
|
507
520
|
})
|
|
508
521
|
|
|
509
522
|
const computeCellOpts = computed(() => {
|
|
510
|
-
|
|
523
|
+
const cellOpts = Object.assign({}, getConfig().table.cellConfig, props.cellConfig)
|
|
524
|
+
if (cellOpts.height) {
|
|
525
|
+
cellOpts.height = XEUtils.toNumber(cellOpts.height)
|
|
526
|
+
}
|
|
527
|
+
return cellOpts
|
|
511
528
|
})
|
|
512
529
|
|
|
513
530
|
const computeHeaderCellOpts = computed(() => {
|
|
514
|
-
|
|
531
|
+
const headerCellOpts = Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig)
|
|
532
|
+
if (headerCellOpts.height) {
|
|
533
|
+
headerCellOpts.height = XEUtils.toNumber(headerCellOpts.height)
|
|
534
|
+
}
|
|
535
|
+
return headerCellOpts
|
|
515
536
|
})
|
|
516
537
|
|
|
517
538
|
const computeFooterCellOpts = computed(() => {
|
|
518
|
-
|
|
539
|
+
const footerCellOpts = Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig)
|
|
540
|
+
if (footerCellOpts.height) {
|
|
541
|
+
footerCellOpts.height = XEUtils.toNumber(footerCellOpts.height)
|
|
542
|
+
}
|
|
543
|
+
return footerCellOpts
|
|
519
544
|
})
|
|
520
545
|
|
|
521
546
|
const computeRowOpts = computed(() => {
|
|
522
|
-
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig)
|
|
547
|
+
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig)
|
|
548
|
+
})
|
|
549
|
+
|
|
550
|
+
const computeCurrentRowOpts = computed(() => {
|
|
551
|
+
return Object.assign({}, getConfig().table.currentRowConfig, props.currentRowConfig)
|
|
523
552
|
})
|
|
524
553
|
|
|
525
554
|
const computeRowDragOpts = computed(() => {
|
|
@@ -697,12 +726,14 @@ export default defineComponent({
|
|
|
697
726
|
})
|
|
698
727
|
|
|
699
728
|
const computeTableRowExpandedList = computed(() => {
|
|
700
|
-
const {
|
|
729
|
+
const { rowExpandedFlag, tableData, expandColumn } = reactData
|
|
730
|
+
const { rowExpandedMaps } = internalData
|
|
731
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
701
732
|
const expandList: any[] = []
|
|
702
|
-
if (expandColumn) {
|
|
733
|
+
if (expandColumn && rowExpandedFlag) {
|
|
703
734
|
const rowKeys: Record<string, boolean> = {}
|
|
704
735
|
tableData.forEach(row => {
|
|
705
|
-
rowKeys[
|
|
736
|
+
rowKeys[handleGetRowId(row)] = true
|
|
706
737
|
})
|
|
707
738
|
XEUtils.each(rowExpandedMaps, (row, rowid) => {
|
|
708
739
|
if (rowKeys[rowid]) {
|
|
@@ -823,13 +854,16 @@ export default defineComponent({
|
|
|
823
854
|
computeScrollbarXToTop,
|
|
824
855
|
computeScrollbarYToLeft,
|
|
825
856
|
computeColumnOpts,
|
|
857
|
+
computeCurrentColumnOpts,
|
|
826
858
|
computeScrollXThreshold,
|
|
827
859
|
computeScrollYThreshold,
|
|
860
|
+
computeRowHeightMaps,
|
|
828
861
|
computeDefaultRowHeight,
|
|
829
862
|
computeCellOpts,
|
|
830
863
|
computeHeaderCellOpts,
|
|
831
864
|
computeFooterCellOpts,
|
|
832
865
|
computeRowOpts,
|
|
866
|
+
computeCurrentRowOpts,
|
|
833
867
|
computeRowDragOpts,
|
|
834
868
|
computeColumnDragOpts,
|
|
835
869
|
computeResizeOpts,
|
|
@@ -880,6 +914,7 @@ export default defineComponent({
|
|
|
880
914
|
getRefMaps: () => refMaps,
|
|
881
915
|
getComputeMaps: () => computeMaps,
|
|
882
916
|
|
|
917
|
+
xeGrid: $xeGrid,
|
|
883
918
|
xegrid: $xeGrid
|
|
884
919
|
} as unknown as VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods
|
|
885
920
|
|
|
@@ -1041,12 +1076,13 @@ export default defineComponent({
|
|
|
1041
1076
|
toVisibleIndex = Math.floor(startTop / defaultRowHeight) - 1
|
|
1042
1077
|
visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1
|
|
1043
1078
|
} else {
|
|
1079
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
1044
1080
|
let leftIndex = 0
|
|
1045
1081
|
let rightIndex = afterFullData.length
|
|
1046
1082
|
while (leftIndex < rightIndex) {
|
|
1047
1083
|
const rIndex = Math.floor((leftIndex + rightIndex) / 2)
|
|
1048
1084
|
const row = afterFullData[rIndex]
|
|
1049
|
-
const rowid =
|
|
1085
|
+
const rowid = handleGetRowId(row)
|
|
1050
1086
|
const rowRest = fullAllDataRowIdData[rowid] || {}
|
|
1051
1087
|
if (rowRest.oTop <= startTop) {
|
|
1052
1088
|
leftIndex = rIndex + 1
|
|
@@ -1057,7 +1093,7 @@ export default defineComponent({
|
|
|
1057
1093
|
toVisibleIndex = Math.max(0, leftIndex < afterFullData.length ? leftIndex - 2 : 0)
|
|
1058
1094
|
for (let rIndex = toVisibleIndex, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
|
|
1059
1095
|
const row = afterFullData[rIndex]
|
|
1060
|
-
const rowid =
|
|
1096
|
+
const rowid = handleGetRowId(row)
|
|
1061
1097
|
const rowRest = fullAllDataRowIdData[rowid] || {}
|
|
1062
1098
|
visibleSize++
|
|
1063
1099
|
if (rowRest.oTop > endTop || visibleSize >= 100) {
|
|
@@ -1091,14 +1127,14 @@ export default defineComponent({
|
|
|
1091
1127
|
|
|
1092
1128
|
const setMerges = (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[], mList: VxeTableDefines.MergeItem[], rowList?: any[]) => {
|
|
1093
1129
|
if (merges) {
|
|
1094
|
-
const { treeConfig } = props
|
|
1130
|
+
// const { treeConfig } = props
|
|
1095
1131
|
const { visibleColumn } = internalData
|
|
1096
1132
|
if (!XEUtils.isArray(merges)) {
|
|
1097
1133
|
merges = [merges]
|
|
1098
1134
|
}
|
|
1099
|
-
if (treeConfig && merges.length) {
|
|
1100
|
-
|
|
1101
|
-
}
|
|
1135
|
+
// if (treeConfig && merges.length) {
|
|
1136
|
+
// errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
|
|
1137
|
+
// }
|
|
1102
1138
|
merges.forEach((item) => {
|
|
1103
1139
|
let { row, col, rowspan, colspan } = item
|
|
1104
1140
|
if (rowList && XEUtils.isNumber(row)) {
|
|
@@ -1141,14 +1177,14 @@ export default defineComponent({
|
|
|
1141
1177
|
const removeMerges = (merges: VxeTableDefines.MergeOptions | VxeTableDefines.MergeOptions[], mList: VxeTableDefines.MergeItem[], rowList?: any) => {
|
|
1142
1178
|
const rest: VxeTableDefines.MergeItem[] = []
|
|
1143
1179
|
if (merges) {
|
|
1144
|
-
const { treeConfig } = props
|
|
1180
|
+
// const { treeConfig } = props
|
|
1145
1181
|
const { visibleColumn } = internalData
|
|
1146
1182
|
if (!XEUtils.isArray(merges)) {
|
|
1147
1183
|
merges = [merges]
|
|
1148
1184
|
}
|
|
1149
|
-
if (treeConfig && merges.length) {
|
|
1150
|
-
|
|
1151
|
-
}
|
|
1185
|
+
// if (treeConfig && merges.length) {
|
|
1186
|
+
// errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
|
|
1187
|
+
// }
|
|
1152
1188
|
merges.forEach((item) => {
|
|
1153
1189
|
let { row, col } = item
|
|
1154
1190
|
if (rowList && XEUtils.isNumber(row)) {
|
|
@@ -1300,7 +1336,7 @@ export default defineComponent({
|
|
|
1300
1336
|
fullColumnFieldData[field] = rest
|
|
1301
1337
|
} else {
|
|
1302
1338
|
if ((storage && !type) || (columnOpts.drag && (isCrossDrag || isSelfToChildDrag))) {
|
|
1303
|
-
errLog('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field
|
|
1339
|
+
errLog('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field=?`])
|
|
1304
1340
|
}
|
|
1305
1341
|
}
|
|
1306
1342
|
if (!hasFixed && fixed) {
|
|
@@ -1548,6 +1584,7 @@ export default defineComponent({
|
|
|
1548
1584
|
internalData.headerHeight = headerHeight
|
|
1549
1585
|
internalData.footerHeight = footerHeight
|
|
1550
1586
|
reactData.overflowX = overflowX
|
|
1587
|
+
reactData.resizeWidthFlag++
|
|
1551
1588
|
updateColumnOffsetLeft()
|
|
1552
1589
|
updateHeight()
|
|
1553
1590
|
reactData.parentHeight = Math.max(internalData.headerHeight + footerHeight + 20, $xeTable.getParentHeight())
|
|
@@ -1575,9 +1612,10 @@ export default defineComponent({
|
|
|
1575
1612
|
const defaultRowHeight = computeDefaultRowHeight.value
|
|
1576
1613
|
const el = refElem.value
|
|
1577
1614
|
if (!isAllOverflow && scrollYLoad && el) {
|
|
1615
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
1578
1616
|
el.setAttribute('data-calc-row', 'Y')
|
|
1579
1617
|
tableData.forEach(row => {
|
|
1580
|
-
const rowid =
|
|
1618
|
+
const rowid = handleGetRowId(row)
|
|
1581
1619
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
1582
1620
|
if (rowRest) {
|
|
1583
1621
|
const reHeight = calcCellAutoHeight(rowRest, el)
|
|
@@ -1612,9 +1650,10 @@ export default defineComponent({
|
|
|
1612
1650
|
const updateAfterListIndex = () => {
|
|
1613
1651
|
const { treeConfig } = props
|
|
1614
1652
|
const { afterFullData, fullDataRowIdData, fullAllDataRowIdData } = internalData
|
|
1653
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
1615
1654
|
const fullMaps: Record<string, any> = {}
|
|
1616
1655
|
afterFullData.forEach((row, index) => {
|
|
1617
|
-
const rowid =
|
|
1656
|
+
const rowid = handleGetRowId(row)
|
|
1618
1657
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
1619
1658
|
const seq = index + 1
|
|
1620
1659
|
if (rowRest) {
|
|
@@ -1644,8 +1683,9 @@ export default defineComponent({
|
|
|
1644
1683
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
1645
1684
|
const fullMaps: Record<string, any> = {}
|
|
1646
1685
|
if (treeConfig) {
|
|
1686
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
1647
1687
|
XEUtils.eachTree(afterTreeFullData, (row, index, items, path) => {
|
|
1648
|
-
const rowid =
|
|
1688
|
+
const rowid = handleGetRowId(row)
|
|
1649
1689
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
1650
1690
|
const seq = path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('')
|
|
1651
1691
|
if (rowRest) {
|
|
@@ -1671,18 +1711,18 @@ export default defineComponent({
|
|
|
1671
1711
|
*/
|
|
1672
1712
|
const handleVirtualTreeToList = () => {
|
|
1673
1713
|
const { treeConfig } = props
|
|
1674
|
-
const { treeExpandedMaps } =
|
|
1675
|
-
const { fullAllDataRowIdData } = internalData
|
|
1714
|
+
const { fullAllDataRowIdData, treeExpandedMaps } = internalData
|
|
1676
1715
|
const treeOpts = computeTreeOpts.value
|
|
1677
1716
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
1678
1717
|
if (treeConfig && treeOpts.transform) {
|
|
1718
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
1679
1719
|
const fullData: any[] = []
|
|
1680
1720
|
const expandMaps: {
|
|
1681
1721
|
[key: string]: number
|
|
1682
1722
|
} = {}
|
|
1683
1723
|
XEUtils.eachTree(internalData.afterTreeFullData, (row, index, items, path, parentRow) => {
|
|
1684
|
-
const rowid =
|
|
1685
|
-
const parentRowid =
|
|
1724
|
+
const rowid = handleGetRowId(row)
|
|
1725
|
+
const parentRowid = handleGetRowId(parentRow)
|
|
1686
1726
|
if (!parentRow || (expandMaps[parentRowid] && treeExpandedMaps[parentRowid])) {
|
|
1687
1727
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
1688
1728
|
if (rowRest) {
|
|
@@ -1711,7 +1751,7 @@ export default defineComponent({
|
|
|
1711
1751
|
const treeOpts = computeTreeOpts.value
|
|
1712
1752
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
1713
1753
|
const { transform, rowField, parentField, mapChildrenField } = treeOpts
|
|
1714
|
-
const { remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts
|
|
1754
|
+
const { isEvery, remote: allRemoteFilter, filterMethod: allFilterMethod } = filterOpts
|
|
1715
1755
|
const { remote: allRemoteSort, sortMethod: allSortMethod, multiple: sortMultiple, chronological } = sortOpts
|
|
1716
1756
|
let tableData: any[] = []
|
|
1717
1757
|
let tableTree: any[] = []
|
|
@@ -1773,7 +1813,7 @@ export default defineComponent({
|
|
|
1773
1813
|
// 筛选虚拟树
|
|
1774
1814
|
tableTree = XEUtils.searchTree(tableFullTreeData, handleFilter, {
|
|
1775
1815
|
original: true,
|
|
1776
|
-
isEvery
|
|
1816
|
+
isEvery,
|
|
1777
1817
|
children: mapChildrenField,
|
|
1778
1818
|
mapChildren: childrenField
|
|
1779
1819
|
})
|
|
@@ -1787,7 +1827,7 @@ export default defineComponent({
|
|
|
1787
1827
|
// 还原虚拟树
|
|
1788
1828
|
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
|
|
1789
1829
|
original: true,
|
|
1790
|
-
isEvery
|
|
1830
|
+
isEvery,
|
|
1791
1831
|
children: mapChildrenField,
|
|
1792
1832
|
mapChildren: childrenField
|
|
1793
1833
|
})
|
|
@@ -1836,7 +1876,7 @@ export default defineComponent({
|
|
|
1836
1876
|
// 还原虚拟树
|
|
1837
1877
|
tableTree = XEUtils.searchTree(tableFullTreeData, () => true, {
|
|
1838
1878
|
original: true,
|
|
1839
|
-
isEvery
|
|
1879
|
+
isEvery,
|
|
1840
1880
|
children: treeOpts.mapChildrenField,
|
|
1841
1881
|
mapChildren: childrenField
|
|
1842
1882
|
})
|
|
@@ -1852,9 +1892,9 @@ export default defineComponent({
|
|
|
1852
1892
|
}
|
|
1853
1893
|
|
|
1854
1894
|
const updateStyle = () => {
|
|
1855
|
-
const {
|
|
1895
|
+
const { showHeaderOverflow: allColumnHeaderOverflow, showFooterOverflow: allColumnFooterOverflow, mouseConfig, spanMethod, footerSpanMethod } = props
|
|
1856
1896
|
const { isGroup, currentRow, tableColumn, scrollXLoad, scrollYLoad, overflowX, scrollbarWidth, overflowY, scrollbarHeight, scrollXWidth, columnStore, editStore, isAllOverflow, expandColumn } = reactData
|
|
1857
|
-
const { visibleColumn,
|
|
1897
|
+
const { visibleColumn, tableHeight, headerHeight, footerHeight, elemStore, customHeight, customMinHeight, customMaxHeight } = internalData
|
|
1858
1898
|
const el = refElem.value
|
|
1859
1899
|
if (!el) {
|
|
1860
1900
|
return
|
|
@@ -1863,7 +1903,6 @@ export default defineComponent({
|
|
|
1863
1903
|
const osbWidth = overflowY ? scrollbarWidth : 0
|
|
1864
1904
|
const osbHeight = overflowX ? scrollbarHeight : 0
|
|
1865
1905
|
const emptyPlaceholderElem = refEmptyPlaceholder.value
|
|
1866
|
-
const cellOffsetWidth = computeCellOffsetWidth.value
|
|
1867
1906
|
const mouseOpts = computeMouseOpts.value
|
|
1868
1907
|
const expandOpts = computeExpandOpts.value
|
|
1869
1908
|
const bodyWrapperElem = getRefElem(elemStore['main-body-wrapper'])
|
|
@@ -2014,33 +2053,6 @@ export default defineComponent({
|
|
|
2014
2053
|
if (tableElem) {
|
|
2015
2054
|
tableElem.style.width = tWidth ? `${tWidth}px` : ''
|
|
2016
2055
|
}
|
|
2017
|
-
|
|
2018
|
-
const listElem = getRefElem(elemStore[`${name}-${layout}-list`])
|
|
2019
|
-
if (isGroup && listElem) {
|
|
2020
|
-
XEUtils.arrayEach(listElem.querySelectorAll('.col--group'), (thElem: any) => {
|
|
2021
|
-
const colNode = $xeTable.getColumnNode(thElem)
|
|
2022
|
-
if (colNode) {
|
|
2023
|
-
const column = colNode.item
|
|
2024
|
-
const { showHeaderOverflow } = column
|
|
2025
|
-
const cellOverflow = XEUtils.isBoolean(showHeaderOverflow) ? showHeaderOverflow : allColumnHeaderOverflow
|
|
2026
|
-
const showEllipsis = cellOverflow === 'ellipsis'
|
|
2027
|
-
const showTitle = cellOverflow === 'title'
|
|
2028
|
-
const showTooltip = cellOverflow === true || cellOverflow === 'tooltip'
|
|
2029
|
-
const hasEllipsis = showTitle || showTooltip || showEllipsis
|
|
2030
|
-
let childWidth = 0
|
|
2031
|
-
let countChild = 0
|
|
2032
|
-
if (hasEllipsis) {
|
|
2033
|
-
XEUtils.eachTree(column.children, (item) => {
|
|
2034
|
-
if (!item.children || !column.children.length) {
|
|
2035
|
-
countChild++
|
|
2036
|
-
}
|
|
2037
|
-
childWidth += item.renderWidth
|
|
2038
|
-
}, { children: 'children' })
|
|
2039
|
-
}
|
|
2040
|
-
thElem.style.width = hasEllipsis ? `${childWidth - countChild - (border ? 2 : 0)}px` : ''
|
|
2041
|
-
}
|
|
2042
|
-
})
|
|
2043
|
-
}
|
|
2044
2056
|
} else if (layout === 'body') {
|
|
2045
2057
|
if (currScrollElem) {
|
|
2046
2058
|
currScrollElem.style.maxHeight = customMaxHeight ? `${bodyMaxHeight}px` : ''
|
|
@@ -2145,54 +2157,6 @@ export default defineComponent({
|
|
|
2145
2157
|
tableElem.style.width = tWidth ? `${tWidth}px` : ''
|
|
2146
2158
|
}
|
|
2147
2159
|
}
|
|
2148
|
-
const colgroupElem = getRefElem(elemStore[`${name}-${layout}-colgroup`])
|
|
2149
|
-
if (colgroupElem) {
|
|
2150
|
-
XEUtils.arrayEach(colgroupElem.children, (colElem: any) => {
|
|
2151
|
-
const colid = colElem.getAttribute('name')
|
|
2152
|
-
if (fullColumnIdData[colid]) {
|
|
2153
|
-
const colRest = fullColumnIdData[colid]
|
|
2154
|
-
const column = colRest.column
|
|
2155
|
-
const { showHeaderOverflow, showFooterOverflow, showOverflow } = column
|
|
2156
|
-
let cellOverflow
|
|
2157
|
-
colElem.style.width = `${column.renderWidth}px`
|
|
2158
|
-
if (layout === 'header') {
|
|
2159
|
-
cellOverflow = XEUtils.isUndefined(showHeaderOverflow) || XEUtils.isNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow
|
|
2160
|
-
} else if (layout === 'footer') {
|
|
2161
|
-
cellOverflow = XEUtils.isUndefined(showFooterOverflow) || XEUtils.isNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow
|
|
2162
|
-
} else {
|
|
2163
|
-
cellOverflow = XEUtils.isUndefined(showOverflow) || XEUtils.isNull(showOverflow) ? isAllOverflow : showOverflow
|
|
2164
|
-
}
|
|
2165
|
-
const showEllipsis = cellOverflow === 'ellipsis'
|
|
2166
|
-
const showTitle = cellOverflow === 'title'
|
|
2167
|
-
const showTooltip = cellOverflow === true || cellOverflow === 'tooltip'
|
|
2168
|
-
let hasEllipsis = showTitle || showTooltip || showEllipsis
|
|
2169
|
-
const listElem = getRefElem(elemStore[`${name}-${layout}-list`])
|
|
2170
|
-
// 纵向虚拟滚动不支持动态行高
|
|
2171
|
-
if (scrollYLoad && !hasEllipsis) {
|
|
2172
|
-
hasEllipsis = true
|
|
2173
|
-
}
|
|
2174
|
-
if (listElem) {
|
|
2175
|
-
XEUtils.arrayEach(listElem.querySelectorAll(`.${column.id}`), (elem: any) => {
|
|
2176
|
-
const colspan = parseInt(elem.getAttribute('colspan') || 1)
|
|
2177
|
-
const cellElem = elem.querySelector('.vxe-cell')
|
|
2178
|
-
let colWidth = column.renderWidth
|
|
2179
|
-
if (cellElem) {
|
|
2180
|
-
if (colspan > 1) {
|
|
2181
|
-
const columnIndex = $xeTable.getColumnIndex(column)
|
|
2182
|
-
for (let index = 1; index < colspan; index++) {
|
|
2183
|
-
const nextColumn = $xeTable.getColumns(columnIndex + index)
|
|
2184
|
-
if (nextColumn) {
|
|
2185
|
-
colWidth += nextColumn.renderWidth
|
|
2186
|
-
}
|
|
2187
|
-
}
|
|
2188
|
-
}
|
|
2189
|
-
cellElem.style.width = hasEllipsis ? `${colWidth - (cellOffsetWidth * colspan)}px` : ''
|
|
2190
|
-
}
|
|
2191
|
-
})
|
|
2192
|
-
}
|
|
2193
|
-
}
|
|
2194
|
-
})
|
|
2195
|
-
}
|
|
2196
2160
|
})
|
|
2197
2161
|
})
|
|
2198
2162
|
if (currentRow) {
|
|
@@ -2238,7 +2202,7 @@ export default defineComponent({
|
|
|
2238
2202
|
(sortConfig.multiple ? defaultSort : defaultSort.slice(0, 1)).forEach((item: any, index: number) => {
|
|
2239
2203
|
const { field, order } = item
|
|
2240
2204
|
if (field && order) {
|
|
2241
|
-
const column =
|
|
2205
|
+
const column = $xeTable.getColumnByField(field)
|
|
2242
2206
|
if (column && column.sortable) {
|
|
2243
2207
|
column.order = order
|
|
2244
2208
|
column.sortTime = Date.now() + index
|
|
@@ -2246,7 +2210,7 @@ export default defineComponent({
|
|
|
2246
2210
|
}
|
|
2247
2211
|
})
|
|
2248
2212
|
if (!sortOpts.remote) {
|
|
2249
|
-
|
|
2213
|
+
$xeTable.handleTableData(true).then(updateStyle)
|
|
2250
2214
|
}
|
|
2251
2215
|
}
|
|
2252
2216
|
}
|
|
@@ -2307,7 +2271,7 @@ export default defineComponent({
|
|
|
2307
2271
|
const expandOpts = computeExpandOpts.value
|
|
2308
2272
|
const { expandAll, expandRowKeys } = expandOpts
|
|
2309
2273
|
if (expandAll) {
|
|
2310
|
-
|
|
2274
|
+
$xeTable.setAllRowExpand(true)
|
|
2311
2275
|
} else if (expandRowKeys) {
|
|
2312
2276
|
const defExpandeds: any[] = []
|
|
2313
2277
|
expandRowKeys.forEach((rowid: any) => {
|
|
@@ -2315,7 +2279,7 @@ export default defineComponent({
|
|
|
2315
2279
|
defExpandeds.push(fullDataRowIdData[rowid].row)
|
|
2316
2280
|
}
|
|
2317
2281
|
})
|
|
2318
|
-
|
|
2282
|
+
$xeTable.setRowExpand(defExpandeds, true)
|
|
2319
2283
|
}
|
|
2320
2284
|
}
|
|
2321
2285
|
}
|
|
@@ -2361,15 +2325,16 @@ export default defineComponent({
|
|
|
2361
2325
|
|
|
2362
2326
|
const handleCheckedAllCheckboxRow = (checked: boolean, isForce?: boolean) => {
|
|
2363
2327
|
const { treeConfig } = props
|
|
2364
|
-
const { selectCheckboxMaps } =
|
|
2365
|
-
const { afterFullData, checkboxReserveRowMap } = internalData
|
|
2328
|
+
const { afterFullData, checkboxReserveRowMap, selectCheckboxMaps } = internalData
|
|
2366
2329
|
const treeOpts = computeTreeOpts.value
|
|
2367
2330
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
2368
2331
|
const checkboxOpts = computeCheckboxOpts.value
|
|
2369
2332
|
const { checkField, reserve, checkMethod } = checkboxOpts
|
|
2333
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
2370
2334
|
// indeterminateField 仅支持读取
|
|
2371
2335
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
|
|
2372
2336
|
const selectRowMaps: Record<string, any> = {}
|
|
2337
|
+
|
|
2373
2338
|
/**
|
|
2374
2339
|
* 绑定属性方式(高性能,有污染)
|
|
2375
2340
|
* 必须在行数据存在对应的属性,否则将不响应
|
|
@@ -2378,7 +2343,7 @@ export default defineComponent({
|
|
|
2378
2343
|
const checkValFn = (row: any) => {
|
|
2379
2344
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
2380
2345
|
if (checked) {
|
|
2381
|
-
selectRowMaps[
|
|
2346
|
+
selectRowMaps[handleGetRowId(row)] = row
|
|
2382
2347
|
}
|
|
2383
2348
|
XEUtils.set(row, checkField, checked)
|
|
2384
2349
|
}
|
|
@@ -2406,7 +2371,8 @@ export default defineComponent({
|
|
|
2406
2371
|
*/
|
|
2407
2372
|
XEUtils.eachTree(afterFullData, (row) => {
|
|
2408
2373
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
2409
|
-
|
|
2374
|
+
const rowid = handleGetRowId(row)
|
|
2375
|
+
selectRowMaps[rowid] = row
|
|
2410
2376
|
}
|
|
2411
2377
|
}, { children: childrenField })
|
|
2412
2378
|
} else {
|
|
@@ -2416,7 +2382,7 @@ export default defineComponent({
|
|
|
2416
2382
|
*/
|
|
2417
2383
|
if (!isForce && checkMethod) {
|
|
2418
2384
|
XEUtils.eachTree(afterFullData, (row) => {
|
|
2419
|
-
const rowid =
|
|
2385
|
+
const rowid = handleGetRowId(row)
|
|
2420
2386
|
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
2421
2387
|
selectRowMaps[rowid] = row
|
|
2422
2388
|
}
|
|
@@ -2432,14 +2398,15 @@ export default defineComponent({
|
|
|
2432
2398
|
*/
|
|
2433
2399
|
if (!isForce && checkMethod) {
|
|
2434
2400
|
afterFullData.forEach((row) => {
|
|
2435
|
-
const rowid =
|
|
2401
|
+
const rowid = handleGetRowId(row)
|
|
2436
2402
|
if (selectCheckboxMaps[rowid] || checkMethod({ row })) {
|
|
2437
2403
|
selectRowMaps[rowid] = row
|
|
2438
2404
|
}
|
|
2439
2405
|
})
|
|
2440
2406
|
} else {
|
|
2441
2407
|
afterFullData.forEach(row => {
|
|
2442
|
-
|
|
2408
|
+
const rowid = handleGetRowId(row)
|
|
2409
|
+
selectRowMaps[rowid] = row
|
|
2443
2410
|
})
|
|
2444
2411
|
}
|
|
2445
2412
|
} else {
|
|
@@ -2450,7 +2417,7 @@ export default defineComponent({
|
|
|
2450
2417
|
*/
|
|
2451
2418
|
if (!isForce && checkMethod) {
|
|
2452
2419
|
afterFullData.forEach((row) => {
|
|
2453
|
-
const rowid =
|
|
2420
|
+
const rowid = handleGetRowId(row)
|
|
2454
2421
|
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
2455
2422
|
selectRowMaps[rowid] = row
|
|
2456
2423
|
}
|
|
@@ -2468,11 +2435,11 @@ export default defineComponent({
|
|
|
2468
2435
|
afterFullData.forEach((row) => handleCheckboxReserveRow(row, false))
|
|
2469
2436
|
}
|
|
2470
2437
|
}
|
|
2471
|
-
reactData.
|
|
2438
|
+
reactData.updateCheckboxFlag++
|
|
2439
|
+
internalData.selectCheckboxMaps = checkField ? {} : selectRowMaps
|
|
2472
2440
|
|
|
2473
2441
|
reactData.isAllSelected = checked
|
|
2474
2442
|
reactData.isIndeterminate = false
|
|
2475
|
-
reactData.treeIndeterminateMaps = {}
|
|
2476
2443
|
internalData.treeIndeterminateRowMaps = {}
|
|
2477
2444
|
$xeTable.checkSelectionStatus()
|
|
2478
2445
|
return nextTick()
|
|
@@ -2481,8 +2448,8 @@ export default defineComponent({
|
|
|
2481
2448
|
// 还原展开、选中等相关状态
|
|
2482
2449
|
const handleReserveStatus = () => {
|
|
2483
2450
|
const { treeConfig } = props
|
|
2484
|
-
const { expandColumn, currentRow,
|
|
2485
|
-
const { fullDataRowIdData, fullAllDataRowIdData, radioReserveRow } = internalData
|
|
2451
|
+
const { expandColumn, currentRow, selectRadioRow } = reactData
|
|
2452
|
+
const { fullDataRowIdData, fullAllDataRowIdData, radioReserveRow, selectCheckboxMaps, treeExpandedMaps, rowExpandedMaps } = internalData
|
|
2486
2453
|
const expandOpts = computeExpandOpts.value
|
|
2487
2454
|
const treeOpts = computeTreeOpts.value
|
|
2488
2455
|
const radioOpts = computeRadioOpts.value
|
|
@@ -2499,7 +2466,8 @@ export default defineComponent({
|
|
|
2499
2466
|
}
|
|
2500
2467
|
}
|
|
2501
2468
|
// 复选框
|
|
2502
|
-
|
|
2469
|
+
internalData.selectCheckboxMaps = getRecoverRowMaps(selectCheckboxMaps) // 刷新多选行状态
|
|
2470
|
+
reactData.updateCheckboxFlag++
|
|
2503
2471
|
// 还原保留选中状态
|
|
2504
2472
|
if (checkboxOpts.reserve) {
|
|
2505
2473
|
handleCheckedCheckboxRow(handleReserveRow(internalData.checkboxReserveRowMap), true, true)
|
|
@@ -2508,13 +2476,15 @@ export default defineComponent({
|
|
|
2508
2476
|
reactData.currentRow = null // 刷新当前行状态
|
|
2509
2477
|
}
|
|
2510
2478
|
// 行展开
|
|
2511
|
-
|
|
2479
|
+
internalData.rowExpandedMaps = expandColumn ? getRecoverRowMaps(rowExpandedMaps) : {} // 刷新行展开状态
|
|
2480
|
+
reactData.rowExpandedFlag++
|
|
2512
2481
|
// 还原保留状态
|
|
2513
2482
|
if (expandColumn && expandOpts.reserve) {
|
|
2514
2483
|
$xeTable.setRowExpand(handleReserveRow(internalData.rowExpandedReserveRowMap), true)
|
|
2515
2484
|
}
|
|
2516
2485
|
// 树展开
|
|
2517
|
-
|
|
2486
|
+
internalData.treeExpandedMaps = treeConfig ? getRecoverRowMaps(treeExpandedMaps) : {} // 刷新树展开状态
|
|
2487
|
+
reactData.treeExpandedFlag++
|
|
2518
2488
|
if (treeConfig && treeOpts.reserve) {
|
|
2519
2489
|
$xeTable.setTreeExpand(handleReserveRow(internalData.treeExpandedReserveRowMap), true)
|
|
2520
2490
|
}
|
|
@@ -2531,7 +2501,7 @@ export default defineComponent({
|
|
|
2531
2501
|
const { expandAll, expandRowKeys } = treeOpts
|
|
2532
2502
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
2533
2503
|
if (expandAll) {
|
|
2534
|
-
|
|
2504
|
+
$xeTable.setAllTreeExpand(true)
|
|
2535
2505
|
} else if (expandRowKeys) {
|
|
2536
2506
|
const defExpandeds: any[] = []
|
|
2537
2507
|
const rowkey = getRowkey($xeTable)
|
|
@@ -2541,7 +2511,7 @@ export default defineComponent({
|
|
|
2541
2511
|
defExpandeds.push(matchObj.item)
|
|
2542
2512
|
}
|
|
2543
2513
|
})
|
|
2544
|
-
|
|
2514
|
+
$xeTable.setTreeExpand(defExpandeds, true)
|
|
2545
2515
|
}
|
|
2546
2516
|
}
|
|
2547
2517
|
}
|
|
@@ -2553,8 +2523,7 @@ export default defineComponent({
|
|
|
2553
2523
|
const { checkStrictly } = checkboxOpts
|
|
2554
2524
|
return new Promise<void>(resolve => {
|
|
2555
2525
|
if (loadMethod) {
|
|
2556
|
-
const { treeExpandLazyLoadedMaps } =
|
|
2557
|
-
const { fullAllDataRowIdData } = internalData
|
|
2526
|
+
const { fullAllDataRowIdData, treeExpandLazyLoadedMaps } = internalData
|
|
2558
2527
|
const rowid = getRowid($xeTable, row)
|
|
2559
2528
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
2560
2529
|
treeExpandLazyLoadedMaps[rowid] = row
|
|
@@ -2571,18 +2540,19 @@ export default defineComponent({
|
|
|
2571
2540
|
childRecords = []
|
|
2572
2541
|
}
|
|
2573
2542
|
if (childRecords) {
|
|
2574
|
-
return
|
|
2575
|
-
const { treeExpandedMaps } =
|
|
2543
|
+
return $xeTable.loadTreeChildren(row, childRecords).then(childRows => {
|
|
2544
|
+
const { treeExpandedMaps } = internalData
|
|
2576
2545
|
if (childRows.length && !treeExpandedMaps[rowid]) {
|
|
2577
2546
|
treeExpandedMaps[rowid] = row
|
|
2578
2547
|
}
|
|
2548
|
+
reactData.treeExpandedFlag++
|
|
2579
2549
|
// 如果当前节点已选中,则展开后子节点也被选中
|
|
2580
|
-
if (!checkStrictly &&
|
|
2550
|
+
if (!checkStrictly && $xeTable.isCheckedByCheckboxRow(row)) {
|
|
2581
2551
|
handleCheckedCheckboxRow(childRows, true)
|
|
2582
2552
|
}
|
|
2583
2553
|
return nextTick().then(() => {
|
|
2584
2554
|
if (transform) {
|
|
2585
|
-
|
|
2555
|
+
$xeTable.handleTableData()
|
|
2586
2556
|
updateAfterDataIndex()
|
|
2587
2557
|
return nextTick()
|
|
2588
2558
|
}
|
|
@@ -2590,7 +2560,7 @@ export default defineComponent({
|
|
|
2590
2560
|
})
|
|
2591
2561
|
}
|
|
2592
2562
|
}).catch(() => {
|
|
2593
|
-
const { treeExpandLazyLoadedMaps } =
|
|
2563
|
+
const { treeExpandLazyLoadedMaps } = internalData
|
|
2594
2564
|
if (rowRest) {
|
|
2595
2565
|
rowRest.treeLoaded = false
|
|
2596
2566
|
}
|
|
@@ -2598,7 +2568,8 @@ export default defineComponent({
|
|
|
2598
2568
|
delete treeExpandLazyLoadedMaps[rowid]
|
|
2599
2569
|
}
|
|
2600
2570
|
}).finally(() => {
|
|
2601
|
-
|
|
2571
|
+
reactData.treeExpandedFlag++
|
|
2572
|
+
nextTick().then(() => $xeTable.recalculate()).then(() => resolve())
|
|
2602
2573
|
})
|
|
2603
2574
|
} else {
|
|
2604
2575
|
resolve()
|
|
@@ -2624,29 +2595,27 @@ export default defineComponent({
|
|
|
2624
2595
|
const expandOpts = computeExpandOpts.value
|
|
2625
2596
|
const { loadMethod } = expandOpts
|
|
2626
2597
|
if (loadMethod) {
|
|
2627
|
-
const { fullAllDataRowIdData } = internalData
|
|
2628
|
-
const rExpandLazyLoadedMaps = { ...reactData.rowExpandLazyLoadedMaps }
|
|
2598
|
+
const { fullAllDataRowIdData, rowExpandLazyLoadedMaps } = internalData
|
|
2629
2599
|
const rowid = getRowid($xeTable, row)
|
|
2630
2600
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
const rowTempExpandedMaps = { ...reactData.rowExpandedMaps }
|
|
2601
|
+
rowExpandLazyLoadedMaps[rowid] = row
|
|
2602
|
+
loadMethod({ $table: $xeTable, row, rowIndex: $xeTable.getRowIndex(row), $rowIndex: $xeTable.getVMRowIndex(row) }).then(() => {
|
|
2603
|
+
const { rowExpandedMaps } = internalData
|
|
2635
2604
|
if (rowRest) {
|
|
2636
2605
|
rowRest.expandLoaded = true
|
|
2637
2606
|
}
|
|
2638
|
-
|
|
2639
|
-
reactData.
|
|
2607
|
+
rowExpandedMaps[rowid] = row
|
|
2608
|
+
reactData.rowExpandedFlag++
|
|
2640
2609
|
}).catch(() => {
|
|
2641
2610
|
if (rowRest) {
|
|
2642
2611
|
rowRest.expandLoaded = false
|
|
2643
2612
|
}
|
|
2644
2613
|
}).finally(() => {
|
|
2645
|
-
const
|
|
2646
|
-
if (
|
|
2647
|
-
delete
|
|
2614
|
+
const { rowExpandLazyLoadedMaps } = internalData
|
|
2615
|
+
if (rowExpandLazyLoadedMaps[rowid]) {
|
|
2616
|
+
delete rowExpandLazyLoadedMaps[rowid]
|
|
2648
2617
|
}
|
|
2649
|
-
reactData.
|
|
2618
|
+
reactData.rowExpandedFlag++
|
|
2650
2619
|
nextTick()
|
|
2651
2620
|
.then(() => $xeTable.recalculate())
|
|
2652
2621
|
.then(() => $xeTable.updateCellAreas())
|
|
@@ -2674,14 +2643,14 @@ export default defineComponent({
|
|
|
2674
2643
|
const handleDefaultMergeCells = () => {
|
|
2675
2644
|
const { mergeCells } = props
|
|
2676
2645
|
if (mergeCells) {
|
|
2677
|
-
|
|
2646
|
+
$xeTable.setMergeCells(mergeCells)
|
|
2678
2647
|
}
|
|
2679
2648
|
}
|
|
2680
2649
|
|
|
2681
2650
|
const handleDefaultMergeFooterItems = () => {
|
|
2682
2651
|
const { mergeFooterItems } = props
|
|
2683
2652
|
if (mergeFooterItems) {
|
|
2684
|
-
|
|
2653
|
+
$xeTable.setMergeFooterItems(mergeFooterItems)
|
|
2685
2654
|
}
|
|
2686
2655
|
}
|
|
2687
2656
|
|
|
@@ -2750,9 +2719,6 @@ export default defineComponent({
|
|
|
2750
2719
|
calcCellWidth()
|
|
2751
2720
|
autoCellWidth()
|
|
2752
2721
|
updateStyle()
|
|
2753
|
-
if (reFull) {
|
|
2754
|
-
updateRowOffsetTop()
|
|
2755
|
-
}
|
|
2756
2722
|
updateRowExpandStyle()
|
|
2757
2723
|
return computeScrollLoad().then(() => {
|
|
2758
2724
|
if (reFull === true) {
|
|
@@ -2775,13 +2741,16 @@ export default defineComponent({
|
|
|
2775
2741
|
*/
|
|
2776
2742
|
const loadTableData = (datas: any[], isReset: boolean) => {
|
|
2777
2743
|
const { keepSource, treeConfig } = props
|
|
2778
|
-
const {
|
|
2744
|
+
const { scrollYLoad: oldScrollYLoad } = reactData
|
|
2779
2745
|
const { scrollYStore, scrollXStore, lastScrollLeft, lastScrollTop } = internalData
|
|
2780
2746
|
const treeOpts = computeTreeOpts.value
|
|
2781
2747
|
const { transform } = treeOpts
|
|
2782
2748
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
2783
2749
|
let treeData = []
|
|
2784
2750
|
let fullData = reactive(datas ? datas.slice(0) : []) // 转为响应式数据
|
|
2751
|
+
if (fullData.length > supportMaxRow) {
|
|
2752
|
+
errLog('vxe.error.errMaxRow', [supportMaxRow])
|
|
2753
|
+
}
|
|
2785
2754
|
if (treeConfig) {
|
|
2786
2755
|
if (transform) {
|
|
2787
2756
|
// 树结构自动转换
|
|
@@ -2822,8 +2791,8 @@ export default defineComponent({
|
|
|
2822
2791
|
scrollXStore.endIndex = 1
|
|
2823
2792
|
reactData.isRowLoading = true
|
|
2824
2793
|
reactData.scrollVMLoading = false
|
|
2825
|
-
|
|
2826
|
-
|
|
2794
|
+
internalData.insertRowMaps = {}
|
|
2795
|
+
internalData.removeRowMaps = {}
|
|
2827
2796
|
const sYLoad = updateScrollYStatus(fullData)
|
|
2828
2797
|
reactData.isDragColMove = false
|
|
2829
2798
|
reactData.isDragRowMove = false
|
|
@@ -2845,10 +2814,10 @@ export default defineComponent({
|
|
|
2845
2814
|
$xeTable.clearCellAreas()
|
|
2846
2815
|
$xeTable.clearCopyCellArea()
|
|
2847
2816
|
}
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2817
|
+
$xeTable.clearMergeCells()
|
|
2818
|
+
$xeTable.clearMergeFooterItems()
|
|
2819
|
+
$xeTable.handleTableData(true)
|
|
2820
|
+
$xeTable.updateFooter()
|
|
2852
2821
|
return nextTick().then(() => {
|
|
2853
2822
|
updateHeight()
|
|
2854
2823
|
updateStyle()
|
|
@@ -2882,20 +2851,20 @@ export default defineComponent({
|
|
|
2882
2851
|
}
|
|
2883
2852
|
|
|
2884
2853
|
handleReserveStatus()
|
|
2885
|
-
|
|
2854
|
+
$xeTable.checkSelectionStatus()
|
|
2886
2855
|
return new Promise<void>(resolve => {
|
|
2887
2856
|
nextTick()
|
|
2888
|
-
.then(() =>
|
|
2857
|
+
.then(() => $xeTable.recalculate())
|
|
2889
2858
|
.then(() => {
|
|
2890
2859
|
let targetScrollLeft = lastScrollLeft
|
|
2891
2860
|
let targetScrollTop = lastScrollTop
|
|
2892
|
-
const
|
|
2893
|
-
const
|
|
2861
|
+
const virtualXOpts = computeVirtualXOpts.value
|
|
2862
|
+
const virtualYOpts = computeVirtualYOpts.value
|
|
2894
2863
|
// 是否在更新数据之后自动滚动重置滚动条
|
|
2895
|
-
if (
|
|
2864
|
+
if (virtualXOpts.scrollToLeftOnChange) {
|
|
2896
2865
|
targetScrollLeft = 0
|
|
2897
2866
|
}
|
|
2898
|
-
if (
|
|
2867
|
+
if (virtualYOpts.scrollToTopOnChange) {
|
|
2899
2868
|
targetScrollTop = 0
|
|
2900
2869
|
}
|
|
2901
2870
|
reactData.isRowLoading = false
|
|
@@ -2931,7 +2900,7 @@ export default defineComponent({
|
|
|
2931
2900
|
handleDefaultTreeExpand()
|
|
2932
2901
|
handleDefaultMergeCells()
|
|
2933
2902
|
handleDefaultMergeFooterItems()
|
|
2934
|
-
nextTick(() => setTimeout(() =>
|
|
2903
|
+
nextTick(() => setTimeout(() => $xeTable.recalculate()))
|
|
2935
2904
|
}
|
|
2936
2905
|
|
|
2937
2906
|
/**
|
|
@@ -2997,13 +2966,13 @@ export default defineComponent({
|
|
|
2997
2966
|
}
|
|
2998
2967
|
|
|
2999
2968
|
const parseColumns = (isReset: boolean) => {
|
|
3000
|
-
const { showOverflow } = props
|
|
3001
|
-
const rowOpts = computeRowOpts.value
|
|
2969
|
+
// const { showOverflow } = props
|
|
2970
|
+
// const rowOpts = computeRowOpts.value
|
|
3002
2971
|
const leftList: VxeTableDefines.ColumnInfo[] = []
|
|
3003
2972
|
const centerList: VxeTableDefines.ColumnInfo[] = []
|
|
3004
2973
|
const rightList: VxeTableDefines.ColumnInfo[] = []
|
|
3005
2974
|
const { isGroup, columnStore } = reactData
|
|
3006
|
-
const
|
|
2975
|
+
const virtualXOpts = computeVirtualXOpts.value
|
|
3007
2976
|
const { collectColumn, tableFullColumn, scrollXStore, fullColumnIdData } = internalData
|
|
3008
2977
|
// 如果是分组表头,如果子列全部被隐藏,则根列也隐藏
|
|
3009
2978
|
if (isGroup) {
|
|
@@ -3059,32 +3028,32 @@ export default defineComponent({
|
|
|
3059
3028
|
}
|
|
3060
3029
|
const visibleColumn = leftList.concat(centerList).concat(rightList)
|
|
3061
3030
|
// 如果gt为0,则总是启用
|
|
3062
|
-
const scrollXLoad = !!
|
|
3031
|
+
const scrollXLoad = !!virtualXOpts.enabled && virtualXOpts.gt > -1 && (virtualXOpts.gt === 0 || virtualXOpts.gt < tableFullColumn.length)
|
|
3063
3032
|
reactData.hasFixedColumn = leftList.length > 0 || rightList.length > 0
|
|
3064
3033
|
Object.assign(columnStore, { leftList, centerList, rightList })
|
|
3065
3034
|
if (scrollXLoad) {
|
|
3066
|
-
if (showOverflow) {
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3035
|
+
// if (showOverflow) {
|
|
3036
|
+
// if (!rowOpts.height) {
|
|
3037
|
+
// const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
|
|
3038
|
+
// if (errColumn) {
|
|
3039
|
+
// errLog('vxe.error.errProp', [`column[field="${errColumn.field}"].show-overflow=false`, 'show-overflow=true'])
|
|
3040
|
+
// }
|
|
3041
|
+
// }
|
|
3042
|
+
// }
|
|
3043
|
+
// if (process.env.VUE_APP_VXE_ENV === 'development') {
|
|
3044
|
+
// if (props.showHeader && !props.showHeaderOverflow) {
|
|
3045
|
+
// warnLog('vxe.error.reqProp', ['show-header-overflow'])
|
|
3046
|
+
// }
|
|
3047
|
+
// if (props.showFooter && !props.showFooterOverflow) {
|
|
3048
|
+
// warnLog('vxe.error.reqProp', ['show-footer-overflow'])
|
|
3049
|
+
// }
|
|
3050
|
+
if (props.spanMethod) {
|
|
3051
|
+
warnLog('vxe.error.scrollErrProp', ['span-method'])
|
|
3073
3052
|
}
|
|
3074
|
-
if (
|
|
3075
|
-
|
|
3076
|
-
// warnLog('vxe.error.reqProp', ['show-header-overflow'])
|
|
3077
|
-
// }
|
|
3078
|
-
// if (props.showFooter && !props.showFooterOverflow) {
|
|
3079
|
-
// warnLog('vxe.error.reqProp', ['show-footer-overflow'])
|
|
3080
|
-
// }
|
|
3081
|
-
if (props.spanMethod) {
|
|
3082
|
-
warnLog('vxe.error.scrollErrProp', ['span-method'])
|
|
3083
|
-
}
|
|
3084
|
-
if (props.footerSpanMethod) {
|
|
3085
|
-
warnLog('vxe.error.scrollErrProp', ['footer-span-method'])
|
|
3086
|
-
}
|
|
3053
|
+
if (props.footerSpanMethod) {
|
|
3054
|
+
warnLog('vxe.error.scrollErrProp', ['footer-span-method'])
|
|
3087
3055
|
}
|
|
3056
|
+
// }
|
|
3088
3057
|
if (isReset) {
|
|
3089
3058
|
const { visibleSize } = handleVirtualXVisible()
|
|
3090
3059
|
scrollXStore.startIndex = 0
|
|
@@ -3175,12 +3144,12 @@ export default defineComponent({
|
|
|
3175
3144
|
|
|
3176
3145
|
const updateScrollYStatus = (fullData?: any[]) => {
|
|
3177
3146
|
const { treeConfig } = props
|
|
3178
|
-
const
|
|
3147
|
+
const virtualYOpts = computeVirtualYOpts.value
|
|
3179
3148
|
const treeOpts = computeTreeOpts.value
|
|
3180
3149
|
const { transform } = treeOpts
|
|
3181
3150
|
const allList = fullData || internalData.tableFullData
|
|
3182
3151
|
// 如果gt为0,则总是启用
|
|
3183
|
-
const scrollYLoad = (transform || !treeConfig) && !!
|
|
3152
|
+
const scrollYLoad = (transform || !treeConfig) && !!virtualYOpts.enabled && virtualYOpts.gt > -1 && (virtualYOpts.gt === 0 || virtualYOpts.gt < allList.length)
|
|
3184
3153
|
reactData.scrollYLoad = scrollYLoad
|
|
3185
3154
|
return scrollYLoad
|
|
3186
3155
|
}
|
|
@@ -3192,9 +3161,8 @@ export default defineComponent({
|
|
|
3192
3161
|
* @returns
|
|
3193
3162
|
*/
|
|
3194
3163
|
const handleBaseTreeExpand = (rows: any[], expanded: boolean) => {
|
|
3195
|
-
const {
|
|
3196
|
-
const
|
|
3197
|
-
const { fullAllDataRowIdData, tableFullData } = internalData
|
|
3164
|
+
const { treeNodeColumn } = reactData
|
|
3165
|
+
const { fullAllDataRowIdData, tableFullData, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData
|
|
3198
3166
|
const treeOpts = computeTreeOpts.value
|
|
3199
3167
|
const { reserve, lazy, accordion, toggleMethod } = treeOpts
|
|
3200
3168
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
@@ -3202,6 +3170,7 @@ export default defineComponent({
|
|
|
3202
3170
|
const result: any[] = []
|
|
3203
3171
|
const columnIndex = tableMethods.getColumnIndex(treeNodeColumn)
|
|
3204
3172
|
const $columnIndex = tableMethods.getVMColumnIndex(treeNodeColumn)
|
|
3173
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
3205
3174
|
let validRows = toggleMethod ? rows.filter((row: any) => toggleMethod({ $table: $xeTable, expanded, column: treeNodeColumn, columnIndex, $columnIndex, row })) : rows
|
|
3206
3175
|
if (accordion) {
|
|
3207
3176
|
validRows = validRows.length ? [validRows[validRows.length - 1]] : []
|
|
@@ -3209,17 +3178,17 @@ export default defineComponent({
|
|
|
3209
3178
|
const matchObj = XEUtils.findTree(tableFullData, item => item === validRows[0], { children: childrenField })
|
|
3210
3179
|
if (matchObj) {
|
|
3211
3180
|
matchObj.items.forEach(item => {
|
|
3212
|
-
const rowid =
|
|
3213
|
-
if (
|
|
3214
|
-
delete
|
|
3181
|
+
const rowid = handleGetRowId(item)
|
|
3182
|
+
if (treeExpandedMaps[rowid]) {
|
|
3183
|
+
delete treeExpandedMaps[rowid]
|
|
3215
3184
|
}
|
|
3216
3185
|
})
|
|
3217
3186
|
}
|
|
3218
3187
|
}
|
|
3219
3188
|
if (expanded) {
|
|
3220
3189
|
validRows.forEach((row: any) => {
|
|
3221
|
-
const rowid =
|
|
3222
|
-
if (!
|
|
3190
|
+
const rowid = handleGetRowId(row)
|
|
3191
|
+
if (!treeExpandedMaps[rowid]) {
|
|
3223
3192
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
3224
3193
|
if (rowRest) {
|
|
3225
3194
|
const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid]
|
|
@@ -3228,7 +3197,7 @@ export default defineComponent({
|
|
|
3228
3197
|
result.push(handleAsyncTreeExpandChilds(row))
|
|
3229
3198
|
} else {
|
|
3230
3199
|
if (row[childrenField] && row[childrenField].length) {
|
|
3231
|
-
|
|
3200
|
+
treeExpandedMaps[rowid] = row
|
|
3232
3201
|
}
|
|
3233
3202
|
}
|
|
3234
3203
|
}
|
|
@@ -3236,16 +3205,16 @@ export default defineComponent({
|
|
|
3236
3205
|
})
|
|
3237
3206
|
} else {
|
|
3238
3207
|
validRows.forEach(item => {
|
|
3239
|
-
const rowid =
|
|
3240
|
-
if (
|
|
3241
|
-
delete
|
|
3208
|
+
const rowid = handleGetRowId(item)
|
|
3209
|
+
if (treeExpandedMaps[rowid]) {
|
|
3210
|
+
delete treeExpandedMaps[rowid]
|
|
3242
3211
|
}
|
|
3243
3212
|
})
|
|
3244
3213
|
}
|
|
3245
3214
|
if (reserve) {
|
|
3246
3215
|
validRows.forEach((row: any) => handleTreeExpandReserve(row, expanded))
|
|
3247
3216
|
}
|
|
3248
|
-
reactData.
|
|
3217
|
+
reactData.treeExpandedFlag++
|
|
3249
3218
|
return Promise.all(result).then(() => {
|
|
3250
3219
|
return tableMethods.recalculate()
|
|
3251
3220
|
})
|
|
@@ -3276,9 +3245,9 @@ export default defineComponent({
|
|
|
3276
3245
|
handleCheckedAllCheckboxRow(value)
|
|
3277
3246
|
if (evnt) {
|
|
3278
3247
|
dispatchEvent('checkbox-all', {
|
|
3279
|
-
records: $xeTable.getCheckboxRecords(),
|
|
3280
|
-
reserves: $xeTable.getCheckboxReserveRecords(),
|
|
3281
|
-
indeterminates: $xeTable.getCheckboxIndeterminateRecords(),
|
|
3248
|
+
records: () => $xeTable.getCheckboxRecords(),
|
|
3249
|
+
reserves: () => $xeTable.getCheckboxReserveRecords(),
|
|
3250
|
+
indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
|
|
3282
3251
|
checked: value
|
|
3283
3252
|
}, evnt)
|
|
3284
3253
|
}
|
|
@@ -3311,10 +3280,11 @@ export default defineComponent({
|
|
|
3311
3280
|
}
|
|
3312
3281
|
|
|
3313
3282
|
const createGetRowCacheProp = (prop: 'seq' | 'index' | '_index' | '$index') => {
|
|
3283
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
3314
3284
|
return function (row: any) {
|
|
3315
3285
|
const { fullAllDataRowIdData } = internalData
|
|
3316
3286
|
if (row) {
|
|
3317
|
-
const rowid =
|
|
3287
|
+
const rowid = handleGetRowId(row)
|
|
3318
3288
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
3319
3289
|
if (rowRest) {
|
|
3320
3290
|
return rowRest[prop]
|
|
@@ -3472,7 +3442,7 @@ export default defineComponent({
|
|
|
3472
3442
|
|
|
3473
3443
|
const handleUpdateColResize = (evnt: MouseEvent, params: any) => {
|
|
3474
3444
|
$xeTable.analyColumnWidth()
|
|
3475
|
-
$xeTable.recalculate(
|
|
3445
|
+
$xeTable.recalculate().then(() => {
|
|
3476
3446
|
$xeTable.saveCustomStore('update:width')
|
|
3477
3447
|
$xeTable.updateCellAreas()
|
|
3478
3448
|
$xeTable.dispatchEvent('column-resizable-change', params, evnt)
|
|
@@ -3484,7 +3454,7 @@ export default defineComponent({
|
|
|
3484
3454
|
|
|
3485
3455
|
const handleUpdateRowResize = (evnt: MouseEvent, params: any) => {
|
|
3486
3456
|
reactData.resizeHeightFlag++
|
|
3487
|
-
$xeTable.recalculate(
|
|
3457
|
+
$xeTable.recalculate().then(() => {
|
|
3488
3458
|
$xeTable.updateCellAreas()
|
|
3489
3459
|
$xeTable.dispatchEvent('row-resizable-change', params, evnt)
|
|
3490
3460
|
setTimeout(() => $xeTable.recalculate(true), 300)
|
|
@@ -3504,16 +3474,17 @@ export default defineComponent({
|
|
|
3504
3474
|
}
|
|
3505
3475
|
|
|
3506
3476
|
const updateRowOffsetTop = () => {
|
|
3507
|
-
const { expandColumn
|
|
3508
|
-
const { afterFullData, fullAllDataRowIdData } = internalData
|
|
3477
|
+
const { expandColumn } = reactData
|
|
3478
|
+
const { afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData
|
|
3509
3479
|
const expandOpts = computeExpandOpts.value
|
|
3510
3480
|
const rowOpts = computeRowOpts.value
|
|
3511
3481
|
const cellOpts = computeCellOpts.value
|
|
3512
3482
|
const defaultRowHeight = computeDefaultRowHeight.value
|
|
3483
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
3513
3484
|
let offsetTop = 0
|
|
3514
3485
|
for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
|
|
3515
3486
|
const row = afterFullData[rIndex]
|
|
3516
|
-
const rowid =
|
|
3487
|
+
const rowid = handleGetRowId(row)
|
|
3517
3488
|
const rowRest = fullAllDataRowIdData[rowid] || {}
|
|
3518
3489
|
rowRest.oTop = offsetTop
|
|
3519
3490
|
offsetTop += rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight
|
|
@@ -3893,11 +3864,10 @@ export default defineComponent({
|
|
|
3893
3864
|
*/
|
|
3894
3865
|
revertData (rows: any, field) {
|
|
3895
3866
|
const { keepSource, treeConfig } = props
|
|
3896
|
-
const {
|
|
3897
|
-
const { fullAllDataRowIdData, fullDataRowIdData, tableSourceData, sourceDataRowIdData, tableFullData, afterFullData } = internalData
|
|
3898
|
-
const removeTempMaps = { ...editStore.removeMaps }
|
|
3867
|
+
const { fullAllDataRowIdData, fullDataRowIdData, tableSourceData, sourceDataRowIdData, tableFullData, afterFullData, removeRowMaps } = internalData
|
|
3899
3868
|
const treeOpts = computeTreeOpts.value
|
|
3900
3869
|
const { transform } = treeOpts
|
|
3870
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
3901
3871
|
if (!keepSource) {
|
|
3902
3872
|
if (process.env.VUE_APP_VXE_ENV === 'development') {
|
|
3903
3873
|
errLog('vxe.error.reqProp', ['keep-source'])
|
|
@@ -3915,7 +3885,7 @@ export default defineComponent({
|
|
|
3915
3885
|
let reDelFlag = false
|
|
3916
3886
|
if (targetRows.length) {
|
|
3917
3887
|
targetRows.forEach((item: any) => {
|
|
3918
|
-
const rowid =
|
|
3888
|
+
const rowid = handleGetRowId(item)
|
|
3919
3889
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
3920
3890
|
if (rowRest) {
|
|
3921
3891
|
const row = rowRest.row
|
|
@@ -3928,7 +3898,9 @@ export default defineComponent({
|
|
|
3928
3898
|
XEUtils.destructuring(row, XEUtils.clone(oRow, true))
|
|
3929
3899
|
}
|
|
3930
3900
|
if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
|
|
3931
|
-
|
|
3901
|
+
if (removeRowMaps[rowid]) {
|
|
3902
|
+
delete removeRowMaps[rowid]
|
|
3903
|
+
}
|
|
3932
3904
|
tableFullData.unshift(row)
|
|
3933
3905
|
afterFullData.unshift(row)
|
|
3934
3906
|
reDelFlag = true
|
|
@@ -3940,7 +3912,7 @@ export default defineComponent({
|
|
|
3940
3912
|
}
|
|
3941
3913
|
if (rows) {
|
|
3942
3914
|
if (reDelFlag) {
|
|
3943
|
-
|
|
3915
|
+
reactData.removeRowFlag++
|
|
3944
3916
|
$xeTable.updateFooter()
|
|
3945
3917
|
$xeTable.cacheRowMap(false)
|
|
3946
3918
|
$xeTable.handleTableData(treeConfig && transform)
|
|
@@ -4068,22 +4040,19 @@ export default defineComponent({
|
|
|
4068
4040
|
* @param {Row} row 行对象
|
|
4069
4041
|
*/
|
|
4070
4042
|
isInsertByRow (row) {
|
|
4071
|
-
const { editStore } = reactData
|
|
4072
4043
|
const rowid = getRowid($xeTable, row)
|
|
4073
|
-
return !!
|
|
4044
|
+
return !!reactData.insertRowFlag && !!internalData.insertRowMaps[rowid]
|
|
4074
4045
|
},
|
|
4075
4046
|
isRemoveByRow (row) {
|
|
4076
|
-
const { editStore } = reactData
|
|
4077
4047
|
const rowid = getRowid($xeTable, row)
|
|
4078
|
-
return !!
|
|
4048
|
+
return !!reactData.removeRowFlag && !!internalData.removeRowMaps[rowid]
|
|
4079
4049
|
},
|
|
4080
4050
|
/**
|
|
4081
4051
|
* 删除所有新增的临时数据
|
|
4082
4052
|
* @returns
|
|
4083
4053
|
*/
|
|
4084
4054
|
removeInsertRow () {
|
|
4085
|
-
|
|
4086
|
-
editStore.insertMaps = {}
|
|
4055
|
+
internalData.insertRowMaps = {}
|
|
4087
4056
|
return $xeTable.remove($xeTable.getInsertRecords())
|
|
4088
4057
|
},
|
|
4089
4058
|
/**
|
|
@@ -4122,8 +4091,8 @@ export default defineComponent({
|
|
|
4122
4091
|
* @param {Number} columnIndex 索引
|
|
4123
4092
|
*/
|
|
4124
4093
|
getColumns (columnIndex?: number): any {
|
|
4125
|
-
const
|
|
4126
|
-
return XEUtils.isUndefined(columnIndex) ?
|
|
4094
|
+
const { visibleColumn } = internalData
|
|
4095
|
+
return XEUtils.isUndefined(columnIndex) ? visibleColumn.slice(0) : visibleColumn[columnIndex]
|
|
4127
4096
|
},
|
|
4128
4097
|
/**
|
|
4129
4098
|
* 根据列获取列的唯一主键
|
|
@@ -4137,7 +4106,7 @@ export default defineComponent({
|
|
|
4137
4106
|
* @param {String} colid 列主键
|
|
4138
4107
|
*/
|
|
4139
4108
|
getColumnById (colid) {
|
|
4140
|
-
const fullColumnIdData = internalData
|
|
4109
|
+
const { fullColumnIdData } = internalData
|
|
4141
4110
|
return colid && fullColumnIdData[colid] ? fullColumnIdData[colid].column : null
|
|
4142
4111
|
},
|
|
4143
4112
|
/**
|
|
@@ -4149,7 +4118,7 @@ export default defineComponent({
|
|
|
4149
4118
|
return field && fullColumnFieldData[field] ? fullColumnFieldData[field].column : null
|
|
4150
4119
|
},
|
|
4151
4120
|
getParentColumn (fieldOrColumn) {
|
|
4152
|
-
const fullColumnIdData = internalData
|
|
4121
|
+
const { fullColumnIdData } = internalData
|
|
4153
4122
|
const column = handleFieldOrColumn($xeTable, fieldOrColumn)
|
|
4154
4123
|
return column && column.parentId && fullColumnIdData[column.parentId] ? fullColumnIdData[column.parentId].column : null
|
|
4155
4124
|
},
|
|
@@ -4270,8 +4239,7 @@ export default defineComponent({
|
|
|
4270
4239
|
*/
|
|
4271
4240
|
getCheckboxRecords (isFull) {
|
|
4272
4241
|
const { treeConfig } = props
|
|
4273
|
-
const { selectCheckboxMaps } =
|
|
4274
|
-
const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps } = internalData
|
|
4242
|
+
const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps, selectCheckboxMaps } = internalData
|
|
4275
4243
|
const treeOpts = computeTreeOpts.value
|
|
4276
4244
|
const checkboxOpts = computeCheckboxOpts.value
|
|
4277
4245
|
const { transform, mapChildrenField } = treeOpts
|
|
@@ -4599,12 +4567,13 @@ export default defineComponent({
|
|
|
4599
4567
|
},
|
|
4600
4568
|
getRowHeightConf (isFull) {
|
|
4601
4569
|
const { fullAllDataRowIdData, afterFullData } = internalData
|
|
4570
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
4602
4571
|
const rowOpts = computeRowOpts.value
|
|
4603
4572
|
const cellOpts = computeCellOpts.value
|
|
4604
4573
|
const defaultRowHeight = computeDefaultRowHeight.value
|
|
4605
4574
|
const rest: Record<string, number> = {}
|
|
4606
4575
|
afterFullData.forEach(row => {
|
|
4607
|
-
const rowid =
|
|
4576
|
+
const rowid = handleGetRowId(row)
|
|
4608
4577
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
4609
4578
|
if (rowRest) {
|
|
4610
4579
|
const resizeHeight = rowRest.resizeHeight
|
|
@@ -4628,8 +4597,9 @@ export default defineComponent({
|
|
|
4628
4597
|
rHeight = Math.floor(rHeight * bodyHeight)
|
|
4629
4598
|
}
|
|
4630
4599
|
if (rHeight) {
|
|
4600
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
4631
4601
|
rows.forEach(row => {
|
|
4632
|
-
const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row :
|
|
4602
|
+
const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row : handleGetRowId(row)
|
|
4633
4603
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
4634
4604
|
if (rowRest) {
|
|
4635
4605
|
rowRest.resizeHeight = rHeight
|
|
@@ -4781,12 +4751,11 @@ export default defineComponent({
|
|
|
4781
4751
|
*/
|
|
4782
4752
|
getCheckboxIndeterminateRecords (isFull) {
|
|
4783
4753
|
const { treeConfig } = props
|
|
4784
|
-
const { fullDataRowIdData } = internalData
|
|
4785
|
-
const { treeIndeterminateMaps } = reactData
|
|
4754
|
+
const { fullDataRowIdData, treeIndeterminateRowMaps } = internalData
|
|
4786
4755
|
if (treeConfig) {
|
|
4787
4756
|
const fullRest: any[] = []
|
|
4788
4757
|
const defRest: any[] = []
|
|
4789
|
-
XEUtils.each(
|
|
4758
|
+
XEUtils.each(treeIndeterminateRowMaps, (item, rowid) => {
|
|
4790
4759
|
if (item) {
|
|
4791
4760
|
fullRest.push(item)
|
|
4792
4761
|
if (fullDataRowIdData[rowid]) {
|
|
@@ -4827,17 +4796,18 @@ export default defineComponent({
|
|
|
4827
4796
|
return handleCheckedCheckboxRow(rows, checked, true)
|
|
4828
4797
|
},
|
|
4829
4798
|
isCheckedByCheckboxRow (row) {
|
|
4830
|
-
const {
|
|
4799
|
+
const { updateCheckboxFlag } = reactData
|
|
4800
|
+
const { selectCheckboxMaps } = internalData
|
|
4831
4801
|
const checkboxOpts = computeCheckboxOpts.value
|
|
4832
4802
|
const { checkField } = checkboxOpts
|
|
4833
4803
|
if (checkField) {
|
|
4834
4804
|
return XEUtils.get(row, checkField)
|
|
4835
4805
|
}
|
|
4836
|
-
return !!selectCheckboxMaps[getRowid($xeTable, row)]
|
|
4806
|
+
return !!updateCheckboxFlag && !!selectCheckboxMaps[getRowid($xeTable, row)]
|
|
4837
4807
|
},
|
|
4838
4808
|
isCheckedByCheckboxRowKey (rowid: any) {
|
|
4839
|
-
const {
|
|
4840
|
-
const { fullAllDataRowIdData } = internalData
|
|
4809
|
+
const { updateCheckboxFlag } = reactData
|
|
4810
|
+
const { fullAllDataRowIdData, selectCheckboxMaps } = internalData
|
|
4841
4811
|
const checkboxOpts = computeCheckboxOpts.value
|
|
4842
4812
|
const { checkField } = checkboxOpts
|
|
4843
4813
|
if (checkField) {
|
|
@@ -4847,21 +4817,21 @@ export default defineComponent({
|
|
|
4847
4817
|
}
|
|
4848
4818
|
return false
|
|
4849
4819
|
}
|
|
4850
|
-
return !!selectCheckboxMaps[rowid]
|
|
4820
|
+
return !!updateCheckboxFlag && !!selectCheckboxMaps[rowid]
|
|
4851
4821
|
},
|
|
4852
4822
|
isIndeterminateByCheckboxRow (row) {
|
|
4853
|
-
const {
|
|
4854
|
-
return !!
|
|
4823
|
+
const { treeIndeterminateRowMaps } = internalData
|
|
4824
|
+
return !!treeIndeterminateRowMaps[getRowid($xeTable, row)] && !$xeTable.isCheckedByCheckboxRow(row)
|
|
4855
4825
|
},
|
|
4856
4826
|
isIndeterminateByCheckboxRowKey (rowid: any) {
|
|
4857
|
-
const {
|
|
4858
|
-
return !!
|
|
4827
|
+
const { treeIndeterminateRowMaps } = internalData
|
|
4828
|
+
return !!treeIndeterminateRowMaps[rowid] && !$xeTable.isCheckedByCheckboxRowKey(rowid)
|
|
4859
4829
|
},
|
|
4860
4830
|
/**
|
|
4861
4831
|
* 多选,切换某一行的选中状态
|
|
4862
4832
|
*/
|
|
4863
4833
|
toggleCheckboxRow (row) {
|
|
4864
|
-
const { selectCheckboxMaps } =
|
|
4834
|
+
const { selectCheckboxMaps } = internalData
|
|
4865
4835
|
const checkboxOpts = computeCheckboxOpts.value
|
|
4866
4836
|
const { checkField } = checkboxOpts
|
|
4867
4837
|
const checked = checkField ? !XEUtils.get(row, checkField) : !selectCheckboxMaps[getRowid($xeTable, row)]
|
|
@@ -4922,14 +4892,15 @@ export default defineComponent({
|
|
|
4922
4892
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
4923
4893
|
const reserveSelection: any[] = []
|
|
4924
4894
|
if (checkboxOpts.reserve) {
|
|
4895
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
4925
4896
|
const afterFullIdMaps: { [key: string]: number } = {}
|
|
4926
4897
|
if (treeConfig) {
|
|
4927
4898
|
XEUtils.eachTree(afterFullData, row => {
|
|
4928
|
-
afterFullIdMaps[
|
|
4899
|
+
afterFullIdMaps[handleGetRowId(row)] = 1
|
|
4929
4900
|
}, { children: childrenField })
|
|
4930
4901
|
} else {
|
|
4931
4902
|
afterFullData.forEach(row => {
|
|
4932
|
-
afterFullIdMaps[
|
|
4903
|
+
afterFullIdMaps[handleGetRowId(row)] = 1
|
|
4933
4904
|
})
|
|
4934
4905
|
}
|
|
4935
4906
|
XEUtils.each(checkboxReserveRowMap, (oldRow, oldRowid) => {
|
|
@@ -4990,8 +4961,9 @@ export default defineComponent({
|
|
|
4990
4961
|
}
|
|
4991
4962
|
reactData.isAllSelected = false
|
|
4992
4963
|
reactData.isIndeterminate = false
|
|
4993
|
-
|
|
4994
|
-
|
|
4964
|
+
internalData.selectCheckboxMaps = {}
|
|
4965
|
+
internalData.treeIndeterminateRowMaps = {}
|
|
4966
|
+
reactData.updateCheckboxFlag++
|
|
4995
4967
|
return nextTick()
|
|
4996
4968
|
},
|
|
4997
4969
|
/**
|
|
@@ -5098,13 +5070,20 @@ export default defineComponent({
|
|
|
5098
5070
|
* 用于当前列,设置某列行为高亮状态
|
|
5099
5071
|
*/
|
|
5100
5072
|
setCurrentColumn (fieldOrColumn) {
|
|
5073
|
+
const { mouseConfig } = props
|
|
5074
|
+
const mouseOpts = computeMouseOpts.value
|
|
5075
|
+
const isMouseSelected = mouseConfig && mouseOpts.selected
|
|
5101
5076
|
const column = handleFieldOrColumn($xeTable, fieldOrColumn)
|
|
5102
5077
|
if (column) {
|
|
5103
|
-
|
|
5104
|
-
tableMethods.clearCurrentColumn()
|
|
5078
|
+
$xeTable.clearCurrentColumn()
|
|
5105
5079
|
reactData.currentColumn = column
|
|
5106
5080
|
}
|
|
5107
|
-
return nextTick()
|
|
5081
|
+
return nextTick().then(() => {
|
|
5082
|
+
// 更新状选中态
|
|
5083
|
+
if (isMouseSelected) {
|
|
5084
|
+
$xeTable.addCellSelectedClass()
|
|
5085
|
+
}
|
|
5086
|
+
})
|
|
5108
5087
|
},
|
|
5109
5088
|
/**
|
|
5110
5089
|
* 用于当前列,手动清空当前高亮的状态
|
|
@@ -5114,57 +5093,58 @@ export default defineComponent({
|
|
|
5114
5093
|
return nextTick()
|
|
5115
5094
|
},
|
|
5116
5095
|
setPendingRow (rows: any | any[], status: boolean) {
|
|
5117
|
-
const
|
|
5096
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
5097
|
+
const { pendingRowMaps } = internalData
|
|
5118
5098
|
if (rows && !XEUtils.isArray(rows)) {
|
|
5119
5099
|
rows = [rows]
|
|
5120
5100
|
}
|
|
5121
5101
|
if (status) {
|
|
5122
5102
|
rows.forEach((row: any) => {
|
|
5123
|
-
const rowid =
|
|
5124
|
-
if (rowid && !
|
|
5125
|
-
|
|
5103
|
+
const rowid = handleGetRowId(row)
|
|
5104
|
+
if (rowid && !pendingRowMaps[rowid]) {
|
|
5105
|
+
pendingRowMaps[rowid] = row
|
|
5126
5106
|
}
|
|
5127
5107
|
})
|
|
5128
5108
|
} else {
|
|
5129
5109
|
rows.forEach((row: any) => {
|
|
5130
|
-
const rowid =
|
|
5131
|
-
if (rowid &&
|
|
5132
|
-
delete
|
|
5110
|
+
const rowid = handleGetRowId(row)
|
|
5111
|
+
if (rowid && pendingRowMaps[rowid]) {
|
|
5112
|
+
delete pendingRowMaps[rowid]
|
|
5133
5113
|
}
|
|
5134
5114
|
})
|
|
5135
5115
|
}
|
|
5136
|
-
reactData.
|
|
5116
|
+
reactData.pendingRowFlag++
|
|
5137
5117
|
return nextTick()
|
|
5138
5118
|
},
|
|
5139
5119
|
togglePendingRow (rows: any | any[]) {
|
|
5140
|
-
const
|
|
5120
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
5121
|
+
const { pendingRowMaps } = internalData
|
|
5141
5122
|
if (rows && !XEUtils.isArray(rows)) {
|
|
5142
5123
|
rows = [rows]
|
|
5143
5124
|
}
|
|
5144
5125
|
rows.forEach((row: any) => {
|
|
5145
|
-
const rowid =
|
|
5126
|
+
const rowid = handleGetRowId(row)
|
|
5146
5127
|
if (rowid) {
|
|
5147
|
-
if (
|
|
5148
|
-
delete
|
|
5128
|
+
if (pendingRowMaps[rowid]) {
|
|
5129
|
+
delete pendingRowMaps[rowid]
|
|
5149
5130
|
} else {
|
|
5150
|
-
|
|
5131
|
+
pendingRowMaps[rowid] = row
|
|
5151
5132
|
}
|
|
5152
5133
|
}
|
|
5153
5134
|
})
|
|
5154
|
-
reactData.
|
|
5135
|
+
reactData.pendingRowFlag++
|
|
5155
5136
|
return nextTick()
|
|
5156
5137
|
},
|
|
5157
5138
|
hasPendingByRow (row) {
|
|
5158
5139
|
return tableMethods.isPendingByRow(row)
|
|
5159
5140
|
},
|
|
5160
5141
|
isPendingByRow (row) {
|
|
5161
|
-
const { pendingRowMaps } =
|
|
5142
|
+
const { pendingRowMaps } = internalData
|
|
5162
5143
|
const rowid = getRowid($xeTable, row)
|
|
5163
5144
|
return !!pendingRowMaps[rowid]
|
|
5164
5145
|
},
|
|
5165
5146
|
getPendingRecords () {
|
|
5166
|
-
const { pendingRowMaps } =
|
|
5167
|
-
const { fullAllDataRowIdData } = internalData
|
|
5147
|
+
const { fullAllDataRowIdData, pendingRowMaps } = internalData
|
|
5168
5148
|
const insertRecords: any[] = []
|
|
5169
5149
|
XEUtils.each(pendingRowMaps, (row, rowid) => {
|
|
5170
5150
|
if (fullAllDataRowIdData[rowid]) {
|
|
@@ -5174,7 +5154,8 @@ export default defineComponent({
|
|
|
5174
5154
|
return insertRecords
|
|
5175
5155
|
},
|
|
5176
5156
|
clearPendingRow () {
|
|
5177
|
-
|
|
5157
|
+
internalData.pendingRowMaps = {}
|
|
5158
|
+
reactData.pendingRowFlag++
|
|
5178
5159
|
return nextTick()
|
|
5179
5160
|
},
|
|
5180
5161
|
sort (sortConfs: any, sortOrder?: VxeTablePropTypes.SortOrder) {
|
|
@@ -5322,7 +5303,13 @@ export default defineComponent({
|
|
|
5322
5303
|
visible: false
|
|
5323
5304
|
})
|
|
5324
5305
|
if (visible) {
|
|
5325
|
-
dispatchEvent('filter-visible', {
|
|
5306
|
+
dispatchEvent('filter-visible', {
|
|
5307
|
+
column,
|
|
5308
|
+
property: column.field,
|
|
5309
|
+
field: column.field,
|
|
5310
|
+
filterList: () => $xeTable.getCheckedFilters(),
|
|
5311
|
+
visible: false
|
|
5312
|
+
}, null)
|
|
5326
5313
|
}
|
|
5327
5314
|
return nextTick()
|
|
5328
5315
|
},
|
|
@@ -5350,17 +5337,16 @@ export default defineComponent({
|
|
|
5350
5337
|
return rowRest && !!rowRest.expandLoaded
|
|
5351
5338
|
},
|
|
5352
5339
|
clearRowExpandLoaded (row) {
|
|
5353
|
-
const
|
|
5354
|
-
const { fullAllDataRowIdData } = internalData
|
|
5340
|
+
const { fullAllDataRowIdData, rowExpandLazyLoadedMaps } = internalData
|
|
5355
5341
|
const expandOpts = computeExpandOpts.value
|
|
5356
5342
|
const { lazy } = expandOpts
|
|
5357
5343
|
const rowid = getRowid($xeTable, row)
|
|
5358
5344
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
5359
5345
|
if (lazy && rowRest) {
|
|
5360
5346
|
rowRest.expandLoaded = false
|
|
5361
|
-
delete
|
|
5347
|
+
delete rowExpandLazyLoadedMaps[rowid]
|
|
5362
5348
|
}
|
|
5363
|
-
reactData.
|
|
5349
|
+
reactData.rowExpandedFlag++
|
|
5364
5350
|
return nextTick()
|
|
5365
5351
|
},
|
|
5366
5352
|
/**
|
|
@@ -5368,12 +5354,12 @@ export default defineComponent({
|
|
|
5368
5354
|
* @param {Row} row 行对象
|
|
5369
5355
|
*/
|
|
5370
5356
|
reloadRowExpand (row) {
|
|
5371
|
-
const { rowExpandLazyLoadedMaps } =
|
|
5357
|
+
const { rowExpandLazyLoadedMaps } = internalData
|
|
5372
5358
|
const expandOpts = computeExpandOpts.value
|
|
5373
5359
|
const { lazy } = expandOpts
|
|
5374
5360
|
const rowid = getRowid($xeTable, row)
|
|
5375
5361
|
if (lazy && !rowExpandLazyLoadedMaps[rowid]) {
|
|
5376
|
-
|
|
5362
|
+
$xeTable.clearRowExpandLoaded(row)
|
|
5377
5363
|
.then(() => handleAsyncRowExpand(row))
|
|
5378
5364
|
}
|
|
5379
5365
|
return nextTick()
|
|
@@ -5383,13 +5369,13 @@ export default defineComponent({
|
|
|
5383
5369
|
warnLog('vxe.error.delFunc', ['reloadExpandContent', 'reloadRowExpand'])
|
|
5384
5370
|
}
|
|
5385
5371
|
// 即将废弃
|
|
5386
|
-
return
|
|
5372
|
+
return $xeTable.reloadRowExpand(row)
|
|
5387
5373
|
},
|
|
5388
5374
|
/**
|
|
5389
5375
|
* 切换展开行
|
|
5390
5376
|
*/
|
|
5391
5377
|
toggleRowExpand (row) {
|
|
5392
|
-
return
|
|
5378
|
+
return $xeTable.setRowExpand(row, !$xeTable.isRowExpandByRow(row))
|
|
5393
5379
|
},
|
|
5394
5380
|
/**
|
|
5395
5381
|
* 设置所有行的展开与否
|
|
@@ -5417,9 +5403,9 @@ export default defineComponent({
|
|
|
5417
5403
|
* @param {Boolean} expanded 是否展开
|
|
5418
5404
|
*/
|
|
5419
5405
|
setRowExpand (rows, expanded) {
|
|
5420
|
-
const {
|
|
5421
|
-
|
|
5422
|
-
|
|
5406
|
+
const { expandColumn } = reactData
|
|
5407
|
+
let { fullAllDataRowIdData, rowExpandedMaps, rowExpandLazyLoadedMaps } = internalData
|
|
5408
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
5423
5409
|
const expandOpts = computeExpandOpts.value
|
|
5424
5410
|
const { reserve, lazy, accordion, toggleMethod } = expandOpts
|
|
5425
5411
|
const lazyRests: any[] = []
|
|
@@ -5431,28 +5417,29 @@ export default defineComponent({
|
|
|
5431
5417
|
}
|
|
5432
5418
|
if (accordion) {
|
|
5433
5419
|
// 只能同时展开一个
|
|
5434
|
-
|
|
5420
|
+
rowExpandedMaps = {}
|
|
5421
|
+
internalData.rowExpandedMaps = rowExpandedMaps
|
|
5435
5422
|
rows = rows.slice(rows.length - 1, rows.length)
|
|
5436
5423
|
}
|
|
5437
5424
|
const validRows: any[] = toggleMethod ? rows.filter((row: any) => toggleMethod({ $table: $xeTable, expanded, column: expandColumn, columnIndex, $columnIndex, row, rowIndex: tableMethods.getRowIndex(row), $rowIndex: tableMethods.getVMRowIndex(row) })) : rows
|
|
5438
5425
|
if (expanded) {
|
|
5439
5426
|
validRows.forEach((row: any) => {
|
|
5440
|
-
const rowid =
|
|
5441
|
-
if (!
|
|
5427
|
+
const rowid = handleGetRowId(row)
|
|
5428
|
+
if (!rowExpandedMaps[rowid]) {
|
|
5442
5429
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
5443
5430
|
const isLoad = lazy && !rowRest.expandLoaded && !rowExpandLazyLoadedMaps[rowid]
|
|
5444
5431
|
if (isLoad) {
|
|
5445
5432
|
lazyRests.push(handleAsyncRowExpand(row))
|
|
5446
5433
|
} else {
|
|
5447
|
-
|
|
5434
|
+
rowExpandedMaps[rowid] = row
|
|
5448
5435
|
}
|
|
5449
5436
|
}
|
|
5450
5437
|
})
|
|
5451
5438
|
} else {
|
|
5452
5439
|
validRows.forEach(item => {
|
|
5453
|
-
const rowid =
|
|
5454
|
-
if (
|
|
5455
|
-
delete
|
|
5440
|
+
const rowid = handleGetRowId(item)
|
|
5441
|
+
if (rowExpandedMaps[rowid]) {
|
|
5442
|
+
delete rowExpandedMaps[rowid]
|
|
5456
5443
|
}
|
|
5457
5444
|
})
|
|
5458
5445
|
}
|
|
@@ -5460,7 +5447,7 @@ export default defineComponent({
|
|
|
5460
5447
|
validRows.forEach((row) => handleRowExpandReserve(row, expanded))
|
|
5461
5448
|
}
|
|
5462
5449
|
}
|
|
5463
|
-
reactData.
|
|
5450
|
+
reactData.rowExpandedFlag++
|
|
5464
5451
|
return Promise.all(lazyRests)
|
|
5465
5452
|
.then(() => nextTick())
|
|
5466
5453
|
.then(() => $xeTable.recalculate(true))
|
|
@@ -5476,9 +5463,10 @@ export default defineComponent({
|
|
|
5476
5463
|
* @param {Row} row 行对象
|
|
5477
5464
|
*/
|
|
5478
5465
|
isRowExpandByRow (row) {
|
|
5479
|
-
const {
|
|
5466
|
+
const { rowExpandedFlag } = reactData
|
|
5467
|
+
const { rowExpandedMaps } = internalData
|
|
5480
5468
|
const rowid = getRowid($xeTable, row)
|
|
5481
|
-
return !!rowExpandedMaps[rowid]
|
|
5469
|
+
return !!rowExpandedFlag && !!rowExpandedMaps[rowid]
|
|
5482
5470
|
},
|
|
5483
5471
|
isExpandByRow (row) {
|
|
5484
5472
|
// 已废弃
|
|
@@ -5495,7 +5483,8 @@ export default defineComponent({
|
|
|
5495
5483
|
const expandOpts = computeExpandOpts.value
|
|
5496
5484
|
const { reserve } = expandOpts
|
|
5497
5485
|
const expList = $xeTable.getRowExpandRecords()
|
|
5498
|
-
|
|
5486
|
+
internalData.rowExpandedMaps = {}
|
|
5487
|
+
reactData.rowExpandedFlag++
|
|
5499
5488
|
if (reserve) {
|
|
5500
5489
|
tableFullData.forEach((row) => handleRowExpandReserve(row, false))
|
|
5501
5490
|
}
|
|
@@ -5516,7 +5505,7 @@ export default defineComponent({
|
|
|
5516
5505
|
},
|
|
5517
5506
|
getRowExpandRecords () {
|
|
5518
5507
|
const rest: any[] = []
|
|
5519
|
-
XEUtils.each(
|
|
5508
|
+
XEUtils.each(internalData.rowExpandedMaps, item => {
|
|
5520
5509
|
if (item) {
|
|
5521
5510
|
rest.push(item)
|
|
5522
5511
|
}
|
|
@@ -5525,7 +5514,7 @@ export default defineComponent({
|
|
|
5525
5514
|
},
|
|
5526
5515
|
getTreeExpandRecords () {
|
|
5527
5516
|
const rest: any[] = []
|
|
5528
|
-
XEUtils.each(
|
|
5517
|
+
XEUtils.each(internalData.treeExpandedMaps, item => {
|
|
5529
5518
|
if (item) {
|
|
5530
5519
|
rest.push(item)
|
|
5531
5520
|
}
|
|
@@ -5542,12 +5531,10 @@ export default defineComponent({
|
|
|
5542
5531
|
return rowRest && !!rowRest.treeLoaded
|
|
5543
5532
|
},
|
|
5544
5533
|
clearTreeExpandLoaded (rows: any) {
|
|
5545
|
-
const { fullAllDataRowIdData } = internalData
|
|
5534
|
+
const { fullAllDataRowIdData, treeExpandedMaps } = internalData
|
|
5546
5535
|
const treeOpts = computeTreeOpts.value
|
|
5547
5536
|
const { transform } = treeOpts
|
|
5548
|
-
let tExpandedMaps: Record<string, any> = {}
|
|
5549
5537
|
if (rows) {
|
|
5550
|
-
tExpandedMaps = { ...reactData.treeExpandedMaps }
|
|
5551
5538
|
if (!XEUtils.isArray(rows)) {
|
|
5552
5539
|
rows = [rows]
|
|
5553
5540
|
}
|
|
@@ -5556,8 +5543,8 @@ export default defineComponent({
|
|
|
5556
5543
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
5557
5544
|
if (rowRest) {
|
|
5558
5545
|
rowRest.treeLoaded = false
|
|
5559
|
-
if (
|
|
5560
|
-
delete
|
|
5546
|
+
if (treeExpandedMaps[rowid]) {
|
|
5547
|
+
delete treeExpandedMaps[rowid]
|
|
5561
5548
|
}
|
|
5562
5549
|
}
|
|
5563
5550
|
})
|
|
@@ -5566,7 +5553,8 @@ export default defineComponent({
|
|
|
5566
5553
|
rowRest.treeLoaded = false
|
|
5567
5554
|
})
|
|
5568
5555
|
}
|
|
5569
|
-
|
|
5556
|
+
internalData.treeExpandedMaps = {}
|
|
5557
|
+
reactData.treeExpandedFlag++
|
|
5570
5558
|
if (transform) {
|
|
5571
5559
|
handleVirtualTreeToList()
|
|
5572
5560
|
return $xeTable.handleTableData()
|
|
@@ -5578,7 +5566,7 @@ export default defineComponent({
|
|
|
5578
5566
|
* @param {Row} row 行对象
|
|
5579
5567
|
*/
|
|
5580
5568
|
reloadTreeExpand (row) {
|
|
5581
|
-
const { treeExpandLazyLoadedMaps } =
|
|
5569
|
+
const { treeExpandLazyLoadedMaps } = internalData
|
|
5582
5570
|
const treeOpts = computeTreeOpts.value
|
|
5583
5571
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
|
|
5584
5572
|
const { transform, lazy } = treeOpts
|
|
@@ -5663,8 +5651,9 @@ export default defineComponent({
|
|
|
5663
5651
|
* @param {Row} row 行对象
|
|
5664
5652
|
*/
|
|
5665
5653
|
isTreeExpandByRow (row) {
|
|
5666
|
-
const {
|
|
5667
|
-
|
|
5654
|
+
const { treeExpandedFlag } = reactData
|
|
5655
|
+
const { treeExpandedMaps } = internalData
|
|
5656
|
+
return !!treeExpandedFlag && !!treeExpandedMaps[getRowid($xeTable, row)]
|
|
5668
5657
|
},
|
|
5669
5658
|
/**
|
|
5670
5659
|
* 手动清空树形节点的展开状态,数据会恢复成未展开的状态
|
|
@@ -5674,19 +5663,20 @@ export default defineComponent({
|
|
|
5674
5663
|
const treeOpts = computeTreeOpts.value
|
|
5675
5664
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
5676
5665
|
const { transform, reserve } = treeOpts
|
|
5677
|
-
const expList =
|
|
5678
|
-
|
|
5666
|
+
const expList = $xeTable.getTreeExpandRecords()
|
|
5667
|
+
internalData.treeExpandedMaps = {}
|
|
5668
|
+
reactData.treeExpandedFlag++
|
|
5679
5669
|
if (reserve) {
|
|
5680
5670
|
XEUtils.eachTree(tableFullTreeData, row => handleTreeExpandReserve(row, false), { children: childrenField })
|
|
5681
5671
|
}
|
|
5682
|
-
return
|
|
5672
|
+
return $xeTable.handleTableData().then(() => {
|
|
5683
5673
|
if (transform) {
|
|
5684
5674
|
handleVirtualTreeToList()
|
|
5685
|
-
return
|
|
5675
|
+
return $xeTable.handleTableData()
|
|
5686
5676
|
}
|
|
5687
5677
|
}).then(() => {
|
|
5688
5678
|
if (expList.length) {
|
|
5689
|
-
return
|
|
5679
|
+
return $xeTable.recalculate()
|
|
5690
5680
|
}
|
|
5691
5681
|
})
|
|
5692
5682
|
},
|
|
@@ -5945,7 +5935,13 @@ export default defineComponent({
|
|
|
5945
5935
|
const { id } = props
|
|
5946
5936
|
const customOpts = computeCustomOpts.value
|
|
5947
5937
|
const { collectColumn } = internalData
|
|
5948
|
-
const { checkMethod } = customOpts
|
|
5938
|
+
const { storage, checkMethod } = customOpts
|
|
5939
|
+
const isAllCustom = storage === true
|
|
5940
|
+
const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = isAllCustom ? {} : Object.assign({}, storage || {})
|
|
5941
|
+
const isCustomResizable = isAllCustom || storageOpts.resizable
|
|
5942
|
+
const isCustomVisible = isAllCustom || storageOpts.visible
|
|
5943
|
+
const isCustomFixed = isAllCustom || storageOpts.fixed
|
|
5944
|
+
const isCustomSort = isAllCustom || storageOpts.sort
|
|
5949
5945
|
const resizableData: Record<string, number> = {}
|
|
5950
5946
|
const sortData: Record<string, number> = {}
|
|
5951
5947
|
const visibleData: Record<string, boolean> = {}
|
|
@@ -5965,43 +5961,33 @@ export default defineComponent({
|
|
|
5965
5961
|
let hasFixed = 0
|
|
5966
5962
|
let hasVisible = 0
|
|
5967
5963
|
XEUtils.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
|
|
5964
|
+
const colKey = column.getKey()
|
|
5965
|
+
if (!colKey) {
|
|
5966
|
+
errLog('vxe.error.reqProp', [`${column.getTitle() || column.type || ''} -> column.field=?`])
|
|
5967
|
+
return
|
|
5968
|
+
}
|
|
5968
5969
|
// 只支持一级
|
|
5969
5970
|
if (!parentColumn) {
|
|
5970
|
-
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
hasSort = 1
|
|
5974
|
-
sortData[colKey] = column.renderSortNumber
|
|
5975
|
-
}
|
|
5976
|
-
})
|
|
5977
|
-
if (column.fixed !== column.defaultFixed) {
|
|
5978
|
-
const colKey = column.getKey()
|
|
5979
|
-
if (colKey) {
|
|
5980
|
-
hasFixed = 1
|
|
5981
|
-
fixedData[colKey] = column.fixed
|
|
5982
|
-
}
|
|
5971
|
+
if (isCustomSort) {
|
|
5972
|
+
hasSort = 1
|
|
5973
|
+
sortData[colKey] = column.renderSortNumber
|
|
5983
5974
|
}
|
|
5984
|
-
|
|
5985
|
-
|
|
5986
|
-
|
|
5987
|
-
if (colKey) {
|
|
5988
|
-
hasResizable = 1
|
|
5989
|
-
resizableData[colKey] = column.renderWidth
|
|
5975
|
+
if (isCustomFixed && column.fixed !== column.defaultFixed) {
|
|
5976
|
+
hasFixed = 1
|
|
5977
|
+
fixedData[colKey] = column.fixed
|
|
5990
5978
|
}
|
|
5991
5979
|
}
|
|
5992
|
-
if (
|
|
5980
|
+
if (isCustomResizable && column.resizeWidth) {
|
|
5981
|
+
hasResizable = 1
|
|
5982
|
+
resizableData[colKey] = column.renderWidth
|
|
5983
|
+
}
|
|
5984
|
+
if (isCustomVisible && (!checkMethod || checkMethod({ column }))) {
|
|
5993
5985
|
if (!column.visible && column.defaultVisible) {
|
|
5994
|
-
|
|
5995
|
-
|
|
5996
|
-
hasVisible = 1
|
|
5997
|
-
visibleData[colKey] = false
|
|
5998
|
-
}
|
|
5986
|
+
hasVisible = 1
|
|
5987
|
+
visibleData[colKey] = false
|
|
5999
5988
|
} else if (column.visible && !column.defaultVisible) {
|
|
6000
|
-
|
|
6001
|
-
|
|
6002
|
-
hasVisible = 1
|
|
6003
|
-
visibleData[colKey] = true
|
|
6004
|
-
}
|
|
5989
|
+
hasVisible = 1
|
|
5990
|
+
visibleData[colKey] = true
|
|
6005
5991
|
}
|
|
6006
5992
|
}
|
|
6007
5993
|
})
|
|
@@ -6351,7 +6337,7 @@ export default defineComponent({
|
|
|
6351
6337
|
if (keyboardOpts.enterToTab) {
|
|
6352
6338
|
$xeTable.moveTabSelected(activeParams, hasShiftKey, evnt)
|
|
6353
6339
|
} else {
|
|
6354
|
-
$xeTable.
|
|
6340
|
+
$xeTable.moveEnterSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt)
|
|
6355
6341
|
}
|
|
6356
6342
|
} else {
|
|
6357
6343
|
if (keyboardOpts.enterToTab) {
|
|
@@ -6383,7 +6369,7 @@ export default defineComponent({
|
|
|
6383
6369
|
return
|
|
6384
6370
|
}
|
|
6385
6371
|
}
|
|
6386
|
-
$xeTable.
|
|
6372
|
+
$xeTable.moveEnterSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt)
|
|
6387
6373
|
if (enterMethod) {
|
|
6388
6374
|
enterMethod(etrParams)
|
|
6389
6375
|
}
|
|
@@ -6412,10 +6398,7 @@ export default defineComponent({
|
|
|
6412
6398
|
if (!isEditStatus) {
|
|
6413
6399
|
// 如果按下了方向键
|
|
6414
6400
|
if (selected.row && selected.column) {
|
|
6415
|
-
$xeTable.
|
|
6416
|
-
} else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
6417
|
-
// 当前行按键上下移动
|
|
6418
|
-
$xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt)
|
|
6401
|
+
$xeTable.moveArrowSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt)
|
|
6419
6402
|
}
|
|
6420
6403
|
}
|
|
6421
6404
|
} else if (isTab && keyboardConfig && keyboardOpts.isTab) {
|
|
@@ -6793,8 +6776,9 @@ export default defineComponent({
|
|
|
6793
6776
|
* @param {Event} evnt 事件
|
|
6794
6777
|
* @param {Row} row 行对象
|
|
6795
6778
|
*/
|
|
6796
|
-
const handleTooltip = (evnt: MouseEvent, tdEl: HTMLTableCellElement, overflowElem: HTMLElement
|
|
6797
|
-
|
|
6779
|
+
const handleTooltip = (evnt: MouseEvent, tdEl: HTMLTableCellElement, overflowElem: HTMLElement | null, params: any) => {
|
|
6780
|
+
const tipOverEl = overflowElem || tdEl
|
|
6781
|
+
if (!tipOverEl) {
|
|
6798
6782
|
return nextTick()
|
|
6799
6783
|
}
|
|
6800
6784
|
params.cell = tdEl
|
|
@@ -6804,9 +6788,8 @@ export default defineComponent({
|
|
|
6804
6788
|
const { showAll, contentMethod } = tooltipOpts
|
|
6805
6789
|
const customContent = contentMethod ? contentMethod(params) : null
|
|
6806
6790
|
const useCustom = contentMethod && !XEUtils.eqNull(customContent)
|
|
6807
|
-
const content = useCustom ? customContent : XEUtils.toString(column.type === 'html' ?
|
|
6808
|
-
|
|
6809
|
-
if (content && (showAll || useCustom || isCellOverflow)) {
|
|
6791
|
+
const content = useCustom ? customContent : XEUtils.toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim()
|
|
6792
|
+
if (content && (showAll || useCustom || (tipOverEl.scrollWidth > tipOverEl.clientWidth))) {
|
|
6810
6793
|
Object.assign(tooltipStore, {
|
|
6811
6794
|
row,
|
|
6812
6795
|
column,
|
|
@@ -6816,7 +6799,7 @@ export default defineComponent({
|
|
|
6816
6799
|
nextTick(() => {
|
|
6817
6800
|
const $tooltip = refTooltip.value
|
|
6818
6801
|
if ($tooltip && $tooltip.open) {
|
|
6819
|
-
$tooltip.open(
|
|
6802
|
+
$tooltip.open(tipOverEl, formatText(content))
|
|
6820
6803
|
}
|
|
6821
6804
|
})
|
|
6822
6805
|
}
|
|
@@ -6958,19 +6941,15 @@ export default defineComponent({
|
|
|
6958
6941
|
*/
|
|
6959
6942
|
cacheRowMap () {
|
|
6960
6943
|
const { treeConfig } = props
|
|
6961
|
-
const { treeExpandedMaps } =
|
|
6962
|
-
const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData
|
|
6944
|
+
const { fullAllDataRowIdData, tableFullData, tableFullTreeData, treeExpandedMaps } = internalData
|
|
6963
6945
|
const treeOpts = computeTreeOpts.value
|
|
6964
6946
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
6965
6947
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
|
|
6966
6948
|
const { lazy } = treeOpts
|
|
6967
|
-
const rowkey = getRowkey($xeTable)
|
|
6968
|
-
const isDeepKey = rowkey.indexOf('.') > -1
|
|
6969
6949
|
const fullAllDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = { ...fullAllDataRowIdData } // 存在已删除数据
|
|
6970
6950
|
const fullDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = {}
|
|
6971
|
-
const treeTempExpandedMaps = { ...treeExpandedMaps }
|
|
6972
6951
|
|
|
6973
|
-
const
|
|
6952
|
+
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable)
|
|
6974
6953
|
const handleRowCache = (row: any, index: number, items: any, currIndex: number, parentRow: any, rowid: string, level: number, seq: string | number) => {
|
|
6975
6954
|
let rowRest = fullAllDataRowIdMaps[rowid]
|
|
6976
6955
|
if (!rowRest) {
|
|
@@ -6994,15 +6973,14 @@ export default defineComponent({
|
|
|
6994
6973
|
|
|
6995
6974
|
if (treeConfig) {
|
|
6996
6975
|
XEUtils.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
|
|
6997
|
-
const rowid =
|
|
6976
|
+
const rowid = handleUpdateRowId(row)
|
|
6998
6977
|
if (treeConfig && lazy) {
|
|
6999
|
-
const treeExpRest = treeTempExpandedMaps[rowid]
|
|
7000
6978
|
if (row[hasChildField] && row[childrenField] === undefined) {
|
|
7001
6979
|
row[childrenField] = null
|
|
7002
6980
|
}
|
|
7003
|
-
if (
|
|
6981
|
+
if (treeExpandedMaps[rowid]) {
|
|
7004
6982
|
if (!row[childrenField] || !row[childrenField].length) {
|
|
7005
|
-
delete
|
|
6983
|
+
delete treeExpandedMaps[rowid]
|
|
7006
6984
|
}
|
|
7007
6985
|
}
|
|
7008
6986
|
}
|
|
@@ -7010,28 +6988,23 @@ export default defineComponent({
|
|
|
7010
6988
|
}, { children: childrenField })
|
|
7011
6989
|
} else {
|
|
7012
6990
|
tableFullData.forEach((row, index, items) => {
|
|
7013
|
-
handleRowCache(row, index, items, index, null,
|
|
6991
|
+
handleRowCache(row, index, items, index, null, handleUpdateRowId(row), 0, index + 1)
|
|
7014
6992
|
})
|
|
7015
6993
|
}
|
|
7016
6994
|
|
|
7017
6995
|
internalData.fullDataRowIdData = fullDataRowIdMaps
|
|
7018
6996
|
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps
|
|
7019
|
-
reactData.
|
|
6997
|
+
reactData.treeExpandedFlag++
|
|
7020
6998
|
},
|
|
7021
6999
|
cacheSourceMap (fullData) {
|
|
7022
7000
|
const { treeConfig } = props
|
|
7023
7001
|
const treeOpts = computeTreeOpts.value
|
|
7024
|
-
let { sourceDataRowIdData } = internalData
|
|
7025
7002
|
const sourceData = XEUtils.clone(fullData, true)
|
|
7026
|
-
const
|
|
7027
|
-
|
|
7003
|
+
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable)
|
|
7004
|
+
const sourceRowIdData: Record<string, any> = {}
|
|
7028
7005
|
const handleSourceRow = (row: any) => {
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
rowid = getRowUniqueId()
|
|
7032
|
-
XEUtils.set(row, rowkey, rowid)
|
|
7033
|
-
}
|
|
7034
|
-
sourceDataRowIdData[rowid] = row
|
|
7006
|
+
const rowid = handleUpdateRowId(row)
|
|
7007
|
+
sourceRowIdData[rowid] = row
|
|
7035
7008
|
}
|
|
7036
7009
|
// 源数据缓存
|
|
7037
7010
|
if (treeConfig) {
|
|
@@ -7040,6 +7013,7 @@ export default defineComponent({
|
|
|
7040
7013
|
} else {
|
|
7041
7014
|
sourceData.forEach(handleSourceRow)
|
|
7042
7015
|
}
|
|
7016
|
+
internalData.sourceDataRowIdData = sourceRowIdData
|
|
7043
7017
|
internalData.tableSourceData = sourceData
|
|
7044
7018
|
},
|
|
7045
7019
|
/**
|
|
@@ -7486,8 +7460,21 @@ export default defineComponent({
|
|
|
7486
7460
|
}
|
|
7487
7461
|
// 兼容老版本
|
|
7488
7462
|
|
|
7489
|
-
let rest
|
|
7490
|
-
|
|
7463
|
+
let rest = null
|
|
7464
|
+
let isStop = false
|
|
7465
|
+
for (let i = 0; i < evntList.length; i++) {
|
|
7466
|
+
const func = evntList[i]
|
|
7467
|
+
const fnRest = func(Object.assign({ $grid: $xeGrid, $table: $xeTable, $event: evnt }, args))
|
|
7468
|
+
if (fnRest === false) {
|
|
7469
|
+
isStop = true
|
|
7470
|
+
break
|
|
7471
|
+
} else if (fnRest && fnRest.status === false) {
|
|
7472
|
+
rest = fnRest.result
|
|
7473
|
+
isStop = true
|
|
7474
|
+
break
|
|
7475
|
+
}
|
|
7476
|
+
}
|
|
7477
|
+
if (!isStop) {
|
|
7491
7478
|
if (next) {
|
|
7492
7479
|
rest = next()
|
|
7493
7480
|
}
|
|
@@ -7499,9 +7486,7 @@ export default defineComponent({
|
|
|
7499
7486
|
},
|
|
7500
7487
|
updateCheckboxStatus () {
|
|
7501
7488
|
const { treeConfig } = props
|
|
7502
|
-
const { selectCheckboxMaps,
|
|
7503
|
-
const selectRowMaps = Object.assign({}, selectCheckboxMaps)
|
|
7504
|
-
const halfRowMaps = Object.assign({}, treeIndeterminateMaps)
|
|
7489
|
+
const { selectCheckboxMaps, treeIndeterminateRowMaps } = internalData
|
|
7505
7490
|
const treeOpts = computeTreeOpts.value
|
|
7506
7491
|
const { transform, mapChildrenField } = treeOpts
|
|
7507
7492
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
@@ -7513,10 +7498,11 @@ export default defineComponent({
|
|
|
7513
7498
|
}
|
|
7514
7499
|
// 树结构
|
|
7515
7500
|
if (treeConfig) {
|
|
7501
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
7516
7502
|
const childRowMaps: Record<string, number> = {}
|
|
7517
7503
|
const childRowList: any[][] = []
|
|
7518
7504
|
XEUtils.eachTree(afterTreeFullData, (row) => {
|
|
7519
|
-
const rowid =
|
|
7505
|
+
const rowid = handleGetRowId(row)
|
|
7520
7506
|
const childList = row[transform ? mapChildrenField : childrenField]
|
|
7521
7507
|
if (childList && childList.length && !childRowMaps[rowid]) {
|
|
7522
7508
|
childRowMaps[rowid] = 1
|
|
@@ -7533,29 +7519,29 @@ export default defineComponent({
|
|
|
7533
7519
|
childList.forEach(
|
|
7534
7520
|
checkMethod
|
|
7535
7521
|
? (item) => {
|
|
7536
|
-
const childRowid =
|
|
7537
|
-
const isSelect = checkField ? XEUtils.get(item, checkField) :
|
|
7522
|
+
const childRowid = handleGetRowId(item)
|
|
7523
|
+
const isSelect = checkField ? XEUtils.get(item, checkField) : selectCheckboxMaps[childRowid]
|
|
7538
7524
|
if (checkMethod({ row: item })) {
|
|
7539
7525
|
if (isSelect) {
|
|
7540
7526
|
sLen++
|
|
7541
|
-
} else if (
|
|
7527
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7542
7528
|
hLen++
|
|
7543
7529
|
}
|
|
7544
7530
|
vLen++
|
|
7545
7531
|
} else {
|
|
7546
7532
|
if (isSelect) {
|
|
7547
7533
|
sLen++
|
|
7548
|
-
} else if (
|
|
7534
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7549
7535
|
hLen++
|
|
7550
7536
|
}
|
|
7551
7537
|
}
|
|
7552
7538
|
}
|
|
7553
7539
|
: item => {
|
|
7554
|
-
const childRowid =
|
|
7555
|
-
const isSelect = checkField ? XEUtils.get(item, checkField) :
|
|
7540
|
+
const childRowid = handleGetRowId(item)
|
|
7541
|
+
const isSelect = checkField ? XEUtils.get(item, checkField) : selectCheckboxMaps[childRowid]
|
|
7556
7542
|
if (isSelect) {
|
|
7557
7543
|
sLen++
|
|
7558
|
-
} else if (
|
|
7544
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7559
7545
|
hLen++
|
|
7560
7546
|
}
|
|
7561
7547
|
vLen++
|
|
@@ -7568,36 +7554,35 @@ export default defineComponent({
|
|
|
7568
7554
|
}
|
|
7569
7555
|
if (isSelected) {
|
|
7570
7556
|
if (!checkField) {
|
|
7571
|
-
|
|
7557
|
+
selectCheckboxMaps[rowid] = row
|
|
7572
7558
|
}
|
|
7573
|
-
if (
|
|
7574
|
-
delete
|
|
7559
|
+
if (treeIndeterminateRowMaps[rowid]) {
|
|
7560
|
+
delete treeIndeterminateRowMaps[rowid]
|
|
7575
7561
|
}
|
|
7576
7562
|
} else {
|
|
7577
7563
|
if (!checkField) {
|
|
7578
|
-
if (
|
|
7579
|
-
delete
|
|
7564
|
+
if (selectCheckboxMaps[rowid]) {
|
|
7565
|
+
delete selectCheckboxMaps[rowid]
|
|
7580
7566
|
}
|
|
7581
7567
|
}
|
|
7582
7568
|
if (halfSelect) {
|
|
7583
|
-
|
|
7569
|
+
treeIndeterminateRowMaps[rowid] = row
|
|
7584
7570
|
} else {
|
|
7585
|
-
if (
|
|
7586
|
-
delete
|
|
7571
|
+
if (treeIndeterminateRowMaps[rowid]) {
|
|
7572
|
+
delete treeIndeterminateRowMaps[rowid]
|
|
7587
7573
|
}
|
|
7588
7574
|
}
|
|
7589
7575
|
}
|
|
7590
7576
|
})
|
|
7591
7577
|
}
|
|
7592
|
-
reactData.
|
|
7593
|
-
reactData.treeIndeterminateMaps = halfRowMaps
|
|
7578
|
+
reactData.updateCheckboxFlag++
|
|
7594
7579
|
},
|
|
7595
7580
|
updateAllCheckboxStatus () {
|
|
7596
7581
|
const { treeConfig } = props
|
|
7597
|
-
const { selectCheckboxMaps,
|
|
7582
|
+
const { afterFullData, afterTreeFullData, checkboxReserveRowMap, selectCheckboxMaps, treeIndeterminateRowMaps } = internalData
|
|
7598
7583
|
const checkboxOpts = computeCheckboxOpts.value
|
|
7599
7584
|
const { checkField, checkMethod, showReserveStatus } = checkboxOpts
|
|
7600
|
-
const {
|
|
7585
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
7601
7586
|
|
|
7602
7587
|
let sLen = 0 // 已选
|
|
7603
7588
|
let hLen = 0 // 半选
|
|
@@ -7606,29 +7591,29 @@ export default defineComponent({
|
|
|
7606
7591
|
const rootList = (treeConfig ? afterTreeFullData : afterFullData)
|
|
7607
7592
|
rootList.forEach(checkMethod
|
|
7608
7593
|
? row => {
|
|
7609
|
-
const childRowid =
|
|
7594
|
+
const childRowid = handleGetRowId(row)
|
|
7610
7595
|
const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid]
|
|
7611
7596
|
if (checkMethod({ row })) {
|
|
7612
7597
|
if (selected) {
|
|
7613
7598
|
sLen++
|
|
7614
|
-
} else if (
|
|
7599
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7615
7600
|
hLen++
|
|
7616
7601
|
}
|
|
7617
7602
|
vLen++
|
|
7618
7603
|
} else {
|
|
7619
7604
|
if (selected) {
|
|
7620
7605
|
sLen++
|
|
7621
|
-
} else if (
|
|
7606
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7622
7607
|
hLen++
|
|
7623
7608
|
}
|
|
7624
7609
|
}
|
|
7625
7610
|
}
|
|
7626
7611
|
: row => {
|
|
7627
|
-
const childRowid =
|
|
7612
|
+
const childRowid = handleGetRowId(row)
|
|
7628
7613
|
const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid]
|
|
7629
7614
|
if (selected) {
|
|
7630
7615
|
sLen++
|
|
7631
|
-
} else if (
|
|
7616
|
+
} else if (treeIndeterminateRowMaps[childRowid]) {
|
|
7632
7617
|
hLen++
|
|
7633
7618
|
}
|
|
7634
7619
|
vLen++
|
|
@@ -7655,13 +7640,13 @@ export default defineComponent({
|
|
|
7655
7640
|
*/
|
|
7656
7641
|
handleBatchSelectRows (rows, checked, isForce) {
|
|
7657
7642
|
const { treeConfig } = props
|
|
7658
|
-
const { selectCheckboxMaps } =
|
|
7659
|
-
const selectRowMaps = Object.assign({}, selectCheckboxMaps)
|
|
7643
|
+
const { selectCheckboxMaps } = internalData
|
|
7660
7644
|
const treeOpts = computeTreeOpts.value
|
|
7661
7645
|
const { transform, mapChildrenField } = treeOpts
|
|
7662
7646
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
7663
7647
|
const checkboxOpts = computeCheckboxOpts.value
|
|
7664
7648
|
const { checkField, checkStrictly, checkMethod } = checkboxOpts
|
|
7649
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
7665
7650
|
// indeterminateField 仅支持读取
|
|
7666
7651
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
|
|
7667
7652
|
if (checkField) {
|
|
@@ -7677,18 +7662,17 @@ export default defineComponent({
|
|
|
7677
7662
|
handleCheckboxReserveRow(row, checked)
|
|
7678
7663
|
}
|
|
7679
7664
|
}, { children: transform ? mapChildrenField : childrenField })
|
|
7680
|
-
reactData.
|
|
7665
|
+
reactData.updateCheckboxFlag++
|
|
7681
7666
|
return
|
|
7682
|
-
} else {
|
|
7683
|
-
// 列表
|
|
7684
|
-
rows.forEach(row => {
|
|
7685
|
-
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
7686
|
-
XEUtils.set(row, checkField, checked)
|
|
7687
|
-
handleCheckboxReserveRow(row, checked)
|
|
7688
|
-
}
|
|
7689
|
-
})
|
|
7690
7667
|
}
|
|
7691
|
-
|
|
7668
|
+
// 列表
|
|
7669
|
+
rows.forEach(row => {
|
|
7670
|
+
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
7671
|
+
XEUtils.set(row, checkField, checked)
|
|
7672
|
+
handleCheckboxReserveRow(row, checked)
|
|
7673
|
+
}
|
|
7674
|
+
})
|
|
7675
|
+
reactData.updateCheckboxFlag++
|
|
7692
7676
|
return
|
|
7693
7677
|
}
|
|
7694
7678
|
|
|
@@ -7696,39 +7680,39 @@ export default defineComponent({
|
|
|
7696
7680
|
if (treeConfig && !checkStrictly) {
|
|
7697
7681
|
// 更新子节点状态
|
|
7698
7682
|
XEUtils.eachTree(rows, (row) => {
|
|
7699
|
-
const rowid =
|
|
7683
|
+
const rowid = handleGetRowId(row)
|
|
7700
7684
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
7701
7685
|
if (checked) {
|
|
7702
|
-
|
|
7686
|
+
selectCheckboxMaps[rowid] = row
|
|
7703
7687
|
} else {
|
|
7704
|
-
if (
|
|
7705
|
-
delete
|
|
7688
|
+
if (selectCheckboxMaps[rowid]) {
|
|
7689
|
+
delete selectCheckboxMaps[rowid]
|
|
7706
7690
|
}
|
|
7707
7691
|
}
|
|
7708
7692
|
handleCheckboxReserveRow(row, checked)
|
|
7709
7693
|
}
|
|
7710
7694
|
}, { children: transform ? mapChildrenField : childrenField })
|
|
7711
|
-
reactData.
|
|
7695
|
+
reactData.updateCheckboxFlag++
|
|
7712
7696
|
return
|
|
7713
7697
|
}
|
|
7714
7698
|
|
|
7715
7699
|
// 列表
|
|
7716
7700
|
rows.forEach(row => {
|
|
7717
|
-
const rowid =
|
|
7701
|
+
const rowid = handleGetRowId(row)
|
|
7718
7702
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
7719
7703
|
if (checked) {
|
|
7720
|
-
if (!
|
|
7721
|
-
|
|
7704
|
+
if (!selectCheckboxMaps[rowid]) {
|
|
7705
|
+
selectCheckboxMaps[rowid] = row
|
|
7722
7706
|
}
|
|
7723
7707
|
} else {
|
|
7724
|
-
if (
|
|
7725
|
-
delete
|
|
7708
|
+
if (selectCheckboxMaps[rowid]) {
|
|
7709
|
+
delete selectCheckboxMaps[rowid]
|
|
7726
7710
|
}
|
|
7727
7711
|
}
|
|
7728
7712
|
handleCheckboxReserveRow(row, checked)
|
|
7713
|
+
reactData.updateCheckboxFlag++
|
|
7729
7714
|
}
|
|
7730
7715
|
})
|
|
7731
|
-
reactData.selectCheckboxMaps = selectRowMaps
|
|
7732
7716
|
},
|
|
7733
7717
|
/**
|
|
7734
7718
|
* 即将移除
|
|
@@ -7776,7 +7760,7 @@ export default defineComponent({
|
|
|
7776
7760
|
return
|
|
7777
7761
|
}
|
|
7778
7762
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
7779
|
-
handleTooltip(evnt, thEl, cellEl,
|
|
7763
|
+
handleTooltip(evnt, thEl, thEl.querySelector<HTMLElement>('.vxe-cell--title') || cellEl, params)
|
|
7780
7764
|
}
|
|
7781
7765
|
},
|
|
7782
7766
|
/**
|
|
@@ -7803,7 +7787,7 @@ export default defineComponent({
|
|
|
7803
7787
|
}
|
|
7804
7788
|
}
|
|
7805
7789
|
if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
|
|
7806
|
-
handleTooltip(evnt, tdEl, tdEl.querySelector('.vxe-cell--
|
|
7790
|
+
handleTooltip(evnt, tdEl, tdEl.querySelector<HTMLElement>('.vxe-cell--label') || tdEl.querySelector<HTMLElement>('.vxe-cell--wrapper'), params)
|
|
7807
7791
|
}
|
|
7808
7792
|
},
|
|
7809
7793
|
/**
|
|
@@ -7812,10 +7796,10 @@ export default defineComponent({
|
|
|
7812
7796
|
triggerFooterTooltipEvent (evnt, params) {
|
|
7813
7797
|
const { column } = params
|
|
7814
7798
|
const { tooltipStore } = reactData
|
|
7815
|
-
const
|
|
7799
|
+
const tdEl = evnt.currentTarget as HTMLTableCellElement
|
|
7816
7800
|
handleTargetEnterEvent(tooltipStore.column !== column || !!tooltipStore.row)
|
|
7817
7801
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
7818
|
-
handleTooltip(evnt,
|
|
7802
|
+
handleTooltip(evnt, tdEl, tdEl.querySelector<HTMLElement>('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper') as HTMLElement, params)
|
|
7819
7803
|
}
|
|
7820
7804
|
},
|
|
7821
7805
|
handleTargetLeaveEvent () {
|
|
@@ -7839,17 +7823,18 @@ export default defineComponent({
|
|
|
7839
7823
|
const { _lastResizeTime } = internalData
|
|
7840
7824
|
const sortOpts = computeSortOpts.value
|
|
7841
7825
|
const columnOpts = computeColumnOpts.value
|
|
7826
|
+
const currentColumnOpts = computeCurrentColumnOpts.value
|
|
7842
7827
|
const { column } = params
|
|
7843
7828
|
const cell = evnt.currentTarget
|
|
7844
7829
|
const triggerResizable = _lastResizeTime && _lastResizeTime > Date.now() - 300
|
|
7845
7830
|
const triggerSort = getEventTargetNode(evnt, cell, 'vxe-cell--sort').flag
|
|
7846
7831
|
const triggerFilter = getEventTargetNode(evnt, cell, 'vxe-cell--filter').flag
|
|
7847
7832
|
if (sortOpts.trigger === 'cell' && !(triggerResizable || triggerSort || triggerFilter)) {
|
|
7848
|
-
|
|
7833
|
+
$xeTable.triggerSortEvent(evnt, column, getNextSortOrder(column))
|
|
7849
7834
|
}
|
|
7850
7835
|
dispatchEvent('header-cell-click', Object.assign({ triggerResizable, triggerSort, triggerFilter, cell }, params), evnt)
|
|
7851
|
-
if (columnOpts.isCurrent || props.highlightCurrentColumn) {
|
|
7852
|
-
|
|
7836
|
+
if ((columnOpts.isCurrent || props.highlightCurrentColumn) && (!currentColumnOpts.trigger || ['header', 'default'].includes(currentColumnOpts.trigger))) {
|
|
7837
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params)
|
|
7853
7838
|
}
|
|
7854
7839
|
},
|
|
7855
7840
|
triggerHeaderCellDblclickEvent (evnt, params) {
|
|
@@ -7861,7 +7846,7 @@ export default defineComponent({
|
|
|
7861
7846
|
* 如果是双击模式,则单击后选中状态
|
|
7862
7847
|
*/
|
|
7863
7848
|
triggerCellClickEvent (evnt, params) {
|
|
7864
|
-
const { highlightCurrentRow, editConfig } = props
|
|
7849
|
+
const { highlightCurrentRow, highlightCurrentColumn, editConfig } = props
|
|
7865
7850
|
const { editStore, isDragResize } = reactData
|
|
7866
7851
|
if (isDragResize) {
|
|
7867
7852
|
return
|
|
@@ -7873,6 +7858,8 @@ export default defineComponent({
|
|
|
7873
7858
|
const checkboxOpts = computeCheckboxOpts.value
|
|
7874
7859
|
const keyboardOpts = computeKeyboardOpts.value
|
|
7875
7860
|
const rowOpts = computeRowOpts.value
|
|
7861
|
+
const columnOpts = computeColumnOpts.value
|
|
7862
|
+
const currentColumnOpts = computeCurrentColumnOpts.value
|
|
7876
7863
|
const { actived, focused } = editStore
|
|
7877
7864
|
const { row, column } = params
|
|
7878
7865
|
const { type, treeNode } = column
|
|
@@ -7888,29 +7875,35 @@ export default defineComponent({
|
|
|
7888
7875
|
if (!triggerCheckbox && !triggerRadio) {
|
|
7889
7876
|
// 如果是展开行
|
|
7890
7877
|
if (!triggerExpandNode && (expandOpts.trigger === 'row' || (isExpandType && expandOpts.trigger === 'cell'))) {
|
|
7891
|
-
|
|
7878
|
+
$xeTable.triggerRowExpandEvent(evnt, params)
|
|
7892
7879
|
}
|
|
7893
7880
|
// 如果是树形表格
|
|
7894
7881
|
if ((treeOpts.trigger === 'row' || (treeNode && treeOpts.trigger === 'cell'))) {
|
|
7895
|
-
|
|
7882
|
+
$xeTable.triggerTreeExpandEvent(evnt, params)
|
|
7896
7883
|
}
|
|
7897
7884
|
}
|
|
7898
7885
|
// 如果点击了树节点
|
|
7899
7886
|
if (!triggerTreeNode) {
|
|
7900
7887
|
if (!triggerExpandNode) {
|
|
7901
|
-
//
|
|
7888
|
+
// 如果是当前行
|
|
7902
7889
|
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
7903
7890
|
if (!triggerCheckbox && !triggerRadio) {
|
|
7904
|
-
|
|
7891
|
+
$xeTable.triggerCurrentRowEvent(evnt, params)
|
|
7892
|
+
}
|
|
7893
|
+
}
|
|
7894
|
+
// 如果是当前列
|
|
7895
|
+
if ((columnOpts.isCurrent || highlightCurrentColumn) && (!currentColumnOpts.trigger || ['cell', 'default'].includes(currentColumnOpts.trigger))) {
|
|
7896
|
+
if (!triggerCheckbox && !triggerRadio) {
|
|
7897
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params)
|
|
7905
7898
|
}
|
|
7906
7899
|
}
|
|
7907
7900
|
// 如果是单选框
|
|
7908
7901
|
if (!triggerRadio && (radioOpts.trigger === 'row' || (isRadioType && radioOpts.trigger === 'cell'))) {
|
|
7909
|
-
|
|
7902
|
+
$xeTable.triggerRadioRowEvent(evnt, params)
|
|
7910
7903
|
}
|
|
7911
7904
|
// 如果是复选框
|
|
7912
7905
|
if (!triggerCheckbox && (checkboxOpts.trigger === 'row' || (isCheckboxType && checkboxOpts.trigger === 'cell'))) {
|
|
7913
|
-
|
|
7906
|
+
$xeTable.handleToggleCheckRowEvent(evnt, params)
|
|
7914
7907
|
}
|
|
7915
7908
|
}
|
|
7916
7909
|
// 如果设置了单元格选中功能,则不会使用点击事件去处理(只能支持双击模式)
|
|
@@ -7985,7 +7978,7 @@ export default defineComponent({
|
|
|
7985
7978
|
dispatchEvent('cell-dblclick', params, evnt)
|
|
7986
7979
|
},
|
|
7987
7980
|
handleToggleCheckRowEvent (evnt, params) {
|
|
7988
|
-
const { selectCheckboxMaps } =
|
|
7981
|
+
const { selectCheckboxMaps } = internalData
|
|
7989
7982
|
const checkboxOpts = computeCheckboxOpts.value
|
|
7990
7983
|
const { checkField, trigger } = checkboxOpts
|
|
7991
7984
|
const { row } = params
|
|
@@ -7999,43 +7992,45 @@ export default defineComponent({
|
|
|
7999
7992
|
checked = !selectCheckboxMaps[getRowid($xeTable, row)]
|
|
8000
7993
|
}
|
|
8001
7994
|
if (evnt) {
|
|
8002
|
-
|
|
7995
|
+
$xeTable.triggerCheckRowEvent(evnt, params, checked)
|
|
8003
7996
|
} else {
|
|
8004
|
-
|
|
8005
|
-
|
|
7997
|
+
$xeTable.handleBatchSelectRows([row], checked)
|
|
7998
|
+
$xeTable.checkSelectionStatus()
|
|
8006
7999
|
}
|
|
8007
8000
|
},
|
|
8008
8001
|
triggerCheckRowEvent (evnt: MouseEvent, params, checked) {
|
|
8009
|
-
const checkboxOpts = computeCheckboxOpts.value
|
|
8010
8002
|
const { row } = params
|
|
8011
8003
|
const { afterFullData } = internalData
|
|
8004
|
+
const checkboxOpts = computeCheckboxOpts.value
|
|
8012
8005
|
const { checkMethod, trigger } = checkboxOpts
|
|
8013
8006
|
if (trigger === 'manual') {
|
|
8014
8007
|
return
|
|
8015
8008
|
}
|
|
8016
8009
|
evnt.stopPropagation()
|
|
8017
8010
|
if (checkboxOpts.isShiftKey && evnt.shiftKey && !props.treeConfig) {
|
|
8018
|
-
const checkboxRecords =
|
|
8011
|
+
const checkboxRecords = $xeTable.getCheckboxRecords()
|
|
8019
8012
|
if (checkboxRecords.length) {
|
|
8020
8013
|
const firstRow = checkboxRecords[0]
|
|
8021
|
-
const _rowIndex =
|
|
8022
|
-
const _firstRowIndex =
|
|
8014
|
+
const _rowIndex = $xeTable.getVTRowIndex(row)
|
|
8015
|
+
const _firstRowIndex = $xeTable.getVTRowIndex(firstRow)
|
|
8023
8016
|
if (_rowIndex !== _firstRowIndex) {
|
|
8024
|
-
|
|
8017
|
+
$xeTable.setAllCheckboxRow(false)
|
|
8025
8018
|
const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1)
|
|
8026
|
-
|
|
8019
|
+
nextTick(() => {
|
|
8020
|
+
handleCheckedCheckboxRow(rangeRows, true, false)
|
|
8021
|
+
})
|
|
8027
8022
|
dispatchEvent('checkbox-range-select', Object.assign({ rangeRecords: rangeRows }, params), evnt)
|
|
8028
8023
|
return
|
|
8029
8024
|
}
|
|
8030
8025
|
}
|
|
8031
8026
|
}
|
|
8032
8027
|
if (!checkMethod || checkMethod({ row })) {
|
|
8033
|
-
|
|
8034
|
-
|
|
8028
|
+
$xeTable.handleBatchSelectRows([row], checked)
|
|
8029
|
+
$xeTable.checkSelectionStatus()
|
|
8035
8030
|
dispatchEvent('checkbox-change', Object.assign({
|
|
8036
|
-
records:
|
|
8037
|
-
reserves:
|
|
8038
|
-
indeterminates:
|
|
8031
|
+
records: () => $xeTable.getCheckboxRecords(),
|
|
8032
|
+
reserves: () => $xeTable.getCheckboxReserveRecords(),
|
|
8033
|
+
indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
|
|
8039
8034
|
checked
|
|
8040
8035
|
}, params), evnt)
|
|
8041
8036
|
}
|
|
@@ -8106,7 +8101,8 @@ export default defineComponent({
|
|
|
8106
8101
|
* 展开行事件
|
|
8107
8102
|
*/
|
|
8108
8103
|
triggerRowExpandEvent (evnt, params) {
|
|
8109
|
-
const {
|
|
8104
|
+
const { expandColumn: column } = reactData
|
|
8105
|
+
const { rowExpandLazyLoadedMaps } = internalData
|
|
8110
8106
|
const expandOpts = computeExpandOpts.value
|
|
8111
8107
|
const { row } = params
|
|
8112
8108
|
const { lazy, trigger } = expandOpts
|
|
@@ -8116,18 +8112,18 @@ export default defineComponent({
|
|
|
8116
8112
|
evnt.stopPropagation()
|
|
8117
8113
|
const rowid = getRowid($xeTable, row)
|
|
8118
8114
|
if (!lazy || !rowExpandLazyLoadedMaps[rowid]) {
|
|
8119
|
-
const expanded =
|
|
8120
|
-
const columnIndex =
|
|
8121
|
-
const $columnIndex =
|
|
8122
|
-
|
|
8115
|
+
const expanded = !$xeTable.isRowExpandByRow(row)
|
|
8116
|
+
const columnIndex = $xeTable.getColumnIndex(column)
|
|
8117
|
+
const $columnIndex = $xeTable.getVMColumnIndex(column)
|
|
8118
|
+
$xeTable.setRowExpand(row, expanded)
|
|
8123
8119
|
dispatchEvent('toggle-row-expand', {
|
|
8124
8120
|
expanded,
|
|
8125
8121
|
column,
|
|
8126
8122
|
columnIndex,
|
|
8127
8123
|
$columnIndex,
|
|
8128
8124
|
row,
|
|
8129
|
-
rowIndex:
|
|
8130
|
-
$rowIndex:
|
|
8125
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
8126
|
+
$rowIndex: $xeTable.getVMRowIndex(row)
|
|
8131
8127
|
}, evnt)
|
|
8132
8128
|
}
|
|
8133
8129
|
},
|
|
@@ -8135,7 +8131,7 @@ export default defineComponent({
|
|
|
8135
8131
|
* 展开树节点事件
|
|
8136
8132
|
*/
|
|
8137
8133
|
triggerTreeExpandEvent (evnt, params) {
|
|
8138
|
-
const { treeExpandLazyLoadedMaps } =
|
|
8134
|
+
const { treeExpandLazyLoadedMaps } = internalData
|
|
8139
8135
|
const treeOpts = computeTreeOpts.value
|
|
8140
8136
|
const { row, column } = params
|
|
8141
8137
|
const { lazy, trigger } = treeOpts
|
|
@@ -8145,10 +8141,10 @@ export default defineComponent({
|
|
|
8145
8141
|
evnt.stopPropagation()
|
|
8146
8142
|
const rowid = getRowid($xeTable, row)
|
|
8147
8143
|
if (!lazy || !treeExpandLazyLoadedMaps[rowid]) {
|
|
8148
|
-
const expanded =
|
|
8149
|
-
const columnIndex =
|
|
8150
|
-
const $columnIndex =
|
|
8151
|
-
|
|
8144
|
+
const expanded = !$xeTable.isTreeExpandByRow(row)
|
|
8145
|
+
const columnIndex = $xeTable.getColumnIndex(column)
|
|
8146
|
+
const $columnIndex = $xeTable.getVMColumnIndex(column)
|
|
8147
|
+
$xeTable.setTreeExpand(row, expanded)
|
|
8152
8148
|
dispatchEvent('toggle-tree-expand', { expanded, column, columnIndex, $columnIndex, row }, evnt)
|
|
8153
8149
|
}
|
|
8154
8150
|
},
|
|
@@ -8292,12 +8288,11 @@ export default defineComponent({
|
|
|
8292
8288
|
handleRowDragSwapEvent (evnt, isSyncRow, dragRow, prevDragRow, prevDragPos, prevDragToChild) {
|
|
8293
8289
|
const { treeConfig, dragConfig } = props
|
|
8294
8290
|
const rowDragOpts = computeRowDragOpts.value
|
|
8295
|
-
const { fullAllDataRowIdData } = internalData
|
|
8291
|
+
const { afterFullData, tableFullData, fullAllDataRowIdData } = internalData
|
|
8296
8292
|
const { isPeerDrag, isCrossDrag, isSelfToChildDrag, dragEndMethod, dragToChildMethod } = rowDragOpts
|
|
8297
8293
|
const treeOpts = computeTreeOpts.value
|
|
8298
8294
|
const { transform, rowField, mapChildrenField, parentField } = treeOpts
|
|
8299
8295
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
8300
|
-
const { afterFullData, tableFullData } = internalData
|
|
8301
8296
|
const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null)
|
|
8302
8297
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0
|
|
8303
8298
|
const errRest = {
|
|
@@ -8991,8 +8986,8 @@ export default defineComponent({
|
|
|
8991
8986
|
* 横向 X 可视渲染事件处理
|
|
8992
8987
|
*/
|
|
8993
8988
|
triggerScrollXEvent () {
|
|
8994
|
-
const
|
|
8995
|
-
if (
|
|
8989
|
+
const virtualXOpts = computeVirtualXOpts.value
|
|
8990
|
+
if (virtualXOpts.immediate) {
|
|
8996
8991
|
loadScrollXData()
|
|
8997
8992
|
} else {
|
|
8998
8993
|
lazyScrollXData()
|
|
@@ -9002,8 +8997,8 @@ export default defineComponent({
|
|
|
9002
8997
|
* 纵向 Y 可视渲染事件处理
|
|
9003
8998
|
*/
|
|
9004
8999
|
triggerScrollYEvent () {
|
|
9005
|
-
const
|
|
9006
|
-
if (
|
|
9000
|
+
const virtualYOpts = computeVirtualYOpts.value
|
|
9001
|
+
if (virtualYOpts.immediate) {
|
|
9007
9002
|
loadScrollYData()
|
|
9008
9003
|
} else {
|
|
9009
9004
|
lazyScrollYData()
|
|
@@ -9040,6 +9035,7 @@ export default defineComponent({
|
|
|
9040
9035
|
return
|
|
9041
9036
|
}
|
|
9042
9037
|
}
|
|
9038
|
+
|
|
9043
9039
|
let scrollTop = yHandleEl.scrollTop
|
|
9044
9040
|
let scrollLeft = xHandleEl.scrollLeft
|
|
9045
9041
|
if (leftScrollElem && fixedType === 'left') {
|
|
@@ -9169,10 +9165,10 @@ export default defineComponent({
|
|
|
9169
9165
|
}
|
|
9170
9166
|
|
|
9171
9167
|
const { highlightHoverRow } = tableProps
|
|
9172
|
-
const { scrollXLoad, scrollYLoad } = reactData
|
|
9168
|
+
const { scrollXLoad, scrollYLoad, expandColumn } = reactData
|
|
9173
9169
|
const leftFixedWidth = computeLeftFixedWidth.value
|
|
9174
9170
|
const rightFixedWidth = computeRightFixedWidth.value
|
|
9175
|
-
if (!(
|
|
9171
|
+
if (!(leftFixedWidth || rightFixedWidth || expandColumn)) {
|
|
9176
9172
|
return
|
|
9177
9173
|
}
|
|
9178
9174
|
|
|
@@ -9195,10 +9191,9 @@ export default defineComponent({
|
|
|
9195
9191
|
if (!bodyScrollElem) {
|
|
9196
9192
|
return
|
|
9197
9193
|
}
|
|
9198
|
-
|
|
9199
9194
|
const wheelSpeed = getWheelSpeed(reactData.lastScrollTime)
|
|
9200
|
-
const deltaTop =
|
|
9201
|
-
const deltaLeft = Math.ceil((shiftKey ? deltaY : deltaX) * wheelSpeed)
|
|
9195
|
+
const deltaTop = shiftKey ? 0 : Math.ceil(deltaY * wheelSpeed)
|
|
9196
|
+
const deltaLeft = shiftKey ? Math.ceil((shiftKey ? (deltaY || deltaX) : deltaX) * wheelSpeed) : 0
|
|
9202
9197
|
|
|
9203
9198
|
const isTopWheel = deltaTop < 0
|
|
9204
9199
|
const currScrollTop = bodyScrollElem.scrollTop
|
|
@@ -9206,7 +9201,6 @@ export default defineComponent({
|
|
|
9206
9201
|
if (isTopWheel ? currScrollTop <= 0 : currScrollTop >= bodyScrollElem.scrollHeight - bodyScrollElem.clientHeight) {
|
|
9207
9202
|
return
|
|
9208
9203
|
}
|
|
9209
|
-
|
|
9210
9204
|
const scrollTop = currScrollTop + deltaTop
|
|
9211
9205
|
const scrollLeft = bodyScrollElem.scrollLeft + deltaLeft
|
|
9212
9206
|
const isRollX = scrollLeft !== lastScrollLeft
|
|
@@ -9220,6 +9214,7 @@ export default defineComponent({
|
|
|
9220
9214
|
evnt.preventDefault()
|
|
9221
9215
|
internalData.inWheelScroll = true
|
|
9222
9216
|
wheelScrollLeftTo(scrollLeft, (offsetLeft: number) => {
|
|
9217
|
+
internalData.inWheelScroll = true
|
|
9223
9218
|
const currLeftNum = offsetLeft
|
|
9224
9219
|
setScrollLeft(xHandleEl, currLeftNum)
|
|
9225
9220
|
setScrollLeft(bodyScrollElem, currLeftNum)
|
|
@@ -9236,9 +9231,10 @@ export default defineComponent({
|
|
|
9236
9231
|
}
|
|
9237
9232
|
if (isRollY) {
|
|
9238
9233
|
evnt.preventDefault()
|
|
9234
|
+
internalData.inWheelScroll = true
|
|
9239
9235
|
wheelScrollTopTo(scrollTop - currScrollTop, (offsetTop: number) => {
|
|
9240
|
-
const currTopNum = bodyScrollElem.scrollTop + offsetTop
|
|
9241
9236
|
internalData.inWheelScroll = true
|
|
9237
|
+
const currTopNum = bodyScrollElem.scrollTop + offsetTop
|
|
9242
9238
|
setScrollTop(yHandleEl, currTopNum)
|
|
9243
9239
|
setScrollTop(bodyScrollElem, currTopNum)
|
|
9244
9240
|
setScrollTop(leftScrollElem, currTopNum)
|
|
@@ -9425,8 +9421,8 @@ export default defineComponent({
|
|
|
9425
9421
|
},
|
|
9426
9422
|
// 更新纵向 Y 可视渲染上下剩余空间大小
|
|
9427
9423
|
updateScrollYSpace () {
|
|
9428
|
-
const { isAllOverflow, scrollYLoad, expandColumn
|
|
9429
|
-
const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData } = internalData
|
|
9424
|
+
const { isAllOverflow, scrollYLoad, expandColumn } = reactData
|
|
9425
|
+
const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData
|
|
9430
9426
|
const { startIndex } = scrollYStore
|
|
9431
9427
|
const expandOpts = computeExpandOpts.value
|
|
9432
9428
|
const rowOpts = computeRowOpts.value
|
|
@@ -9775,6 +9771,7 @@ export default defineComponent({
|
|
|
9775
9771
|
]
|
|
9776
9772
|
|
|
9777
9773
|
if (expandColumn) {
|
|
9774
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
9778
9775
|
tableRowExpandedList.forEach((row) => {
|
|
9779
9776
|
const expandOpts = computeExpandOpts.value
|
|
9780
9777
|
const { height: expandHeight, padding } = expandOpts
|
|
@@ -9782,7 +9779,7 @@ export default defineComponent({
|
|
|
9782
9779
|
const treeOpts = computeTreeOpts.value
|
|
9783
9780
|
const { transform, seqMode } = treeOpts
|
|
9784
9781
|
const cellStyle: Record<string, string> = {}
|
|
9785
|
-
const rowid =
|
|
9782
|
+
const rowid = handleGetRowId(row)
|
|
9786
9783
|
const rest = fullAllDataRowIdData[rowid]
|
|
9787
9784
|
let rowLevel = 0
|
|
9788
9785
|
let seq: string | number = -1
|
|
@@ -10418,7 +10415,6 @@ export default defineComponent({
|
|
|
10418
10415
|
nextTick(() => {
|
|
10419
10416
|
const { data, exportConfig, importConfig, treeConfig, showOverflow } = props
|
|
10420
10417
|
const { scrollXStore, scrollYStore } = internalData
|
|
10421
|
-
const sYOpts = computeSYOpts.value
|
|
10422
10418
|
const editOpts = computeEditOpts.value
|
|
10423
10419
|
const treeOpts = computeTreeOpts.value
|
|
10424
10420
|
const radioOpts = computeRadioOpts.value
|
|
@@ -10548,8 +10544,7 @@ export default defineComponent({
|
|
|
10548
10544
|
Object.assign(scrollYStore, {
|
|
10549
10545
|
startIndex: 0,
|
|
10550
10546
|
endIndex: 0,
|
|
10551
|
-
visibleSize: 0
|
|
10552
|
-
adaptive: sYOpts.adaptive !== false
|
|
10547
|
+
visibleSize: 0
|
|
10553
10548
|
})
|
|
10554
10549
|
Object.assign(scrollXStore, {
|
|
10555
10550
|
startIndex: 0,
|