fs-lawrisk/HIERARCHY_DEBUG_QUICK_REF.md

127 lines
3.3 KiB
Markdown
Raw Permalink Normal View 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 验证查询
如果需要直接查询数据库:
```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. 如需帮助,提供控制台输出截图