|
|
- import AdminTabBar from '../../wxcomponents/admin-tabr/admin-tabar'
- import UserTabBar from '../../wxcomponents/user-tabar/user-tabar'
-
- export default {
- components: {
- AdminTabBar,
- UserTabBar
- },
- data() {
- return {
- userRole: '',
- isTabBarVisible: true,
- currentPath: '',
- tabBarIndex: 0
- }
- },
- computed: {
- isAdmin() {
- return this.userRole === 'admin'
- },
- shouldShowTabBar() {
- const tabBarPages = [
- '/pages/component/admin_home',
- '/pages/component/role_management',
- '/pages/component/admin_my'
- ]
- return tabBarPages.includes(this.currentPath)
- }
- },
- methods: {
- async checkUserRole() {
- try {
- const userInfo = uni.getStorageSync('userInfo')
- if (userInfo && userInfo.role) {
- this.userRole = userInfo.role
- } else {
- this.userRole = 'user'
- }
- } catch (e) {
- console.error('获取用户角色失败:', e)
- this.userRole = 'user'
- }
- },
- updateCurrentPath() {
- const pages = getCurrentPages()
- if (pages.length > 0) {
- const currentPage = pages[pages.length - 1]
- console.log(currentPage,'text');
- this.currentPath = '/' + currentPage.route
- this.isTabBarVisible = this.shouldShowTabBar
- console.log('当前页面路径:', this.currentPath)
- }
- },
- hideTabBar() {
- this.isTabBarVisible = false
- },
- showTabBar() {
- this.isTabBarVisible = this.shouldShowTabBar
- },
- switchTab(index) {
- const routes = ['pages/index/index', 'pages/role-management/role-management', 'pages/my/my']
- if (!this.isAdmin && index === 1) {
- uni.showToast({
- title: '无权限访问',
- icon: 'none'
- })
- return
- }
-
- this.tabBarIndex = index
- uni.switchTab({
- url: '/' + routes[index]
- })
- }
- },
- onShow() {
- this.checkUserRole()
- this.updateCurrentPath()
- // 获取当前页面路径,设置正确的tabBarIndex
- const pages = getCurrentPages()
- const currentPage = pages[pages.length - 1]
- const route = currentPage.route
- const routes = ['pages/index/index', 'pages/role-management/role-management', 'pages/my/my']
- this.tabBarIndex = routes.findIndex(r => r === route)
- },
- onLoad() {
- this.checkUserRole()
- this.updateCurrentPath()
- },
- mounted() {
- this.checkUserRole()
- this.updateCurrentPath()
- }
- }
|