修正后台会员档位表单的价格下限与缺档兜底

月价 / 年价输入框改为 min={isPurchasable ? 1 : 0},normal 档(0 价)不再被浏览器原生校验拦住
下拉选到目录中不存在的档位时清空表单并置空 rankLabel,避免提交上一档的陈旧值

Co-authored-by: Junie <junie@jetbrains.com>
This commit is contained in:
2026-10-03 11:15:13 +08:00
parent d49c527351
commit 848f0b54c8
@@ -182,6 +182,20 @@ export function AdminMembershipPlanPage({
setRankLabel(String(entry.rank));
}
// 目录里还没有这一档时清空表单,避免把上一档的价格 / 权益误当成它的值提交。
function clearForm(nextPlan: ProfileMembershipPlan) {
setPlan(nextPlan);
setTitle('');
setMonthPriceCents('0');
setYearPriceCents('0');
setPeriodPoints('0');
setModelAccess('basic');
setConcurrentJobLimit('1');
setEnabled(false);
setSortOrder('0');
setRankLabel('');
}
const isPurchasable = plan !== 'normal';
return (
@@ -216,7 +230,7 @@ export function AdminMembershipPlanPage({
if (entry) {
fillForm(entry);
} else {
setPlan(nextPlan);
clearForm(nextPlan);
}
}}
>
@@ -253,7 +267,7 @@ export function AdminMembershipPlanPage({
<AdminFormRow>
<AdminField label="月价(分)">
<input
min={1}
min={isPurchasable ? 1 : 0}
step={1}
type="number"
value={monthPriceCents}
@@ -262,7 +276,7 @@ export function AdminMembershipPlanPage({
</AdminField>
<AdminField label="年价(分,独立可配置)">
<input
min={1}
min={isPurchasable ? 1 : 0}
step={1}
type="number"
value={yearPriceCents}