1
0
mirror of synced 2025-12-12 17:30:59 +08:00

releases 4.7.52

This commit is contained in:
xuliangzhan
2024-07-16 10:34:32 +08:00
parent 3ca16bbee3
commit 8df97993c7
2 changed files with 18 additions and 15 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "vxe-table", "name": "vxe-table",
"version": "4.7.50", "version": "4.7.52",
"description": "一个基于 vue 的 PC 端表格组件支持增删改查、虚拟树、列拖拽懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...", "description": "一个基于 vue 的 PC 端表格组件支持增删改查、虚拟树、列拖拽懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
"scripts": { "scripts": {
"update": "npm install --legacy-peer-deps", "update": "npm install --legacy-peer-deps",
@@ -28,7 +28,7 @@
"style": "lib/style.css", "style": "lib/style.css",
"typings": "types/index.d.ts", "typings": "types/index.d.ts",
"dependencies": { "dependencies": {
"vxe-pc-ui": "^4.0.67" "vxe-pc-ui": "^4.0.68"
}, },
"devDependencies": { "devDependencies": {
"@types/resize-observer-browser": "^0.1.11", "@types/resize-observer-browser": "^0.1.11",

View File

@@ -14,7 +14,7 @@ const tableFilterMethodKeys: (keyof TableFilterMethods)[] = ['setFilter', 'clear
hooks.add('tableFilterModule', { hooks.add('tableFilterModule', {
setupTable ($xeTable) { setupTable ($xeTable) {
const { props, reactData, internalData } = $xeTable const { props, reactData, internalData } = $xeTable
const { refTableBody, refTableFilter } = $xeTable.getRefMaps() const { refTableHeader, refTableBody, refTableFilter } = $xeTable.getRefMaps()
const { computeFilterOpts, computeMouseOpts } = $xeTable.getComputeMaps() const { computeFilterOpts, computeMouseOpts } = $xeTable.getComputeMaps()
const filterPrivateMethods: TableFilterPrivateMethods = { const filterPrivateMethods: TableFilterPrivateMethods = {
@@ -63,31 +63,34 @@ hooks.add('tableFilterModule', {
filterStore.visible = true filterStore.visible = true
initStore.filter = true initStore.filter = true
nextTick(() => { nextTick(() => {
const tableHeader = refTableHeader.value
const tableBody = refTableBody.value const tableBody = refTableBody.value
const headerElem = tableHeader ? tableHeader.$el as HTMLDivElement : null
const bodyElem = tableBody.$el as HTMLDivElement const bodyElem = tableBody.$el as HTMLDivElement
if (!bodyElem) {
return
}
const tableFilter = refTableFilter.value const tableFilter = refTableFilter.value
const filterWrapperElem = tableFilter ? tableFilter.$el as HTMLDivElement : null const filterWrapperElem = tableFilter ? tableFilter.$el as HTMLDivElement : null
let filterWidth = 0 if (!filterWrapperElem) {
let filterHeight = 0 return
let filterHeadElem: HTMLDivElement | null = null
let filterFootElem: HTMLDivElement | null = null
if (filterWrapperElem) {
filterWidth = filterWrapperElem.offsetWidth
filterHeight = filterWrapperElem.offsetHeight
filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header')
filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer')
} }
const filterWidth = filterWrapperElem.offsetWidth
const filterHeight = filterWrapperElem.offsetHeight
const filterHeadElem = filterWrapperElem.querySelector<HTMLDivElement>('.vxe-table--filter-header')
const filterFootElem = filterWrapperElem.querySelector<HTMLDivElement>('.vxe-table--filter-footer')
const centerWidth = filterWidth / 2 const centerWidth = filterWidth / 2
const minMargin = 10 const minMargin = 10
const maxLeft = bodyElem.clientWidth - filterWidth - minMargin const maxLeft = bodyElem.clientWidth - filterWidth - minMargin
let left, right let left, right
const style: any = { const style: any = {
top: `${targetElem.offsetTop + targetElem.offsetParent.offsetTop + targetElem.offsetHeight + 8}px` top: `${targetElem.offsetTop + targetElem.offsetParent.offsetTop + targetElem.offsetHeight}px`
} }
// 判断面板不能大于表格高度 // 判断面板不能大于表格高度
let maxHeight: number | null = null let maxHeight: number | null = null
if (filterHeight >= bodyElem.clientHeight) { const bodyHeight = bodyElem.clientHeight - (headerElem ? headerElem.clientHeight / 2 : 0)
maxHeight = Math.max(60, bodyElem.clientHeight - (filterFootElem ? filterFootElem.offsetHeight : 0) - (filterHeadElem ? filterHeadElem.offsetHeight : 0)) if (filterHeight >= bodyHeight) {
maxHeight = Math.max(40, bodyHeight - (filterFootElem ? filterFootElem.offsetHeight : 0) - (filterHeadElem ? filterHeadElem.offsetHeight : 0))
} }
if (column.fixed === 'left') { if (column.fixed === 'left') {
left = targetElem.offsetLeft + targetElem.offsetParent.offsetLeft - centerWidth left = targetElem.offsetLeft + targetElem.offsetParent.offsetLeft - centerWidth