微信小程序 根据登录后的角色权限 渲染底部tabbar--自定义渲染tabbar

这篇具有很好参考价值的文章主要介绍了微信小程序 根据登录后的角色权限 渲染底部tabbar--自定义渲染tabbar。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信小程序模拟登录后 根据不同角色权限 渲染底部tabbar
(底部tabbar 用的是vant ui 提供的组件)
微信小程序 根据登录后的角色权限 渲染底部tabbar--自定义渲染tabbar

 1.权限一: 拥有的底部栏如图

微信小程序 根据登录后的角色权限 渲染底部tabbar--自定义渲染tabbar

1.2 权限二: 拥有的底部栏 如图

微信小程序 根据登录后的角色权限 渲染底部tabbar--自定义渲染tabbar

1.3 定义全局属性用于存储底部的tabbar渲染

微信小程序 根据登录后的角色权限 渲染底部tabbar--自定义渲染tabbar

一:  首先在全局文件App.json 配置tabbar (最少2个 最多5个),并且配置页面

{
    "pages": [
        "pages/login/index",
        
        "pages/zy/index",
        "pages/myInfo/index",
        "pages/onlyOne/index",
        "pages/friend/index",
        "pages/setting/index"
    ],
    "window": {
        "backgroundTextStyle": "light",
        "navigationBarBackgroundColor": "#fff",
        "navigationBarTitleText": "微信登录",
        "navigationBarTextStyle": "black"
    },
    "tabBar": {
      "custom": true,
      "color": "#666666",
      "selectedColor": "#FF5F15",
      "backgroundColor": "#ffffff",
      "borderStyle": "black",
      "list": [
        {
          "pagePath": "pages/zy/index",
          "text": "主页"
        },
        {
          "pagePath": "pages/myInfo/index",
          "text": "我的信息"
        },
        {
          "pagePath": "pages/onlyOne/index",
          "text": "个人中心"
        },
        {
          "pagePath": "pages/friend/index",
          "text": "朋友信息"
        },
        {
          "pagePath": "pages/setting/index",
          "text": "手机设置"
        }
      ]
    },
    "sitemapLocation": "sitemap.json"
}

二:login 页面

 1.wxml:

<view class="title">
      欢迎登录
    </view>
    <!-- <button open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar" type="primary" size="mini">微信授权登录</button> -->




    <view>
      <button bindtap="login" data-type="1" type="primary" size="mini">权限1</button>
    </view>
    <view>
      <button bindtap="login" data-type="2" type="primary" size="mini">权限2</button>
    </view>

2. js

// pages/login/index.js
const app = getApp().globalData        //获取并设置tabbar
Page({


  /**
   * 页面的初始数据
   */
  data: {
  },
  login(e){
    const type = e.target.dataset.type
    if(type == 1){    //用户权限
      app.routerList = [
        {
          name:"主页",
          icon:"home-o",
          url:"/pages/zy/index",
        },
        {
          name:"我的信息",
          icon:"chat-o",
          url:"/pages/myInfo/index",
        },
        {
          name:"个人中心",
          icon:"https://b.yzcdn.cn/vant/icon-demo-1126.png",
          url:"/pages/onlyOne/index",
        }
      ]
      wx.reLaunch({
        url: '/pages/zy/index',
      })
    }else{
      app.routerList = [
        {
          name:"朋友信息",
          icon:"friends-o",
          url:"/pages/friend/index",
        },
        {
          name:"手机设置",
          icon:"setting-o",
          url:"/pages/setting/index",
        },
        {
          name:"个人中心",
          icon:"https://b.yzcdn.cn/vant/icon-demo-1126.png",
          url:"/pages/onlyOne/index",
        }
      ]
      wx.reLaunch({
        url: '/pages/friend/index',
      })
    }
   
  },
})

如此一来便有了 登录后的路由信息

紧接着 第二步: 创建custom-tab-bar 文件夹 与pages 同级(如图:)

微信小程序 根据登录后的角色权限 渲染底部tabbar--自定义渲染tabbar

第三步:

custom-tab-bar 中编写代码

1.在index.wxml  中编写:

<van-tabbar active="{{ active }}" bind:change="onChange">
  <van-tabbar-item bindtap="loadPage" data-url="{{item.url}}" wx:for="{{routerList}}" wx:key="index" icon="{{item.icon}}">
      {{item.name}}
  </van-tabbar-item>
</van-tabbar>

2.在index.json 中编写:注意此处用的vant ui 库 如没下载清先npm下载后使用
https://vant-contrib.gitee.io/vant-weapp/#/tabbar#api

{
  "component": true,
  "usingComponents": {
    "van-tabbar": "@vant/weapp/tabbar/index",
    "van-tabbar-item": "@vant/weapp/tabbar-item/index",
    "van-icon": "@vant/weapp/icon/index"
  }
}

3.在index.js中:
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    active:{      //对外提供当前选中的项 可以直接在每个页面中引入  以避免 tabbar显示与点击不同步的现象
      type:Number,
      value:0
    }
  },
  /**
   * 组件的初始数据
   */
  data: {
    routerList:[]
  },
  lifetimes:{
    attached(){
      this.setData({ routerList: getApp().globalData.routerList});  //获取路由
      console.log(this.data.routerList)
    }
  },
  /**
   * 组件的方法列表
   */
  methods: {
    onChange(event) {
      // event.detail 的值为当前选中项的索引
      this.setData({ active: event.detail });
    },
    loadPage(event){
      wx.switchTab({
        url: event.target.dataset.url,
      })
    },
  }
})

第四步:

1.1 在每个页面的onShow 生命周期函数中加上这句代码:

如果不加会导致tabbar显示与点击不同步的现象

  onShow() {
    if (typeof this.getTabBar === 'function' &&
      this.getTabBar()) {
      console.log(this.getTabBar())
      this.getTabBar().setData({
        active: 1        //这里的active的值根据你的routerList 顺序一致
      })
    }
  },

1.2 如果不想加  也可以在你不想加上面那句代码的页面 中 配置json

如图微信小程序 根据登录后的角色权限 渲染底部tabbar--自定义渲染tabbar微信小程序 根据登录后的角色权限 渲染底部tabbar--自定义渲染tabbar

 

 wxml:active 直接设置为0即可文章来源地址https://www.toymoban.com/news/detail-431844.html

到了这里,关于微信小程序 根据登录后的角色权限 渲染底部tabbar--自定义渲染tabbar的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 优雅实现微信小程序动态tabBar,根据不同用户角色显示不同底部导航——更新版(支持自由组合总数超过5个tabBar菜单)

    背景 在开发小程序过程中,有个需求是,小程序底部的tabBar需要根据不同用户角色显示不同底部导航。此时就需要用到自定义底部导航 custom-tab-bar。 上次发文是组合显示4个底部tabBar导航,很多小伙伴评论说组合超过5个怎么办。他们的需求总数超过5个了。 现在我在这里更新

    2024年02月03日
    浏览(45)
  • 微信小程序:登录授权,根据手机号获取凭证,获取用户手机号

    1.微信小程序授权 controller 层代码 wxUtils 工具类 2.微信小程序,用户手机号获取 微信小程序,根据code(code为手机号获取凭证)获取用户加密手机号 获取用户手机号方法

    2024年02月14日
    浏览(61)
  • 基于自定义组件实现微信小程序动态tabBar,根据不同用户角色显示不同底部tabBar,支持自由组合总数超过5个(更新版)

    背景 在开发小程序过程中,有个需求是,小程序底部的tabBar需要根据不同用户角色显示不同底部导航。此时就需要用到自定义底部导航 custom-tab-bar。 上次发文是组合显示4个底部tabBar导航,很多小伙伴评论说组合超过5个怎么办。他们的需求总数超过5个了。 现在我在这里更新

    2024年01月17日
    浏览(35)
  • Uniapp根据权限(角色)不同动态展示底部tabbar

    比如绑定openId展示的tabbar为:首页、巡检、工单 未绑定openId展示的tabbar为:在线报修、我的报修 首页配置pages.json中的tabbar: 这里只用配置pagePath就可以了~ 具体代码如下: 创建一个自定义的tabbar文件: 具体代码如下: 注意:pagePath的最前面要   加  / 创建index.js文件配置

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

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

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

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

    2024年02月06日
    浏览(57)
  • 生成微信小程序发布上线后的二维码 、获取微信小程序二维码、微信小程序二维码如何生成?

    情景: 1、在微信小程序审核完成,发布到线上后,想通过扫描小程序二维码进入小程序 2、可分享二维码出去,通过二维码扫码进入小程序 方法: 1、进入微信小程序的后台配置。链接:微信公众平台。(如图一) 2、进入 “设置” -- “ 基本设置” -- “小程序码及线下物

    2024年02月12日
    浏览(51)
  • (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日
    浏览(40)
  • 微信小程序渲染出错

    第一个错误渲染出错: [渲染层错误] Uncaught (in promise) [object DOMException](env: Windows,mp,1.06.2306020; lib: 2.19.2) 第二错误method值为空TypeError: Cannot read property \\\'method\\\' of undefined     at Vi.playdate (play.js? [sm]:51)     at Object.i.safeCallback (WASubContext.js?t=wechats=1687920555309v=2.19.2:2)     at WASubContex

    2024年02月10日
    浏览(49)
  • 微信小程序渲染实时时间

    总结一下自己怎么用JS初级的内容来写一个页面实时渲染时间的方法。 util.js文件代码如下: 例如,我要在index.js中引用util.js中的模块formatTime。那么,首先在index.js中定义变量util,使用require函数加载util.js文件。这里必须使用相对路径。 调用函数时,传入new Date()参数,返回值

    2024年02月11日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包