feat: 添加路由权限控制和高级经理数据动态加载

refactor(router): 实现基于用户等级的路由守卫
feat(secondTop): 动态加载高级经理列表数据
fix(SalesTimelineWithTaskList): 修正默认职业和教育显示
perf(CustomerType): 优化图表数据绑定和交互
chore: 更新API基础路径配置
This commit is contained in:
2025-08-15 14:05:24 +08:00
parent 814961d84a
commit 88a73f5b52
6 changed files with 202 additions and 78 deletions

View File

@@ -5,6 +5,7 @@ import SeniorManager from '@/views/senorManger/seniorManager.vue'
import TopOne from '@/views/topOne/topone.vue'
import Login from '@/views/login/login.vue'
import SecondTop from '@/views/secondTop/secondTop.vue'
import { useUserStore } from '@/stores/user.js'
const routes = [
{
@@ -15,32 +16,38 @@ const routes = [
{
path: '/login',
name: 'Login',
component: Login
component: Login,
meta: { requiresAuth: false }
},
{
path: '/sale',
name: 'Sale',
component: Sale
component: Sale,
meta: { requiresAuth: true, minLevel: 1 }
},
{
path: '/manager',
name: 'Manager',
component: Manager
component: Manager,
meta: { requiresAuth: true, minLevel: 2 }
},
{
path: '/senior-manager',
name: 'SeniorManager',
component: SeniorManager
component: SeniorManager,
meta: { requiresAuth: true, minLevel: 3 }
},
{
{
path: '/second-top',
name: 'SecondTop',
component: SecondTop
component: SecondTop,
meta: { requiresAuth: true, minLevel: 4 }
},
{
{
path: '/top',
name: 'Top',
component: TopOne
component: TopOne,
meta: { requiresAuth: true, minLevel: 5 }
}
]
@@ -49,4 +56,40 @@ const router = createRouter({
routes
})
// 路由守卫
router.beforeEach((to, from, next) => {
const userStore = useUserStore()
// 如果路由不需要认证,直接通过
if (!to.meta.requiresAuth) {
next()
return
}
// 检查是否已登录
if (!userStore.isLoggedIn || !userStore.userInfo) {
next('/login')
return
}
// 检查用户等级权限
const userLevel = userStore.userInfo.user_level
const requiredLevel = to.meta.minLevel
// 用户等级必须大于等于所需等级(等级高的可以访问等级低的页面)
if (userLevel >= requiredLevel) {
next()
} else {
// 权限不足,重定向到对应等级的默认页面
const defaultRoutes = {
1: '/sale',
2: '/manager',
3: '/senior-manager',
4: '/second-top',
5: '/top'
}
next(defaultRoutes[userLevel] || '/sale')
}
})
export default router