diff --git a/src/hooks/setting/useMultipleTabSetting.ts b/src/hooks/setting/useMultipleTabSetting.ts index f19a8ca..8550fa4 100644 --- a/src/hooks/setting/useMultipleTabSetting.ts +++ b/src/hooks/setting/useMultipleTabSetting.ts @@ -16,6 +16,8 @@ export function useMultipleTabSetting() { const getShowFold = computed(() => appStore.getMultiTabsSetting.showFold) + const getAutoCollapse = computed(() => appStore.getMultiTabsSetting.autoCollapse) + function setMultipleTabSetting(multiTabsSetting: Partial) { appStore.setProjectConfig({ multiTabsSetting }) } @@ -26,5 +28,6 @@ export function useMultipleTabSetting() { getShowQuick, getShowRedo, getShowFold, + getAutoCollapse, } } diff --git a/src/layouts/default/header/MultipleHeader.vue b/src/layouts/default/header/MultipleHeader.vue index 104125f..477586a 100644 --- a/src/layouts/default/header/MultipleHeader.vue +++ b/src/layouts/default/header/MultipleHeader.vue @@ -24,13 +24,13 @@ const { setHeaderHeight } = useLayoutHeight() const tabStore = useMultipleTabStore() const { prefixCls } = useDesign('layout-multiple-header') -const { getCalcContentWidth, getSplit } = useMenuSetting() +const { getCalcContentWidth, getSplit, getShowMenu } = useMenuSetting() const { getIsMobile } = useAppInject() const { getFixed, getShowInsetHeaderRef, getShowFullHeaderRef, getHeaderTheme, getShowHeader } = useHeaderSetting() const { getFullContent } = useFullContent() -const { getShowMultipleTab } = useMultipleTabSetting() +const { getShowMultipleTab, getAutoCollapse } = useMultipleTabSetting() const getShowTabs = computed(() => { return unref(getShowMultipleTab) && !unref(getFullContent) @@ -40,6 +40,8 @@ const getIsShowPlaceholderDom = computed(() => { return unref(getFixed) || unref(getShowFullHeaderRef) }) +const getIsUnFold = computed(() => !unref(getShowMenu) && !unref(getShowHeader)) + const getWrapStyle = computed((): CSSProperties => { const style: CSSProperties = {} if (unref(getFixed)) @@ -57,13 +59,19 @@ const getIsFixed = computed(() => { const getPlaceholderDomStyle = computed((): CSSProperties => { let height = 0 - if ((unref(getShowFullHeaderRef) || !unref(getSplit)) && unref(getShowHeader) && !unref(getFullContent)) - height += HEADER_HEIGHT - - if (unref(getShowMultipleTab) && !unref(getFullContent)) - height += TABS_HEIGHT - - setHeaderHeight(height) + if (!(unref(getAutoCollapse) && unref(getIsUnFold))) { + if ( + (unref(getShowFullHeaderRef) || !unref(getSplit)) + && unref(getShowHeader) + && !unref(getFullContent) + ) + height += HEADER_HEIGHT + + if (unref(getShowMultipleTab) && !unref(getFullContent)) + height += TABS_HEIGHT + + setHeaderHeight(height) + } return { height: `${height}px`, } @@ -75,7 +83,11 @@ const getClass = computed(() => {