fix(grid): fix popper edit element blur when set edit-config blurOutside (#3550)

This commit is contained in:
gimmyhehe 2025-07-02 14:10:10 +08:00 committed by GitHub
parent 5de6b6491b
commit a56006ba2d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 4 deletions

View File

@ -1130,6 +1130,11 @@ const Methods = {
isScrollY = containerScrollHeight + scrollbarSize > containerHeight
}
// 虚拟滚动如果没有height的话表格滚动到底部表头会发生偏移将height设置为max-height可避免
if (!this.height) {
this.bodyWrapperHeight = containerScrollHeight > this.bodyWrapperMaxHeight ? this.bodyWrapperMaxHeight : null
}
Object.assign(this, {
overflowX: isScrollX,
overflowY: isScrollY,
@ -1179,6 +1184,18 @@ const Methods = {
}
if (typeof editConfig.blurOutside === 'function') {
const bodyEl = document.body
if (
getEventTargetNode(event, bodyEl, 'tiny-autocomplete-suggestion').flag ||
getEventTargetNode(event, bodyEl, 'tiny-select-dropdown').flag ||
getEventTargetNode(event, bodyEl, 'tiny-cascader__dropdown').flag ||
getEventTargetNode(event, bodyEl, 'tiny-cascader-menus').flag ||
getEventTargetNode(event, bodyEl, 'tiny-picker-panel').flag ||
getEventTargetNode(event, bodyEl, 'tiny-popper').flag ||
getEventTargetNode(event, bodyEl, 'tiny-dialog-box').flag
) {
return true
}
return Boolean(editConfig.blurOutside({ cell: args.cell, event, $table: this }))
}

View File

@ -67,10 +67,6 @@ export function handleLayout(_vm) {
_vm.bodyWrapperMinHeight = minHeight
}
if (scrollYLoad && !_vm.bodyWrapperHeight) {
_vm.bodyWrapperHeight = maxHeight
}
_vm.bodyTableWidth = scrollXLoad
? tableColumn.reduce((previous, column) => previous + column.renderWidth, 0)
: totalWidth