热点列表
# 热点标题 来源 分类 热度 时间 操作
// 批量选择 let selectedTrends = new Set(); function toggleTrendSelect(trendId) { if (selectedTrends.has(trendId)) { selectedTrends.delete(trendId); } else { selectedTrends.add(trendId); } updateBatchBtn(); } function updateBatchBtn() { const btn = document.getElementById('batch-btn'); if (selectedTrends.size > 0) { btn.style.display = 'block'; btn.textContent = '批量生成项目 (' + selectedTrends.size + ')'; } else { btn.style.display = 'none'; } } async function batchGenerateAll() { if (selectedTrends.size === 0) return; if (!confirm('确定要为选中的' + selectedTrends.size + '个热点生成项目吗?')) return; const loading = showGlobalLoading('正在批量生成...'); let success = 0, failed = 0; for (const trendId of selectedTrends) { try { await fetch('/api/projects/generate-batch', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ trend_id: trendId }) }); success++; } catch { failed++; } } hideGlobalLoading(loading); alert('完成!成功 ' + success + ' 个,失败 ' + failed + ' 个'); window.location.href = '/projects'; } function showGlobalLoading(msg) { const el = document.createElement('div'); el.className = 'generate-loading'; el.innerHTML = '
' + (msg || '加载中...') + '
'; document.body.appendChild(el); return el; } function hideGlobalLoading(el) { if (el) el.remove(); }