import type { UseMutationResult, UseQueryResult } from "@tanstack/react-query"; import type { InvoicePoolListResponse } from "../../api/invoicePool"; import type { ReimbursementListResponse } from "../../api/reimbursements"; import type { TravelRequestDetail, TravelRequestListResponse } from "../../api/travelRequests"; import { Button } from "../../components/ui/button"; export type InvoiceBindMode = "reimbursement" | "travelOrder"; export type InvoiceBindCardProps = { listQuery: UseQueryResult; reimbursementQuery: UseQueryResult; travelRequestQuery: UseQueryResult; travelRequestDetailQuery: UseQueryResult; bindMutation: UseMutationResult, Error, void>; bindMode: InvoiceBindMode; setBindMode: (mode: InvoiceBindMode) => void; canManageTravelPayments: boolean; selectedInvoiceId: string; setSelectedInvoiceId: (id: string) => void; selectedReimbursementId: string; setSelectedReimbursementId: (id: string) => void; selectedTravelRequestId: string; setSelectedTravelRequestId: (id: string) => void; selectedTravelOrderId: string; setSelectedTravelOrderId: (id: string) => void; }; export function InvoiceBindCard({ listQuery, reimbursementQuery, travelRequestQuery, travelRequestDetailQuery, bindMutation, bindMode, setBindMode, canManageTravelPayments, selectedInvoiceId, setSelectedInvoiceId, selectedReimbursementId, setSelectedReimbursementId, selectedTravelRequestId, setSelectedTravelRequestId, selectedTravelOrderId, setSelectedTravelOrderId, }: InvoiceBindCardProps) { const bindableTravelOrders = (travelRequestDetailQuery.data?.travelOrders ?? []).filter((item) => ["confirmed", "paid"].includes(item.status), ); return (

绑定业务单据

{canManageTravelPayments ? ( ) : null}
{bindMode === "reimbursement" ? ( ) : ( <> )}
); }