diff --git a/my-vue-app/src/router/index.js b/my-vue-app/src/router/index.js index 5cd1de9..d1fb27b 100644 --- a/my-vue-app/src/router/index.js +++ b/my-vue-app/src/router/index.js @@ -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 \ No newline at end of file diff --git a/my-vue-app/src/utils/https.js b/my-vue-app/src/utils/https.js index a674690..aef5199 100644 --- a/my-vue-app/src/utils/https.js +++ b/my-vue-app/src/utils/https.js @@ -5,7 +5,7 @@ import { useUserStore } from '@/stores/user' // 创建axios实例 const service = axios.create({ - baseURL: 'http://192.168.15.51:8890' || '', // API基础路径,支持完整URL + baseURL: 'http://192.168.15.53:8890' || '', // API基础路径,支持完整URL timeout: 100000, // 请求超时时间 headers: { 'Content-Type': 'application/json;charset=UTF-8' diff --git a/my-vue-app/src/views/person/components/SalesTimelineWithTaskList.vue b/my-vue-app/src/views/person/components/SalesTimelineWithTaskList.vue index 50b47f2..e74f809 100644 --- a/my-vue-app/src/views/person/components/SalesTimelineWithTaskList.vue +++ b/my-vue-app/src/views/person/components/SalesTimelineWithTaskList.vue @@ -56,8 +56,8 @@