From 6a2b95d300a449220cccc442dd803cade890e947 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Wed, 21 Oct 2026 22:40:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(ui):=20=E6=96=B0=E5=A2=9E=20Skin=20Hub=20?= =?UTF-8?q?=E5=93=81=E7=89=8C=E5=9B=BE=E6=A0=87=E5=B9=B6=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增蓝紫渐变宝石图标(SVG / ICO / apple-touch-icon / 192 / 512) - 登录页品牌位由字母 S 换成同一 BrandMark - index.html 补齐图标、theme-color 与页面描述 --- frontend/index.html | 9 +- frontend/public/apple-touch-icon.png | Bin 0 -> 16190 bytes frontend/public/favicon.ico | Bin 0 -> 11004 bytes frontend/public/favicon.svg | 25 ++- frontend/public/icon-192.png | Bin 0 -> 17534 bytes frontend/public/icon-512.png | Bin 0 -> 46906 bytes frontend/src/pages/Login.tsx | 321 +++++++++++++++++---------- 7 files changed, 237 insertions(+), 118 deletions(-) create mode 100644 frontend/public/apple-touch-icon.png create mode 100644 frontend/public/favicon.ico create mode 100644 frontend/public/icon-192.png create mode 100644 frontend/public/icon-512.png diff --git a/frontend/index.html b/frontend/index.html index 0023e91..2de8b01 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -2,8 +2,15 @@ - + + + + + 游戏皮肤分销系统 diff --git a/frontend/public/apple-touch-icon.png b/frontend/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..50d027d9510baf8a7c25cb98984d1f1eade86493 GIT binary patch literal 16190 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 literal 0 HcmV?d00001 diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f93fad80e1e7cd7dfbe0728c152d073639d6ee22 GIT binary patch literal 11004 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 aKWmiRrmP-(fzjxjXcA6HG5)_Dt^Wbyao-XE literal 0 HcmV?d00001 diff --git a/frontend/public/favicon.svg b/frontend/public/favicon.svg index 6893eb1..a71c934 100644 --- a/frontend/public/favicon.svg +++ b/frontend/public/favicon.svg @@ -1 +1,24 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + diff --git a/frontend/public/icon-192.png b/frontend/public/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..2afe05510e2fedbc0040c64d59aba5fd65f9fa35 GIT binary patch literal 17534 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 Z{~wg|u$AaO^FIIp002ovPDHLkV1h&`bm;&9 literal 0 HcmV?d00001 diff --git a/frontend/public/icon-512.png b/frontend/public/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d8561984b07112dbb456f81a182bae74af50912d GIT binary patch literal 46906 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 + + + + + + + + + + + + ); } export default function Login() { - const { login, applyLoginResult } = useAuth() - const navigate = useNavigate() - const [form] = Form.useForm() - const [loading, setLoading] = useState(false) - const [sending, setSending] = useState(false) - const [countdown, setCountdown] = useState(0) - const [waiting, setWaiting] = useState(false) - const [phoneMasked, setPhoneMasked] = useState('') - const timerRef = useRef(null) - const submittingRef = useRef(false) + const { login, applyLoginResult } = useAuth(); + const navigate = useNavigate(); + const [form] = Form.useForm(); + const [loading, setLoading] = useState(false); + const [sending, setSending] = useState(false); + const [countdown, setCountdown] = useState(0); + const [waiting, setWaiting] = useState(false); + const [phoneMasked, setPhoneMasked] = useState(""); + const timerRef = useRef(null); + const submittingRef = useRef(false); useEffect(() => { return () => { - if (timerRef.current) window.clearInterval(timerRef.current) - } - }, []) + if (timerRef.current) window.clearInterval(timerRef.current); + }; + }, []); const startCountdown = (seconds: number) => { - setCountdown(seconds) - if (timerRef.current) window.clearInterval(timerRef.current) + setCountdown(seconds); + if (timerRef.current) window.clearInterval(timerRef.current); timerRef.current = window.setInterval(() => { setCountdown((current) => { if (current <= 1) { - if (timerRef.current) window.clearInterval(timerRef.current) - return 0 + if (timerRef.current) window.clearInterval(timerRef.current); + return 0; } - return current - 1 - }) - }, 1000) - } + return current - 1; + }); + }, 1000); + }; const sendCode = async () => { try { - const values = await form.validateFields(['username', 'password']) - setSending(true) - const result = await authApi.sendLoginSmsCode(values.username.trim(), values.password) - setPhoneMasked(result.phoneMasked) - startCountdown(60) - message.success(`验证码已发送至 ${result.phoneMasked}`) + const values = await form.validateFields(["username", "password"]); + setSending(true); + const result = await authApi.sendLoginSmsCode( + values.username.trim(), + values.password, + ); + setPhoneMasked(result.phoneMasked); + startCountdown(60); + message.success(`验证码已发送至 ${result.phoneMasked}`); } catch (error) { - const text = error instanceof Error ? error.message : '验证码发送失败' - if (text.includes('未绑定手机号')) { - message.warning(`${text},可使用下方「旧账号仅密码登录」`) + const text = error instanceof Error ? error.message : "验证码发送失败"; + if (text.includes("未绑定手机号")) { + message.warning(`${text},可使用下方「旧账号仅密码登录」`); } else { - message.error(text) + message.error(text); } } finally { - setSending(false) + setSending(false); } - } + }; const onFinish = async (values: LoginForm) => { - if (submittingRef.current) return - submittingRef.current = true - setLoading(true) - setWaiting(false) + if (submittingRef.current) return; + submittingRef.current = true; + setLoading(true); + setWaiting(false); try { const prepared = await authApi.prepareLogin({ username: values.username.trim(), password: values.password, smsCode: values.smsCode.trim(), apiBase: window.location.origin, - }) - setPhoneMasked(prepared.phoneMasked) - setWaiting(true) - message.info('已发起本机验证,请在弹出的 DCAuth 窗口中确认') - launchProtocol(prepared.launchUrl) + }); + setPhoneMasked(prepared.phoneMasked); + setWaiting(true); + message.info("已发起本机验证,请在弹出的 DCAuth 窗口中确认"); + launchProtocol(prepared.launchUrl); - const result = await waitForDevice(prepared) - applyLoginResult(result) - message.success('登录成功,欢迎回来!') - navigate('/', { replace: true }) + const result = await waitForDevice(prepared); + applyLoginResult(result); + message.success("登录成功,欢迎回来!"); + navigate("/", { replace: true }); } catch (error) { - const text = error instanceof Error ? error.message : '登录失败,请检查账号密码' - if (text.includes('未绑定手机号')) { - message.warning(`${text},可使用下方「旧账号仅密码登录」`) - } else if (text.includes('绑定设备不一致')) { - message.error('当前设备与账号绑定设备不一致,请联系管理员重置设备') + const text = + error instanceof Error ? error.message : "登录失败,请检查账号密码"; + if (text.includes("未绑定手机号")) { + message.warning(`${text},可使用下方「旧账号仅密码登录」`); + } else if (text.includes("绑定设备不一致")) { + message.error("当前设备与账号绑定设备不一致,请联系管理员重置设备"); } else { - message.error(text) + message.error(text); } } finally { - submittingRef.current = false - setLoading(false) - setWaiting(false) + submittingRef.current = false; + setLoading(false); + setWaiting(false); } - } + }; const submitLegacyLogin = async () => { - if (submittingRef.current) return - let values: LoginForm + if (submittingRef.current) return; + let values: LoginForm; try { - values = await form.validateFields(['username', 'password']) + values = await form.validateFields(["username", "password"]); } catch { - return + return; } - submittingRef.current = true - setLoading(true) + submittingRef.current = true; + setLoading(true); try { - await login(values.username.trim(), values.password) - message.success('登录成功,欢迎回来!') - navigate('/', { replace: true }) + await login(values.username.trim(), values.password); + message.success("登录成功,欢迎回来!"); + navigate("/", { replace: true }); } catch (error) { - message.error(error instanceof Error ? error.message : '账号密码登录失败') + message.error( + error instanceof Error ? error.message : "账号密码登录失败", + ); } finally { - submittingRef.current = false - setLoading(false) + submittingRef.current = false; + setLoading(false); } - } + }; return (
- -
-
S
- + +
+
+ +
+ Skin Hub 游戏皮肤分销平台 - + 账号密码 + 短信验证码 + DCAuth 本机设备签名
@@ -146,14 +210,19 @@ export default function Login() { /> ) : null} -
+ } + prefix={} placeholder="用户名(支持中文 / 英文)" size="large" autoComplete="username" @@ -163,11 +232,11 @@ export default function Login() { } + prefix={} placeholder="密码" size="large" autoComplete="current-password" @@ -177,12 +246,14 @@ export default function Login() { } - placeholder={`6 位短信验证码${phoneMasked ? `(${phoneMasked})` : ''}`} + prefix={ + + } + placeholder={`6 位短信验证码${phoneMasked ? `(${phoneMasked})` : ""}`} size="large" maxLength={6} autoComplete="one-time-code" @@ -195,9 +266,9 @@ export default function Login() { loading={sending} disabled={countdown > 0} onClick={() => void sendCode()} - style={{ padding: 0, height: 'auto' }} + style={{ padding: 0, height: "auto" }} > - {countdown > 0 ? `${countdown}s 后重发` : '获取验证码'} + {countdown > 0 ? `${countdown}s 后重发` : "获取验证码"} } /> @@ -216,8 +287,9 @@ export default function Login() { borderRadius: 8, fontSize: 15, fontWeight: 600, - background: 'linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%)', - boxShadow: '0 4px 14px rgba(37, 99, 235, 0.4)', + background: + "linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%)", + boxShadow: "0 4px 14px rgba(37, 99, 235, 0.4)", }} > 安全登录 · 拉起本机验证 @@ -225,54 +297,71 @@ export default function Login() { - - 未绑定手机号的历史账号 + + + 未绑定手机号的历史账号 + - 已绑定手机号的账号必须通过短信验证码与 DCAuth 本机签名登录
- ) + ); } async function waitForDevice(prepared: PreparedDeviceLogin) { for (let attempt = 0; attempt < 120; attempt += 1) { - await sleep(1000) - const status = await authApi.deviceChallengeStatus(prepared.challengeId, prepared.pollToken) - if (status.status === 'authorized' && status.deviceTicket) { + await sleep(1000); + const status = await authApi.deviceChallengeStatus( + prepared.challengeId, + prepared.pollToken, + ); + if (status.status === "authorized" && status.deviceTicket) { return authApi.completeLogin({ challengeId: prepared.challengeId, pollToken: prepared.pollToken, deviceTicket: status.deviceTicket, - }) + }); } - if (status.status === 'expired' || status.status === 'rejected') { - throw new Error(status.message || '本机验证已过期,请重新登录') + if (status.status === "expired" || status.status === "rejected") { + throw new Error(status.message || "本机验证已过期,请重新登录"); } if (attempt === 4) { - message.info('如果浏览器没有弹出 DCAuth,请先安装并运行一次 DCAuth 客户端') + message.info( + "如果浏览器没有弹出 DCAuth,请先安装并运行一次 DCAuth 客户端", + ); } } - throw new Error('等待本机验证超时,请确认 DCAuth 已安装并允许浏览器唤起') + throw new Error("等待本机验证超时,请确认 DCAuth 已安装并允许浏览器唤起"); } function launchProtocol(url: string) { - const anchor = document.createElement('a') - anchor.href = url - anchor.style.display = 'none' - document.body.appendChild(anchor) - anchor.click() - window.setTimeout(() => anchor.remove(), 1000) + const anchor = document.createElement("a"); + anchor.href = url; + anchor.style.display = "none"; + document.body.appendChild(anchor); + anchor.click(); + window.setTimeout(() => anchor.remove(), 1000); } function sleep(ms: number) { - return new Promise((resolve) => window.setTimeout(resolve, ms)) + return new Promise((resolve) => window.setTimeout(resolve, ms)); }