94 lines
1.7 KiB
Vue
94 lines
1.7 KiB
Vue
<template>
|
|
<view>
|
|
<tui-navigation-bar :isOpacity="false" @init="initNavigation" @change="opacityChange" :scrollTop="scrollTop" backgroundColor="#fff" color="#333">
|
|
<view>
|
|
<view class="nav-box">
|
|
<view class="action">
|
|
<slot v-if="$slots.left" name="left"></slot>
|
|
</view>
|
|
|
|
<slot v-if="$slots.content" name="content"></slot>
|
|
<view class="title" v-else>
|
|
<text class="nickname">{{title}}</text>
|
|
</view>
|
|
</view>
|
|
<view>
|
|
<slot name="card-swiper"></slot>
|
|
</view>
|
|
<view>
|
|
<slot name="card-notice"></slot>
|
|
</view>
|
|
</view>
|
|
</tui-navigation-bar>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import tuiNavigationBar from "@/components/thorui/tui-navigation-bar/tui-navigation-bar.vue";
|
|
export default {
|
|
components: {
|
|
tuiNavigationBar,
|
|
},
|
|
props: {
|
|
title: {
|
|
type: String,
|
|
default: '',
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
top: 0, //标题图标距离顶部距离
|
|
opacity: 1,
|
|
height: 0,
|
|
scrollTop: 0.5,
|
|
}
|
|
},
|
|
methods: {
|
|
initNavigation(e) {
|
|
this.height = e.height;
|
|
this.opacity = e.opacity;
|
|
this.top = e.top;
|
|
this.$emit('initNav', e);
|
|
},
|
|
opacityChange(e) {
|
|
this.opacity = e.opacity;
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.nav-box {
|
|
height: 44px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background-color: #fff;
|
|
flex-direction: column;
|
|
font-size: 22rpx;
|
|
position: relative;
|
|
|
|
.title {
|
|
justify-content: center;
|
|
align-items: center;
|
|
text-align: center;
|
|
display: flex;
|
|
width: 100%;
|
|
font-size: 32rpx;
|
|
}
|
|
|
|
|
|
.action {
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
bottom: 0;
|
|
display: flex;
|
|
padding: 0 5px;
|
|
align-items: center;
|
|
width: 50px;
|
|
}
|
|
}
|
|
|
|
|
|
</style> |