auto-sync: 2026-05-17 13:22:49
This commit is contained in:
@@ -478,17 +478,29 @@ export const useStore = create<AppStore>((set, get) => ({
|
|||||||
}, 3000);
|
}, 3000);
|
||||||
},
|
},
|
||||||
|
|
||||||
// v2.6: 加载项目任务列表
|
// v2.6: 加载项目任务列表(含聚合统计)
|
||||||
loadV2Tasks: async () => {
|
loadV2Tasks: async () => {
|
||||||
const pid = get().selectedProjectId;
|
const pid = get().selectedProjectId;
|
||||||
if (!pid) { set({ v2tasks: [] }); return; }
|
if (!pid) { set({ v2tasks: [] }); return; }
|
||||||
set({ v2tasksLoading: true });
|
set({ v2tasksLoading: true });
|
||||||
try {
|
try {
|
||||||
|
// 获取任务列表
|
||||||
const res = await fetch(`/api/projects/${pid}/tasks`);
|
const res = await fetch(`/api/projects/${pid}/tasks`);
|
||||||
if (res.ok) {
|
if (!res.ok) { set({ v2tasks: [], v2tasksLoading: false }); return; }
|
||||||
const data = await res.json();
|
const data = await res.json();
|
||||||
set({ v2tasks: data.tasks || [] });
|
const tasks = data.tasks || [];
|
||||||
}
|
// 批量获取聚合字段(comments_count, outputs_count, review_status, latest_event)
|
||||||
|
const enriched = await Promise.all(tasks.map(async (t: any) => {
|
||||||
|
try {
|
||||||
|
const r = await fetch(`/api/projects/${pid}/tasks/${t.id}`);
|
||||||
|
if (r.ok) {
|
||||||
|
const detail = await r.json();
|
||||||
|
return { ...t, ...detail };
|
||||||
|
}
|
||||||
|
} catch { /* skip enrichment */ }
|
||||||
|
return t;
|
||||||
|
}));
|
||||||
|
set({ v2tasks: enriched });
|
||||||
} catch { /* silently fail */ }
|
} catch { /* silently fail */ }
|
||||||
finally { set({ v2tasksLoading: false }); }
|
finally { set({ v2tasksLoading: false }); }
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user