# 改名方案页面无数据问题排查指南 ## 问题现象 前端页面 `module_yifan/yifan_naming_solutions` 显示"暂无数据" ## 可能原因及解决方案 ### 1. 数据库中没有测试数据(最可能) **排查方法:** ```sql -- 检查表中是否有数据 SELECT COUNT(*) FROM yifan_naming_solutions; -- 查看所有数据 SELECT * FROM yifan_naming_solutions; -- 查看启用状态的数据 SELECT * FROM yifan_naming_solutions WHERE status = 0; ``` **解决方案:** 执行测试数据插入脚本: ```bash mysql -u your_username -p your_database < backend/sql/yifan_naming_solutions_test_data.sql ``` **注意事项:** - 插入数据前需要确保 `yifan_naming_reports` 表中有对应的 `report_id` - 如果没有报告数据,需要先创建报告记录 - `status` 字段:0=启用,1=停用 - `is_deleted` 字段:0=未删除,1=已删除 ### 2. 查询条件过滤了所有数据 **排查方法:** 检查前端页面的默认查询条件: - 打开浏览器开发者工具 -> Network 标签 - 刷新页面,查看 `/yifan/yifan_naming_solutions/list` 请求 - 检查请求参数中是否有意外的筛选条件 **常见问题:** - `status` 参数可能默认筛选了停用状态 - `is_deleted` 参数可能筛选了已删除数据 - 时间范围筛选可能过于严格 **解决方案:** 点击页面上的"重置"按钮,清除所有筛选条件后再查询 ### 3. 权限问题 **排查方法:** ```sql -- 检查用户是否有查询权限 SELECT * FROM sys_role_permission WHERE permission_code = 'module_yifan:yifan_naming_solutions:query'; -- 检查当前用户的角色权限 SELECT r.* FROM sys_role r JOIN sys_user_role ur ON r.id = ur.role_id WHERE ur.user_id = YOUR_USER_ID; ``` **解决方案:** - 使用管理员账号登录 - 或者为当前用户分配 `module_yifan:yifan_naming_solutions:query` 权限 ### 4. 后端服务问题 **排查方法:** 查看后端日志: ```bash # 查看最近的日志 tail -f backend/logs/app.log # 搜索相关错误 grep "yifan_naming_solutions" backend/logs/app.log ``` **常见错误:** - 数据库连接失败 - SQL 语法错误 - 模型字段映射错误 ### 5. 前端 API 调用问题 **排查方法:** 1. 打开浏览器开发者工具 -> Console 标签 2. 查看是否有 JavaScript 错误 3. 检查 Network 标签中的 API 响应 **常见问题:** - API 路径错误(404) - 认证失败(401) - 权限不足(403) - 服务器错误(500) ## 快速测试步骤 ### 步骤 1:检查数据库 ```sql -- 1. 检查表是否存在 SHOW TABLES LIKE 'yifan_naming_solutions'; -- 2. 检查表结构 DESC yifan_naming_solutions; -- 3. 检查数据量 SELECT COUNT(*) as total, SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) as enabled, SUM(CASE WHEN is_deleted = 0 THEN 1 ELSE 0 END) as not_deleted FROM yifan_naming_solutions; ``` ### 步骤 2:插入测试数据 ```sql -- 简单的测试数据(假设 report_id=1 存在) INSERT INTO yifan_naming_solutions (report_id, name, pinyin, total_score, star_rating, wuxing, shuxiang, tags, name_meaning, is_recommended, sort_order, status, is_deleted) VALUES (1, '测试名字', 'Ce Shi Ming Zi', 90, 4, '金木', '龙', '["测试标签"]', '这是一个测试方案', 0, 1, 0, 0); ``` ### 步骤 3:测试 API 使用 curl 或 Postman 测试: ```bash # 获取列表(需要替换 TOKEN) curl -X GET "http://localhost:8000/yifan/yifan_naming_solutions/list?page_no=1&page_size=10" \ -H "Authorization: Bearer YOUR_TOKEN" ``` ### 步骤 4:检查前端 1. 清除浏览器缓存 2. 刷新页面 3. 点击"重置"按钮 4. 点击"查询"按钮 ## 推荐的解决顺序 1. **首先**:执行 SQL 查询检查数据库中是否有数据 2. **如果没有数据**:执行测试数据插入脚本 3. **如果有数据但页面不显示**:检查前端筛选条件 4. **如果还是不行**:检查后端日志和权限配置 5. **最后**:检查前端 Console 和 Network 是否有错误 ## 联系支持 如果以上方法都无法解决问题,请提供以下信息: 1. 数据库查询结果截图 2. 浏览器 Network 标签的 API 请求/响应截图 3. 后端日志中的相关错误信息 4. 前端 Console 中的错误信息