import { useEffect, useState } from 'react';
import { Image, Input, Modal, Space, Typography } from 'antd';
import { PAYMENT_PROOF_IMAGE_MAX_COUNT } from '@dukang/shared-types';
import MultiImageUpload from './MultiImageUpload';
export function parsePaymentProofUrls(raw: unknown): string[] {
if (!Array.isArray(raw)) return [];
return raw.map((u) => String(u ?? '').trim()).filter(Boolean);
}
export function PaymentProofGallery({ urls }: { urls?: unknown }) {
const list = parsePaymentProofUrls(urls);
if (!list.length) return <>—>;
return (
{list.map((url, index) => (
))}
);
}
type FinancePayProofModalProps = {
open: boolean;
title: string;
hint: string;
okText: string;
confirmLoading?: boolean;
onCancel: () => void;
onOk: (payload: { paymentRef?: string; paymentProofUrls?: string[] }) => Promise;
};
export function FinancePayProofModal({
open,
title,
hint,
okText,
confirmLoading,
onCancel,
onOk,
}: FinancePayProofModalProps) {
const [paymentRef, setPaymentRef] = useState('');
const [proofUrls, setProofUrls] = useState([]);
useEffect(() => {
if (open) {
setPaymentRef('');
setProofUrls([]);
}
}, [open]);
return (
{
await onOk({
paymentRef: paymentRef.trim() || undefined,
paymentProofUrls: proofUrls.length ? proofUrls : undefined,
});
}}
>
{hint}
setPaymentRef(e.target.value)}
style={{ marginBottom: 12 }}
/>
打款凭证照片(可选,银行转账回单等)
);
}