| <template> | 
|     <view | 
|         :style="[style]" | 
|         class="u-status-bar" | 
|     > | 
|         <slot /> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     import props from './props.js'; | 
|     /** | 
|      * StatbusBar 状态栏占位 | 
|      * @description 本组件主要用于状态填充,比如在自定导航栏的时候,它会自动适配一个恰当的状态栏高度。 | 
|      * @tutorial https://uviewui.com/components/statusBar.html | 
|      * @property {String}            bgColor            背景色 (默认 'transparent' ) | 
|      * @property {String | Object}    customStyle        自定义样式  | 
|      * @example <u-status-bar></u-status-bar> | 
|      */ | 
|     export default { | 
|         name: 'u-status-bar', | 
|         mixins: [uni.$u.mpMixin, uni.$u.mixin, props], | 
|         data() { | 
|             return { | 
|             } | 
|         }, | 
|         computed: { | 
|             style() { | 
|                 const style = {} | 
|                 // 状态栏高度,由于某些安卓和微信开发工具无法识别css的顶部状态栏变量,所以使用js获取的方式 | 
|                 style.height = uni.$u.addUnit(uni.$u.sys().statusBarHeight, 'px') | 
|                 style.backgroundColor = this.bgColor | 
|                 return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)) | 
|             } | 
|         }, | 
|     } | 
| </script> | 
|   | 
| <style lang="scss" scoped> | 
|     .u-status-bar { | 
|         // nvue会默认100%,如果nvue下,显式写100%的话,会导致宽度不为100%而异常 | 
|         /* #ifndef APP-NVUE */ | 
|         width: 100%; | 
|         /* #endif */ | 
|     } | 
| </style> |