skyouc
2025-08-16 e918d4fa4f5065b51be706f21da6793c378c9aaf
rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx
@@ -50,7 +50,6 @@
import SaveIcon from '@mui/icons-material/Save';
import request from '@/utils/request';
import { Add, Edit, Delete } from '@mui/icons-material';
import _, { set } from 'lodash';
import { DataGrid, useGridApiRef, GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF, getGridDateOperators, useGridApiContext } from '@mui/x-data-grid';
import { LocalizationProvider, DatePicker, DateTimePicker } from '@mui/x-date-pickers';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
@@ -65,16 +64,18 @@
    const translate = useTranslate();
    const notify = useNotify();
    const refresh = useRefresh();
    const [page, setPage] = useState(0);
    const [pageSize, setPageSize] = useState(100);
    const [totalRowCount, setTotalRowCount] = useState(0);
    const [disabled, setDisabled] = useState(false)
    const [loading, setLoading] = useState(false);
    const [createDialog, setCreateDialog] = useState(false);
    const tableRef = useRef();
    useEffect(() => {
        if (open && record !== 0) {
            requestGetBody()
        }
        setDisabled(false)
    }, [open])
        requestGetBody()
        // setDisabled(false)
    }, [open, page, pageSize])
    const handleClose = (event, reason) => {
        if (reason !== "backdropClick") {
@@ -103,16 +104,16 @@
    const handleSubmit = async () => {
        setFinally()
        setDisabled(true)
        const parmas = {
            "purchaseId": record,
            "items": tabelData,
        }
        const res = await request.post(`/asnOrder/purchases/save`, parmas);
        if (res?.data?.code === 200) {
            notify(res.data.msg);
        } else {
            notify(res.data.msg);
        }
        // const parmas = {
        //     "purchaseId": record,
        //     "items": tabelData,
        // }
        // const res = await request.post(`/asnOrder/purchases/save`, parmas);
        // if (res?.data?.code === 200) {
        //     notify(res.data.msg);
        // } else {
        //     notify(res.data.msg);
        // }
        setOpen(false);
        refresh();
        resetData()
@@ -120,12 +121,21 @@
    };
    const requestGetBody = async () => {
        const res = await request.post(`warehouse/stock/page`, { matnrCode: record });
        if (res?.data?.code === 200) {
            setTableData(res.data.data.records)
        } else {
            notify(res.data.msg);
        setLoading(true);
        try {
            const res = await request.post(`warehouse/stock/info`, { page: page + 1, pageSize: pageSize, stock: record, aggType: record?.aggType });
            if (res?.data?.code === 200) {
                setTableData(res.data.data.records)
                setTotalRowCount(res.data.data.total)
            } else {
                notify(res.data.msg);
            }
        } catch (error) {
        } finally {
            setLoading(false);
        }
    }
    const [selectedRows, setSelectedRows] = useState([]);
@@ -155,9 +165,16 @@
                <DialogContent sx={{ mt: 2 }}>
                    <Box></Box>
                    <Box sx={{ mt: 2 }}>
                        <AsnOrderModalTable tabelData={tabelData}
                        <AsnOrderModalTable
                            tabelData={tabelData}
                            setTableData={setTableData}
                            record={record}
                            page={page}
                            pageSize={pageSize}
                            loading={loading}
                            setPage={setPage}
                            setPageSize={setPageSize}
                            totalRowCount={totalRowCount}
                            selectedRows={selectedRows}
                            setSelectedRows={setSelectedRows}
                            tableRef={tableRef} />
@@ -230,26 +247,32 @@
    );
};
const AsnOrderModalTable = ({ tabelData, setTableData, record, selectedRows, setSelectedRows, tableRef }) => {
const AsnOrderModalTable = ({ tabelData, setTableData, record, selectedRows, setSelectedRows, tableRef, page, pageSize, totalRowCount, setPageSize, setPage, loading }) => {
    const translate = useTranslate();
    const notify = useNotify();
    const [columns, setColumns] = useState([
        {
            field: 'matnrCode',
            headerName: translate('table.field.asnOrderItem.matnrCode'),
            field: 'warehouse$',
            headerName: translate('table.field.warehouseStock.warehouse'),
            width: 130,
            editable: false,
        },
        {
            field: 'matnrName',
            field: 'matnrCode',
            headerName: translate('table.field.warehouseStock.matnrCode'),
            width: 130,
            editable: false,
        },
        {
            field: 'maktx',
            headerName: translate('table.field.asnOrderItem.maktx'),
            width: 250,
            editable: false,
        },
        {
            field: 'splrName',
            headerName: translate('table.field.asnOrderItem.splrName') + "*",
            field: 'locCode',
            headerName: translate('table.field.warehouseStock.locCode'),
            minWidth: 150,
            flex: 1,
            editable: false,
@@ -258,15 +281,15 @@
            ),
        },
        {
            field: 'platItemId',
            headerName: translate('table.field.asnOrderItem.platItemId') + "*",
            field: 'batch',
            headerName: translate('table.field.warehouseStock.batch'),
            minWidth: 100,
            flex: 1,
            editable: false,
        },
        {
            field: 'anfme',
            headerName: translate('table.field.asnOrderItem.anfme') + "*",
            headerName: translate('table.field.warehouseStock.anfme'),
            type: 'number',
            minWidth: 100,
            flex: 1,
@@ -275,7 +298,7 @@
        },
        {
            field: 'qty',
            headerName: translate('table.field.asnOrderItem.qty') + "*",
            headerName: translate('table.field.warehouseStock.qty'),
            type: 'number',
            minWidth: 100,
            flex: 1,
@@ -283,7 +306,7 @@
        },
        {
            field: 'unit',
            headerName: translate('table.field.asnOrderItem.stockUnit'),
            headerName: translate('table.field.warehouseStock.unit'),
            minWidth: 100,
            flex: 1,
            editable: false,
@@ -347,16 +370,23 @@
    return (
        <div style={{ height: 400, width: '100%' }}>
        <div style={{ height: 500, width: '100%' }}>
            <DataGrid
                apiRef={tableRef}
                rows={tabelData}
                columns={columns}
                disableRowSelectionOnClick
                getRowId={(row) => row.id}
                disableColumnFilter
                disableColumnSelector
                disableColumnSorting
                rowCount={totalRowCount}
                paginationMode="server"
                page={page}
                pageSize={pageSize}
                onPageChange={(newPage) => {
                    setPage(newPage)
                }}
                onPageSizeChange={(newPageSize) => {
                    setPageSize(newPageSize)
                }}
                disableMultipleColumnsSorting
                processRowUpdate={processRowUpdate}
                initialState={{
@@ -366,11 +396,11 @@
                        },
                    },
                }}
                pageSizeOptions={[10, 25, 50, 100]}
                editMode="row"
                pageSizeOptions={[15, 25, 50, 100]}
                checkboxSelection
                onRowSelectionModelChange={handleSelectionChange}
                selectionModel={selectedRows}
                loading={loading}
                sx={{
                    '& .MuiDataGrid-cell input': {
                        border: '1px solid #ccc'