From 1b812bc9c998e3958be147660cc0112e081229b6 Mon Sep 17 00:00:00 2001 From: chenxing Date: Fri, 9 Oct 2026 15:33:26 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=88=87=E6=8D=A2=E8=BA=AB=E4=BB=BD?= =?UTF-8?q?=E8=81=94=E5=8A=A8):=20=E6=B6=88=E6=81=AF=E8=A7=92=E6=A0=87/?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=A1=B5/=E8=AE=BE=E7=BD=AE=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E9=9A=8F=E8=BA=AB=E4=BB=BD=E5=88=87=E6=8D=A2=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E9=87=8D=E6=8B=89=E2=80=94=E2=80=94Header=20=E6=91=98?= =?UTF-8?q?=E8=A6=81=E6=8C=82=20switchRole=E3=80=81msg=20=E9=A1=B5?= =?UTF-8?q?=E4=B8=8E=20Settings=20pane=20watch=20curRoleUid=EF=BC=88?= =?UTF-8?q?=E6=A1=8C=E9=9D=A2/=E5=BA=94=E7=94=A8=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E6=97=A2=E6=9C=89=E6=9C=BA=E5=88=B6=E4=B8=8D=E5=8F=98=EF=BC=89?= =?UTF-8?q?=EF=BC=8C=E6=97=A0=E9=9C=80=E6=89=8B=E5=8A=A8=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Header.vue | 7 +++++++ src/views/Settings.vue | 28 ++++++++++++++++++++++++++++ src/views/msg/index.vue | 8 +++++++- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/components/Header.vue b/src/components/Header.vue index 4b0658e..f698f74 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -421,9 +421,16 @@ onMounted(async () => { }); onUnmounted(() => { mittBus.off("searchReset"); + mittBus.off("switchRole", onSwitchRoleRefresh); window.removeEventListener("keydown", onCmdkKeydown); closeMsgWs(); }); + +// 切换身份后角标随新身份学校口径刷新(emit 在 savUserRole 落库之后,服务端 identity/current 已是新校) +function onSwitchRoleRefresh() { + loadSummary(); +} +mittBus.on("switchRole", onSwitchRoleRefresh); // 面板已是模态框,输入只驱动面板自身过滤; // 不再 emit("searchChange") —— 背景应用网格保持原样(2026-10-08 用户修订 1) watch(searchAppText, () => { diff --git a/src/views/Settings.vue b/src/views/Settings.vue index 42207d6..0e5f4cf 100644 --- a/src/views/Settings.vue +++ b/src/views/Settings.vue @@ -1923,6 +1923,34 @@ async function loadStatsList() { } } +// ===== 切换身份联动(2026-10-09):设置中心各 pane 的学校维度数据随 curRoleUid 重拉 ===== +// 桌面/应用中心等路由页已 watch curRoleUid 联动,此处补齐设置中心;仅刷新当前激活 pane(其余 pane 打开时本就走懒加载) +watch(() => store.curRoleUid, () => reloadActivePane()); + +function reloadActivePane() { + const pane = curPane.value; + if (pane === "wallpaper") { + if (isAdmin.value) { + loadManageLists(); + loadWallDefault(); + } else { + loadMyWallpaperList(); + } + } + if (pane === "logo" && isAdmin.value) { + loadManageLists(); + loadLogoText(); + } + if (pane === "theme" && isAdmin.value) loadLayerTheme(); + if (pane === "avatar" && isAdmin.value) loadLayerAvatar(); + if (pane === "desktop") { + if (isAdmin.value) loadDeskDefault(); + else loadMyDesk(); + } + if (pane === "sidebar") loadSidebarList(); + if (pane === "statset") loadStatsList(); +} + function onStatsCheckAll() { statsForm.roleIds = !statsAllChecked.value ? RoleTypeDict.map(item => item.k as number) : []; } diff --git a/src/views/msg/index.vue b/src/views/msg/index.vue index 829e613..6ba3005 100644 --- a/src/views/msg/index.vue +++ b/src/views/msg/index.vue @@ -110,7 +110,7 @@