Files
hzdyjs/班级信息管理菜单修复脚本.sql
T

140 lines
4.6 KiB
SQL

-- ==========================================
-- 班级信息管理菜单权限修复脚本
-- 版本:V1.0.0
-- 创建时间:2025-01-21
-- 说明:修复班级信息管理菜单的组件路径和权限标识不匹配问题
-- ==========================================
SET NAMES utf8mb4;
-- ==========================================
-- 问题描述
-- ==========================================
-- 1. 组件路径错误:数据库中是 'xg/class/info/index',实际前端文件在 'xg-xx/classInfo/index'
-- 2. 权限标识不匹配:数据库中是 'xg:class:*',后端API使用 'xg:classInfo:*'
-- ==========================================
-- 修复方案1:更新数据库菜单配置(推荐)
-- ==========================================
-- 1. 修复班级信息管理主菜单的组件路径
UPDATE `sys_menu`
SET `component` = 'xg-xx/classInfo/index'
WHERE `menu_name` = '班级信息管理'
AND `component` = 'xg/class/info/index'
AND `menu_type` = 'C';
-- 2. 修复权限标识:将 xg:class:* 更新为 xg:classInfo:*
UPDATE `sys_menu`
SET `perms` = 'xg:classInfo:list'
WHERE `perms` = 'xg:class:list';
UPDATE `sys_menu`
SET `perms` = 'xg:classInfo:query'
WHERE `perms` = 'xg:class:query';
UPDATE `sys_menu`
SET `perms` = 'xg:classInfo:add'
WHERE `perms` = 'xg:class:add';
UPDATE `sys_menu`
SET `perms` = 'xg:classInfo:edit'
WHERE `perms` = 'xg:class:edit';
UPDATE `sys_menu`
SET `perms` = 'xg:classInfo:remove'
WHERE `perms` = 'xg:class:remove';
UPDATE `sys_menu`
SET `perms` = 'xg:classInfo:export'
WHERE `perms` = 'xg:class:export';
-- 3. 其他班级相关权限标识修复
UPDATE `sys_menu`
SET `perms` = 'xg:classInfo:config'
WHERE `perms` = 'xg:class:config';
UPDATE `sys_menu`
SET `perms` = 'xg:classInfo:cadre'
WHERE `perms` = 'xg:class:cadre';
UPDATE `sys_menu`
SET `perms` = 'xg:classInfo:statistics'
WHERE `perms` = 'xg:class:statistics';
UPDATE `sys_menu`
SET `perms` = 'xg:classInfo:detail'
WHERE `perms` = 'xg:class:detail';
UPDATE `sys_menu`
SET `perms` = 'xg:classInfo:member'
WHERE `perms` = 'xg:class:member';
-- ==========================================
-- 验证修复结果
-- ==========================================
-- 查看修复后的班级信息管理菜单配置
SELECT
menu_id,
menu_name,
parent_id,
path,
component,
perms,
menu_type,
visible,
status
FROM `sys_menu`
WHERE (menu_name LIKE '%班级%' AND menu_type IN ('C', 'F'))
OR (perms LIKE '%classInfo%')
ORDER BY parent_id, order_num;
-- ==========================================
-- 备选方案2:如果需要保持数据库配置不变,则需要修复前端
-- ==========================================
-- 以下是需要在前端进行的修改(注释说明):
/*
方案2修改内容:
1. 修改前端页面组件权限标识:
将前端页面中的权限标识从 'xg:classInfo:*' 改为 'xg:class:*'
文件:web/src/views/xg-xx/classInfo/index.vue
修改内容:
- v-hasPermi="['xg:classInfo:add']" → v-hasPermi="['xg:class:add']"
- v-hasPermi="['xg:classInfo:edit']" → v-hasPermi="['xg:class:edit']"
- v-hasPermi="['xg:classInfo:remove']" → v-hasPermi="['xg:class:remove']"
- v-hasPermi="['xg:classInfo:export']" → v-hasPermi="['xg:class:export']"
- v-hasPermi="['xg:classInfo:query']" → v-hasPermi="['xg:class:query']"
2. 修改后端API权限注解:
将后端控制器中的权限注解从 'xg:classInfo:*' 改为 'xg:class:*'
文件:backend/ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/controller/XgClassInfoController.java
修改内容:
- @SaCheckPermission("xg:classInfo:list") → @SaCheckPermission("xg:class:list")
- @SaCheckPermission("xg:classInfo:export") → @SaCheckPermission("xg:class:export")
- @SaCheckPermission("xg:classInfo:query") → @SaCheckPermission("xg:class:query")
- @SaCheckPermission("xg:classInfo:add") → @SaCheckPermission("xg:class:add")
- @SaCheckPermission("xg:classInfo:edit") → @SaCheckPermission("xg:class:edit")
- @SaCheckPermission("xg:classInfo:remove") → @SaCheckPermission("xg:class:remove")
3. 创建正确的组件路径文件:
在前端创建目录:web/src/views/xg/class/info/
将现有文件 web/src/views/xg-xx/classInfo/index.vue
复制到 web/src/views/xg/class/info/index.vue
*/
-- ==========================================
-- 推荐使用方案1:修改数据库配置
-- 理由:
-- 1. 避免大量代码修改
-- 2. 保持代码一致性
-- 3. 减少维护成本
-- 4. 符合当前开发规范
-- ==========================================
SELECT '班级信息管理菜单权限修复完成!请重新启动后端服务并刷新前端页面' as result;