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 @@