From 8236461c37a8fc460b8ce58170280563f6c58730 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Mon, 10 Mar 2025 08:15:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A0=B9=E6=8D=AE=E8=B7=AF=E7=94=B1=20?= =?UTF-8?q?meta=20=E5=8A=A8=E6=80=81=E8=B0=83=E6=95=B4=20footer=20?= =?UTF-8?q?=E9=AB=98=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/@layouts/components/VerticalNavLayout.vue | 20 ++++++++++--------- src/@layouts/styles/_default-layout.scss | 4 ++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/@layouts/components/VerticalNavLayout.vue b/src/@layouts/components/VerticalNavLayout.vue index d22af222..070a2df2 100644 --- a/src/@layouts/components/VerticalNavLayout.vue +++ b/src/@layouts/components/VerticalNavLayout.vue @@ -56,9 +56,18 @@ export default defineComponent({ ), ) + // 👉 根据路由 meta 决定 footer 高度 + const shouldShowFooter = !route.meta.hideFooter + // 👉 Footer const footer = h('footer', { class: 'layout-footer' }, [ - h('div', { class: 'footer-content-container' }, slots.footer?.()), + h( + 'div', + { + class: ['footer-content-container', !shouldShowFooter && 'footer-content-container-noheight'], + }, + slots.footer?.(), + ), ]) // 👉 Overlay @@ -69,9 +78,6 @@ export default defineComponent({ }, }) - // 👉 修改:根据路由 meta 决定是否显示 footer - const shouldShowFooter = !route.meta.hideFooter - return h( 'div', { @@ -83,11 +89,7 @@ export default defineComponent({ scrollDistance.value && 'window-scrolled', ], }, - [ - verticalNav, - h('div', { class: 'layout-content-wrapper' }, [navbar, main, shouldShowFooter && footer]), - layoutOverlay, - ], + [verticalNav, h('div', { class: 'layout-content-wrapper' }, [navbar, main, footer]), layoutOverlay], ) } }, diff --git a/src/@layouts/styles/_default-layout.scss b/src/@layouts/styles/_default-layout.scss index 1b8872b6..9575ad62 100644 --- a/src/@layouts/styles/_default-layout.scss +++ b/src/@layouts/styles/_default-layout.scss @@ -65,6 +65,10 @@ body, block-size: variables.$layout-vertical-nav-footer-height; } + .footer-content-container-noheight { + block-size: 0px !important; + } + .layout-footer-sticky & { position: sticky; inset-block-end: 0;