|
|
@@ -1,74 +0,0 @@
|
|
|
-<script setup lang="ts">
|
|
|
-import type { Ref } from 'vue'
|
|
|
-import home from '@/static/image/tabbar/home.png'
|
|
|
-import home_select from '@/static/image/tabbar/home-select.png'
|
|
|
-import manual from '@/static/image/tabbar/manual.png'
|
|
|
-import manual_select from '@/static/image/tabbar/manual-select.png'
|
|
|
-import my from '@/static/image/tabbar/my.png'
|
|
|
-import my_select from '@/static/image/tabbar/my-select.png'
|
|
|
-import plan from '@/static/image/tabbar/plan.png'
|
|
|
-import plan_select from '@/static/image/tabbar/plan-select.png'
|
|
|
-
|
|
|
-const props = defineProps<{
|
|
|
- page: number
|
|
|
-}>()
|
|
|
-interface BottomItem {
|
|
|
- name: string
|
|
|
- icon: any
|
|
|
- icon_select: any
|
|
|
- isSelected: boolean
|
|
|
- url: string
|
|
|
-}
|
|
|
-
|
|
|
-const bottomList: Ref<BottomItem[]> = ref([
|
|
|
- { name: '首页', icon: home, icon_select: home_select, isSelected: true, url: '' },
|
|
|
- { name: '喂养计划', icon: plan, icon_select: plan_select, isSelected: false, url: '' },
|
|
|
- { name: '养宠手册', icon: manual, icon_select: manual_select, isSelected: false, url: '' },
|
|
|
- { name: '我的', icon: my, icon_select: my_select, isSelected: false, url: '' },
|
|
|
-])
|
|
|
-
|
|
|
-function handleBottom(item: BottomItem) {
|
|
|
- // eslint-disable-next-line style/max-statements-per-line
|
|
|
- bottomList.value.forEach((item2) => { item2.isSelected = false })
|
|
|
- item.isSelected = true
|
|
|
- uni.navigateTo({ url: item.url })
|
|
|
-}
|
|
|
-
|
|
|
-function onLoad() {
|
|
|
- if (props.page) {
|
|
|
- // eslint-disable-next-line style/max-statements-per-line
|
|
|
- bottomList.value.forEach((item2) => { item2.isSelected = false })
|
|
|
- bottomList.value[props.page - 1].isSelected = true
|
|
|
- }
|
|
|
-}
|
|
|
-onLoad()
|
|
|
-</script>
|
|
|
-
|
|
|
-<template>
|
|
|
- <view class="w-full p-2 fixed bottom-0 left-0 model">
|
|
|
- <view class="w-full flex gap-2 ">
|
|
|
- <view v-for="(item, index) in bottomList" :key="index" class="flex flex-col items-center justify-center w-1/4" @click="handleBottom(item)">
|
|
|
- <image :src="item.isSelected ? item.icon_select : item.icon" class="w-8 h-8" />
|
|
|
- <text
|
|
|
- class="text-3 mt-1" :class="[item.isSelected ? 'bottom_select_span' : 'bottom_span']"
|
|
|
- >
|
|
|
- {{ item.name }}
|
|
|
- </text>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
-</template>
|
|
|
-
|
|
|
-<style scoped>
|
|
|
-.model{
|
|
|
- padding-bottom: constant(safe-area-inset-bottom); /* 兼容 iOS < 11.2 */
|
|
|
- padding-bottom: env(safe-area-inset-bottom); /* 兼容 iOS >= 11.2 */
|
|
|
-}
|
|
|
-
|
|
|
-.bottom_span{
|
|
|
- color: #828282;
|
|
|
-}
|
|
|
-.bottom_select_span{
|
|
|
- color: #4545E5;
|
|
|
-}
|
|
|
-</style>
|