diff --git a/electron/services/groupAnalyticsService.ts b/electron/services/groupAnalyticsService.ts index 79477ac..148f6c1 100644 --- a/electron/services/groupAnalyticsService.ts +++ b/electron/services/groupAnalyticsService.ts @@ -1531,7 +1531,9 @@ class GroupAnalyticsService { try { while (true) { const batch = await wcdbService.fetchMessageBatch(cursor) - if (!batch.success) break + if (!batch.success) { + return { success: false, error: batch.error || '获取分析数据失败' } + } const rows = Array.isArray(batch.rows) ? batch.rows as Record[] : [] if (rows.length === 0) break diff --git a/src/pages/GroupAnalyticsPage.tsx b/src/pages/GroupAnalyticsPage.tsx index a31dafc..7a6470f 100644 --- a/src/pages/GroupAnalyticsPage.tsx +++ b/src/pages/GroupAnalyticsPage.tsx @@ -168,6 +168,7 @@ function GroupAnalyticsPage() { const [isExportingMemberMessages, setIsExportingMemberMessages] = useState(false) const [memberMessages, setMemberMessages] = useState([]) const [memberAnalyticsData, setMemberAnalyticsData] = useState(null) + const [analyticsError, setAnalyticsError] = useState(null) const [memberMessagesHasMore, setMemberMessagesHasMore] = useState(false) const [memberMessagesCursor, setMemberMessagesCursor] = useState(0) const [memberMessagesLoadingMore, setMemberMessagesLoadingMore] = useState(false) @@ -570,6 +571,7 @@ function GroupAnalyticsPage() { } case 'memberAnalytics': { setMemberAnalyticsData(null) + setAnalyticsError(null) updateBackgroundTask(taskId, { detail: '正在读取成员列表与消息分析', progressText: '成员分析' @@ -611,6 +613,7 @@ function GroupAnalyticsPage() { progressText: '已完成' }) } else { + setAnalyticsError(analyticsResult.error || '分析失败') finishBackgroundTask(taskId, 'failed', { detail: analyticsResult.error || '分析失败' }) } break @@ -1434,7 +1437,9 @@ function GroupAnalyticsPage() { )} - {memberAnalyticsData ? ( + {analyticsError ? ( +
{analyticsError}
+ ) : memberAnalyticsData ? (