diff --git a/dashboard/src/layouts/full/vertical-header/VerticalHeader.vue b/dashboard/src/layouts/full/vertical-header/VerticalHeader.vue index 613771860..b552670c3 100644 --- a/dashboard/src/layouts/full/vertical-header/VerticalHeader.vue +++ b/dashboard/src/layouts/full/vertical-header/VerticalHeader.vue @@ -27,6 +27,7 @@ const customizer = useCustomizerStore(); const theme = useTheme(); const { t } = useI18n(); const route = useRoute(); +const LAST_BOT_ROUTE_KEY = 'astrbot:last_bot_route'; let dialog = ref(false); let accountWarning = ref(false) let updateStatusDialog = ref(false); @@ -402,15 +403,32 @@ const viewMode = computed({ }); // 监听 viewMode 变化,切换到 bot 模式时跳转到首页 -watch(() => customizer.viewMode, (newMode, oldMode) => { - if (newMode === 'bot' && oldMode === 'chat') { - // 从 chat 模式切换到 bot 模式时,跳转到首页 - if (route.path !== '/') { - router.push('/'); +// 保存 bot 模式的最後路由 +// 監聽 route 變化,保存最後一次 bot 路由 +watch(() => route.fullPath, (newPath) => { + if (customizer.viewMode === 'bot' && typeof window !== 'undefined') { + try { + localStorage.setItem(LAST_BOT_ROUTE_KEY, newPath); + } catch (e) { + console.error('Failed to save last bot route to localStorage:', e); } } }); +// 監聽 viewMode 切換 +watch(() => customizer.viewMode, (newMode, oldMode) => { + if (newMode === 'bot' && oldMode === 'chat' && typeof window !== 'undefined') { + // 從 chat 切換回 bot,跳轉到最後一次的 bot 路由 + let lastBotRoute = '/'; + try { + lastBotRoute = localStorage.getItem(LAST_BOT_ROUTE_KEY) || '/'; + } catch (e) { + console.error('Failed to read last bot route from localStorage:', e); + } + router.push(lastBotRoute); + } +}); + // Merry Christmas! 🎄 const isChristmas = computed(() => { const today = new Date();