uniapp 微信小程序自定义tabbar层级低于canvas解决方案
示例代码:
<template>
<cover-view class="tab">
<cover-view class="navView" @tap="switc('/pages/index/index')">
<cover-image :src="tabname ==='index'?'/static/tabbar/overide-sel.png':'/static/tabbar/overide.png'" class="navView-img"/>
<cover-view :class="tabname ==='index'?'tabTextActive':'tabText'">数据概览</cover-view>
</cover-view>
<cover-view class="navView" @tap="switc('/pages/workhub/workhub')">
<cover-image :src="tabname ==='workhub'?'/static/tabbar/workhub-sel.png':'/static/tabbar/workhub.png'" class="navView-img"/>
<cover-view :class="tabname ==='workhub'?'tabTextActive':'tabText'">工作台</cover-view>
</cover-view>
<cover-view v-if="is_staff != 3" class="navView" @tap="switc('/pages/my/my')">
<cover-image :src="tabname ==='my'?'/static/tabbar/my-sel.png':'/static/tabbar/my.png'" class="navView-img"/>
<cover-view :class="tabname ==='my'?'tabTextActive':'tabText'">我的</cover-view>
</cover-view>
</cover-view>
</template>
<script>
import { mapGetters } from 'vuex'
export default{
props:{
tabname:{ type:String,default:'home' }
},
computed:{
...mapGetters(['is_staff'])
},
mounted() {
uni.hideTabBar({
success() {},
fail() {}
})
},
methods:{
switc(val){
if(!val)return;
uni.switchTab({url:val})
}
}
}
</script>
<style lang="scss" scoped>
.tab{
position: fixed;
bottom: 0;
left: 0;
display: flex;
z-index: 99999 !important;
width: 100%;
height: 144rpx;
background: #fff;
box-shadow: 0rpx 0rpx 4rpx #b8b8b8;
padding-top: 10rpx;
.navView{
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
.navView-img{
width: 50rpx;
height: 50rpx;
margin-bottom: 10rpx;
}
.tabText{
font-size: 20rpx;
color: #A5A5A5;
}
.tabTextActive{
font-size: 20rpx;
color: #FE8B1F;
}
}
}
</style>
效果展示: