uniapp自定义权限菜单,动态tabbar

news2024/11/25 0:28:14

已封装为组件,亲测4个菜单项目可以切换,

以下为示例,根据Storage 中 userType 的 值,判断权限菜单

<template>
	<view class="tab-bar pb10">
		<view class="tabli" v-for="(tab, index) in tabs" :key="index" @click="switchTab(tab)">
			<image :src="currentTab === tab.text ? tab.selectedIconPath : tab.iconPath" mode="aspectFit"></image>
            <text :class="currentTab === tab.text ? 'active' : ''">{{ tab.text }}</text>
		</view>
		<loginTourist ref="loginPop"></loginTourist>
	</view>
</template>
<script>
export default {
		props: {//当前页
			currentTab: {
				type: String,
				required: true
			}
		},
		data() {
			return {
				// 游客、管理员、村民
				usertype: uni.getStorageSync('userType'),
			}
		},
computed: {
			// 权限菜单
			tabs() {
				if (this.usertype =='村民') {
					return [
						{
							"pagePath": "/pages/homepage/index",
							"iconPath": this.img('home-1'),
							"selectedIconPath": this.img('home'),
							"text": "首页"
						},
{
							"pagePath": "/workPages/teach/index",
							"iconPath": this.img('bs-1'),
							"selectedIconPath": this.img('bs'),
							"text": "办事指南"
						},
                        {
							"pagePath": "/pages/messag/index",
							"iconPath": this.img('mass-1'),
							"selectedIconPath": this.img('mass'),
							"text": "消息"
						},
                        {
							"pagePath": "/pages/mine/index",
							"iconPath": this.img('mine-1'),
							"selectedIconPath": this.img('mine'),
							"text": "我的"
						}
                           ],
                    }else if (this.usertype =='管理员') {
					// 管理员
				 	    return [
				 		        {
							    "pagePath": "/pages/homepage/index",
							    "iconPath": this.img('home-1'),
							    "selectedIconPath": this.img('home'),
							    "text": "首页"
						        }, 
                            ],
                        }
                }
            },
methods: {
			switchTab(tab) {
				// console.log("底部导航", tab)
				let userType = uni.getStorageSync('userType')||this.userType
				let token = uni.getStorageSync('token')
				console.log('底部导航,用户,token|',tab.text ,userType,token)
				uni.navigateTo({
						url: tab.pagePath
					});
                },
            // 统一加图片域名路径
			img(img) {
				return 图片网址前缀 + 'tabBar/' + img + '.png'
			},
        },
			
</script>
<style>
	.tab-bar {
		justify-content: space-around;
		align-items: center;
		height: 150upx;
		position: fixed;
        left: 0;
		z-index: 99999999999999999999;
		width: 100%;
		display: flex;
		justify-content: space-around;
		background: rgb(240 242 245 / 97%);
		border-top: 0.5px solid rgba(240, 242, 245, 1)
		
	}

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

	.tab-bar image {
		width: 25px;
		height: 25px;
	}

	.tab-bar text {
		font-size: 12px;
		margin-top: 5px;
	}

	.tab-bar text.active {
		font-weight: bold;
	}
</style>

声明为全局组件:main.js 中添加

import tzTabBar from "@/components/atz-tabbar/atz-tabbar.vue"//自定义底部菜单
Vue.component('tzTabBar', tzTabBar)

在页面中使用:

<tzTabBar :currentTab="'消息'"></tzTabBar>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1162966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言实现把一个字符串插到另一个字符串中的指定位置

完整代码&#xff1a; // 把一个字符串插到另一个字符串中的指定位置 #include<stdio.h> #include<stdlib.h> //字符串的最大长度为10 #define N 10int main(){//把str2插入到str1中char *str1(char *)malloc(N*sizeof(char));char *str2(char *)malloc(N*sizeof(…

易思无人值守智能物流系统Sys_ReportFile文件上传漏洞复现

文章目录 易思无人值守智能物流系统Sys_ReportFile文件上传漏洞复现0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 易思无人值守智能物流系统Sys_ReportFile文件上传漏洞复现 0x01 前言 免责声明&#xff1a;请…

Learning to Segment Rigid Motions from Two Frames 代码复现

环境配置 https://github.com/gengshan-y/rigidmask 1.拉取代码 git clone https://github.com/gengshan-y/rigidmask.git cd rigidmask2.创建conda环境&#xff0c;修改rigidmask.yml name: rigidmask channels:- pytorch- pytorch3d- conda-forge- defaults dependencies…

HashMap源码分析——Java全栈知识(8)

jdk1.7和jdk1.8的HashMap的原理有一点出入我们就分开讲解&#xff1a; 1、JDK1.7中的HashMap JDK1.7中的HashMap是通过数组加链表的方式存储数据。他的底层维护了一个Entry数组&#xff0c;通过哈希函数的计算出来哈希值&#xff0c;将待填数据根据计算出来的哈希值填入到对应…

memset的用处

这个memset是真的究极坑中坑,这玩意对int数组是压根没法初始化-1,0其他任何数,以后除了-1和0,其他的一概不能用这玩意,这个是真的坑,一旦出了错巨难找 初始-1 初始0 初始1

JTS: 13 Polygonizer 多线合成面

这里写目录标题 版本代码 版本 org.locationtech.jts:jts-core:1.19.0 链接: github 代码 线段 生成之后的面 public class GeometryPolygonization {private static final GeometryFactory geometryFactory new GeometryFactory();private static final Logger LOGGER …

Vue2别踩白块(第二种)

效果图: 点击黑块变灰 游戏结束 功能简介 点击白块直接失败,点击黑块得计一分。 代码逻辑 其实和第一种类似,唯一区别在于此种方式的判断滚动到底部是否有违背点击的黑块的算法。 1、数组存放白块数据:二维数组,数组内部单个元素为一个四位数字的数组,其中1代表黑块,0代…

移动硬盘只读模式怎么取消?

当硬盘驱动器处于为只读模式时&#xff0c;您仅能读取保存在该驱动器中的数据&#xff0c;但却无法添加新数据和修改当前数据。如果您想要对数据做一些改变就需要取消只读模式。那么&#xff0c;移动硬盘只读模式怎么取消&#xff1f; 方案一&#xff1a;使用命令提示符移除只读…

生产环境docke问题排查

查看进程top查看具体的线程 top -H -p 8898如果cpu 过高&#xff0c;就是有问题的地方&#xff1b; 接下来根据docker查看具体的问题 查看dockers容器哪个内存、cpu占用过高 docker stats前言&#xff1a; 有java 启动容器&#xff1b;有jre包启动的容器。如下图 根据cpu很高…

Microsoft 365一键安装、激活!(附安装包)

下面将介绍的是Microsoft 365一键安装。 安装包&#xff1a;https://dnmjun.lanzout.com/iBFGZ1ddxql 安装步骤 1、下载得到安装包后&#xff0c;先解压&#xff01; 2、双击OfficeSetup开始安装 3、进入正式安装了&#xff0c;耐心等即可。 4、下载过程会需要点时间&#x…

Data Uncertainty Learning in Face Recognition

传统的面部识别方法即使在图片中面部模糊的情况下&#xff0c;耶给出确定的面部识别特征 事实上&#xff0c;这种模糊的代表着数据的不确定性&#xff0c;这个网络向我们展示了在不确定视角下&#xff0c;简单的回归任务和面部识别回归任务共享同样的模式 在这篇论文中&#xf…

数控机床数字孪生可视化平台,推动智能装备水平整体提升

作为智能制造的中重要装备之一&#xff0c;数控机床正朝着智能化、精密化、数字化、可视化的目标发展。数字孪生技术是一种新兴的技术&#xff0c;可以将物理机床仿真为虚拟机床&#xff0c;以实现更高效的数控机床调试。数字孪生是指将实际物理系统与其数字化的虚拟模型相结合…

Confluence未授权管理用户添加漏洞复现 (CVE-2023-22515)

Confluence未授权管理用户添加漏洞复现 【CVE-2023-22515】 一、漏洞描述二、漏洞影响版本三、网络空间测绘查询四、漏洞复现1.手动复现2.自动化复现小龙POC检测nuclei检测 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信…

python脚本-requests模块

python脚本-requests模块 模拟浏览器 import requests url"http://10.9.47.154/php/arrayprac/get.php" headers {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.5195.102 Sa…

创建ABAP数据库表和ABAP字典对象-使用已存在的数据元素增加城市字段04

基于内置域增加一个字段 1.在编辑器中&#xff0c;输入字段的名称&#xff0c;后跟冒号:city:。暂时忽略这个错误。2. 输入/MOC/C并使用自动补全(**Ctrl空格**)&#xff0c;输入类型。3. 然后添加一个分号:city: /moc/city;4.在SAP GUI中查看&#xff0c;字段已经新增

Java-数组的定义与使用

本章重点&#xff1a; 1. 理解数组基本概念 2. 掌握数组的基本用法 3. 数组与方法互操作 4. 熟练掌握数组相关的常见问题和代码 1. 数组的基本概念 1.1 为什么要使用数组 public class TestStudent{public static void main(String[] args){int score1 70;int s…

子管理员运营权限管理,实现更加精细的权限控制,管理各个小组的学员、题库和考试

土著刷题Plus专业版&#xff0c;以【录题-分组-刷题-考试】为中心打造一套完备的在线组卷刷题学习平台&#xff0c;自定义品牌名称和Logo&#xff0c;入驻后&#xff0c;您将拥有自己独立的企业级专业运营管理平台。 土著刷题Plus专业版v1.3版本&#xff0c;我们迭代了运营权限…

java--类和对象的一些注意事项

1.类和对象的一些注意事项 ①类名建议用英文单词&#xff0c;首字母大写&#xff0c;满足驼峰模式&#xff0c;且要有意义&#xff0c;比如&#xff1a;Student、Car...(只是建议&#xff0c;你其什么名字都没关系&#xff0c;只是当大部分人都在用这条规矩的时候&#xff0c;…

同时标注分割、检测、多分类属性的工具

1、 https://blog.csdn.net/minstyrain/article/details/82385580/ 2、 https://zhuanlan.zhihu.com/p/656703406

动态规划算法实现------转换(编辑、变换)问题

目录 一、字符串转换问题 1.1问题 1.2确定动态规则(DP、状态转移方程)、初始值 (1)插入操作实现状态转移 (2)删除操作实现状态转移 (3)替换操作实现状态转移 (4)初始值 1.3动态规划算法代码实现 (1)完整代码 (2)程序速度优化 二、矩阵变换问题 2.1问题 2.2矩阵乘法 (1)矩阵相乘…