// 获取统计数据 async function getStatistics() { try { const response = await fetch(`${API_BASE}/api/statistics`); const data = await response.json(); if (data.success) { const stats = data.data; document.getElementById('totalUrls').textContent = stats.total_urls; document.getElementById('totalClicks').textContent = stats.total_clicks; document.getElementById('totalReplies').textContent = stats.total_replies; document.getElementById('replyRate').textContent = stats.reply_rate; } } catch (error) { console.error('获取统计数据失败:', error); } } // 加载URL列表 async function loadUrlList() { try { const response = await fetch(`${API_BASE}/api/urls`); const data = await response.json(); if (data.success) { const tbody = document.getElementById('urlTableBody'); if (data.data.length === 0) { tbody.innerHTML = '暂无数据'; return; } tbody.innerHTML = data.data.map(item => ` ${item.url} ${item.click_count} ${item.reply_count} ${item.last_click_time || '未点击'} `).join(''); } } catch (error) { console.error('加载URL列表失败:', error); } } // 重置URL async function resetUrl(encodedUrl) { if (!confirm('确定要重置该链接吗?')) { return; } try { const response = await fetch(`${API_BASE}/api/urls/${encodedUrl}/reset`, { method: 'POST' }); const data = await response.json(); if (data.success) { showToast('重置成功', 'success'); loadUrlList(); getStatistics(); } else { showToast(data.message || '重置失败', 'error'); } } catch (error) { showToast('重置失败: ' + error.message, 'error'); } } // 删除URL async function deleteUrl(encodedUrl) { if (!confirm('确定要删除该链接吗?')) { return; } try { const response = await fetch(`${API_BASE}/api/urls/${encodedUrl}`, { method: 'DELETE' }); const data = await response.json(); if (data.success) { showToast('删除成功', 'success'); loadUrlList(); getStatistics(); } else { showToast(data.message || '删除失败', 'error'); } } catch (error) { showToast('删除失败: ' + error.message, 'error'); } } // 初始化 document.addEventListener('DOMContentLoaded', () => { getStatistics(); loadUrlList(); // 定时刷新 setInterval(() => { getStatistics(); loadUrlList(); }, 5000); });