# 组织架构层级调试快速参考 ## 问题描述 "三水区服务部门" 和 "佛山交通运输局" 应该显示相同的缩进(都是 Level 1),但前端显示不一致。 ## 已添加的调试功能 ### ✅ 前端调试日志 (已添加到 super_admin.html) 在浏览器控制台会看到: - `=== 组织架构层级调试 ===` - API 返回的完整树形结构 - `扁平化节点数量` - 所有节点的 level 值 - `🔍 渲染节点` - 每个节点渲染时的详细信息 - `=== 渲染完成 ===` - 包含"交通运输"和"三水"的部门列表 ## 快速测试步骤 ### 1️⃣ 清除缓存(必须) ``` Ctrl + Shift + Delete → 清除"缓存的图片和文件" ``` ### 2️⃣ 强制刷新 ``` Ctrl + F5 ``` ### 3️⃣ 打开开发者工具 ``` F12 → Console 标签 ``` ### 4️⃣ 查找关键信息 在控制台中搜索: - `"佛山交通运输局"` - `"三水区服务部门"` - `"交通运输"` (查看所有包含此关键词的部门) ## 预期的正确输出 ``` 扁平化节点数量: XX 所有节点 level 值: [Level 0] 市级服务部门 (ID: xxx, Parent: root) [Level 1] 三水区服务部门 (ID: xxx, Parent: 市级服务部门的ID) ✅ [Level 1] 佛山交通运输局 (ID: xxx, Parent: 市级服务部门的ID) ✅ ``` ``` 🔍 渲染节点: "三水区服务部门" - level: 1 - indent: 30px 🔍 渲染节点: "佛山交通运输局" - level: 1 - indent: 30px ``` ## 如果看到错误的输出 ### 情况 1: Level 不一致 ``` [Level 1] 三水区服务部门 [Level 2] 佛山交通运输局 ❌ 错误! ``` → **问题**: API 返回的数据不正确 → **解决**: 需要修复数据库 ### 情况 2: Indent 不一致 ``` 🔍 渲染节点: "三水区服务部门" - indent: 30px 🔍 渲染节点: "佛山交通运输局" - indent: 60px ❌ 错误! ``` → **问题**: 前端渲染逻辑错误 → **解决**: 检查 `renderOrgListNode` 函数 ### 情况 3: 部门名称不匹配 ``` 部门名称中包含"交通运输"的节点: - 佛山市交通运输局 (Level: 1) ← 注意是"佛山市"不是"佛山" ``` → **问题**: 数据库中的部门名称与用户看到的不一致 → **解决**: 确认数据库中实际的部门名称 ## SQL 验证查询 如果需要直接查询数据库: ```sql -- 查看相关部门的层级关系 SELECT sd.id, sd.name, sd.code, sd.parent_id, parent.name as parent_name, sd.unit_level FROM service_departments sd LEFT JOIN service_departments parent ON sd.parent_id = parent.id WHERE sd.name LIKE '%交通运输%' OR sd.name LIKE '%三水%' ORDER BY sd.name; ``` ## 常见问题速查表 | 症状 | 可能原因 | 解决方案 | |------|----------|----------| | 清除缓存后问题仍存在 | API 数据错误 | 检查 Network 标签的响应 | | 控制台无调试输出 | 代码未加载 | 强制刷新 (Ctrl+F5) | | API 数据正确但显示错误 | 前端渲染问题 | 检查 level 参数传递 | | 找不到"佛山交通运输局" | 部门名称不一致 | 查询数据库确认名称 | ## 关键文件位置 - 前端: `static/super_admin.html` (第 2602-2625 行) - API: `lawrisk/api/v2.py` (第 545-556 行) - 数据逻辑: `lawrisk/services/licensing_repo.py` (第 2190-2224 行) ## 下一步 1. 按照上述步骤测试 2. 记录控制台输出 3. 根据输出结果决定修复方案 4. 如需帮助,提供控制台输出截图