From 53cf2eed2a6f5160faafbbcf87174f3616c059a0 Mon Sep 17 00:00:00 2001 From: "Tommy\\2Fi-Staff" Date: Tue, 21 Apr 2026 16:32:55 +0800 Subject: [PATCH] =?UTF-8?q?only=20show=20label=E6=A9=9Foption?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/PoDetail/PoDetail.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/components/PoDetail/PoDetail.tsx b/src/components/PoDetail/PoDetail.tsx index 24a46e5..dc092e6 100644 --- a/src/components/PoDetail/PoDetail.tsx +++ b/src/components/PoDetail/PoDetail.tsx @@ -329,9 +329,22 @@ const PoDetail: React.FC = ({ po, warehouse, printerCombo }) => { } }) + const labelPrinters = useMemo(() => { + return (printerCombo ?? []).filter((p) => { + const text = `${p.label ?? ""} ${p.name ?? ""} ${p.code ?? ""}`.toLowerCase(); + return text.includes("label"); + }); + }, [printerCombo]); + const [selectedPrinter, setSelectedPrinter] = useState( - printerCombo?.[0], + labelPrinters?.[0], ); + useEffect(() => { + // If options change, keep selection valid and prefer first Label printer. + if (!selectedPrinter || !labelPrinters.some((p) => p.id === selectedPrinter.id)) { + setSelectedPrinter(labelPrinters[0]); + } + }, [labelPrinters, selectedPrinter]); const [printQty, setPrintQty] = useState(1); const [printDialogOpen, setPrintDialogOpen] = useState(false); const [isBulkPrinting, setIsBulkPrinting] = useState(false); @@ -1052,7 +1065,7 @@ const PoDetail: React.FC = ({ po, warehouse, printerCombo }) => { 列印 setSelectedPrinter(value)} renderInput={(params) => (