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()
|
|
}
|
|
}
|