123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <!-- 底部导航组件 -->
- <template>
- <view class="tabBar" :style="{'padding-bottom': paddingBottomHeight + 'rpx'}">
- <view class="tab-bar-box">
- <view class="null-box"></view>
- <view class="tba-bar-min-box" @click="tabBarGoPage(1)">
- <img src="@/images/basicsModules/btn_sy_xz.png" v-if="currentRoute == 'pages/home/home'">
- <img src="@/images/basicsModules/btn_sy_zc.png" v-else>
- <view :class="currentRoute == 'pages/home'?'primary':''">首页</view>
- </view>
- <view class="null-box"></view>
- <view class="tba-bar-min-box" @click="tabBarGoPage(2)">
- <img src="@/images/basicsModules/btn_xx_xz.png" v-if="currentRoute == 'pages/information/information'">
- <img src="@/images/basicsModules/btn_xx_zc.png" v-else>
- <view :class="currentRoute == 'pages/information/information'?'primary':''">消息</view>
- </view>
- <view class="null-box"></view>
- <view class="tba-bar-min-box" @click="tabBarGoPage(3)">
- <img src="@/images/basicsModules/btn_wd_xz.png" v-if="currentRoute == 'pages/mine/mine'">
- <img src="@/images/basicsModules/btn_wd_zc.png" v-else>
- <view :class="currentRoute == 'pages/mine'?'primary':''">我的</view>
- </view>
- <view class="null-box"></view>
- </view>
- </view>
- </template>
- <script>
- import {
- } from '@/api/apiDemo/index.js'
- export default {
- name: 'tabBar',
- data() {
- return {
- paddingBottomHeight: 0, //苹果X以上手机底部适配高度
- currentRoute: "",
- userType: "",
- totalCount: 0,
- }
- },
- created() {
- let that = this;
- uni.getSystemInfo({
- success: function(res) {
- let model = ['X', 'XR', 'XS', '11', '12', '13', '14', '15'];
- model.forEach(item => {
- //适配iphoneX以上的底部,给tabbar一定高度的padding-bottom
- if (res.model.indexOf(item) != -1 && res.model.indexOf('iPhone') != -1) {
- that.paddingBottomHeight = 40;
- }
- })
- }
- });
- },
- onShow() {
- },
- mounted() {
- this.totalCount = uni.getStorageSync('totalCount')
- // 获取当前路由
- let pages = getCurrentPages();
- let page = pages[pages.length - 1];
- this.currentRoute = page.route;
- // 获取当前角色
- this.userType = uni.getStorageSync('userType');
- },
- methods: {
- tabBarGoPage(type) {
- if (type === 1) {
- if (this.currentRoute !== 'pages/home/home') {
- uni.redirectTo({
- url: '/pages/home/home',
- });
- }
- } else if (type === 2) {
- if (this.currentRoute !== 'pages/information/information') {
- uni.redirectTo({
- url: '/pages/information/information',
- });
- }
- } else if (type === 3) {
- if (this.currentRoute !== 'pages/mine/mine') {
- uni.redirectTo({
- url: '/pages/mine/mine',
- });
- }
- }
- },
- }
- }
- </script>
- <style lang="stylus" scoped>
- .tabBar {
- z-index: 9999;
- width: 100%;
- height: 98rpx;
- background: #ffffff;
- position fixed ;
- bottom: 0;
- left: 0;
- box-shadow: 0 -3rpx 13rpx 0 rgba(0, 0, 0, 0.1);
- .tab-bar-box {
- display flex;
- .null-box {
- flex: 1;
- }
- .tba-bar-min-box {
- width: 64rpx;
- position: relative;
- img {
- width: 44rpx;
- height: 44rpx;
- margin: 14rpx auto 0;
- }
- view {
- line-height: 37rpx;
- font-size: 19rpx;
- text-align center;
- color: #666666;
- }
- .tip {
- display inline-block;
- background: #EF0909;
- border-radius 50%;
- position: absolute;
- font-size 24rpx;
- line-height 24rpx;
- color #fff;
- top: 10rpx;
- left: 44rpx;
- padding: 6rpx 10rpx;
- box-sizing border-box;
- }
- }
- }
- }
- </style>
|