| @@ -24,35 +24,36 @@ const FinishedGoodFloorLanePanel: React.FC<Props> = ({ onPickOrderAssigned }) => | |||||
| const [isAssigning, setIsAssigning] = useState(false); | const [isAssigning, setIsAssigning] = useState(false); | ||||
| const [selectedDate, setSelectedDate] = useState<string>("today"); | const [selectedDate, setSelectedDate] = useState<string>("today"); | ||||
| const loadData = async (dateValue: string) => { | |||||
| const loadSummaries = useCallback(async () => { | |||||
| setIsLoadingSummary(true); | setIsLoadingSummary(true); | ||||
| try { | try { | ||||
| let dateOffset = 0; | |||||
| if (dateValue === "tomorrow") dateOffset = 1; | |||||
| else if (dateValue === "dayAfterTomorrow") dateOffset = 2; | |||||
| const requiredDate = dayjs().add(dateOffset, "day").format("YYYY-MM-DD"); | |||||
| console.log("🔄 requiredDate:", requiredDate); | |||||
| // Convert selectedDate to the format needed | |||||
| let dateParam: string | undefined; | |||||
| if (selectedDate === "today") { | |||||
| dateParam = dayjs().format('YYYY-MM-DD'); | |||||
| } else if (selectedDate === "tomorrow") { | |||||
| dateParam = dayjs().add(1, 'day').format('YYYY-MM-DD'); | |||||
| } else if (selectedDate === "dayAfterTomorrow") { | |||||
| dateParam = dayjs().add(2, 'day').format('YYYY-MM-DD'); | |||||
| } | |||||
| const [s2, s4] = await Promise.all([ | const [s2, s4] = await Promise.all([ | ||||
| fetchStoreLaneSummary("2/F", requiredDate), | |||||
| fetchStoreLaneSummary("4/F", requiredDate), | |||||
| fetchStoreLaneSummary("2/F", dateParam), | |||||
| fetchStoreLaneSummary("4/F", dateParam) | |||||
| ]); | ]); | ||||
| console.log("🔄 s2:", s2); | |||||
| console.log("🔄 s4:", s4); | |||||
| setSummary2F(s2); | setSummary2F(s2); | ||||
| setSummary4F(s4); | setSummary4F(s4); | ||||
| } catch (e) { | |||||
| console.error("load summaries failed:", e); | |||||
| } catch (error) { | |||||
| console.error("Error loading summaries:", error); | |||||
| } finally { | } finally { | ||||
| setIsLoadingSummary(false); | setIsLoadingSummary(false); | ||||
| } | } | ||||
| }; | |||||
| }, [selectedDate]); | |||||
| // 初始化 | // 初始化 | ||||
| useEffect(() => { | useEffect(() => { | ||||
| loadData("today"); | |||||
| }, []); | |||||
| loadSummaries(); | |||||
| }, [loadSummaries]); | |||||
| const handleAssignByLane = useCallback(async ( | const handleAssignByLane = useCallback(async ( | ||||
| storeId: string, | storeId: string, | ||||
| @@ -71,7 +72,7 @@ const FinishedGoodFloorLanePanel: React.FC<Props> = ({ onPickOrderAssigned }) => | |||||
| if (res.code === "SUCCESS") { | if (res.code === "SUCCESS") { | ||||
| console.log("✅ Successfully assigned pick order from lane", truckLanceCode); | console.log("✅ Successfully assigned pick order from lane", truckLanceCode); | ||||
| window.dispatchEvent(new CustomEvent('pickOrderAssigned')); | window.dispatchEvent(new CustomEvent('pickOrderAssigned')); | ||||
| loadData(selectedDate); // 刷新按钮状态 | |||||
| loadSummaries(); // 刷新按钮状态 | |||||
| onPickOrderAssigned?.(); | onPickOrderAssigned?.(); | ||||
| } else if (res.code === "USER_BUSY") { | } else if (res.code === "USER_BUSY") { | ||||
| Swal.fire({ | Swal.fire({ | ||||
| @@ -139,9 +140,10 @@ const FinishedGoodFloorLanePanel: React.FC<Props> = ({ onPickOrderAssigned }) => | |||||
| onChange={(e) => { { | onChange={(e) => { { | ||||
| setSelectedDate(e.target.value); | setSelectedDate(e.target.value); | ||||
| loadData(e.target.value); | |||||
| loadSummaries(); | |||||
| }}} | }}} | ||||
| > | > | ||||
| <MenuItem value="today"> | <MenuItem value="today"> | ||||
| {t("Today")} ({getDateLabel(0)}) | {t("Today")} ({getDateLabel(0)}) | ||||
| </MenuItem> | </MenuItem> | ||||