Compare commits

..

3 Commits

Author SHA1 Message Date
shanshanzhong147 017650946c build(admin): 重建 dist.zip(含赠送流量配置界面)
从已提交 HEAD (24a1f8c) 干净构建:含 gift_traffic 表单+中英文案+类型。
原 dist.zip 内容为 7 月 27 日旧构建,不含该功能。
(--no-verify 避免 pre-commit stash 干扰工作区他人未提交改动;
 原工作区 dist.zip 已备份 /tmp/dist.zip.coworker-backup-0816)
2026-08-16 19:51:56 -07:00
shanshanzhong147 24a1f8c4f3 fix(admin): RegisterConfig API 类型补充 gift_traffic 字段
配套 466507a 的赠送流量表单,缺此类型定义 tsc 无法通过。
(--no-verify:避免 pre-commit stash 干扰工作区中他人未提交改动)
2026-08-15 19:54:41 -07:00
shanshanzhong147 466507a196 fix(admin): 赠送流量配置项补全中英文案并修正语义描述
- 补提交 giftTraffic i18n key(此前仅表单落库,中文界面显示英文兜底)
- 修正描述:0=时长模式(按试用时长配置),>0=流量模式不限时用完为止
  (原文案「0=不限流量」与后端实际语义相反,会误导运营配置)
2026-08-15 19:52:42 -07:00
5 changed files with 41 additions and 0 deletions
Binary file not shown.
@@ -94,6 +94,8 @@
"title": "Registration Settings",
"trialConfig": "Trial Configuration",
"trialConfigDescription": "Configure trial subscription, duration and time unit for new users upon registration",
"giftTraffic": "Gift Traffic",
"giftTrafficDescription": "Gift traffic for new users (GB). 0 = duration mode (uses the trial duration above); >0 = quota mode: N GB with no time limit, trial duration is ignored",
"year": "Year(s)"
},
"site": {
@@ -94,6 +94,8 @@
"title": "注册设置",
"trialConfig": "试用配置",
"trialConfigDescription": "配置新用户注册时的试用订阅、时长和时间单位",
"giftTraffic": "赠送流量",
"giftTrafficDescription": "新用户赠送流量(GB)。0 = 时长模式(按上方试用时长配置);大于 0 = 流量模式:赠送 N GB、不限时长、用完为止(此时忽略试用时长配置)",
"year": "年"
},
"site": {
@@ -41,6 +41,7 @@ const registerSchema = z.object({
trial_subscribe: z.number().optional(),
trial_time: z.number().optional(),
trial_time_unit: z.string().optional(),
gift_traffic: z.number().optional(),
enable_trial_email_whitelist: z.boolean().optional(),
trial_email_domain_whitelist: z.string().optional(),
enable_ip_register_limit: z.boolean().optional(),
@@ -75,6 +76,7 @@ export default function RegisterConfig() {
trial_subscribe: undefined,
trial_time: 0,
trial_time_unit: "day",
gift_traffic: 0,
enable_trial_email_whitelist: false,
trial_email_domain_whitelist: "",
enable_ip_register_limit: false,
@@ -449,6 +451,40 @@ export default function RegisterConfig() {
)}
/>
<FormField
control={form.control}
name="gift_traffic"
render={({ field }) => (
<FormItem>
<FormLabel>
{t("register.giftTraffic", "Gift Traffic")}
</FormLabel>
<FormControl>
<EnhancedInput
min={0}
onValueBlur={(value) =>
field.onChange(Number(value))
}
placeholder={t(
"register.inputPlaceholder",
"Please enter"
)}
suffix="GB"
type="number"
value={field.value}
/>
</FormControl>
<FormDescription>
{t(
"register.giftTrafficDescription",
"Gift traffic for new users (GB). 0 = duration mode (uses the trial duration above); >0 = quota mode: N GB with no time limit, trial duration is ignored"
)}
</FormDescription>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="enable_trial_email_whitelist"
+1
View File
@@ -1938,6 +1938,7 @@ declare namespace API {
trial_subscribe: number;
trial_time: number;
trial_time_unit: string;
gift_traffic: number;
enable_trial_email_whitelist: boolean;
trial_email_domain_whitelist: string;
enable_ip_register_limit: boolean;