fs-lawrisk/HIERARCHY_DEBUG_QUICK_REF.md

3.3 KiB
Raw Permalink Blame History

组织架构层级调试快速参考

问题描述

"三水区服务部门" 和 "佛山交通运输局" 应该显示相同的缩进(都是 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 验证查询

如果需要直接查询数据库:

-- 查看相关部门的层级关系
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. 如需帮助,提供控制台输出截图