const ADMIN_MEMBER_ID = 104880; const generateBtn = document.getElementById("generateBtn"); const statusText = document.getElementById("statusText"); const resultCard = document.getElementById("resultCard"); const qrImage = document.getElementById("qrImage"); const downloadLink = document.getElementById("downloadLink"); const rawJson = document.getElementById("rawJson"); const metaMemberId = document.getElementById("metaMemberId"); const metaVillage = document.getElementById("metaVillage"); const metaUuid = document.getElementById("metaUuid"); const metaStatus = document.getElementById("metaStatus"); const metaMsg = document.getElementById("metaMsg"); const metaQrPrefix = document.getElementById("metaQrPrefix"); const metaPayloadLen = document.getElementById("metaPayloadLen"); const metaPayloadPrefix = document.getElementById("metaPayloadPrefix"); function setStatus(message, isError = false) { statusText.textContent = message; statusText.classList.toggle("error", isError); } function showResult(data) { resultCard.classList.remove("hidden"); qrImage.src = data.data_url; downloadLink.href = data.data_url; downloadLink.download = `member_${data.member_id}.gif`; metaMemberId.textContent = data.member_id ?? "-"; metaVillage.textContent = data.village_name ?? "-"; metaUuid.textContent = data.uuid ?? "-"; metaStatus.textContent = data.status ?? "-"; metaMsg.textContent = data.msg ?? "-"; metaQrPrefix.textContent = data.qr_prefix ?? "-"; metaPayloadLen.textContent = data.payload_len ?? "-"; metaPayloadPrefix.textContent = data.payload_hex_prefix ?? "-"; rawJson.textContent = JSON.stringify(data, null, 2); } async function generateQr() { generateBtn.disabled = true; setStatus(`正在生成管理员二维码(member_id=${ADMIN_MEMBER_ID})...`); try { const response = await fetch("/api/generate", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ member_id: ADMIN_MEMBER_ID }), }); const data = await response.json(); if (!response.ok || !data.ok) { throw new Error(data.error || "生成二维码失败"); } showResult(data); setStatus("管理员二维码生成成功"); } catch (error) { setStatus(error.message || "生成失败", true); } finally { generateBtn.disabled = false; } } generateBtn.addEventListener("click", generateQr);