From 0d42706148e164656334d3dbd284daf4f2bf1b30 Mon Sep 17 00:00:00 2001 From: verou <857149855@qq.com> Date: 星期四, 03 四月 2025 16:59:27 +0800 Subject: [PATCH] feat:收货单完成 --- rsf-admin/src/page/asnOrder/AsnOrderList.jsx | 29 ++++++++++++++ rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx | 12 +++++- rsf-admin/src/page/qlyInspect/QlyInspectList.jsx | 24 ++++++++--- rsf-admin/.env | 2 rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx | 2 rsf-admin/src/page/asnOrder/AsnOrderModal.jsx | 4 + 6 files changed, 60 insertions(+), 13 deletions(-) diff --git a/rsf-admin/.env b/rsf-admin/.env index 75359a8..a8ce658 100644 --- a/rsf-admin/.env +++ b/rsf-admin/.env @@ -1,3 +1,3 @@ -VITE_BASE_IP=192.168.4.13 +VITE_BASE_IP=192.168.4.24 # VITE_BASE_IP=47.76.147.249 VITE_BASE_PORT=8080 diff --git a/rsf-admin/src/page/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/asnOrder/AsnOrderList.jsx index 70af9af..ad77e8f 100644 --- a/rsf-admin/src/page/asnOrder/AsnOrderList.jsx +++ b/rsf-admin/src/page/asnOrder/AsnOrderList.jsx @@ -48,6 +48,7 @@ import ConstructionIcon from "@mui/icons-material/Construction"; import FileDownloadIcon from '@mui/icons-material/FileDownload'; import EditIcon from '@mui/icons-material/Edit'; +import TaskIcon from '@mui/icons-material/Task'; import request from '@/utils/request'; @@ -101,6 +102,7 @@ const [createDialog, setCreateDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); const [modalType, setmodalType] = useState(0); + const [billReload, setBillReload] = useState(null); const navigate = useNavigate(); const assign = (record) => { @@ -138,7 +140,7 @@ preferenceKey='asnOrder' bulkActionButtons={<> <InspectionsButton /><BulkDeleteButton mutationMode={OPERATE_MODE} /></>} rowClick={() => false} - expand={<AsnOrderPanel />} + expand={<AsnOrderPanel setBillReload={setBillReload} />} expandSingle={true} omit={['id', 'createTime', 'createBy', 'memo', 'poId']} > @@ -179,6 +181,7 @@ > </Button> */} <InspectionButton /> + <CompleteButton /> <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> </WrapperField> </StyledDatagrid> @@ -187,6 +190,7 @@ open={createDialog} setOpen={setCreateDialog} asnId={modalType} + billReload={billReload} /> <PageDrawer title='AsnOrder Detail' @@ -278,3 +282,26 @@ </Button> ) } + +const CompleteButton = () => { + const record = useRecordContext(); + const notify = useNotify(); + const refresh = useRefresh(); + const requestComplete = async () => { + const { data: { code, data, msg } } = await request.post(`/asnOrder/complete/${record.id}`); + + if (code === 200) { + notify(msg); + refresh() + } else { + notify(msg); + } + } + + + return ( + <Button onClick={requestComplete} label={"toolbar.complete"} color="success"> + <TaskIcon /> + </Button> + ) +} diff --git a/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx index 9bb5800..3f6b568 100644 --- a/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx +++ b/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx @@ -57,7 +57,7 @@ import DictSelect from "../components/DictSelect"; const AsnOrderModal = (props) => { - const { open, setOpen, asnId } = props; + const { open, setOpen, asnId, billReload } = props; const translate = useTranslate(); const notify = useNotify(); @@ -108,6 +108,7 @@ const res = await request.post(`/asnOrder/items/save`, parmas); if (res?.data?.code === 200) { setOpen(false); + billReload() refresh(); } else { notify(res.data.msg); @@ -121,6 +122,7 @@ if (res?.data?.code === 200) { setOpen(false); refresh(); + } else { notify(res.data.msg); } diff --git a/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx b/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx index 1880e12..0d858d2 100644 --- a/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx +++ b/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx @@ -15,7 +15,7 @@ import { DataGrid } from '@mui/x-data-grid'; import PrintModal from './PrintModal'; import { width } from "@mui/system"; -const AsnOrderPanel = () => { +const AsnOrderPanel = ({ setBillReload }) => { const record = useRecordContext(); if (!record) return null; const translate = useTranslate(); @@ -26,7 +26,13 @@ useEffect(() => { debouncedHttp({ maktx }); + setBillReload(http) }, [asnId, maktx]); + + useEffect(() => { + setBillReload(http) + }, []); + const http = async (parmas) => { @@ -37,6 +43,7 @@ notify(res.data.msg); } } + const debouncedHttp = useMemo(() => debounce(http, 300), []); @@ -104,7 +111,8 @@ }, { field: 'trackCode', - headerName: translate('table.field.asnOrderItem.barcode') + headerName: translate('table.field.asnOrderItem.barcode'), + width: 150 }, { field: 'prodTime', diff --git a/rsf-admin/src/page/qlyInspect/QlyInspectList.jsx b/rsf-admin/src/page/qlyInspect/QlyInspectList.jsx index b30ce29..46b4912 100644 --- a/rsf-admin/src/page/qlyInspect/QlyInspectList.jsx +++ b/rsf-admin/src/page/qlyInspect/QlyInspectList.jsx @@ -107,7 +107,13 @@ marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, }} title={"menu.qlyInspect"} - empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} + empty={<EmptyData + children={ + <Box sx={{ gap: 2, display: 'flex' }}> + <AsnCreatButton isInit={true} /> + </Box> + } + onClick={() => { }} />} filters={filters} sort={{ field: "create_time", order: "desc" }} actions={( @@ -244,19 +250,23 @@ ) } -const AsnCreatButton = () => { +const AsnCreatButton = ({ isInit }) => { const record = useRecordContext(); const notify = useNotify(); const refresh = useRefresh(); const [createDialog, setCreateDialog] = useState(false); - - return ( <> - <Button onClick={() => setCreateDialog(true)} label={"toolbar.asnCreate"}> - <AddIcon /> - </Button> + { + isInit ? <Button onClick={() => setCreateDialog(true)} label={"toolbar.asnCreate"} variant="contained" + color="primary"> + <AddIcon /> + </Button> : <Button onClick={() => setCreateDialog(true)} label={"toolbar.asnCreate"} > + <AddIcon /> + </Button> + } + <AsnSelModal open={createDialog} diff --git a/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx b/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx index 999b8d4..37aa8a0 100644 --- a/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx +++ b/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx @@ -127,7 +127,7 @@ preferenceKey='warehouseAreasItem' bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} rowClick={(id, resource, record) => false} - omit={['id', 'createTime', 'createBy', 'memo']} + omit={['id', 'createTime', 'createBy', 'memo', 'areaId', 'matnrId']} > <NumberField source="id" /> <NumberField source="areaId" label="table.field.warehouseAreasItem.areaId" /> -- Gitblit v1.9.1