| @@ -111,9 +111,9 @@ const PickExecutionForm: React.FC<PickExecutionFormProps> = ({ | |||||
| fetchHandlers(); | fetchHandlers(); | ||||
| }, []); | }, []); | ||||
| // 初始化表单数据 - 每次打开时都重新初始化 | |||||
| useEffect(() => { | |||||
| if (open && selectedLot && selectedPickOrderLine && pickOrderId) { | |||||
| // 初始化表单数据 - 每次打开时都重新初始化 | |||||
| useEffect(() => { | |||||
| if (open && selectedLot && selectedPickOrderLine && pickOrderId) { | |||||
| const getSafeDate = (dateValue: any): string => { | const getSafeDate = (dateValue: any): string => { | ||||
| if (!dateValue) return dayjs().format(INPUT_DATE_FORMAT); | if (!dateValue) return dayjs().format(INPUT_DATE_FORMAT); | ||||
| try { | try { | ||||
| @@ -127,37 +127,38 @@ const PickExecutionForm: React.FC<PickExecutionFormProps> = ({ | |||||
| } | } | ||||
| }; | }; | ||||
| // ✅ Initialize verified quantity to the received quantity (actualPickQty) | |||||
| const initialVerifiedQty = selectedLot.actualPickQty || 0; | |||||
| setVerifiedQty(initialVerifiedQty); | |||||
| console.log("=== PickExecutionForm Debug ==="); | |||||
| console.log("selectedLot:", selectedLot); | |||||
| console.log("initialVerifiedQty:", initialVerifiedQty); | |||||
| console.log("=== End Debug ==="); | |||||
| setFormData({ | |||||
| pickOrderId: pickOrderId, | |||||
| pickOrderCode: selectedPickOrderLine.pickOrderCode, | |||||
| pickOrderCreateDate: getSafeDate(pickOrderCreateDate), | |||||
| pickExecutionDate: dayjs().format(INPUT_DATE_FORMAT), | |||||
| pickOrderLineId: selectedPickOrderLine.id, | |||||
| itemId: selectedPickOrderLine.itemId, | |||||
| itemCode: selectedPickOrderLine.itemCode, | |||||
| itemDescription: selectedPickOrderLine.itemName, | |||||
| lotId: selectedLot.lotId, | |||||
| lotNo: selectedLot.lotNo, | |||||
| storeLocation: selectedLot.location, | |||||
| requiredQty: selectedLot.requiredQty, | |||||
| actualPickQty: initialVerifiedQty, // ✅ Use the initial value | |||||
| missQty: 0, | |||||
| badItemQty: 0, | |||||
| issueRemark: '', | |||||
| // pickerName: '', | |||||
| handledBy: undefined, | |||||
| }); | |||||
| } | |||||
| }, [open, selectedLot, selectedPickOrderLine, pickOrderId, pickOrderCreateDate]); | |||||
| // ✅ Initialize verified quantity to the received quantity (actualPickQty) | |||||
| const initialVerifiedQty = selectedLot.actualPickQty || 0; | |||||
| setVerifiedQty(initialVerifiedQty); | |||||
| console.log("=== PickExecutionForm Debug ==="); | |||||
| console.log("selectedLot:", selectedLot); | |||||
| console.log("initialVerifiedQty:", initialVerifiedQty); | |||||
| console.log("=== End Debug ==="); | |||||
| setFormData({ | |||||
| pickOrderId: pickOrderId, | |||||
| pickOrderCode: selectedPickOrderLine.pickOrderCode, | |||||
| pickOrderCreateDate: getSafeDate(pickOrderCreateDate), | |||||
| pickExecutionDate: dayjs().format(INPUT_DATE_FORMAT), | |||||
| pickOrderLineId: selectedPickOrderLine.id, | |||||
| itemId: selectedPickOrderLine.itemId, | |||||
| itemCode: selectedPickOrderLine.itemCode, | |||||
| itemDescription: selectedPickOrderLine.itemName, | |||||
| lotId: selectedLot.lotId, | |||||
| lotNo: selectedLot.lotNo, | |||||
| storeLocation: selectedLot.location, | |||||
| requiredQty: selectedLot.requiredQty, | |||||
| actualPickQty: initialVerifiedQty, | |||||
| missQty: 0, | |||||
| badItemQty: 0, | |||||
| issueRemark: '', | |||||
| handledBy: undefined, | |||||
| }); | |||||
| } | |||||
| // ✅ 只在 open 状态改变时重新初始化,移除其他依赖 | |||||
| // eslint-disable-next-line react-hooks/exhaustive-deps | |||||
| }, [open]); | |||||
| const handleInputChange = useCallback((field: keyof PickExecutionIssueData, value: any) => { | const handleInputChange = useCallback((field: keyof PickExecutionIssueData, value: any) => { | ||||
| setFormData(prev => ({ ...prev, [field]: value })); | setFormData(prev => ({ ...prev, [field]: value })); | ||||