| | |
| | | <template> |
| | | <Portal.Host> |
| | | <div :class="['page-layout-wrapper', { isWeb: isWeb }]" v-bind="$attrs"> |
| | | <slot v-if="showNavigationBar" name="navigationBar"> |
| | | <slot v-if="_showNavigationBar" name="navigationBar"> |
| | | <CommonNavigationBar v-bind="_commonNavigationBarProps" /> |
| | | </slot> |
| | | |
| | |
| | | import { useAuth } from '@/hooks'; |
| | | import { Portal } from 'senin-mini/components'; |
| | | import { usePickProps } from 'senin-mini/hooks'; |
| | | import { isWeb } from '@/utils/env'; |
| | | import { isWeb, isInAlipay, isInWeChat } from '@/utils/env'; |
| | | //@ts-ignore |
| | | import { setPageTitle } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'PageLayout', |
| | |
| | | }, |
| | | }); |
| | | |
| | | setPageTitle(props.title); |
| | | |
| | | const _commonNavigationBarProps = usePickProps(props, commonNavigationBarProps); |
| | | |
| | | const _showNavigationBar = computed(() => { |
| | | if (props.showNavigationBar) { |
| | | if (isWeb) { |
| | | return !isInAlipay && !isInWeChat; |
| | | } |
| | | return true; |
| | | } else { |
| | | return false; |
| | | } |
| | | }); |
| | | |
| | | const { isAuth } = useAuth({ |
| | | needAuth: props.needAuth, |
| | |
| | | let pageHeight = pageHeightWithTabBar.value |
| | | ? systemStore.pageHeightWithTab |
| | | : systemStore.pageHeight; |
| | | pageHeight = pageHeight + (props.showNavigationBar ? 0 : navigationBarHeight.value); |
| | | pageHeight = pageHeight + (_showNavigationBar.value ? 0 : navigationBarHeight.value); |
| | | return pageHeight + 'px'; |
| | | }); |
| | | </script> |