🏃 分组抽签
开始抽签重置清空复制抽签结果
规则:填写每组数量,先填满第一组,满员后自动进入第二组,依次往后;第一次点击按钮开始滚动,再次点击停止;只剩最后1项时,启动后自动停止,无需点击。
*为必填项,全部填写后方可抽签
`;
groupItems.forEach((team, innerIdx)=>{
html += ` ${innerIdx+1}. ${team}
`;
});
html += "
";
}
wrap.innerHTML = html;
updateGroupNameDisplay();
}
// 复制抽签结果文本
function relayCopyResult(){
if(relay_groups.length ===0){
showWarn("⚠️ 暂无抽签结果,无法复制");
return;
}
let text = document.getElementById('relay_groupName').innerText + "\n";
for(let g=0; g{
text += ` ${innerIdx+1}. ${team}\n`;
});
text += "\n";
}
navigator.clipboard.writeText(text).then(()=>{
showWarn("✅ 抽签结果已复制到剪贴板");
}).catch(()=>{
showWarn("❌ 复制失败,请手动复制");
});
}
function relayStartDraw(){
if(!checkRequired()) return;
if(relay_remainTeams.length <=0){ relay_rolling="true;" .innertext="停止抽签" relay_timer="setInterval(()=">{
const r = Math.floor(Math.random()*relay_remainTeams.length);
document.getElementById('relay_drawName').innerText = relay_remainTeams[r];
},70);
// 仅剩最后一项自动停止
if(relay_remainTeams.length === 1){
setTimeout(()=>{
stopDraw();
},800);
}
}else{
stopDraw();
}
}
function stopDraw(){
clearInterval(relay_timer);
relay_rolling = false;
document.getElementById("relay_drawBtn").innerText = "开始抽签";
const pickName = document.getElementById('relay_drawName').innerText;
const idx = relay_remainTeams.indexOf(pickName);
if(idx > -1){
relay_remainTeams.splice(idx,1);
const perGroupNum = parseInt(document.getElementById('relay_perGroupCount').value);
// 找到当前最后一组,如果没满就放进去;满了新建下一组
let targetGroup;
if(relay_groups.length === 0){
relay_groups.push([]);
targetGroup = relay_groups[relay_groups.length -1];
}else{
targetGroup = relay_groups[relay_groups.length - 1];
if(targetGroup.length >= perGroupNum){
relay_groups.push([]);
targetGroup = relay_groups[relay_groups.length -1];
}
}
targetGroup.push(pickName);
relayRenderResult();
// 新增:全部抽签完成弹窗
if(relay_remainTeams.length === 0){
setTimeout(()=>{
alert("🎉 所有项目抽签全部完成!");
},120);
}
}
}
function relayResetAll(){
clearInterval(relay_timer);
relay_rolling = false;
clearWarn();
relayInitTeams();
}
function relayClearTextarea(){
document.getElementById('relay_teamList').value = "";
document.getElementById('relay_groupInput').value = "";
document.getElementById('relay_perGroupCount').value = "";
clearWarn();
relayResetAll();
}
// 修改每组数量自动重置抽签
document.getElementById('relay_perGroupCount').addEventListener('change', relayResetAll);
document.getElementById('relay_groupInput').addEventListener('input', updateGroupNameDisplay);
relayInitTeams();