From c4dc266f93e5560c1e133dfe437b72ad5da33308 Mon Sep 17 00:00:00 2001 From: xuncha <1658671838@qq.com> Date: Thu, 19 Feb 2026 18:05:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E9=99=A4=E5=A5=BD=E5=8F=8B=E9=98=B2?= =?UTF-8?q?=E5=91=86=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 4 ++-- package.json | 2 +- src/pages/AnalyticsPage.scss | 8 +++++++- src/pages/AnalyticsPage.tsx | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 84cdacd..58bbb42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "weflow", - "version": "2.0.1", + "version": "2.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "weflow", - "version": "2.0.1", + "version": "2.1.0", "hasInstallScript": true, "dependencies": { "better-sqlite3": "^12.5.0", diff --git a/package.json b/package.json index 155eeb1..8bba440 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "weflow", - "version": "2.0.1", + "version": "2.1.0", "description": "WeFlow", "main": "dist-electron/main.js", "author": "cc", diff --git a/src/pages/AnalyticsPage.scss b/src/pages/AnalyticsPage.scss index 81102df..73d7ca9 100644 --- a/src/pages/AnalyticsPage.scss +++ b/src/pages/AnalyticsPage.scss @@ -45,6 +45,12 @@ font-weight: 600; color: var(--primary); } + + .error-actions { + display: flex; + align-items: center; + gap: 8px; + } } .page-header { @@ -521,4 +527,4 @@ display: flex; gap: 8px; } -} \ No newline at end of file +} diff --git a/src/pages/AnalyticsPage.tsx b/src/pages/AnalyticsPage.tsx index df8a6c7..1557679 100644 --- a/src/pages/AnalyticsPage.tsx +++ b/src/pages/AnalyticsPage.tsx @@ -108,6 +108,7 @@ function AnalyticsPage() { }, [loadExcludedUsernames]) const handleRefresh = () => loadData(true) + const isNoSessionError = error?.includes('未找到消息会话') ?? false const loadExcludeCandidates = useCallback(async () => { setExcludeLoading(true) @@ -175,6 +176,23 @@ function AnalyticsPage() { } } + const handleResetExcluded = async () => { + try { + const result = await window.electronAPI.analytics.setExcludedUsernames([]) + if (!result.success) { + setError(result.error || '重置排除好友失败') + return + } + setExcludedUsernames(new Set()) + setDraftExcluded(new Set()) + clearCache() + await window.electronAPI.cache.clearAnalytics() + await loadData(true) + } catch (e) { + setError(`重置排除好友失败: ${String(e)}`) + } + } + const visibleExcludeCandidates = excludeCandidates .filter((candidate) => { const query = excludeQuery.trim().toLowerCase() @@ -355,6 +373,22 @@ function AnalyticsPage() { ) } + if (error && !isLoaded && isNoSessionError && excludedUsernames.size > 0) { + return ( +
+

{error}

+
+ + +
+
+ ) + } + if (error && !isLoaded) { return (

{error}

) }