|
|
- <template>
- <view class="tabbar-box">
- <view class="tabbar">
- <view :class="{ 'tabbar-active' : select == item.key}" v-for="(item, index) in list" :key="index"
- v-if="!item.isNotShop || !userShop" @click="toPath(item, index)" class="tabbar-item">
- <view class="tabbar-icon">
- <image :src="select == item.key ?
- item.selectedIconPath :
- item.iconPath" class="tabbar-icon-image" mode="aspectFill"></image>
- </view>
- <view class="tabbar-title">
- {{ item.title }}
- </view>
- </view>
- </view>
- </view>
- </template>
-
- <script>
- import {
- mapGetters
- } from 'vuex'
- export default {
- name: "tabbar",
- props: ['select'],
- computed: {
- ...mapGetters(['userShop']),
- },
- data() {
- return {
- list: [{
- "selectedIconPath": "/static/image/tabbar/home-active.png",
- "iconPath": "/static/image/tabbar/home.png",
- "pagePath": "/pages/index/index",
- "title": "首页",
- key: 'home',
- },
- {
- "selectedIconPath": "/static/image/tabbar/product-list-active.png",
- "iconPath": "/static/image/tabbar/product-list.png",
- "pagePath": "/pages/index/category",
- "title": "商品列表",
- key: 'category',
- },
- {
- "selectedIconPath": "/static/image/tabbar/order-active.png",
- "iconPath": "/static/image/tabbar/order.png",
- "pagePath": "/pages/index/order",
- "title": "订单",
- key: 'order',
- },
- {
- "selectedIconPath": "/static/image/tabbar/user-center-active.png",
- "iconPath": "/static/image/tabbar/user-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: #fff;
- 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: #BCBCBC;
-
- .tabbar-item {
- flex: 1;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
-
- .tabbar-icon {
- width: 54rpx;
- height: 54rpx;
-
- .tabbar-icon-image {
- width: 54rpx;
- height: 54rpx;
- }
- }
-
- .tabbar-title {
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- -o-text-overflow: ellipsis;
- font-size: 23rpx;
- line-height: 35rpx;
- }
- }
-
- .tabbar-active {
- color: $uni-color !important;
- }
- }
- }
- </style>
|