Skip to content

Commit 9c74bcd

Browse files
committed
releases 3.25.0
1 parent 4bbaf74 commit 9c74bcd

7 files changed

Lines changed: 28 additions & 75 deletions

File tree

‎package.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vxe-table",
3-
"version": "3.25.0-beta.2",
3+
"version": "3.25.0-beta.3",
44
"description": "A PC-end table component based on Vxe UI, supporting copy-paste, data pivot table, and high-performance virtual list table solution.",
55
"scripts": {
66
"update": "npm install --legacy-peer-deps",
@@ -65,7 +65,7 @@
6565
"vue-i18n": "^8.15.1",
6666
"vue-router": "^3.5.1",
6767
"vue-template-compiler": "2.6.14",
68-
"vxe-pc-ui": "3.20.2"
68+
"vxe-pc-ui": "3.20.8"
6969
},
7070
"vetur": {
7171
"tags": "helper/vetur/tags.json",

‎packages/table/module/custom/panel.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -453,8 +453,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
453453
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0
454454

455455
if (prevDragGroupField || prevDragAggFnColid) {
456-
if ($xeTable.handlePivotTableAggregatePanelDragendEvent) {
457-
$xeTable.handlePivotTableAggregatePanelDragendEvent(evnt)
456+
if ($xeTable.handlePivotTableAggPanelDragendEvent) {
457+
$xeTable.handlePivotTableAggPanelDragendEvent(evnt)
458458
}
459459
} else if (prevDragCol && dragCol) {
460460
// 判断是否有拖动

‎packages/table/module/filter/mixin.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ function updatePopupStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethod
7272
if (transfer) {
7373
const ppObj = updatePanelPlacement(currEl, filterWrapperElem, {
7474
defaultPlacement: 'bottom',
75+
appendTo: '',
7576
isMinWidth: false,
7677
teleportTo: transfer
7778
})

‎packages/table/src/methods.ts‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import Cell from './cell'
66
import { getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getRefElem, getCellRestHeight, getLastChildColumn, getRowMaxHeight, handleCustomStoreConfig, encodeRowid } from './util'
77
import { getSlotVNs } from '../../ui/src/vn'
88
import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from '../../ui/src/anime'
9-
import { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } from './scrollbar'
109
import { createComponentLog } from '../../ui/src/log'
1110
import { getCrossTableDragRowInfo } from './store'
1211

@@ -15,7 +14,9 @@ import type { VxeTableDefines, VxeColumnPropTypes, VxeTableEmits, TableReactData
1514

1615
const { warnLog, errLog } = createComponentLog('table')
1716

18-
const { getConfig, getI18n, renderer, formats, interceptor, createEvent, globalEvents, GLOBAL_EVENT_KEYS } = VxeUI
17+
const { getConfig, getI18n, renderer, scrollbarUtils, formats, interceptor, createEvent, globalEvents, GLOBAL_EVENT_KEYS } = VxeUI
18+
19+
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils || {}
1920

2021
const supportMaxRow = 5e6
2122
const customStorageKey = 'VXE_CUSTOM_STORE'

‎packages/table/src/scrollbar.ts‎

Lines changed: 0 additions & 57 deletions
This file was deleted.

‎packages/table/src/table.ts‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,7 +1091,8 @@ export default {
10911091
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
10921092
const props = $xeTable
10931093

1094-
return Object.assign({}, getConfig().tooltip, getConfig().table.tooltipConfig, props.tooltipConfig)
1094+
const { useScrollbar } = props
1095+
return Object.assign({ useScrollbar }, getConfig().tooltip, getConfig().table.tooltipConfig, props.tooltipConfig)
10951096
},
10961097
tipConfig () {
10971098
return { ...this.tooltipOpts }
@@ -2803,7 +2804,8 @@ export default {
28032804
ref: 'refCommTooltip',
28042805
props: {
28052806
isArrow: false,
2806-
enterable: false
2807+
enterable: false,
2808+
useScrollbar
28072809
}
28082810
})
28092811
: renderEmptyElement($xeTable),
@@ -2830,7 +2832,8 @@ export default {
28302832
maxHeight: tableTipConfig.maxHeight,
28312833
placement: tableTipConfig.placement,
28322834
defaultPlacement: tableTipConfig.defaultPlacement,
2833-
popupClassName: tableTipConfig.popupClassName
2835+
popupClassName: tableTipConfig.popupClassName,
2836+
useScrollbar: tableTipConfig.useScrollbar
28342837
},
28352838
scopedSlots: currTooltipSlot
28362839
? {
@@ -2873,7 +2876,8 @@ export default {
28732876
theme: validTipConfig.theme,
28742877
enterable: validTipConfig.enterable,
28752878
enterDelay: validTipConfig.enterDelay,
2876-
leaveDelay: validTipConfig.leaveDelay
2879+
leaveDelay: validTipConfig.leaveDelay,
2880+
useScrollbar
28772881
}
28782882
})
28792883
: renderEmptyElement($xeTable)

‎packages/ui/src/dom.ts‎

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ interface PanelPlacementOptions {
266266
defaultLeft?: number
267267
placement?: '' | 'top' | 'bottom' | null
268268
defaultPlacement?: '' | 'top' | 'bottom' | null
269+
appendTo?: string | HTMLElement | ((params: any) => string | HTMLElement)
269270
teleportTo?: boolean
270271
marginSize?: number
271272
isMinWidth?: boolean
@@ -275,7 +276,8 @@ interface PanelPlacementOptions {
275276
* 通用定位计算
276277
*/
277278
export function updatePanelPlacement (targetElem: HTMLElement | null | undefined, panelElem: HTMLElement | null | undefined, options: PanelPlacementOptions) {
278-
const { defaultTop, defaultLeft, placement, defaultPlacement, teleportTo, marginSize, isMinWidth } = Object.assign({
279+
const { defaultTop, defaultLeft, placement, defaultPlacement, appendTo, teleportTo, marginSize, isMinWidth } = Object.assign({
280+
appendTo: '',
279281
teleportTo: false,
280282
marginSize: 18,
281283
isMinWidth: true
@@ -289,7 +291,7 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
289291
const stys: Record<string, string> = {}
290292
if (panelElem && targetElem) {
291293
const bodyEl = document.body
292-
const parentWrapperEl = getPopupWrapperElement(panelElem)
294+
const parentWrapperEl = getPopupWrapperElement(teleportTo ? getPopupAppendElement(appendTo) : panelElem)
293295
if (parentWrapperEl) {
294296
const targetWidth = targetElem.offsetWidth
295297
const targetHeight = targetElem.offsetHeight
@@ -302,16 +304,18 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
302304
const visibleHeight = bodyEl.clientHeight
303305
const visibleWidth = bodyEl.clientWidth
304306

305-
const offsetLeft = parentWrapperRect.left
306-
const offsetTop = parentWrapperRect.top
307+
const parentWrapperScrollLeft = parentWrapperEl.scrollLeft
308+
const parentWrapperScrollTop = parentWrapperEl.scrollTop
309+
const parentWrapperOffsetLeft = parentWrapperRect.left
310+
const parentWrapperOffsetTop = parentWrapperRect.top
307311
const targetLeft = targetRect.left
308312
const targetTop = targetRect.top
309313

310314
minWidth = targetElem.offsetWidth
311315

312316
if (teleportTo) {
313-
left = defaultLeft || (targetLeft - (panelWidth - targetWidth) / 2)
314-
top = defaultTop || (targetTop + targetHeight)
317+
left = (defaultLeft || (targetLeft - (panelWidth - targetWidth) / 2)) - parentWrapperScrollLeft
318+
top = (defaultTop || (targetTop + targetHeight)) - parentWrapperScrollTop
315319
if (placement === 'top') {
316320
panelPlacement = 'top'
317321
top = targetTop - panelHeight
@@ -354,8 +358,8 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
354358
}
355359

356360
// 偏移
357-
top -= offsetTop
358-
left -= offsetLeft
361+
top -= parentWrapperOffsetTop
362+
left -= parentWrapperOffsetLeft
359363
} else {
360364
if (placement === 'top') {
361365
panelPlacement = 'top'

0 commit comments

Comments
 (0)