// 批量选择
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();
}