mirror of
https://github.com/hicccc77/WeFlow.git
synced 2026-03-25 15:25:50 +00:00
fix(analytics): 完善群成员分析失败时的错误边界处理与UI展示
This commit is contained in:
@@ -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<string, any>[] : []
|
||||
if (rows.length === 0) break
|
||||
|
||||
|
||||
@@ -168,6 +168,7 @@ function GroupAnalyticsPage() {
|
||||
const [isExportingMemberMessages, setIsExportingMemberMessages] = useState(false)
|
||||
const [memberMessages, setMemberMessages] = useState<Message[]>([])
|
||||
const [memberAnalyticsData, setMemberAnalyticsData] = useState<any | null>(null)
|
||||
const [analyticsError, setAnalyticsError] = useState<string | null>(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() {
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
{memberAnalyticsData ? (
|
||||
{analyticsError ? (
|
||||
<div className="member-message-empty">{analyticsError}</div>
|
||||
) : memberAnalyticsData ? (
|
||||
<div className="analytics-content-scrollable" style={{ padding: '0', display: 'flex', flexDirection: 'column', flex: 1, minHeight: 0, overflowY: 'auto' }}>
|
||||
<div className="stats-overview">
|
||||
<div className="stat-card">
|
||||
|
||||
Reference in New Issue
Block a user