12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <template>
-
- <view class="nav-bar-wrap" :style="{ height: navBarStyle.height, paddingTop: navBarStyle.paddingTop, paddingBottom: navBarStyle.paddingBottom }">
- <slot name="content-left"> </slot>
- <view class="search-box" @click="goSearch" :style="{ width: `${width}%` }">
- <icon type="search" size="15" class="search_ico" />
- <text class="sea_ipt">{{ searchTitle || "" }}</text>
- </view>
- <slot name="content-right"> </slot>
- </view>
- </template>
- <script>
- export default {
- props: {
- searchTitle: {
- type: String,
- requer: true,
- default: "",
- },
- width: {
- type: Number,
- requer: true,
- default: "",
- },
- },
- data() {
- return {
- navBarStyle: {
- height: 60 + "px",
- paddingTop: 40 + "px",
- paddingBottom: "4px",
- },
- };
- },
- mounted() {
- this.initNavBar();
- },
- methods: {
- initNavBar() {
- let menuButtonInfo = uni.getMenuButtonBoundingClientRect();
- this.navBarStyle = {
- height: menuButtonInfo.height + menuButtonInfo.top + 8 + "px",
- paddingTop: menuButtonInfo.top - 4 + "px",
- paddingBottom: "4px",
- };
- },
- goSearch() {
- this.$emit("goSearch");
- },
- },
- };
- </script>
- <style scoped lang="scss">
- .nav-bar-wrap {
- background-color: #fff;
- width: 100%;
- display: flex;
- align-items: center;
- .search-box {
- position: relative;
- display: flex;
- align-items: center;
- width: 55%;
- height: 63rpx;
- font-size: 30rpx;
- color: #8d8d8d;
- background-color: #f3f3f3;
- padding-left: 33rpx;
- border-radius: 70rpx;
- .sea_ipt {
- padding-left: 15rpx;
- }
- }
- }
- </style>
|