diff --git a/src/components/PaymentForm.tsx b/src/components/PaymentForm.tsx index c5e9746..5d7a1f6 100644 --- a/src/components/PaymentForm.tsx +++ b/src/components/PaymentForm.tsx @@ -6,6 +6,8 @@ import { PAYMENT_TYPE_META } from '@/lib/pay-utils'; export interface MethodLimitInfo { available: boolean; remaining: number | null; + /** 单笔限额,0 = 使用全局 maxAmount */ + singleMax?: number; } interface PaymentFormProps { @@ -71,7 +73,9 @@ export default function PaymentForm({ const selectedAmount = amount || 0; const isMethodAvailable = !methodLimits || (methodLimits[paymentType]?.available !== false); - const isValid = selectedAmount >= minAmount && selectedAmount <= maxAmount && hasValidCentPrecision(selectedAmount) && isMethodAvailable; + const methodSingleMax = methodLimits?.[paymentType]?.singleMax; + const effectiveMax = (methodSingleMax !== undefined && methodSingleMax > 0) ? methodSingleMax : maxAmount; + const isValid = selectedAmount >= minAmount && selectedAmount <= effectiveMax && hasValidCentPrecision(selectedAmount) && isMethodAvailable; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); @@ -151,7 +155,7 @@ export default function PaymentForm({ 充值金额
- {QUICK_AMOUNTS.filter((val) => val <= maxAmount).map((val) => ( + {QUICK_AMOUNTS.filter((val) => val <= effectiveMax).map((val) => (