From 8708598a8e75c36dcdd446c634e11bbeaf48ddab Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 07 八月 2025 10:38:50 +0800
Subject: [PATCH] 库存调整功能优化

---
 rsf-admin/src/page/stockManage/locRevise/LocsReviseDetl.jsx |   98 +++++++++++++++++++++---------------------------
 1 files changed, 43 insertions(+), 55 deletions(-)

diff --git a/rsf-admin/src/page/stockManage/locRevise/LocsReviseDetl.jsx b/rsf-admin/src/page/stockManage/locRevise/LocsReviseDetl.jsx
index 04602df..ee0a8fa 100644
--- a/rsf-admin/src/page/stockManage/locRevise/LocsReviseDetl.jsx
+++ b/rsf-admin/src/page/stockManage/locRevise/LocsReviseDetl.jsx
@@ -19,6 +19,7 @@
 import { useTranslate, useNotify, useRefresh, DatagridConfigurable, useGetOne } from 'react-admin';
 import DialogCloseButton from "../../components/DialogCloseButton";
 import { Add, Edit, Delete, Save } from '@mui/icons-material';
+import QueryStatsIcon from '@mui/icons-material/QueryStats';
 import { DataGrid, useGridApiRef } from '@mui/x-data-grid';
 import SelectMatnrInfo from "./SelectMatnrInfo";
 import SaveIcon from '@mui/icons-material/Save';
@@ -44,28 +45,19 @@
         }
     };
 
-    const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_stock_revise_type')) || [];
     const [page, setPage] = useState({ page: DEFAULT_START_PAGE, pageSize: DEFAULT_PAGE_SIZE });
-    const [formData, setFormData] = useState({ locCode: record?.locCode });
     const [selectedRows, setSelectedRows] = useState([]);
     const [isLoading, setIsLoading] = useState(false);
     const [tableData, setTableData] = useState([]);
     const [openMatnr, setOpenMatnr] = useState();
     const [dyFields, setDyFields] = useState([]);
     const [rowCount, setRowCount] = useState(0);
+    const [formData, setFormData] = useState({ matnrCode: null });
     const translate = useTranslate();
     const refresh = useRefresh();
     const notify = useNotify();
     const tableRef = useRef()
 
-
-    const handleChange = (e) => {
-        const { name, value } = e.target;
-        setFormData(() => ({
-            ...formData,
-            [name]: value
-        }));
-    };
 
     const handleSubmit = () => {
         const rows = tableRef.current.getSelectedRows();
@@ -80,6 +72,7 @@
                 batch: el.batch,
                 anfme: el.anfme,
                 reviseQty: el.reviseQty,
+                filedsIndex: el.filedsIndex,
                 spec: el.spec,
                 model: el.model,
                 unit: el.unit,
@@ -94,7 +87,6 @@
             reviseLogId: record?.id,
             items: values,
         }
-        console.log(values);
 
         const res = await request.post(`/reviseLogItem/items/save`, parmas);
         if (res?.data?.code === 200) {
@@ -105,12 +97,11 @@
         }
     }
 
-    const getData = async () => {
+    const getData = async (matnr) => {
         setIsLoading(true)
-        console.log(formData);
-
-        const res = await request.post(`/locItem/page`, {
+        const res = await request.post(`/reviseLogItem/page`, {
             locCode: record?.locCode,
+            matnrCode: matnr,
             current: page?.page,
             pageSize: page?.pageSize,
             orderBy: "create_time desc"
@@ -125,12 +116,24 @@
     };
 
     useEffect(() => {
-        getData();
+        if (record != null || record != undefined) {
+            getData()
+        }
     }, [open, page]);
 
     const handleSearch = () => {
-        // getData()
+        getData(formData.matnrCode)
+    };
+
+    const handleAdd = () => {
         setOpenMatnr(true)
+    };
+
+    const handleChange = (e) => {
+        const { name, value } = e.target;
+        setFormData(() => ({
+            [name]: value
+        }));
     };
 
     return (
@@ -155,43 +158,27 @@
                     </Box>
                 </DialogTitle>
                 <DialogContent sx={{ mt: 2 }}>
-                    {/* <Box>
-                    <List
-                        sx={{
-                            flexGrow: 1,
-                            marginRight: 1,
-                            transition: (theme) =>
-                                theme.transitions.create(['all'], {
-                                    duration: theme.transitions.duration.enteringScreen,
-                                }),
-                        }}
-                        resource="loc"
-                        title={"menu.loc"}
-                        empty={false}
-                        filter={{ useStatus: 'F' }}
-                        filters={filters}
-                        sort={{ field: "'row'" }}
-                        actions={false}
-                        perPage={DEFAULT_PAGE_SIZE}
-                        aside={false}
-                    >
-                        <StyledDatagrid
-                            preferenceKey='loc'
-                            align="left"
-                            bulkActionButtons={false}
-                            rowClick={() => false}
-                            omit={['id', 'areaId', 'type', 'barcode']}
-                        >
-                            <NumberField source="id" />
-                            <TextField source="code" label="table.field.locItem.locCode" />
-                        </StyledDatagrid>
-                    </List>
-                </Box> */}
                     <Box>
-                        <Box component="form" onSubmit={handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 3, justifyContent: 'flex-end' }}>
-                            <Grid item md={12} sx={{ justifyContent: 'flex-end', display: 'flex' }}>
-                                <Button variant="text" onClick={handleSearch}>{translate("page.whMat.title.add")}</Button>
+                        <Box sx={{ display: 'flex', justifyContent: 'space-between' }}>
+                            <Grid container spacing={2}>
+                                <Grid item md={3}>
+                                    <TextField
+                                        label={translate('table.field.matnr.code')}
+                                        name="matnrCode"
+                                        value={formData.matnrCode}
+                                        onChange={handleChange}
+                                        size="small"
+                                    />
+                                </Grid>
+                                <Grid item md={3} sx={{ display: "flex", margin: 1 }}>
+                                    <Button variant="contained" onClick={handleSearch} startIcon={<QueryStatsIcon />}>{translate("toolbar.query")}</Button>
+                                </Grid>
                             </Grid>
+                            <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, justifyContent: 'flex-end' }}>
+                                <Grid item md={8} sx={{ justifyContent: 'flex-end', display: 'flex' }}>
+                                    <Button variant="text" onClick={handleAdd}>{translate("page.whMat.title.add")}</Button>
+                                </Grid>
+                            </Box>
                         </Box>
                         <Box sx={{ mt: 2, height: 600, width: '100%' }}>
                             <SelectReviseMatnr
@@ -226,9 +213,9 @@
 export default LocsReviseDetl;
 
 const SelectReviseMatnr = ({ tableData, setTableData, page, isLoading, setPage, rowCount, selectedRows, setSelectedRows, tableRef, setDyFields, dyFields }) => {
+    const [dynamicFields, setDynamicFields] = useState([]);
     const translate = useTranslate();
     const notify = useNotify();
-    const [dynamicFields, setDynamicFields] = useState([]);
     const [columns, setColumns] = useState([
         {
             field: 'matnrCode',
@@ -259,7 +246,7 @@
         },
         {
             field: 'reviseQty',
-            headerName: translate('table.field.locItem.outQty') + "*",
+            headerName: translate('table.field.locItem.reviseQty') + "*",
             minWidth: 100,
             type: 'number',
             flex: 1,
@@ -303,7 +290,8 @@
     }
 
     const handleDelete = (rows) => {
-        const tableRows = tableData.filter(item => item.matnrCode != rows.matnrCode);
+        let selectRow = tableRef.current.getSortedRows();
+        const tableRows = selectRow.filter(item => item.id != rows.id);
         setTableData(tableRows);
     }
 

--
Gitblit v1.9.1