# 校园新闻管理系统 - 权限控制系统使用说明 ## 系统概述 该系统实现了基于角色和权限的动态路由和组件加载功能,根据用户登录后返回的菜单权限信息自动生成路由配置。 ## 核心功能 ### 1. 动态路由生成 - 根据菜单表中的 `component` 字段自动加载对应的Vue组件 - 支持目录和菜单两种类型的路由 - 自动构建菜单树结构 ### 2. 权限控制 - 路由级权限控制 - 组件级权限控制 - 指令级权限控制 ### 3. 用户认证 - JWT Token管理 - 自动刷新Token - 登录状态维护 ## 菜单表component字段说明 在菜单表中,`component` 字段用于指定路由对应的组件: ### 布局组件 - `BasicLayout` - 基础布局(侧边栏+顶部导航) - `BlankLayout` - 空白布局(仅显示内容) - `PageLayout` - 页面布局(带页面头部) ### 页面组件 - 可以使用相对路径:`dashboard/Workplace` - 可以使用绝对路径:`@/views/dashboard/Workplace.vue` - 系统会自动添加 `@/views/` 前缀和 `.vue` 扩展名 ## 权限指令使用 ### v-permission 指令 ```vue 新增用户 操作 操作 ``` ### v-role 指令 ```vue
管理员内容
管理内容
``` ## Composition API 使用 ```vue ``` ## 菜单配置示例 ```sql -- 目录类型菜单 INSERT INTO tb_sys_menu (menuID, parentID, name, url, component, type, orderNum) VALUES ('system', '0', '系统管理', '/system', 'BasicLayout', 0, 1); -- 菜单类型 INSERT INTO tb_sys_menu (menuID, parentID, name, url, component, type, orderNum) VALUES ('system-user', 'system', '用户管理', '/system/user', 'system/User', 1, 1); ``` ## 登录流程 1. 用户登录成功后,系统获取 `LoginDomain` 对象 2. 从 `LoginDomain` 中提取菜单权限信息 3. 根据菜单信息动态生成路由配置 4. 将生成的路由添加到Vue Router中 5. 用户可以访问有权限的页面 ## 路由守卫 系统自动设置了路由守卫: - 检查用户登录状态 - 验证页面访问权限 - 自动重定向到登录页或错误页 ## 错误处理 - 404页面:路由不存在 - 403页面:无权限访问 - 500页面:服务器错误 - 组件加载失败时显示错误信息 ## 开发建议 1. 菜单表中的 `component` 字段应该对应实际存在的组件文件 2. 权限控制粒度可以到按钮级别 3. 合理使用布局组件来保持UI一致性 4. 定期检查和更新权限配置 ## 注意事项 - 确保菜单表中的URL路径与实际路由匹配 - 组件文件名应该与 `component` 字段对应 - 权限代码应该与后端保持一致 - 测试时注意清除本地存储的Token