<template> 
 | 
  <div 
 | 
    :class="[ 
 | 
      'navigation-bar-wrapper', 
 | 
      { active: props.mode === 'dark', plain: props.plain, hasBorder: props.hasBorder }, 
 | 
    ]" 
 | 
    :style="barStyle" 
 | 
  > 
 | 
    <slot></slot> 
 | 
  </div> 
 | 
</template> 
 | 
  
 | 
<script setup lang="ts"> 
 | 
import { CSSProperties } from 'vue'; 
 | 
import { useSystemStore } from '@/stores/modules/system'; 
 | 
import { navigationBarProps } from './navBar'; 
 | 
  
 | 
defineOptions({ 
 | 
  name: 'NavBar', 
 | 
}); 
 | 
  
 | 
const props = defineProps(navigationBarProps); 
 | 
  
 | 
const systemStore = useSystemStore(); 
 | 
  
 | 
const barStyle = computed( 
 | 
  () => 
 | 
    ({ 
 | 
      paddingTop: systemStore.info.statusBarHeight + 'px', 
 | 
      // height: systemStore.navigationBarHeight + 'px', 
 | 
    } as CSSProperties) 
 | 
); 
 | 
</script> 
 | 
  
 | 
<style lang="scss"> 
 | 
@import '@/styles/common.scss'; 
 | 
  
 | 
.navigation-bar-wrapper { 
 | 
  background-color: #fff; 
 | 
  display: flex; 
 | 
  position: relative; 
 | 
  // box-shadow: 0px 1px 7px 0px rgb(237, 238, 241); 
 | 
  z-index: 10; 
 | 
  
 | 
  &.plain { 
 | 
    border-bottom-left-radius: 20px; 
 | 
    border-bottom-right-radius: 20px; 
 | 
  } 
 | 
  
 | 
  &.active { 
 | 
    background-color: boleGetCssVar('color', 'primary'); 
 | 
  } 
 | 
  
 | 
  &.hasBorder { 
 | 
    border-bottom: 1px solid #f6f6f6; 
 | 
  } 
 | 
} 
 | 
</style> 
 |