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;