diff --git a/templates/index.html b/templates/index.html
index 3219097..1ad1791 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -3509,6 +3509,12 @@
showToast(`刷新完成!成功: ${data.success_count}, 失败: ${data.failed_count}`,
data.failed_count > 0 ? 'warning' : 'success');
+ // 如果成功列表是打开的,刷新成功列表
+ const successContainer = document.getElementById('successListContainer');
+ if (successContainer.style.display === 'block') {
+ loadSuccessLogs();
+ }
+
// 如果有失败的,显示失败列表
if (data.failed_count > 0) {
showFailedListFromData(data.failed_list);
@@ -3569,6 +3575,12 @@
// 刷新统计
loadRefreshStats();
+ // 如果成功列表是打开的,刷新成功列表
+ const successContainer = document.getElementById('successListContainer');
+ if (successContainer.style.display === 'block') {
+ loadSuccessLogs();
+ }
+
// 如果还有失败的,显示失败列表
if (data.failed_count > 0) {
showFailedListFromData(data.failed_list);
@@ -3598,6 +3610,14 @@
if (data.success) {
showToast(`${accountEmail} 刷新成功`, 'success');
loadRefreshStats();
+
+ // 如果成功列表是打开的,刷新成功列表
+ const successContainer = document.getElementById('successListContainer');
+ if (successContainer.style.display === 'block') {
+ loadSuccessLogs();
+ }
+
+ // 刷新失败列表
loadFailedLogs();
} else {
showToast(`${accountEmail} 刷新失败: ${data.error}`, 'error');
diff --git a/web_outlook_app.py b/web_outlook_app.py
index c256f0a..ba0b165 100644
--- a/web_outlook_app.py
+++ b/web_outlook_app.py
@@ -1477,10 +1477,10 @@ def api_get_failed_refresh_logs():
@app.route('/api/accounts/refresh-stats', methods=['GET'])
@login_required
def api_get_refresh_stats():
- """获取刷新统计信息(统计所有 manual 刷新记录)"""
+ """获取刷新统计信息(统计所有 manual 和 retry 刷新记录)"""
db = get_db()
- # 由于刷新前会清除旧的 manual 记录,所以直接统计所有 manual 记录即可
+ # 统计 manual 和 retry 类型的记录,这样重试成功的记录也会被统计
cursor = db.execute('''
SELECT
COUNT(*) as total,
@@ -1488,7 +1488,7 @@ def api_get_refresh_stats():
SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) as failed_count,
MAX(created_at) as last_refresh_time
FROM account_refresh_logs
- WHERE refresh_type = 'manual'
+ WHERE refresh_type IN ('manual', 'retry')
''')
stats = cursor.fetchone()