Uniapp根据权限(角色)不同动态展示底部tabbar

这篇具有很好参考价值的文章主要介绍了Uniapp根据权限(角色)不同动态展示底部tabbar。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

比如绑定openId展示的tabbar为:首页、巡检、工单

springboot uniapp 动态权限导航栏显示,uni-app,微信小程序

未绑定openId展示的tabbar为:在线报修、我的报修

springboot uniapp 动态权限导航栏显示,uni-app,微信小程序

首页配置pages.json中的tabbar:

这里只用配置pagePath就可以了~

springboot uniapp 动态权限导航栏显示,uni-app,微信小程序

具体代码如下:文章来源地址https://www.toymoban.com/news/detail-858172.html

 "tabBar": {
    "custom": true,
    "color": "#bfbfbf",
    "selectedColor": "#226be4", // 选中tab栏文本颜色
    "list": [{
        "pagePath": "pages/home/home"
        // "text": "首页",
        // "iconPath": "static/shouye.png",
        // "selectedIconPath": "static/shouye(1).png"
      },
      {
        "pagePath": "pages/plan/plan"
        // "text": "巡检",
        // "iconPath": "static/xunjian.png",
        // "selectedIconPath": "static/xunjian (1).png"
      },
      {
        "pagePath": "pages/tickets/tickets"
        // "text": "工单",
        // "iconPath": "static/tickets.png",
        // "selectedIconPath": "static/tickets(1).png"
      },
      {
        "pagePath": "pages/onlrepairs/onlrepairs"
        // "text": "在线报修",
        // "iconPath": "static/onlrepair.png",
        // "selectedIconPath": "static/onlrepair(1).png"
      },
      {
        "pagePath": "pages/my/my"
        // "text": "我的报修",
        // "iconPath": "static/baoxiu.png",
        // "selectedIconPath": "static/baoxiu (1).png"
      }
    ]
  }

创建一个自定义的tabbar文件:

springboot uniapp 动态权限导航栏显示,uni-app,微信小程序

具体代码如下:

注意:pagePath的最前面要  加  /

// 未绑定openId展示的页面
const publicBar = [{
    "pagePath": "/pages/onlrepairs/onlrepairs",
    "text": "在线报修",
    "iconPath": "/static/onlrepair.png",
    "selectedIconPath": "/static/onlrepair(1).png"
  },
  {
    "pagePath": "/pages/my/my",
    "text": "我的报修",
    "iconPath": "/static/baoxiu.png",
    "selectedIconPath": "/static/baoxiu (1).png"
  }
]

// 绑定openId展示的页面
const selfBar = [{
    "pagePath": "/pages/home/home",
    "text": "首页",
    "iconPath": "/static/shouye.png",
    "selectedIconPath": "/static/shouye(1).png"
  },
  {
    "pagePath": "/pages/plan/plan",
    "text": "巡检",
    "iconPath": "/static/xunjian.png",
    "selectedIconPath": "/static/xunjian (1).png"
  },
  {
    "pagePath": "/pages/tickets/tickets",
    "text": "工单",
    "iconPath": "/static/tickets.png",
    "selectedIconPath": "/static/tickets(1).png"
  }
]

export {
  publicBar,
  selfBar
}

创建index.js文件配置vuex  :

springboot uniapp 动态权限导航栏显示,uni-app,微信小程序

具体代码如下:

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

const store = new Vuex.Store({
	state: {
		dynamicTabbar: [] // 动态tabbar
	},
	getters: {},
	actions: {
		changeTabbar({commit}, payload) {
			commit('updateTabbar', payload)
		}
	},
	mutations: {
		updateTabbar(state, payload) {
			state.dynamicTabbar = payload
		}
	}
})

export default store

Vuex简易了解:

  1. state: 统一定义公共数据(类似于data(){return {a:1, b:2,xxxxxx}})
  2. mutations : 使用它来修改数据(类似于methods)更改state中的数据必须使用mutations来进行更改
  3. getters: 类似于computed(计算属性,对现有的状态进行计算得到新的数据-------派生 )
  4. actions: 发起异步请求
  5. modules: 模块拆分

在main.js中引入并挂载store:

springboot uniapp 动态权限导航栏显示,uni-app,微信小程序

在Login页面引入自定义tabbar页面并判断:

springboot uniapp 动态权限导航栏显示,uni-app,微信小程序

springboot uniapp 动态权限导航栏显示,uni-app,微信小程序

最后在每个页面使用动态的tabbar:

springboot uniapp 动态权限导航栏显示,uni-app,微信小程序

具体代码如下:

 <!-- 动态渲染tabBar -->
    <u-tabbar v-model="current" :list="tabBarList" :active-color="activeColor" :inactive-color="inactiveColor"
      :border-top="borderTop" />

  data() {
      return {
         title: '首页',
         tabBarList: this.$store.state.dynamicTabbar,
         current: 0,
         borderTop: true,
         inactiveColor: '#909399',
         activeColor: '#5098FF',
      }
  }

到了这里,关于Uniapp根据权限(角色)不同动态展示底部tabbar的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp 实现不同用户展示不同的tabbar(底部导航栏)

    目录 一、背景 源码地址:包含vue2和vue3版本:cheinlu/tabBar_demo_vue 二、效果展示 三、前置工作 四、创建tabbar组件 五、登录页面根据不同身份进行tabbar切换逻辑 六、问题拓展 最近在做一个uniapp开发的小程序遇到一个需求,希望不同用户登录后展示不同的tabbar页面,但是uniapp项

    2024年02月08日
    浏览(47)
  • uniapp 开发小程序之实现不同身份展示不同的 tabbar(底部导航栏),附带相关问题解答

    效果展示:   引言 在开发过程中逐渐意识到uniapp原生的tabbar可能不能满足开发要求,通过浏览博客才选择使用uView的Tabbar 底部导航栏来实现,我选择用的是2X版本 安装 我是使用Hbuilder插件的方式引入的组件库,安装配置可以看这篇: 下载安装方式配置 | uView 2.0 - 全面兼容

    2024年02月11日
    浏览(41)
  • uni-app动态tabBar,根据不同用户展示不同的tabBar

    因为我们用的是uni-app框架开发,所以在创建项目的时候直接创建uni-ui的项目即可,这个项目模板中自带了uni的一些好用的组件和api。 起初我想着这个效果不难实现,因为官方也有api可以直接使用,所以我最开始尝试就是使用uni的api完成,也就是这个 :uni.setTabBarItem(options) 我

    2024年02月09日
    浏览(51)
  • GitLab不同角色对应的权限

    Owner(拥有者) : 拥有者是项目或组的创建者,拥有最高级别的权限。 他们可以添加、删除项目成员,修改项目设置,管理访问权限,并进行项目转让。 在组级别,他们还可以添加或删除子组和项目,并管理组设置。 Maintainer(维护者) : 维护者拥有项目中的写入权限,可

    2024年02月13日
    浏览(35)
  • (vue权限管理)前端路由表角色权限管理,通过登录不同角色侧边栏显示对应页面

    1. 首先在src/router/index.js中添加路由表,其中constantRoutes 设置的为所有角色可见的路由,asyncRouterMap为对应权限人员可见路由,demo路由表代码如下: 2.在src/api/user.js中创建用户登录,获取用户信息,以及登出的接口 3.在store/modules/user.js文件,添加获取角色权限role的信息 4.在src

    2024年02月11日
    浏览(42)
  • vue项目中实现用户登录角色鉴权,不同的用户登录展示不同的菜单栏

    实现的效果如下: 用admin账号登录展示  用xiaoxiao账号登录:  并且在xiaoxiao登录的系统中,手动在地址栏输入\\\'/user\\\',请求admin用户才会显示的用户管理页,页面不会展示。 实现思路如下: 1.用户登录,后端返回的data中有菜单数据,把菜单数据存储在vuex中,在侧边栏组件中去

    2023年04月16日
    浏览(53)
  • 面对根据角色和单子状态如何有效的进行按钮权限的控制

    当阁下看到这个按钮权限控制时,该如何应对 问题1: 举个🌰,对于【待分配】这个工单状态的申请撤回按钮进行解析 问题2:举2个🌰对于【科室待接受】这个节点的申请撤回按钮进行解析 问题3:有些按钮 在多个节点要显示,比如【申请撤回、追加信息、催办】,像这种

    2024年01月19日
    浏览(42)
  • 【Spring Boot项目】根据用户的角色控制数据库访问权限

    在一些特定的业务需求下,要求创建只读用户,但是由于一些查询请求使用的是POST方法,因此在网关层面配置只允许请求GET方法又无法满足。所以就想到了是否可以在 JDBC 层面控制,判断角色并且只允许执行 SELECT 类型的SQL语句。 在Spring Boot项目中,我们可以通过结合网关和

    2024年02月06日
    浏览(58)
  • react--umi, 根据权限展示菜单,完成页面权限分配,以及路由鉴权

           umi框架,prolayout布局,access设置菜单权限,initialState全局初始化数据,配合使用,根据后端返回的权限信息,完成菜单的不同的权限的不同展示。     1. umi 配合 patlayout 布局, 实现根据配置的路由展示菜单栏     2. umi 的 access 插件,设置不同权限的菜单展示    

    2024年02月06日
    浏览(90)
  • Vue-根据角色获取菜单动态添加路由

    如果大家写过后台管理系统的项目,那么动态路由一定是绕不开的,如果想偷懒的话,就把所有路由一开始都配置好,然后只根据后端返回的菜单列表渲染就好菜单就好了,但是这样的隐患就是我在地址栏输入的地址的时候,也会进入这个页面,不偷懒的方法就是本文要介绍

    2024年01月24日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包