diff --git a/templates/index.html b/templates/index.html index ebd195b..3e59b9a 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1097,11 +1097,13 @@ box-shadow: 0 4px 20px rgba(0,0,0,0.15); min-width: 300px; text-align: center; + pointer-events: none; } .toast.show { opacity: 1; transform: translateX(-50%) translateY(0); + pointer-events: auto; } .toast.success { @@ -1224,6 +1226,7 @@ Outlook 邮件 + ⭐️ 如果觉得有帮助请帮忙点个 Star `; + } finally { + // 启用按钮 + if (refreshBtn) { + refreshBtn.disabled = false; + refreshBtn.textContent = '获取邮件'; + } + folderTabs.forEach(tab => tab.disabled = false); } } @@ -3929,11 +3975,19 @@ const modal = document.getElementById('refreshModal'); modal.classList.remove('show'); - // 确保进度条被隐藏 + // 确保所有内容都被隐藏,防止残留 const progress = document.getElementById('refreshProgress'); if (progress) { progress.style.display = 'none'; } + const failedList = document.getElementById('failedListContainer'); + if (failedList) { + failedList.style.display = 'none'; + } + const logsContainer = document.getElementById('refreshLogsContainer'); + if (logsContainer) { + logsContainer.style.display = 'none'; + } // 重置按钮状态 const refreshAllBtn = document.getElementById('refreshAllBtn'); @@ -4157,7 +4211,6 @@ const listEl = document.getElementById('failedList'); // 隐藏其他列表 - hideSuccessList(); hideRefreshLogs(); if (!failedList || failedList.length === 0) { @@ -4316,6 +4369,19 @@ }); } + // 统一关闭所有模态框的函数 (修复 bug:防止模态框意外残留) + function closeAllModals() { + hideAddGroupModal(); + hideAddAccountModal(); + hideEditAccountModal(); + hideExportModal(); + hideSettingsModal(); + hideRefreshModal(); + hideRefreshErrorModal(); + hideGetRefreshTokenModal(); + closeFullscreenEmail(); + } + // HTML 转义 function escapeHtml(text) { const div = document.createElement('div'); @@ -4332,6 +4398,8 @@ hideExportModal(); hideSettingsModal(); hideRefreshModal(); + hideRefreshErrorModal(); // 修复:确保刷新失败提示模态框也能被 Escape 键关闭 + hideGetRefreshTokenModal(); // 修复:确保获取 Refresh Token 模态框也能被 Escape 键关闭 closeFullscreenEmail(); } });