diff --git a/frontend/web/src/admin/modules/channels/WeixinLogin.tsx b/frontend/web/src/admin/modules/channels/WeixinLogin.tsx index a270bbb..be98805 100644 --- a/frontend/web/src/admin/modules/channels/WeixinLogin.tsx +++ b/frontend/web/src/admin/modules/channels/WeixinLogin.tsx @@ -41,6 +41,7 @@ export function WeixinLogin({ }): React.ReactNode { const log = useAuditStore((s) => s.log); const [status, setStatus] = useState("idle"); + const [qrCode, setQrCode] = useState(""); const [qrUrl, setQrUrl] = useState(""); const [botId, setBotId] = useState(""); const [busy, setBusy] = useState(null); @@ -86,10 +87,12 @@ export function WeixinLogin({ const start = () => { setBusy("__qr__"); setNotice(null); + setQrCode(""); setQrUrl(""); adminWeixinLoginQR(platform, accountId) .then((r) => { log("channel.weixin.login.qr", "ok"); + setQrCode(r.qrCode ?? ""); setQrUrl(r.qrUrl ?? ""); if (r.status === "confirmed") { setStatus("confirmed"); @@ -117,7 +120,7 @@ export function WeixinLogin({ .finally(() => setBusy(null)); }; - const showQR = status === "waiting" || qrUrl !== ""; + const showQR = status === "waiting" || qrCode !== ""; return ( @@ -144,11 +147,21 @@ export function WeixinLogin({ {showQR ? (
- {qrUrl ? ( - + {qrCode ? ( + ) : ( 二维码暂不可用,请点击「刷新二维码」重试。 )} + {qrUrl ? ( + + 若上方码不识别,点此在微信/浏览器打开扫码页 + + ) : null}

请用微信扫描上方二维码,确认后自动连接(最多等待约 8 分钟)。

) : null}