You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

86 lines
2.8 KiB

2 years ago
import { computed, unref } from 'vue'
import type { HeaderSetting } from '@/types/config'
2 years ago
import { useAppStore } from '@/store/modules/app'
import { useMenuSetting } from '@/hooks/setting/useMenuSetting'
import { useRootSetting } from '@/hooks/setting/useRootSetting'
import { useFullContent } from '@/hooks/web/useFullContent'
import { MenuModeEnum } from '@/enums/menuEnum'
export function useHeaderSetting() {
const { getFullContent } = useFullContent()
const appStore = useAppStore()
const getShowFullHeaderRef = computed(() => {
return !unref(getFullContent) && unref(getShowMixHeaderRef) && unref(getShowHeader) && !unref(getIsTopMenu) && !unref(getIsMixSidebar)
})
const getUnFixedAndFull = computed(() => !unref(getFixed) && !unref(getShowFullHeaderRef))
const getShowInsetHeaderRef = computed(() => {
const need = !unref(getFullContent) && unref(getShowHeader)
return (need && !unref(getShowMixHeaderRef)) || (need && unref(getIsTopMenu)) || (need && unref(getIsMixSidebar))
})
const { getMenuMode, getSplit, getShowHeaderTrigger, getIsSidebarType, getIsMixSidebar, getIsTopMenu } = useMenuSetting()
const { getShowBreadCrumb, getShowLogo } = useRootSetting()
const getShowMixHeaderRef = computed(() => !unref(getIsSidebarType) && unref(getShowHeader))
const getShowDoc = computed(() => appStore.getHeaderSetting.showDoc)
const getHeaderTheme = computed(() => appStore.getHeaderSetting.theme)
const getShowHeader = computed(() => appStore.getHeaderSetting.show)
const getFixed = computed(() => appStore.getHeaderSetting.fixed)
const getHeaderBgColor = computed(() => appStore.getHeaderSetting.bgColor)
const getShowSearch = computed(() => appStore.getHeaderSetting.showSearch)
const getUseLockPage = computed(() => appStore.getHeaderSetting.useLockPage)
const getShowFullScreen = computed(() => appStore.getHeaderSetting.showFullScreen)
const getShowNotice = computed(() => appStore.getHeaderSetting.showNotice)
const getShowBread = computed(() => {
return unref(getMenuMode) !== MenuModeEnum.HORIZONTAL && unref(getShowBreadCrumb) && !unref(getSplit)
})
const getShowHeaderLogo = computed(() => {
return unref(getShowLogo) && !unref(getIsSidebarType) && !unref(getIsMixSidebar)
})
const getShowContent = computed(() => {
return unref(getShowBread) || unref(getShowHeaderTrigger)
})
// Set header configuration
function setHeaderSetting(headerSetting: Partial<HeaderSetting>) {
appStore.setProjectConfig({ headerSetting })
}
return {
setHeaderSetting,
getShowDoc,
getShowSearch,
getHeaderTheme,
getUseLockPage,
getShowFullScreen,
getShowNotice,
getShowBread,
getShowContent,
getShowHeaderLogo,
getShowHeader,
getFixed,
getShowMixHeaderRef,
getShowFullHeaderRef,
getShowInsetHeaderRef,
getUnFixedAndFull,
getHeaderBgColor,
2 years ago
}
}