当前位置:网站首页>uniapp中动态底部导航栏tabbar实现,权限管理
uniapp中动态底部导航栏tabbar实现,权限管理
2022-04-21 06:16:00 【迷客】
uniapp中动态tabbar实现
有时候根据业务的需求,需要实现权限,或者是动态底部的导航栏,这是其中一种实现方法,我自己就用。
此方法需要借助uView的自定义导航栏
按照正常的方法引入uView,在需要用到导航栏的页面引入即可。
不过page.json里也要正常配置
需要用到的页面
<template>
<view class="body">
<u-tabbar v-model="current" :before-switch="beforeSwitch" active-color="#1d6869" :list="tabarList"></u-tabbar>
</view>
</template>
<script>
import {
mapState,
mapMutations
} from "vuex";
export default {
components: {},
data() {
return {};
},
computed: {
...mapState(["tabarList"]),
},
onLoad() {},
methods: {
...mapMutations(["setTabarList"]),
beforeSwitch(index) {
if (this.tabarList[index].text == "客服") {
this.kfshow = true;
return false;
} else {
return true;
}
},
}
};
</script>
<style lang="scss" scoped>
</style>
创建目录utils/tabBar.js
这是封装权限的目录
// 个人用户
const member = [{
iconPath: "home",
selectedIconPath: "home-fill",
text: '个人首页',
customIcon: false,
pagePath: '/pages/index/index',
},
{
iconPath: "account",
selectedIconPath: "account-fill",
text: '我的',
isDot: false,
pagePath: '/pages/my/my',
},
]
// 企业用户
const firm = [
{
iconPath: "account",
selectedIconPath: "account-fill",
text: '企业首页',
isDot: false,
pagePath: '/pages/enterprise/enterprise'
},
{
iconPath: "account",
selectedIconPath: "account-fill",
text: '我的',
isDot: false,
pagePath: '/pages/my/my',
},
]
export default {
member,
firm
}
利用vuex,创建目录store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
import storage from '../common/storage'
import tabBar from '@/untils/tabBar.js'
Vue.use(Vuex)
// 获取用户的类型,也可以根据业务判断具体的权限
let userInfo = storage.getJson('userInfo')
let type = 'member'
if(userInfo != null){
switch(userInfo.utype){
case '1':
type = 'member'
break;
case '2':
type = 'firm'
break;
default:
break;
}
}
const store = new Vuex.Store({
state: {
tabarList: tabBar[type], // 动态底部导航栏
},
mutations: {
setTabarList(state, list) {
state.tabarList = list
},
},
getters: {
},
actions: {
}
})
export default store
main.js 配置
import store from './store'
Vue.prototype.$store = store
封装可以全局调用的方法,在需要的地方调用,实时改变底部导航栏
import storage from "./storage";
import store from '../store'
import tabBar from '@/untils/tabBar.js'
export default {
set(name, value) {
uni.setStorageSync(name, value);
},
get(name) {
return uni.getStorageSync(name);
},
remove(name) {
uni.removeStorageSync(name);
},
clear() {
uni.clearStorageSync();
},
changeList() {
let userInfo = storage.getJson("userInfo");
let type = "member";
if (userInfo != null) {
switch (userInfo.utype) {
case "1":
type = "member";
break;
case "2":
type = "firm";
break;
default:
break;
}
}
store.state.tabarList = tabBar[type];
},
};
在登录成功,退出账号,再次登录,或者切换身份等调用
// 只调用一次,避免二次渲染,退出登录,清除this.$storage.clear()
let isTabbar = this.$storage.get("isTabbar");
if (isTabbar == "") {
this.$storage.set("isTabbar", 1);
this.$storage.changeList()
}
版权声明
本文为[迷客]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_43106047/article/details/121487125
边栏推荐
- 国产GD芯片CAN过滤器
- Realization of character relationship visualization and question answering system in a dream of Red Mansions based on Knowledge Map
- 第五章 支持向量机(SVM)
- 3、 1 [Verilog HDL] basic syntax quick start (FPGA Development)
- 2、 Signal filtering > mean filtering and median filtering
- Reproduce the 3D density function diagram in the top issue of SCI
- 每日网安认证测试题(2022年4月13日)
- reg文件导入注册表后出现中文乱码的解决方法
- Learn SCI paper drawing skills (b)
- 2. Bat script instance
猜你喜欢
随机推荐
How to quickly "liver" high-quality slides? Recommend a latex typesetting artifact
Tensorflow基础0:文件的读取与存储
每日网安认证测试题(2022年4月13日)
Qchart使用,最终实现UI界面可添加Qweight的控件可提升为自定义的类,且只需要提升类即可实现曲线的坐标轴、新增曲线、标点,点击图例实现图线显示隐藏
Canvas drawing Luffy
shell编程时,引用相对路径的shell文件
CANopen开启PDO定时发送后心跳帧时间错误,PDO迟迟不发送,CANopen时间轴错乱
【STM32&LWIP】记录一次诡异的ping不通的解决方法
Curl command
R | create LEGO mosaic
Qt关于QMap容器释放内存笔记
Sublime Text3 安装简体中文
Qt TableWidget插入QComboBox下拉框
【ThreadX】ThreadX源码阅读计划(二)
stm32mp157 wm8960音频驱动调试笔记
Draw QQ charts with different distribution
Flat (flat lattice transformer) code implementation
ESP32 (UART 485通讯)-串口之485通讯(3)
【STM32 H7】H743各个内存块地址分布备忘
jeecg boot微服务架构图







![2、 1 [FPGA] initial FPGA](/img/72/d3e46a820796a48b458cd2d0a18f8f.png)

