zhengyiming
2025-02-21 db9a1cb8638d0159e5bce586c0e6a0610bc2b625
apps/taro/src/components/Layout/PageLayout.vue
@@ -1,7 +1,7 @@
<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>
@@ -45,7 +45,9 @@
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',
@@ -72,7 +74,20 @@
  },
});
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,
@@ -93,7 +108,7 @@
  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>