vxe-table 4.19.6 → 4.19.8

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.
Files changed (39) hide show
  1. package/dist/all.esm.js +203 -75
  2. package/dist/style.css +1 -1
  3. package/es/grid/src/grid.js +1 -1
  4. package/es/style.css +1 -1
  5. package/es/table/src/body.js +11 -11
  6. package/es/table/src/group.js +3 -0
  7. package/es/table/src/table.js +169 -61
  8. package/es/table/src/util.js +18 -1
  9. package/es/ui/index.js +1 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/lib/grid/src/grid.js +1 -1
  12. package/lib/grid/src/grid.min.js +1 -1
  13. package/lib/index.umd.js +70 -31
  14. package/lib/index.umd.min.js +1 -1
  15. package/lib/style.css +1 -1
  16. package/lib/table/src/body.js +11 -11
  17. package/lib/table/src/body.min.js +1 -1
  18. package/lib/table/src/group.js +3 -0
  19. package/lib/table/src/group.min.js +1 -1
  20. package/lib/table/src/table.js +35 -16
  21. package/lib/table/src/table.min.js +1 -1
  22. package/lib/table/src/util.js +19 -1
  23. package/lib/table/src/util.min.js +1 -1
  24. package/lib/ui/index.js +1 -1
  25. package/lib/ui/index.min.js +1 -1
  26. package/lib/ui/src/log.js +1 -1
  27. package/lib/ui/src/log.min.js +1 -1
  28. package/package.json +2 -2
  29. package/packages/grid/src/grid.ts +1 -1
  30. package/packages/table/src/body.ts +13 -13
  31. package/packages/table/src/group.ts +4 -0
  32. package/packages/table/src/table.ts +175 -63
  33. package/packages/table/src/util.ts +21 -1
  34. /package/es/{iconfont.1780293024194.ttf → iconfont.1780726776354.ttf} +0 -0
  35. /package/es/{iconfont.1780293024194.woff → iconfont.1780726776354.woff} +0 -0
  36. /package/es/{iconfont.1780293024194.woff2 → iconfont.1780726776354.woff2} +0 -0
  37. /package/lib/{iconfont.1780293024194.ttf → iconfont.1780726776354.ttf} +0 -0
  38. /package/lib/{iconfont.1780293024194.woff → iconfont.1780726776354.woff} +0 -0
  39. /package/lib/{iconfont.1780293024194.woff2 → iconfont.1780726776354.woff2} +0 -0
@@ -4,7 +4,7 @@ import XEUtils from 'xe-utils'
4
4
  import { initTpImg, getTpImg, isPx, isScale, hasClass, addClass, removeClass, wheelScrollTopTo, wheelScrollLeftTo, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft, toCssUnit, hasControlKey, checkTargetElement, hasEventInputTarget } from '../../ui/src/dom'
5
5
  import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/src/utils'
6
6
  import { VxeUI } from '../../ui'
7
- import { createReactData, createInternalData, getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight, getLastChildColumn } from './util'
7
+ import { createReactData, createInternalData, getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight, getLastChildColumn, getRowMaxHeight } from './util'
8
8
  import { getSlotVNs } from '../../ui/src/vn'
9
9
  import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from '../../ui/src/anime'
10
10
  import { warnLog, errLog } from '../../ui/src/log'
@@ -2098,34 +2098,38 @@ export default defineVxeComponent({
2098
2098
  /**
2099
2099
  * 计算自适应行高
2100
2100
  */
2101
- const calcCellAutoHeight = (rowRest: VxeTableDefines.RowCacheItem, wrapperEl: HTMLDivElement) => {
2102
- const { scrollXLoad } = reactData
2101
+ const calcCellAutoHeight = (rowid: string | number, rowRest: VxeTableDefines.RowCacheItem, wrapperEl: HTMLDivElement) => {
2102
+ const { fullCellHeightMaps } = internalData
2103
+ let chRest = fullCellHeightMaps[rowid]
2104
+ if (!chRest) {
2105
+ chRest = {}
2106
+ fullCellHeightMaps[rowid] = chRest
2107
+ }
2103
2108
  const wrapperElemList = wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`)
2104
- let colHeight = 0
2105
2109
  let firstCellStyle: CSSStyleDeclaration | null = null
2106
2110
  let topBottomPadding = 0
2111
+ let changeCH = false
2107
2112
  for (let i = 0; i < wrapperElemList.length; i++) {
2108
2113
  const wrapperElem = wrapperElemList[i] as HTMLElement
2109
2114
  const cellElem = wrapperElem.parentElement as HTMLTableCellElement
2110
2115
  const cellStyle = cellElem.style
2111
2116
  const orHeight = cellStyle.height
2112
- if (!scrollXLoad) {
2113
- cellStyle.height = ''
2114
- }
2117
+ const colid = wrapperElem.getAttribute('colid') || ''
2118
+ cellStyle.height = ''
2115
2119
  if (!firstCellStyle) {
2116
2120
  firstCellStyle = getComputedStyle(cellElem)
2117
2121
  topBottomPadding = firstCellStyle ? Math.ceil(XEUtils.toNumber(firstCellStyle.paddingTop) + XEUtils.toNumber(firstCellStyle.paddingBottom)) : 0
2118
2122
  }
2119
- if (!scrollXLoad) {
2120
- cellStyle.height = orHeight
2121
- }
2122
2123
  const cellHeight = wrapperElem ? wrapperElem.clientHeight : 0
2123
- colHeight = Math.max(colHeight, Math.ceil(cellHeight + topBottomPadding))
2124
- }
2125
- if (scrollXLoad) {
2126
- colHeight = Math.max(colHeight, rowRest.height)
2124
+ const colHeight = Math.ceil(cellHeight + topBottomPadding)
2125
+ if (chRest[colid] !== colHeight) {
2126
+ changeCH = true
2127
+ chRest[colid] = colHeight
2128
+ }
2129
+ cellStyle.height = orHeight
2127
2130
  }
2128
- return colHeight
2131
+ const cellMaxHeight = getRowMaxHeight(chRest, changeCH)
2132
+ return cellMaxHeight
2129
2133
  }
2130
2134
 
2131
2135
  /**
@@ -2148,7 +2152,7 @@ export default defineVxeComponent({
2148
2152
  const rowid = handleGetRowId(row)
2149
2153
  const rowRest = fullAllDataRowIdData[rowid]
2150
2154
  if (rowRest) {
2151
- const reHeight = calcCellAutoHeight(rowRest, el)
2155
+ const reHeight = calcCellAutoHeight(rowid, rowRest, el)
2152
2156
  rowRest.height = Math.max(defaultRowHeight, reHeight)
2153
2157
  }
2154
2158
  el.removeAttribute('data-calc-row')
@@ -2570,7 +2574,7 @@ export default defineVxeComponent({
2570
2574
  }
2571
2575
 
2572
2576
  let yScrollbarVisible = overflowY ? 'visible' : 'hidden'
2573
- if ((scrollbarYConf.visible === 'hidden' || scrollbarYConf.visible === false) || ($xeGanttView && !scrollbarYToLeft)) {
2577
+ if ((scrollbarYConf.visible === 'hidden' || scrollbarYConf.visible === false) || (($xeGantt && $xeGanttView && $xeGantt.reactData.showRightView) && !scrollbarYToLeft)) {
2574
2578
  osbWidth = 0
2575
2579
  yScrollbarVisible = 'hidden'
2576
2580
  } else if (scrollbarYConf.visible === 'visible') {
@@ -3438,7 +3442,6 @@ export default defineVxeComponent({
3438
3442
 
3439
3443
  const handleRecalculateStyle = (reFull: boolean, reWidth: boolean, reHeight: boolean) => {
3440
3444
  const el = refElem.value
3441
- internalData.rceRunTime = Date.now()
3442
3445
  if (!el || !el.clientWidth) {
3443
3446
  return nextTick()
3444
3447
  }
@@ -3462,6 +3465,7 @@ export default defineVxeComponent({
3462
3465
  if (reFull) {
3463
3466
  updateTreeLineStyle()
3464
3467
  }
3468
+ internalData.rceRunTime = Date.now()
3465
3469
  return computeScrollLoad().then(() => {
3466
3470
  // 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
3467
3471
  if (reWidth) {
@@ -3482,19 +3486,31 @@ export default defineVxeComponent({
3482
3486
  if (reFull) {
3483
3487
  updateTreeLineStyle()
3484
3488
  }
3489
+ internalData.rceRunTime = Date.now()
3485
3490
  if (reFull) {
3486
3491
  return computeScrollLoad()
3487
3492
  }
3488
3493
  })
3489
3494
  }
3490
3495
 
3496
+ const minRunDelay = 50
3497
+
3491
3498
  const handleLazyRecalculate = (reFull: boolean, reWidth: boolean, reHeight: boolean) => {
3492
3499
  return new Promise<void>(resolve => {
3493
3500
  const $xeGanttView = internalData.xeGanttView
3494
3501
  const { customStore } = reactData
3495
3502
  const { rceTimeout, rceRunTime } = internalData
3496
3503
  const resizeOpts = computeResizeOpts.value
3497
- const refreshDelay = resizeOpts.refreshDelay || 20
3504
+ let rceDelay = internalData.rceDelay
3505
+ // 如果在500毫秒内频繁执行,则执行次数减缓
3506
+ if (rceRunTime && rceRunTime > Date.now() - 500) {
3507
+ rceDelay += 50
3508
+ } else {
3509
+ rceDelay = 0
3510
+ }
3511
+ internalData.rceDelay = rceDelay
3512
+ const refreshDelay = resizeOpts.refreshDelay || 30
3513
+ const reDelay = rceDelay + refreshDelay
3498
3514
  const el = refElem.value
3499
3515
  if (el && el.clientWidth) {
3500
3516
  autoCellWidth()
@@ -3505,7 +3521,7 @@ export default defineVxeComponent({
3505
3521
  }
3506
3522
  if (rceTimeout) {
3507
3523
  clearTimeout(rceTimeout)
3508
- if (rceRunTime && rceRunTime + (refreshDelay - 5) < Date.now()) {
3524
+ if (rceRunTime && rceRunTime + minRunDelay < Date.now()) {
3509
3525
  resolve(
3510
3526
  handleRecalculateStyle(reFull, reWidth, reHeight)
3511
3527
  )
@@ -3525,12 +3541,25 @@ export default defineVxeComponent({
3525
3541
  internalData.rceTimeout = setTimeout(() => {
3526
3542
  internalData.rceTimeout = undefined
3527
3543
  handleRecalculateStyle(reFull, reWidth, reHeight)
3528
- }, refreshDelay)
3544
+ if ($xeGanttView && $xeGanttView.handleLazyRecalculate) {
3545
+ $xeGanttView.handleLazyRecalculate()
3546
+ }
3547
+ }, reDelay)
3529
3548
  })
3530
3549
  }
3531
3550
 
3551
+ let resizePending = false
3552
+
3532
3553
  const handleResizeEvent = () => {
3533
- handleLazyRecalculate(true, true, true)
3554
+ if (resizePending) {
3555
+ return
3556
+ }
3557
+ resizePending = true
3558
+ handleLazyRecalculate(true, true, true).then(() => {
3559
+ resizePending = false
3560
+ }).catch(() => {
3561
+ resizePending = false
3562
+ })
3534
3563
  }
3535
3564
 
3536
3565
  const handleUpdateAggValues = () => {
@@ -3881,6 +3910,7 @@ export default defineVxeComponent({
3881
3910
  reactData.insertRowFlag++
3882
3911
  internalData.removeRowMaps = {}
3883
3912
  reactData.removeRowFlag++
3913
+ internalData.fullCellHeightMaps = {}
3884
3914
  const sYLoad = updateScrollYStatus(fullData)
3885
3915
  // 全量数据
3886
3916
  internalData.tableFullData = fullData
@@ -3912,6 +3942,7 @@ export default defineVxeComponent({
3912
3942
  updateStyle()
3913
3943
  }).then(() => {
3914
3944
  computeScrollLoad()
3945
+ syncGanttScrollYStatus()
3915
3946
  }).then(() => {
3916
3947
  const virtualYOpts = computeVirtualYOpts.value
3917
3948
  // 是否启用了虚拟滚动
@@ -3974,6 +4005,7 @@ export default defineVxeComponent({
3974
4005
  reactData.isRowLoading = false
3975
4006
  handleRecalculateStyle(false, false, false)
3976
4007
  updateTreeLineStyle()
4008
+ syncGanttScrollYStatus()
3977
4009
 
3978
4010
  // 如果是自动行高,特殊情况需调用 recalculate 手动刷新
3979
4011
  if (!props.showOverflow) {
@@ -4241,8 +4273,45 @@ export default defineVxeComponent({
4241
4273
  internalData.fullColumnFieldData = fullColFieldData
4242
4274
  }
4243
4275
 
4244
- const handleInitColumn = (collectColumn: VxeTableDefines.ColumnInfo[]) => {
4276
+ const buildColumnInfo = () => {
4277
+ const { scrollXLoad, scrollYLoad, expandColumn } = reactData
4245
4278
  const expandOpts = computeExpandOpts.value
4279
+ cacheColumnMap()
4280
+ parseColumns(true).then(() => {
4281
+ if (reactData.scrollXLoad) {
4282
+ loadScrollXData()
4283
+ }
4284
+ })
4285
+ $xeTable.clearHeaderFormatterCache()
4286
+ $xeTable.clearMergeCells()
4287
+ $xeTable.clearMergeFooterItems()
4288
+ $xeTable.handleTableData(true)
4289
+ $xeTable.handleAggregateSummaryData()
4290
+
4291
+ if ((scrollXLoad || scrollYLoad) && (expandColumn && expandOpts.mode !== 'fixed')) {
4292
+ warnLog('vxe.error.scrollErrProp', ['column.type=expand'])
4293
+ }
4294
+
4295
+ return nextTick().then(() => {
4296
+ if ($xeToolbar) {
4297
+ $xeToolbar.syncUpdate({
4298
+ collectColumn: internalData.collectColumn,
4299
+ $table: $xeTable
4300
+ })
4301
+ }
4302
+ if ($xeTable.handleUpdateCustomColumn) {
4303
+ $xeTable.handleUpdateCustomColumn()
4304
+ }
4305
+ const columnOpts = computeColumnOpts.value
4306
+ if (props.showCustomHeader && reactData.isGroup && (columnOpts.resizable || props.resizable)) {
4307
+ warnLog('vxe.error.notConflictProp', ['show-custom-header & colgroup', 'column-config.resizable=false'])
4308
+ }
4309
+ reactData.isColLoading = false
4310
+ return handleLazyRecalculate(false, true, true)
4311
+ })
4312
+ }
4313
+
4314
+ const handleInitColumn = (collectColumn: VxeTableDefines.ColumnInfo[]) => {
4246
4315
  internalData.collectColumn = collectColumn
4247
4316
  const tFullColumn = getColumnList(collectColumn)
4248
4317
  internalData.tableFullColumn = tFullColumn
@@ -4252,40 +4321,7 @@ export default defineVxeComponent({
4252
4321
  return Promise.resolve(
4253
4322
  restoreCustomStorage()
4254
4323
  ).then(() => {
4255
- const { scrollXLoad, scrollYLoad, expandColumn } = reactData
4256
- cacheColumnMap()
4257
- parseColumns(true).then(() => {
4258
- if (reactData.scrollXLoad) {
4259
- loadScrollXData()
4260
- }
4261
- })
4262
- $xeTable.clearHeaderFormatterCache()
4263
- $xeTable.clearMergeCells()
4264
- $xeTable.clearMergeFooterItems()
4265
- $xeTable.handleTableData(true)
4266
- $xeTable.handleAggregateSummaryData()
4267
-
4268
- if ((scrollXLoad || scrollYLoad) && (expandColumn && expandOpts.mode !== 'fixed')) {
4269
- warnLog('vxe.error.scrollErrProp', ['column.type=expand'])
4270
- }
4271
-
4272
- return nextTick().then(() => {
4273
- if ($xeToolbar) {
4274
- $xeToolbar.syncUpdate({
4275
- collectColumn: internalData.collectColumn,
4276
- $table: $xeTable
4277
- })
4278
- }
4279
- if ($xeTable.handleUpdateCustomColumn) {
4280
- $xeTable.handleUpdateCustomColumn()
4281
- }
4282
- const columnOpts = computeColumnOpts.value
4283
- if (props.showCustomHeader && reactData.isGroup && (columnOpts.resizable || props.resizable)) {
4284
- warnLog('vxe.error.notConflictProp', ['show-custom-header & colgroup', 'column-config.resizable=false'])
4285
- }
4286
- reactData.isColLoading = false
4287
- return handleLazyRecalculate(false, true, true)
4288
- })
4324
+ return buildColumnInfo()
4289
4325
  })
4290
4326
  }
4291
4327
 
@@ -4298,9 +4334,15 @@ export default defineVxeComponent({
4298
4334
  return scrollXLoad
4299
4335
  }
4300
4336
 
4337
+ const syncGanttScrollYStatus = () => {
4338
+ const $xeGanttView = internalData.xeGanttView
4339
+ if ($xeGanttView && $xeGanttView.handleUpdateSYStatus) {
4340
+ $xeGanttView.handleUpdateSYStatus(reactData.scrollYLoad)
4341
+ }
4342
+ }
4343
+
4301
4344
  const updateScrollYStatus = (fullData?: any[]) => {
4302
4345
  const { treeConfig } = props
4303
- const $xeGanttView = internalData.xeGanttView
4304
4346
  const virtualYOpts = computeVirtualYOpts.value
4305
4347
  const treeOpts = computeTreeOpts.value
4306
4348
  const { transform } = treeOpts
@@ -4308,9 +4350,7 @@ export default defineVxeComponent({
4308
4350
  // 如果gt为0,则总是启用
4309
4351
  const scrollYLoad = (transform || !treeConfig) && !!virtualYOpts.enabled && virtualYOpts.gt > -1 && (virtualYOpts.gt === 0 || virtualYOpts.gt < allList.length)
4310
4352
  reactData.scrollYLoad = scrollYLoad
4311
- if ($xeGanttView && $xeGanttView.handleUpdateSYStatus) {
4312
- $xeGanttView.handleUpdateSYStatus(scrollYLoad)
4313
- }
4353
+ syncGanttScrollYStatus()
4314
4354
  return scrollYLoad
4315
4355
  }
4316
4356
 
@@ -6223,7 +6263,7 @@ export default defineVxeComponent({
6223
6263
  const rowid = XEUtils.isString(row) || XEUtils.isNumber(row) ? row : handleGetRowId(row)
6224
6264
  const rowRest = fullAllDataRowIdData[rowid]
6225
6265
  if (rowRest) {
6226
- rowRest.resizeHeight = calcCellAutoHeight(rowRest, el)
6266
+ rowRest.resizeHeight = calcCellAutoHeight(rowid, rowRest, el)
6227
6267
  }
6228
6268
  el.removeAttribute('data-calc-row')
6229
6269
  })
@@ -7973,6 +8013,66 @@ export default defineVxeComponent({
7973
8013
  clearHistory () {
7974
8014
  return $xeTable.handleClearStack()
7975
8015
  },
8016
+ /**
8017
+ * 用于 custom-config,用于手动恢复自定义列设置信息,恢复表格重置为初始状态
8018
+ * @param storeData
8019
+ * @returns
8020
+ */
8021
+ setCustomStoreData (storeData) {
8022
+ if (!storeData) {
8023
+ return nextTick()
8024
+ }
8025
+ const customOpts = computeCustomOpts.value
8026
+ const { checkMethod } = customOpts
8027
+ // 重置状态
8028
+ clearTableAllStatus($xeTable)
8029
+ // 恢复列
8030
+ const allCols: VxeTableDefines.ColumnInfo[] = []
8031
+ XEUtils.eachTree(internalData.collectColumn, (column) => {
8032
+ column.resizeWidth = 0
8033
+ column.fixed = column.defaultFixed
8034
+ column.renderSortNumber = column.sortNumber
8035
+ column.parentId = column.defaultParentId
8036
+ if (!checkMethod || checkMethod({ $table: $xeTable, column })) {
8037
+ column.visible = column.defaultVisible
8038
+ }
8039
+ column.aggFunc = column.defaultAggFunc
8040
+ column.renderAggFn = column.defaultAggFunc
8041
+ column.renderResizeWidth = column.renderWidth
8042
+ allCols.push(column)
8043
+ })
8044
+ const newCollectCols = XEUtils.toArrayTree(XEUtils.orderBy(allCols, 'renderSortNumber'), { key: 'id', parentKey: 'parentId', children: 'children' })
8045
+ internalData.collectColumn = newCollectCols
8046
+ internalData.tableFullColumn = getColumnList(newCollectCols)
8047
+
8048
+ reactData.updateColFlag++
8049
+ reactData.isColLoading = true
8050
+ initColumnHierarchy()
8051
+ return Promise.resolve(
8052
+ handleCustomRestore(storeData)
8053
+ ).then(() => {
8054
+ return buildColumnInfo()
8055
+ }).then(() => {
8056
+ // 恢复数据聚合分组
8057
+ const { isRowGroupStatus, rowGroupList } = reactData
8058
+ if (isRowGroupStatus && !!$xeTable.handlePivotTableAggData) {
8059
+ const rowGroupFields = computeRowGroupFields.value
8060
+ if (rowGroupFields ? rowGroupFields.length : rowGroupList.length) {
8061
+ if (rowGroupFields && rowGroupFields.length) {
8062
+ $xeTable.setRowGroups(rowGroupFields)
8063
+ } else {
8064
+ $xeTable.clearRowGroups()
8065
+ }
8066
+ } else {
8067
+ $xeTable.handleUpdateAggData()
8068
+ }
8069
+ }
8070
+ })
8071
+ },
8072
+ /**
8073
+ * 用于 custom-config,用于获取自定义列设置信息,用于自定义保持
8074
+ * @returns
8075
+ */
7976
8076
  getCustomStoreData () {
7977
8077
  const { id } = props
7978
8078
  const customOpts = computeCustomOpts.value
@@ -9746,6 +9846,9 @@ export default defineVxeComponent({
9746
9846
  }
9747
9847
  }
9748
9848
  },
9849
+ /**
9850
+ * @private
9851
+ */
9749
9852
  handleRowResizeMousedownEvent (evnt, params) {
9750
9853
  evnt.stopPropagation()
9751
9854
  evnt.preventDefault()
@@ -9863,6 +9966,9 @@ export default defineVxeComponent({
9863
9966
  }
9864
9967
  updateEvent(evnt)
9865
9968
  },
9969
+ /**
9970
+ * @private
9971
+ */
9866
9972
  handleRowResizeDblclickEvent (evnt, params) {
9867
9973
  const resizableOpts = computeResizableOpts.value
9868
9974
  const { isDblclickAutoHeight } = resizableOpts
@@ -9881,7 +9987,7 @@ export default defineVxeComponent({
9881
9987
  }
9882
9988
  const handleRsHeight = () => {
9883
9989
  el.setAttribute('data-calc-row', 'Y')
9884
- const resizeHeight = calcCellAutoHeight(rowRest, el)
9990
+ const resizeHeight = calcCellAutoHeight(rowid, rowRest, el)
9885
9991
  el.removeAttribute('data-calc-row')
9886
9992
  const resizeParams = { ...params, resizeHeight, resizeRow: row }
9887
9993
  reactData.isDragResize = false
@@ -9900,6 +10006,9 @@ export default defineVxeComponent({
9900
10006
  }
9901
10007
  }
9902
10008
  },
10009
+ /**
10010
+ * @private
10011
+ */
9903
10012
  saveCustomStore (type) {
9904
10013
  const { customConfig } = props
9905
10014
  const tableId = computeTableId.value
@@ -9945,6 +10054,9 @@ export default defineVxeComponent({
9945
10054
  }
9946
10055
  return nextTick()
9947
10056
  },
10057
+ /**
10058
+ * @private
10059
+ */
9948
10060
  handleCustom () {
9949
10061
  const { mouseConfig } = props
9950
10062
  if (mouseConfig) {
@@ -90,6 +90,7 @@ export function createInternalData (): TableInternalData {
90
90
  sourceDataRowIdData: {},
91
91
  fullColumnIdData: {},
92
92
  fullColumnFieldData: {},
93
+ fullCellHeightMaps: {},
93
94
 
94
95
  // 当前行
95
96
  currentRow: null,
@@ -160,7 +161,9 @@ export function createInternalData (): TableInternalData {
160
161
  inited: false,
161
162
  tooltipTimeout: null,
162
163
  initStatus: false,
163
- isActivated: false
164
+ isActivated: false,
165
+
166
+ rceDelay: 0
164
167
 
165
168
  // _sToTime: null
166
169
  }
@@ -422,6 +425,23 @@ export function createReactData (): TableReactData {
422
425
  }
423
426
  }
424
427
 
428
+ const maxKey = '__max'
429
+
430
+ export function getRowMaxHeight (chRest: Record<string, number>, isForce: boolean) {
431
+ if (isForce || !chRest[maxKey]) {
432
+ let max = 0
433
+ for (const key in chRest) {
434
+ const val = chRest[key]
435
+ if (key !== maxKey && XEUtils.isNumber(val) && val > max) {
436
+ max = val
437
+ }
438
+ }
439
+ chRest[maxKey] = max
440
+ return max
441
+ }
442
+ return chRest[maxKey]
443
+ }
444
+
425
445
  const getAllConvertColumns = (columns: any, parentColumn?: any) => {
426
446
  const result: any[] = []
427
447
  columns.forEach((column: any) => {