From d28b68ef4613db4ce25b86aa69db5f1b4d8bc793 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: Mon, 2 Feb 2026 19:16:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AD=A6=E6=A0=A1=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E5=B1=95=E5=BC=80=E8=A1=8C=E6=97=B6=E8=87=AA=E5=8A=A8=E9=80=89?= =?UTF-8?q?=E4=B8=AD=E5=B7=A6=E4=BE=A7=E5=AF=B9=E5=BA=94=E5=8C=BA=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 展开学校/年级节点时,左侧区域树自动高亮选中该学校所属的区域 --- .../src/views/business/school/index.vue | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/frontend/ruoyi-ui/src/views/business/school/index.vue b/frontend/ruoyi-ui/src/views/business/school/index.vue index 8f7d7a2..1647c55 100644 --- a/frontend/ruoyi-ui/src/views/business/school/index.vue +++ b/frontend/ruoyi-ui/src/views/business/school/index.vue @@ -61,6 +61,7 @@ :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" :header-cell-style="{ background: '#f5f7fa', color: '#606266' }" style="width: 100%" + @expand-change="handleExpandChange" > @@ -193,6 +194,27 @@ const handleNodeClick = (data) => { getSchoolTree() } +// 表格行展开/折叠时,自动选中左侧对应区域 +const handleExpandChange = (row, expanded) => { + if (!expanded) return // 折叠时不处理 + + // 获取区域ID:学校直接取 regionId,年级/班级需要从父级学校获取 + let regionId = null + if (row.type === 'school') { + regionId = row.regionId + } else if (row.type === 'grade' || row.type === 'class') { + // 从 treeData 中查找所属学校的 regionId + const school = treeData.value.find(s => s.id === row.schoolId) + regionId = school?.regionId + } + + if (regionId) { + // 设置左侧区域树的选中状态(高亮) + treeRef.value?.setCurrentKey(regionId) + selectedRegionId.value = regionId + } +} + // 搜索 const handleQuery = () => { getSchoolTree()