|
|
@@ -19,7 +19,7 @@ import { |
|
|
Checkbox, |
|
|
Checkbox, |
|
|
TablePagination, |
|
|
TablePagination, |
|
|
} from "@mui/material"; |
|
|
} from "@mui/material"; |
|
|
import { useCallback, useEffect, useMemo, useState } from "react"; |
|
|
|
|
|
|
|
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react"; |
|
|
import { useTranslation } from "react-i18next"; |
|
|
import { useTranslation } from "react-i18next"; |
|
|
import { |
|
|
import { |
|
|
newassignPickOrder, |
|
|
newassignPickOrder, |
|
|
@@ -27,6 +27,7 @@ import { |
|
|
releaseAssignedPickOrders, |
|
|
releaseAssignedPickOrders, |
|
|
assignPickOrderWorkbenchV2, |
|
|
assignPickOrderWorkbenchV2, |
|
|
releasePickOrderWorkbenchV2, |
|
|
releasePickOrderWorkbenchV2, |
|
|
|
|
|
cancelPickOrders, |
|
|
} from "@/app/api/pickOrder/actions"; |
|
|
} from "@/app/api/pickOrder/actions"; |
|
|
import { fetchNameList, NameList ,fetchNewNameList, NewNameList} from "@/app/api/user/actions"; |
|
|
import { fetchNameList, NameList ,fetchNewNameList, NewNameList} from "@/app/api/user/actions"; |
|
|
import { FormProvider, useForm } from "react-hook-form"; |
|
|
import { FormProvider, useForm } from "react-hook-form"; |
|
|
@@ -92,6 +93,8 @@ const AssignAndRelease: React.FC<Props> = ({ filterArgs }) => { |
|
|
const [selectedPickOrderIds, setSelectedPickOrderIds] = useState<number[]>([]); |
|
|
const [selectedPickOrderIds, setSelectedPickOrderIds] = useState<number[]>([]); |
|
|
const [filteredItems, setFilteredItems] = useState<ItemRow[]>([]); |
|
|
const [filteredItems, setFilteredItems] = useState<ItemRow[]>([]); |
|
|
const [isLoadingItems, setIsLoadingItems] = useState(false); |
|
|
const [isLoadingItems, setIsLoadingItems] = useState(false); |
|
|
|
|
|
const [isCancelling, setIsCancelling] = useState(false); |
|
|
|
|
|
const cancelInFlightRef = useRef(false); |
|
|
const [pagingController, setPagingController] = useState({ |
|
|
const [pagingController, setPagingController] = useState({ |
|
|
pageNum: 1, |
|
|
pageNum: 1, |
|
|
pageSize: 10, |
|
|
pageSize: 10, |
|
|
@@ -398,6 +401,38 @@ const AssignAndRelease: React.FC<Props> = ({ filterArgs }) => { |
|
|
formProps.reset(); |
|
|
formProps.reset(); |
|
|
}, [formProps]); |
|
|
}, [formProps]); |
|
|
|
|
|
|
|
|
|
|
|
const handleCancelPickOrders = useCallback(async () => { |
|
|
|
|
|
if (selectedPickOrderIds.length === 0) return; |
|
|
|
|
|
if (cancelInFlightRef.current) return; |
|
|
|
|
|
if (!window.confirm(t("Confirm Cancel Pick Order"))) return; |
|
|
|
|
|
|
|
|
|
|
|
cancelInFlightRef.current = true; |
|
|
|
|
|
setIsCancelling(true); |
|
|
|
|
|
setIsUploading(true); |
|
|
|
|
|
try { |
|
|
|
|
|
const res = await cancelPickOrders(selectedPickOrderIds); |
|
|
|
|
|
if (res && res.code === "SUCCESS") { |
|
|
|
|
|
setSelectedPickOrderIds([]); |
|
|
|
|
|
fetchNewPageItems(pagingController, filterArgs); |
|
|
|
|
|
} else { |
|
|
|
|
|
console.error("Cancel pick orders failed:", res); |
|
|
|
|
|
} |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error("Error cancelling pick orders:", error); |
|
|
|
|
|
} finally { |
|
|
|
|
|
setIsCancelling(false); |
|
|
|
|
|
setIsUploading(false); |
|
|
|
|
|
cancelInFlightRef.current = false; |
|
|
|
|
|
} |
|
|
|
|
|
}, [ |
|
|
|
|
|
selectedPickOrderIds, |
|
|
|
|
|
setIsUploading, |
|
|
|
|
|
fetchNewPageItems, |
|
|
|
|
|
pagingController, |
|
|
|
|
|
filterArgs, |
|
|
|
|
|
t, |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
// 组件挂载时加载数据 |
|
|
// 组件挂载时加载数据 |
|
|
useEffect(() => { |
|
|
useEffect(() => { |
|
|
console.log("=== Component mounted ==="); |
|
|
console.log("=== Component mounted ==="); |
|
|
@@ -549,7 +584,7 @@ const AssignAndRelease: React.FC<Props> = ({ filterArgs }) => { |
|
|
)} |
|
|
)} |
|
|
</Grid> |
|
|
</Grid> |
|
|
<Grid item xs={12}> |
|
|
<Grid item xs={12}> |
|
|
<Box sx={{ display: "flex", justifyContent: "flex-start", mt: 2 }}> |
|
|
|
|
|
|
|
|
<Box sx={{ display: "flex", gap: 2, justifyContent: "flex-start", mt: 2 }}> |
|
|
<Button |
|
|
<Button |
|
|
disabled={selectedPickOrderIds.length < 1} |
|
|
disabled={selectedPickOrderIds.length < 1} |
|
|
variant="outlined" |
|
|
variant="outlined" |
|
|
@@ -557,6 +592,14 @@ const AssignAndRelease: React.FC<Props> = ({ filterArgs }) => { |
|
|
> |
|
|
> |
|
|
{t("Assign")} |
|
|
{t("Assign")} |
|
|
</Button> |
|
|
</Button> |
|
|
|
|
|
<Button |
|
|
|
|
|
disabled={selectedPickOrderIds.length < 1 || isCancelling} |
|
|
|
|
|
variant="outlined" |
|
|
|
|
|
color="error" |
|
|
|
|
|
onClick={handleCancelPickOrders} |
|
|
|
|
|
> |
|
|
|
|
|
{t("Cancel Pick Order")} |
|
|
|
|
|
</Button> |
|
|
</Box> |
|
|
</Box> |
|
|
</Grid> |
|
|
</Grid> |
|
|
</Grid> |
|
|
</Grid> |
|
|
|