Files
zzp-uniapp/src/components/tabbar/tabbar.vue
2026-01-19 14:02:50 +08:00

87 lines
2.3 KiB
Vue

<template>
<u-tabbar v-if="showTabbar" height="120rpx" icon-size="50rpx" v-model="current" v-bind="tabbarStyle" :list="tabbarList"
@change="handleChange" :hide-tab-bar="false" :border-top="false"></u-tabbar>
</template>
<script lang="ts" setup>
import { onShow } from '@dcloudio/uni-app'
import { navigateTo } from '@/utils/util'
import { computed, ref } from 'vue'
import { t } from '@/utils/util'
const current = ref()
const tabbarList = ref([
{
iconPath: "../../static/images/tabs/home_off.png",
selectedIconPath: "../../static/images/tabs/home_on.png",
text: t('tabbar.index'),
pagePath: "/pages/index/index",
link: {
path: "/pages/index/index",
type: "shop"
}
},
{
iconPath: "../../static/images/tabs/item_off.png",
selectedIconPath: "../../static/images/tabs/item_on.png",
text: t('tabbar.mine'),
pagePath: "/pages/item/index",
link: {
path: "/pages/item/index",
type: "shop"
}
},
{
iconPath: "../../static/images/tabs/mine_on.gif",
selectedIconPath: "../../static/images/tabs/mine_on.gif",
text: '',
pagePath: "/pages/mine/index",
link: {
path: "/pages/mine/index",
type: "shop"
}
},
{
iconPath: "../../static/images/tabs/team_off.png",
selectedIconPath: "../../static/images/tabs/team_on.png",
text: t('tabbar.team'),
pagePath: "/pages/team/index",
link: {
path: "/pages/team/index",
type: "shop"
}
},
{
iconPath: "../../static/images/tabs/my_off.png",
selectedIconPath: "../../static/images/tabs/my_on.png",
text: t('tabbar.my'),
pagePath: "/pages/user/user",
link: {
path: "/pages/user/user",
type: "shop"
}
},
])
const showTabbar = computed(() => {
const currentPages = getCurrentPages()
const currentPage = currentPages[currentPages.length - 1]
const current = tabbarList.value.findIndex((item : any) => {
return item.pagePath === '/' + currentPage.route
})
return current >= 0
})
const tabbarStyle = computed(() => ({
activeColor: "#A1DBF5",
inactiveColor: "#FFFFFF"
}))
const handleChange = (index : number) => {
const selectTab = tabbarList.value[index]
navigateTo(selectTab.link, 'switchTab')
}
onShow(() => {
uni.hideTabBar();
})
</script>