From 9eb2a54573c967454eff6c0f1301a2885f346467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A5=9E=E7=A0=81-=E6=96=B9=E6=99=93=E8=BE=89?= Date: Sun, 1 Feb 2026 13:13:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AD=A6=E7=94=9F?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=AD=A6=E6=A0=A1=E6=A0=91=E6=97=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Bug描述 学生管理页面左侧学校列表显示空白(只显示图标),点击学校节点无法筛选数据 ## 问题分析 ### 根本原因:前后端字段名不匹配 **后端API返回数据结构**: ```json { "id": 4, "type": "school", "name": "武昌实验小学", // ← 实际字段名 "children": [] } ``` **前端el-tree配置**: ```vue :props="{ label: 'label', children: 'children' }" // ← 期望label字段 ``` 因为数据中没有`label`字段,el-tree无法显示节点文本,导致只显示图标。 ### Bug影响范围 1. ❌ 学校树节点显示空白(只有图标) 2. ❌ 搜索功能失效(filterNode使用data.label) 3. ❌ 点击节点可以触发但数据为空 ## 修复内容 ### 1. 修正el-tree props配置 ```vue :props="{ label: 'label', children: 'children' }" :props="{ label: 'name', children: 'children' }" ``` ### 2. 修正过滤方法 ```javascript // 修复前 ❌ function filterNode(value, data) { if (!value) return true return data.label.includes(value) } // 修复后 ✅ function filterNode(value, data) { if (!value) return true return data.name.includes(value) } ``` ## 验证结果 - ✅ 学校树API正常:/api/school/tree (200 OK, 104条学校) - ✅ 学校树显示:武昌实验小学、武昌区水果湖第一小学... - ✅ 搜索功能:输入"武昌"可正常过滤 - ✅ 点击筛选:点击学校节点可正常筛选学生列表 ## 数据结构说明 **学校树节点结构**: ```javascript { id: 4, // 节点ID type: 'school', // 节点类型:school/grade/class name: '武昌实验小学', // 节点名称 ← 关键字段 code: 'SCH20260101', // 学校编码 regionPath: '湖北省-武汉市-武昌区', children: [] // 子节点(年级/班级) } ``` --- 作者:湖北新华业务中台研发团队 --- pangu-ui/src/views/student/components/SchoolTree.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pangu-ui/src/views/student/components/SchoolTree.vue b/pangu-ui/src/views/student/components/SchoolTree.vue index 9c71f2a..b97ef4f 100644 --- a/pangu-ui/src/views/student/components/SchoolTree.vue +++ b/pangu-ui/src/views/student/components/SchoolTree.vue @@ -22,7 +22,7 @@