修复: P1-b Dashboard统计源解耦(治翻页/筛选后统计数字错乱 H6/H7)
- 统计走后端 count_tasks 独立通道,不再 filter(state.tasks) 当前页数据 - state 加 activeTaskCount/projectTaskCounts 缓存,loadStats action 并发 count 填充 + df-data-changed task 分支联动刷新 - Dashboard loadAll 删 loadTasks 改 loadStats(不再消费 state.tasks 全量) - ActiveProjectsPanel getProjectTaskCount 改读 store.projectTaskCounts - 后端零改(复用已注册 count_tasks IPC + count_by_query)
This commit is contained in:
@@ -60,14 +60,19 @@ const { t } = useI18n()
|
||||
const loading = ref(false)
|
||||
const errorMsg = ref('')
|
||||
|
||||
// 统一加载入口(projects/tasks/ideas 并行),管理 loading + errorMsg
|
||||
// 统一加载入口(projects/ideas 并行 + 统计独立通道),管理 loading + errorMsg
|
||||
// refresh 与 onMounted 共用,避免两处 catch 逻辑重复
|
||||
// P1-b A0:不再调 store.loadTasks() —— Dashboard 模板不消费 state.tasks,
|
||||
// 统计(activeTaskCount/projectTaskCounts)走 loadStats() 独立通道(后端 count_tasks),
|
||||
// 不被 Tasks 视图分页/筛选污染。Tasks.vue 自行 loadTasks(onMounted/筛选/变更)。
|
||||
// loadStats 依赖 state.projects(算 projectTaskCounts),故 loadProjects 完成后再调。
|
||||
async function loadAll() {
|
||||
if (loading.value) return // 防重复触发
|
||||
loading.value = true
|
||||
errorMsg.value = ''
|
||||
try {
|
||||
await Promise.all([store.loadProjects(), store.loadTasks(), store.loadIdeas()])
|
||||
await Promise.all([store.loadProjects(), store.loadIdeas()])
|
||||
await store.loadStats()
|
||||
} catch (e: any) {
|
||||
console.error('Dashboard load failed:', e)
|
||||
errorMsg.value = e?.toString() ?? t('dashboard.err.loadFailed')
|
||||
|
||||
Reference in New Issue
Block a user