import { useEffect, useState } from "react"; import type { TravelPaymentChannel, TravelPaymentOrder } from "../../api/travelPayments"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "../ui/dialog"; import { Button } from "../ui/button"; import { Input } from "../ui/input"; import { Label } from "../ui/label"; const PAYMENT_CHANNEL_OPTIONS: Array<{ value: TravelPaymentChannel; label: string }> = [ { value: "bank_transfer", label: "银行转账" }, { value: "corporate_card", label: "企业卡" }, { value: "virtual_card", label: "虚拟卡" }, { value: "manual", label: "手工录入" }, { value: "other", label: "其他" }, ]; export type TravelOrderMarkPaidDialogProps = { open: boolean; order: TravelPaymentOrder | null; pending?: boolean; onOpenChange: (open: boolean) => void; onConfirm: (payload: { paymentVoucherNo: string | null; paymentDate: string | null; paymentChannel: TravelPaymentChannel | null; }) => void; }; export function TravelOrderMarkPaidDialog({ open, order, pending = false, onOpenChange, onConfirm, }: TravelOrderMarkPaidDialogProps) { const [paymentVoucherNo, setPaymentVoucherNo] = useState(""); const [paymentDate, setPaymentDate] = useState(""); const [paymentChannel, setPaymentChannel] = useState("bank_transfer"); useEffect(() => { if (!open) { return; } setPaymentVoucherNo(order?.paymentVoucherNo ?? ""); setPaymentDate(order?.paymentDate ?? ""); setPaymentChannel((order?.paymentChannel as TravelPaymentChannel | null) ?? "bank_transfer"); }, [open, order]); return ( 标记差旅订单已支付 确认订单 `{order?.externalOrderNo ?? "-"}` 已完成对公支付;系统会按幂等键复用现有财务交接记录。
setPaymentVoucherNo(event.target.value)} />
setPaymentDate(event.target.value)} />
); }