From 43c41015eba0dbe1432faaac3bbde421bbc59bf6 Mon Sep 17 00:00:00 2001 From: msidolphin Date: Fri, 11 Feb 2022 15:17:34 +0800 Subject: [PATCH] fix(components): [el-table] avoid scrollbar not display (#5920) * fix(components): [el-table] avoid scrollbar not display * chore: optimize code --- packages/components/scrollbar/src/scrollbar.vue | 14 +++++++++++++- packages/components/table/src/table-layout.ts | 5 +++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/components/scrollbar/src/scrollbar.vue b/packages/components/scrollbar/src/scrollbar.vue index 53cce436b9..8581f8a1a2 100644 --- a/packages/components/scrollbar/src/scrollbar.vue +++ b/packages/components/scrollbar/src/scrollbar.vue @@ -115,7 +115,6 @@ export default defineComponent({ const update = () => { if (!wrap$.value) return - const offsetHeight = wrap$.value.offsetHeight - GAP const offsetWidth = wrap$.value.offsetWidth - GAP @@ -151,6 +150,19 @@ export default defineComponent({ { immediate: true } ) + watch( + () => [props.maxHeight, props.height], + () => { + if (!props.native) + nextTick(() => { + update() + if (wrap$.value) { + barRef.value?.handleScroll(wrap$.value) + } + }) + } + ) + provide( scrollbarContextKey, reactive({ diff --git a/packages/components/table/src/table-layout.ts b/packages/components/table/src/table-layout.ts index ef3d056e82..7303f43e2c 100644 --- a/packages/components/table/src/table-layout.ts +++ b/packages/components/table/src/table-layout.ts @@ -137,12 +137,17 @@ class TableLayout { updateElsHeight() { if (!this.table.$ready) return nextTick(() => this.updateElsHeight()) const { + tableWrapper, headerWrapper, appendWrapper, footerWrapper, tableHeader, tableBody, } = this.table.refs + if (tableWrapper && tableWrapper.style.display === 'none') { + // avoid v-show + return + } this.appendHeight.value = appendWrapper ? appendWrapper.offsetHeight : 0 if (this.showHeader && !headerWrapper) return const headerTrElm: HTMLElement = tableHeader ? tableHeader : null