From cb2339b2f1530132659c8c320cfdd91ee7f68c61 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 31 七月 2025 12:47:28 +0800 Subject: [PATCH] 调拔单功能优化 库位编辑更新不生效问题修复 --- rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx | 133 +++++++++++++++++++++----------------------- 1 files changed, 63 insertions(+), 70 deletions(-) diff --git a/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx b/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx index ef7023d..c00ad64 100644 --- a/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx +++ b/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx @@ -23,8 +23,8 @@ DeleteButton, } from 'react-admin'; import { Stack, Grid, Box, Typography, Dialog, DialogTitle, DialogContent, TextField, Button, DialogActions } from '@mui/material'; +import { EDIT_MODE, DEFAULT_START_PAGE, DEFAULT_PAGE_SIZE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; import DialogCloseButton from "../../components/DialogCloseButton.jsx"; -import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; import StatusSelectInput from "../../components/StatusSelectInput"; import CustomerTopToolBar from "../../components/EditTopToolBar"; import TreeSelectInput from "@/page/components/TreeSelectInput"; @@ -38,27 +38,23 @@ const CreateBySelectMats = (props) => { const { open, setOpen, data, setData } = props; - - const [page, setPage] = useState(0); + const [page, setPage] = useState({ page: DEFAULT_START_PAGE, pageSize: DEFAULT_PAGE_SIZE }); const [rowCount, setRowCount] = useState(0); + const [isLoading, setIsLoading] = useState(false); const [formData, setFormData] = useState({}); const [tableData, setTableData] = useState([]); const [dyFields, setDyFields] = useState([]); const [pageSize, setPageSize] = useState(25); const [selectedRows, setSelectedRows] = useState([]); - const translate = useTranslate(); const notify = useNotify(); const refresh = useRefresh(); - - const handleClose = (event, reason) => { if (reason !== "backdropClick") { setOpen(false); } }; - const handleChange = (e) => { const { name, value } = e.target; @@ -69,9 +65,8 @@ const reset = () => { setFormData({ - name: '', - code: '', - groupId: 0 + maktx: '', + matnrCode: '', }) } @@ -84,43 +79,44 @@ return acc; }, {}); return { - matnrId: el.id, - maktx: el.name, - matnrCode: el.code, - stockUnit: el.stockUnit || '', - purUnit: el.purchaseUnit || '', + matnrId: el.matnrId, + maktx: el.maktx, + matnrCode: el.matnrCode, + anfme: el.anfme, + batch: el.batch, + spec: el.spec, + model: el.model, + stockUnit: el.unit || '', ...dynamicFields } - })) + })); setData([...data, ...value]); setOpen(false); reset(); }; const getData = async () => { - const res = await request.post(`/matnr/page`, { + setIsLoading(true) + const res = await request.post(`/transfer/locs/items`, { ...formData, - current: page, - pageSize: pageSize, + current: page?.page, + pageSize: page?.pageSize, orderBy: "create_time desc" }); if (res?.data?.code === 200) { - const {data} = res.data; + const { data } = res.data; setTableData(data?.records); - setRowCount(data?.total) + setRowCount(data?.total); - console.log(rowCount); - console.log(data); - - } else { notify(res.data.msg); } + setIsLoading(false) }; useEffect(() => { getData(); - }, [open]); + }, [open, page]); const handleSearch = () => { getData() @@ -152,8 +148,8 @@ <Grid item md={3}> <TextField label={translate('table.field.matnr.name')} - name="name" - value={formData.name} + name="maktx" + value={formData.maktx} onChange={handleChange} size="small" /> @@ -161,20 +157,10 @@ <Grid item md={3}> <TextField label={translate('table.field.matnr.code')} - name="code" - value={formData.code} + name="matnrCode" + value={formData.matnrCode} onChange={handleChange} size="small" - /> - </Grid> - <Grid item md={3}> - <TreeSelectInput - label="table.field.matnr.groupId" - value={formData.groupId} - resource={'matnrGroup'} - source="groupId" - name="groupId" - onChange={handleChange} /> </Grid> <Grid item md={2} sx={{ margin: 'auto' }}> @@ -191,6 +177,7 @@ rowCount={rowCount} pageSize={pageSize} setPage={setPage} + isLoading={isLoading} setPageSize={setPageSize} dyFields={dyFields} setDyFields={setDyFields} @@ -213,26 +200,42 @@ export default CreateBySelectMats; -const SelectMatsTableView = ({ tableData, page, pageSize,setPage, setPageSize, rowCount, setTableData, selectedRows, setSelectedRows, dyFields, setDyFields }) => { +const SelectMatsTableView = ({ tableData, page, isLoading, pageSize, setPage, setPageSize, rowCount, setTableData, selectedRows, setSelectedRows, dyFields, setDyFields }) => { const translate = useTranslate(); - const notify = useNotify(); const [extendColumns, setExtendColumns] = useState([]); const [columns, setColumns] = useState([ - { field: 'name', headerName: translate('table.field.matnr.name'), width: 300 }, - { field: 'code', headerName: translate('table.field.matnr.code'), width: 200 }, - { field: 'groupId$', headerName: translate('table.field.matnr.groupId'), width: 100 }, + { field: 'maktx', headerName: translate('table.field.matnr.name'), width: 300 }, + { field: 'matnrCode', headerName: translate('table.field.matnr.code'), width: 200 }, + // { field: 'groupId$', headerName: translate('table.field.matnr.groupId'), width: 100 }, { field: 'spec', headerName: translate('table.field.matnr.spec'), width: 100 }, + { field: 'batch', headerName: translate('table.field.locItem.batch'), width: 100 }, { field: 'model', headerName: translate('table.field.matnr.model'), width: 100 }, - { field: 'weight', headerName: translate('table.field.matnr.weight'), width: 100 }, - { field: 'describle', headerName: translate('table.field.matnr.describle'), width: 100 }, - { field: 'nromNum', headerName: translate('table.field.matnr.nromNum'), width: 100 }, + { field: 'anfme', headerName: translate('table.field.locItem.anfme'), width: 100 }, { field: 'unit', headerName: translate('table.field.matnr.unit'), width: 100 }, - { field: 'purchaseUnit', headerName: translate('table.field.matnr.purUnit'), width: 100 }, - { field: 'stockUnit', headerName: translate('table.field.matnr.stockUnit'), width: 100 }, - { field: 'stockLeval$', headerName: translate('table.field.matnr.stockLevel'), width: 100, sortable: false }, + { field: 'wareArea', headerName: translate('table.field.locItem.wareArea'), width: 100, sortable: false }, ]) + + const getData = async () => { + const res = await request.post(`/matnr/page`, { + // const res = await request.post(`/transfer/locs/items`, { + ...formData, + current: page, + pageSize: pageSize, + orderBy: "create_time desc" + }); + if (res?.data?.code === 200) { + const { data } = res.data; + console.log('====-->'); + console.log(data); + setTableData(data?.records); + setRowCount(data?.total); + + } else { + notify(res.data.msg); + } + }; const handleSelectionChange = (ids) => { setSelectedRows(ids) @@ -269,31 +272,21 @@ return ( <div style={{ height: 400, width: '100%' }}> + <DataGrid - size="small" rows={tableData} - page={page} - pageSize={pageSize} - columns={columns} - pagination - checkboxSelection rowCount={rowCount} - onRowSelectionModelChange={handleSelectionChange} - onPageChange={(newPage) => setPage(newPage)} - onPageSizeChange={(newPageSize) => setPageSize(newPageSize)} - selectionModel={selectedRows} + columns={columns} paginationMode="server" - disableColumnMenu={true} - initialState={{ - pagination: { - paginationModel: { - pageSize: 25, - }, + paginationModel={page} + onPaginationModelChange={setPage} + loading={isLoading} + slotProps={{ + loadingOverlay: { + variant: 'linear-progress', + noRowsVariant: 'linear-progress', }, }} - pageSizeOptions={[15, 25, 50, 100]} - disableColumnSorting - disableMultipleColumnsSorting /> </div> ); -- Gitblit v1.9.1