From d30c135ddee5df955a46866cbe233ee7bf39d4f3 Mon Sep 17 00:00:00 2001 From: kang Date: Mon, 1 Jun 2026 14:54:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(i18n,=20draws):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E2=80=9C=E9=9A=8F=E6=9C=BA=E5=A1=AB=E5=85=85=E2=80=9D=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=E5=B9=B6=E5=AE=9E=E7=8E=B0=E9=9A=8F=E6=9C=BA=E9=80=89?= =?UTF-8?q?=E5=8F=B7=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在英文、尼泊尔语与中文语言包中新增 “Fill Randomly(随机填充)” 翻译文案,完善多语言支持。 在 DrawReviewConsole 组件中新增随机选号功能,用户可通过按钮一键填充随机号码。 优化开奖录入流程,减少手动输入操作,提升使用效率与用户体验。 --- src/i18n/locales/en/draws.json | 1 + src/i18n/locales/ne/draws.json | 1 + src/i18n/locales/zh/draws.json | 1 + src/modules/draws/draw-review-console.tsx | 19 ++++++++++++++++++- 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/i18n/locales/en/draws.json b/src/i18n/locales/en/draws.json index aa346d1..16c2704 100644 --- a/src/i18n/locales/en/draws.json +++ b/src/i18n/locales/en/draws.json @@ -126,6 +126,7 @@ "enter23Numbers": "Please enter all 23 groups of 4 digits", "draftSaved": "Draft v{{version}} saved, waiting to be published", "saveFailed": "Failed to save", + "fillRandomNumbers": "Fill randomly", "clear": "Clear", "saveDraft": "Save draft", "saving": "Saving…", diff --git a/src/i18n/locales/ne/draws.json b/src/i18n/locales/ne/draws.json index c9f0f60..5886898 100644 --- a/src/i18n/locales/ne/draws.json +++ b/src/i18n/locales/ne/draws.json @@ -126,6 +126,7 @@ "enter23Numbers": "कृपया 23 वटा 4-अङ्क समूह पूरा भर्नुहोस्", "draftSaved": "ड्राफ्ट v{{version}} सुरक्षित भयो, प्रकाशनको प्रतिक्षामा", "saveFailed": "सेभ असफल भयो", + "fillRandomNumbers": "अनियमित भर्नुहोस्", "clear": "खाली गर्नुहोस्", "saveDraft": "ड्राफ्ट सुरक्षित गर्नुहोस्", "saving": "सेभ हुँदैछ…", diff --git a/src/i18n/locales/zh/draws.json b/src/i18n/locales/zh/draws.json index 819df24..12417d6 100644 --- a/src/i18n/locales/zh/draws.json +++ b/src/i18n/locales/zh/draws.json @@ -126,6 +126,7 @@ "enter23Numbers": "请完整输入 23 组 4 位数字", "draftSaved": "已保存草稿 v{{version}},等待确认发布", "saveFailed": "保存失败", + "fillRandomNumbers": "随机填满", "clear": "清空", "saveDraft": "保存草稿", "saving": "保存中…", diff --git a/src/modules/draws/draw-review-console.tsx b/src/modules/draws/draw-review-console.tsx index 9321447..558043b 100644 --- a/src/modules/draws/draw-review-console.tsx +++ b/src/modules/draws/draw-review-console.tsx @@ -1,6 +1,6 @@ "use client"; -import { Rocket } from "lucide-react"; +import { Dices, Rocket } from "lucide-react"; import { useCallback, useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { toast } from "sonner"; @@ -46,6 +46,10 @@ const RESULT_SLOTS = [ })), ] as const; +function randomDrawNumber4d(): string { + return String(Math.floor(Math.random() * 10_000)).padStart(4, "0"); +} + export function DrawReviewConsole({ drawId }: { drawId: string }) { const { t } = useTranslation(["draws", "common"]); const profile = useAdminProfile(); @@ -91,6 +95,10 @@ export function DrawReviewConsole({ drawId }: { drawId: string }) { data, ]); + function fillRandomManualNumbers(): void { + setManualNumbers(RESULT_SLOTS.map(() => randomDrawNumber4d())); + } + async function saveManualDraft(): Promise { if (!Number.isFinite(idNum)) return; const invalid = manualNumbers.some((n) => !/^[0-9]{4}$/.test(n)); @@ -163,6 +171,15 @@ export function DrawReviewConsole({ drawId }: { drawId: string }) { ))}
+