From ad6bdc193eb086b80ea239515b94822bb93cdcc3 Mon Sep 17 00:00:00 2001 From: cfdaily Date: Thu, 21 May 2026 08:17:23 +0800 Subject: [PATCH] auto-sync: 2026-05-21 08:17:23 --- src/frontend/src/store.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/frontend/src/store.ts b/src/frontend/src/store.ts index cd9a18c..7f1a86e 100644 --- a/src/frontend/src/store.ts +++ b/src/frontend/src/store.ts @@ -372,7 +372,7 @@ export const useStore = create((set, get) => ({ // v2.6: 多项目 projects: {}, - selectedProjectId: null, + selectedProjectId: (() => { try { const v = localStorage.getItem('selectedProjectId'); return v !== null ? v : ''; } catch { return ''; } })(), // v2.6: 原生 V2Task v2tasks: [], @@ -507,13 +507,18 @@ export const useStore = create((set, get) => ({ // 同步项目列表 const projects = (data.syncStatus as any)?.projects?.projects || {}; set({ projects }); - // 自动选择第一个项目 + // 自动选择:仅在 localStorage 无记录时 const s = get(); - if (!s.selectedProjectId && s.selectedProjectId !== '' && s.selectedProjectId !== '_general' && Object.keys(projects).length > 0) { - const realPids = Object.keys(projects).filter(p => !p.startsWith('_')); - const firstPid = realPids[0] || Object.keys(projects)[0]; + const savedPid = localStorage.getItem('selectedProjectId'); + if (savedPid === null && Object.keys(projects).length > 0) { + const realPids = Object.keys(projects).filter((p: string) => !p.startsWith('_')); + const firstPid = realPids[0] || Object.keys(projects)[0] || ''; set({ selectedProjectId: firstPid }); setApiProjectId(firstPid); + try { localStorage.setItem('selectedProjectId', firstPid); } catch {} + } else if (savedPid !== null && s.selectedProjectId !== savedPid) { + set({ selectedProjectId: savedPid }); + setApiProjectId(savedPid); } // Also preload officials for monitor tab if (!s.officialsData) {