"use client"; import { CountdownTimer } from "@/components/quote/countdown-timer"; import { ErrorBanner } from "@/components/ui/error-banner"; import { LoadingSpinner } from "@/components/ui/loading-spinner"; import { WarningBanner } from "@/components/ui/warning-banner"; import type { QuoteDetail } from "@/lib/frontend/types"; import { PRIORITY1_MANUAL_FOLLOWUP_ERROR_CODE } from "@/modules/priority1/constants"; import { Priority1FtlScheduleCalendar } from "@/components/priority1/priority1-ftl-schedule-calendar"; import type { Priority1ShipmentSummary } from "@/components/priority1/priority1-ftl-schedule-calendar"; import { Priority1LtlQuoteOptions } from "@/components/priority1/priority1-ltl-quote-options"; type Props = { quote: QuoteDetail | null; loading: boolean; error: string | null; shipmentContext?: Priority1ShipmentSummary; onRequestNewQuote?: () => void; }; export function Priority1QuoteResultPanel({ quote, loading, error, shipmentContext, onRequestNewQuote, }: Props) { if (loading) { return (

正在获取 Priority1 报价,请稍候…

); } if (error) { return ( {error.trim() || "暂时无法获取报价,请稍后重试。"} ); } if (!quote) { return (
填写左侧表单并提交,即可查看 Priority1 官网风格的报价结果。
); } if (quote.status === "processing") { return (

报价处理中…

); } if (quote.status === "failed") { const message = quote.error_message?.trim() || "报价失败,请稍后重试。"; return ( 重新询价 ) : undefined } > {message} ); } if (quote.error_code === PRIORITY1_MANUAL_FOLLOWUP_ERROR_CODE) { return ( 重新询价 ) : undefined } >

需人工跟进

{quote.error_message ?? "Priority1 未返回可展示的即时报价,已记录任务供人工处理。"}

); } if (quote.status === "expired") { return ( 重新询价 ) : undefined } >

报价已过期

该报价已超过有效期,请重新提交询价。

); } const p1 = quote.priority1; if (!p1 || p1.lines.length === 0) { const legacyHint = quote.source_type === "stale" ? "本次使用了历史缓存降级,数据格式可能不兼容,请重新询价。" : quote.quotes && quote.quotes.length > 0 ? "服务端返回了旧版报价格式,请重新部署 worker 与 API 后重试。" : "RPA 未抓取到报价金额,请核对重量/等级是否合理后重试。"; return ( 重新询价 ) : undefined } >

暂无报价

{legacyHint}

); } const validUntil = quote.valid_until; return (
{validUntil ? (
报价有效期
) : null} {p1.display_mode === "ftl_calendar" && shipmentContext ? ( ) : ( )}
); }