小程序自定义底部导航,不同权限登录

uniapp自定义底部导航,不同权限身份登录小程序

前言:有时候开发会遇到需要不同身份切换小程序的时候,底部的tabbar会发生变化,这时候uniapp自带的设置tabbar的属性就不能满足项目所需,下图是我这边两个身份看到的不同的tabbar内容

用户方

处理方

  • 首先在 pages.json 页面中,正常写入自己的页面路径,每个权限,即所有的权限都要写上不要漏掉,记得 开启自定义导航1
    pages.json
  • 接着,在 component文件夹 下,建一个底部组建的js文件,名字任意
    在这里插入图片描述

我这里用到的是cover-view 覆盖原来的tabbar的位置,并且可以自定义设置其内容

html

<cover-view class="tab-bar">
   		<cover-view class="tab-bar-border"></cover-view>
   		<cover-view v-for="(item,index) in tabBarList" :key="index" class="tab-bar-item" :data-id="index"
   			@click="jump(item)">
   			<cover-image :src="current === index ? item.selectedIconPath : item.iconPath"></cover-image>
   			<cover-view :style="{'color':current === index ? '#409eff' : '#909399'}" style="margin-top: 10rpx;">
   				{{item.text}}</cover-view>
   		</cover-view>
   	</cover-view>

js

import store from '@/store';
	export default {
		props: {
			tabBarList: {
				type: Array,
				default: uni.getStorageSync('tabBarList')
			},
			current: Number
		},
		data() {
			return {
				value1: 0,
				inactiveColor: '#909399'
			}
		},
		created() {

		},
		methods: {
			// 点击跳转对应tabbar页面
			jump(e) {
				console.log(e, 'e')
				uni.switchTab({
					url: e.pagePath
				})
			}
		}
	}

css

	.tab-bar {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		height: 48px;
		padding-top: 4px;
		background: white;
		display: flex;
		padding-bottom: 35rpx;
	}
	.tab-bar-border {
		// background-color: rgba(0, 0, 0, 0.33);
		background-color: white;
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 1px;
		border-top: 2rpx solid rgba(187, 187, 187, 0.3);
		transform: scaleY(0.5);
	}

	.tab-bar-item {
		flex: 1;
		text-align: center;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
	}

	.tab-bar-item cover-image {
		width: 48rpx;
		height: 48rpx;
	}

	.tab-bar-item cover-view {
		font-size: 10px;
	}
  • store文件夹下建立js文件,用来存储权限的值,并记得在 main.js 引入,这里不再显示如何引入~

vuex存储

  • 然后在utils文件夹下,建立存储底部导航的内容,分为两个部分

    • (当然了,你可以不用放在vuex中,不过可能更加繁琐一些,我这样只是为了后面切换身份的时候方便些)
      在这里插入图片描述
  • 最后,在每个tabbar的页面,进入的时候传对应的底部的值给组建,就可以实现切换不同身份显示不同内容的效果啦~

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

-差点忘记啦,app.vue记得隐藏原本的tabbar,
在这里插入图片描述
有不懂得欢迎提问~


  1. ↩︎
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值