first commit
This commit is contained in:
87
src/components/tabbar/tabbar.vue
Normal file
87
src/components/tabbar/tabbar.vue
Normal file
@@ -0,0 +1,87 @@
|
||||
<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>
|
||||
Reference in New Issue
Block a user