|
|
|
@@ -329,9 +329,22 @@ const PoDetail: React.FC<Props> = ({ 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 | undefined>( |
|
|
|
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<Props> = ({ po, warehouse, printerCombo }) => { |
|
|
|
<Typography variant="h6">列印</Typography> |
|
|
|
<Autocomplete |
|
|
|
disableClearable |
|
|
|
options={printerCombo} |
|
|
|
options={labelPrinters} |
|
|
|
value={selectedPrinter} |
|
|
|
onChange={(_event, value) => setSelectedPrinter(value)} |
|
|
|
renderInput={(params) => ( |
|
|
|
|