由于uni-app原生导航栏存在很多功能不可以配置,特别是我需要用到根据登录的用户权限,来打开不同用户界面,这里不同就指的是导航栏的部分权限。

修改pages.json文件,隐藏原生导航栏


这里我们只需要保留原来的list里的路径即可

封装tabBer.js

const tabbarAD= [
	// 首页
	{
		// 未点击图标
		iconPath: "/static/report1.png",
		// 点击后图标
		selectedIconPath: "/static/report2.png",
		// 显示文字
		text: '',
		// 是否显示红点
		isDot: true,
		// 是否使用自定义图标
		customIcon: true,
		// 页面路径
		pagePath: "/pages/index/report"
	}, {
		iconPath: "/static/my1.png",
		selectedIconPath: "/static/my2.png",
		text: '个人中心',
		isDot: true,
		customIcon: true,
		pagePath: "/pages/personal/my"
	}
]
const tabbarBD=[]
const tabbarCD=[]
const tabbarABCD=[]
export default {
	tabbarAD,
	tabbarBD,
	tabbarCD,
	tabbarABCD
}

这里可以封装多个需要的类型,例如底部导航栏有4个,我这里AD就代表第一个和第四个,前端权限调用的时候,就可以区分开来。

用户id传值调用相应的权限

用户登录成功后先执行传值和匹配后,再进入主页面

this.$store.commit('setTabbarList', _res[0].id)

此时

export default {
	state: {
		tabbarList: []
	},
mutations: {
		setTabbarList: (state, userId) => {
			const _obj = {
				0: 'tabbarABCD',
				1: 'tabbarAD',
				2: 'tabbarBD',
				3: 'tabbarCD',
			}
			const type = _obj[+userId]
			state.tabbarList = tabBer[type]
		}
	},
}

记得把封住的组件main.js 里引用一下,成全局组件。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐