推广小程序前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

123 lines
2.5 KiB

<template>
<view class="">
<view class="tabbar-box"></view>
<view class="tabbar">
<view
:class="{item : true, active : select == item.key}"
v-for="(item, index) in list"
:key="index"
v-if="!item.isNotShop || !userShop"
@click="toPath(item, index)">
<view class="icon">
<image :src="select == item.key ?
item.selectedIconPath :
item.iconPath" class="icon-image" mode="widthFix"></image>
</view>
<view class="title">
{{ item.title }}
</view>
</view>
</view>
</view>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name:"tabbar",
props : ['select'],
computed : {
},
data() {
return {
list : [
{
"selectedIconPath": "/static/image/tabbar/home-a.png",
"iconPath": "/static/image/tabbar/home.png",
"pagePath": "/pages/index/index",
"title": "首页",
key : 'home',
},
{
"selectedIconPath": "/static/image/tabbar/zhaomu-a.png",
"iconPath": "/static/image/tabbar/zhaomu.png",
"pagePath": "/pages/index/member",
"title": "招募",
key : 'member',
},
{
"selectedIconPath": "/static/image/tabbar/order-a.png",
"iconPath": "/static/image/tabbar/order.png",
"pagePath": "/pages/index/cart",
"title": "订单",
key : 'cart',
},
{
"selectedIconPath": "/static/image/tabbar/center-a.png",
"iconPath": "/static/image/tabbar/center.png",
"pagePath": "/pages/index/center",
"title": "我的",
key : 'center',
}
]
};
},
methods : {
toPath(item, index){
if(item.key == this.select){
return
}
uni.reLaunch({
url: item.pagePath
})
},
}
}
</script>
<style scoped lang="scss">
.tabbar-box{
height: 120rpx;
padding-bottom: env(safe-area-inset-bottom);
}
.tabbar{
position: fixed;
width: 750rpx;
background-color: $uni-color-card-background;
display: flex;
justify-content: center;
align-items: center;
flex-direction: row;
height: 120rpx;
padding-bottom: env(safe-area-inset-bottom);
z-index: 999999;
bottom: 0;
left: 0;
color: #4C4C4C;
border-radius: 67rpx 67rpx 0rpx 0rpx;
.item{
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.icon{
width: 49rpx;
.icon-image{
width: 49rpx;
}
}
.title{
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
font-size: 23rpx;
line-height: 35rpx;
}
}
}
.active{
color: #F85152 !important;
}
</style>