From bfc43ca0e4683c1c0322a6cad5d5be2bc07decc3 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 24 七月 2025 15:00:44 +0800
Subject: [PATCH] 新增调拔单功能 盘点功能优化
---
rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx | 108 ++++++++++++++++++++++++++++++++++-------------------
1 files changed, 69 insertions(+), 39 deletions(-)
diff --git a/rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx b/rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx
index deaf6ff..b781f69 100644
--- a/rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx
+++ b/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'
--
Gitblit v1.9.1