bugfix
This commit is contained in:
1 parent
e459d440aa
commit
b8cb87e180
2 files changed
+34
-14
No files matched your search
+30
-9
@@ -748,6 +748,8 @@
|
||||
max-height: 90vh;
|
||||
overflow-y: auto;
|
||||
box-shadow: 0 20px 60px rgba(0,0,0,0.2);
|
||||
position: relative;
|
||||
z-index: 1001;
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
@@ -1211,7 +1213,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 添加分组模态框 -->
|
||||
<div class="modal" id="addGroupModal">
|
||||
<div class="modal" id="addGroupModal" onclick="if(event.target === this) hideAddGroupModal()">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 id="groupModalTitle">添加分组</h3>
|
||||
@@ -1261,7 +1263,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 添加账号模态框 -->
|
||||
<div class="modal" id="addAccountModal">
|
||||
<div class="modal" id="addAccountModal" onclick="if(event.target === this) hideAddAccountModal()">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3>导入邮箱账号</h3>
|
||||
@@ -1288,7 +1290,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 编辑账号模态框 -->
|
||||
<div class="modal" id="editAccountModal">
|
||||
<div class="modal" id="editAccountModal" onclick="if(event.target === this) hideEditAccountModal()">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3>编辑邮箱账号</h3>
|
||||
@@ -1339,7 +1341,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 导出邮箱模态框 -->
|
||||
<div class="modal" id="exportModal">
|
||||
<div class="modal" id="exportModal" onclick="if(event.target === this) hideExportModal()">
|
||||
<div class="modal-content" style="width: 500px;">
|
||||
<div class="modal-header">
|
||||
<h3>导出邮箱</h3>
|
||||
@@ -1367,7 +1369,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 设置模态框 -->
|
||||
<div class="modal" id="settingsModal">
|
||||
<div class="modal" id="settingsModal" onclick="if(event.target === this) hideSettingsModal()">
|
||||
<div class="modal-content" style="width: 480px;">
|
||||
<div class="modal-header">
|
||||
<h3>⚙️ 系统设置</h3>
|
||||
@@ -1393,7 +1395,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Token 刷新管理模态框 -->
|
||||
<div class="modal" id="refreshModal">
|
||||
<div class="modal" id="refreshModal" onclick="if(event.target === this) hideRefreshModal()">
|
||||
<div class="modal-content" style="width: 800px; max-width: 90vw;">
|
||||
<div class="modal-header">
|
||||
<h3>🔄 Token 刷新管理</h3>
|
||||
@@ -1485,7 +1487,7 @@
|
||||
</div>
|
||||
|
||||
<!-- 获取 Refresh Token 模态框 -->
|
||||
<div class="modal" id="getRefreshTokenModal">
|
||||
<div class="modal" id="getRefreshTokenModal" onclick="if(event.target === this) hideGetRefreshTokenModal()">
|
||||
<div class="modal-content" style="width: 600px;">
|
||||
<div class="modal-header">
|
||||
<h3>🔑 获取 Refresh Token</h3>
|
||||
@@ -3411,8 +3413,27 @@
|
||||
|
||||
// 隐藏刷新模态框
|
||||
function hideRefreshModal() {
|
||||
document.getElementById('refreshModal').classList.remove('show');
|
||||
// 不隐藏列表,保留上次的数据
|
||||
const modal = document.getElementById('refreshModal');
|
||||
modal.classList.remove('show');
|
||||
|
||||
// 确保进度条被隐藏
|
||||
const progress = document.getElementById('refreshProgress');
|
||||
if (progress) {
|
||||
progress.style.display = 'none';
|
||||
}
|
||||
|
||||
// 重置按钮状态
|
||||
const refreshAllBtn = document.getElementById('refreshAllBtn');
|
||||
if (refreshAllBtn) {
|
||||
refreshAllBtn.disabled = false;
|
||||
refreshAllBtn.textContent = '🔄 全量刷新';
|
||||
}
|
||||
|
||||
const retryFailedBtn = document.getElementById('retryFailedBtn');
|
||||
if (retryFailedBtn) {
|
||||
retryFailedBtn.disabled = false;
|
||||
retryFailedBtn.textContent = '🔁 重试失败';
|
||||
}
|
||||
}
|
||||
|
||||
// 加载刷新统计
|
||||
|
||||
+4
-5
@@ -1247,9 +1247,9 @@ def api_refresh_all_accounts():
|
||||
conn.row_factory = sqlite3.Row
|
||||
|
||||
try:
|
||||
# 清除之前的全量刷新记录(只保留最近一次)
|
||||
# 清除之前的所有刷新记录(只保留最近一次全量刷新)
|
||||
try:
|
||||
conn.execute("DELETE FROM account_refresh_logs WHERE refresh_type = 'manual'")
|
||||
conn.execute("DELETE FROM account_refresh_logs")
|
||||
conn.commit()
|
||||
except Exception as e:
|
||||
print(f"清除旧记录失败: {str(e)}")
|
||||
@@ -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 和 retry 刷新记录)"""
|
||||
"""获取刷新统计信息(统计所有类型的刷新记录)"""
|
||||
db = get_db()
|
||||
|
||||
# 统计 manual 和 retry 类型的记录,这样重试成功的记录也会被统计
|
||||
# 统计所有类型的刷新记录,不限制 refresh_type
|
||||
cursor = db.execute('''
|
||||
SELECT
|
||||
COUNT(*) as total,
|
||||
@@ -1488,7 +1488,6 @@ 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 IN ('manual', 'retry')
|
||||
''')
|
||||
|
||||
stats = cursor.fetchone()
|
||||
|
||||
Reference in new issue
Block a user