修复 affiliate-dash 重复绑定与提交前校验:UID 未变复用绑定防重复生成二维码、提交前强制刷新绑定状态、UID 仅允许纯数字且限 15 位

This commit is contained in:
yml2213
2026-08-06 23:46:02 +08:00
parent 8756a196ae
commit 17acd65f28
6 changed files with 61 additions and 13 deletions
@@ -161,6 +161,11 @@ export default function ClaimPage() {
}, [loadDetail, resolveNextPollDelay, snapshot, stopPolling])
async function handleSubmitUid() {
// 防并发:提交中忽略重复触发(按钮 loading + 回车 Enter 都可能连续触发)
if (submittingUid) {
return
}
const uid = uidInput.trim()
if (!uid) {
showError('请输入游戏 UID')
@@ -18,7 +18,7 @@ export function ClaimUidStep({
1
</Typography.Title>
<p className="claim-muted claim-uid-step-desc">
15
</p>
<Space direction="vertical" size={10} style={{ width: '100%' }}>
@@ -26,9 +26,9 @@ export function ClaimUidStep({
size="large"
placeholder="请输入游戏编号(纯数字)"
value={uidInput}
maxLength={64}
maxLength={15}
inputMode="numeric"
onChange={(event) => onChange(event.target.value)}
onChange={(event) => onChange(event.target.value.replace(/\D/g, '').slice(0, 15))}
onPressEnter={onSubmit}
/>
<Button type="primary" size="large" loading={submitting} onClick={onSubmit} block>
@@ -50,9 +50,9 @@ export function UidEditRow({
<Input
size="large"
value={uidInput}
maxLength={64}
maxLength={15}
placeholder="游戏编号"
onChange={(event) => onChange(event.target.value)}
onChange={(event) => onChange(event.target.value.replace(/\D/g, '').slice(0, 15))}
onPressEnter={onSubmit}
/>
<Tooltip title="游戏编号填错时,修改为正确编号后点击「更新 UID」即可">