From c99ccf370df6d868397b06d720dba6842b9bb161 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 11 四月 2025 14:49:37 +0800
Subject: [PATCH] no message

---
 rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx |  167 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 119 insertions(+), 48 deletions(-)

diff --git a/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx b/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx
index 5d1eeb6..bf4c274 100644
--- a/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx
+++ b/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx
@@ -3,7 +3,9 @@
 import {
     useTranslate,
     useRecordContext,
-    useNotify
+    useNotify,
+    useRefresh,
+    useListContext,
 } from 'react-admin';
 import PanelTypography from "../components/PanelTypography";
 import * as Common from '@/utils/common'
@@ -11,7 +13,9 @@
 import request from '@/utils/request';
 import debounce from 'lodash/debounce';
 import { DataGrid } from '@mui/x-data-grid';
-const AsnOrderPanel = () => {
+import PrintModal from './PrintModal';
+import PrintIcon from '@mui/icons-material/Print';
+const AsnOrderPanel = ({ billReload }) => {
     const record = useRecordContext();
     if (!record) return null;
     const translate = useTranslate();
@@ -24,7 +28,6 @@
         debouncedHttp({ maktx });
     }, [asnId, maktx]);
 
-
     const http = async (parmas) => {
         const res = await request.post('/asnOrderItem/page', { ...parmas, asnId });
         if (res?.data?.code === 200) {
@@ -34,23 +37,13 @@
         }
     }
 
+
+    useEffect(() => {
+        billReload.current = http
+    }, []);
+
+
     const debouncedHttp = useMemo(() => debounce(http, 300), []);
-
-    const StyledTableRow = styled(TableRow)(({ theme }) => ({
-        "& .MuiButtonBase-root.": {
-            padding: "0px 0px",
-        },
-    }));
-
-    const StyledTableCell = styled(TableCell)(({ theme }) => ({
-        "& .MuiButtonBase-root": {
-            padding: "0px 0px",
-        },
-        overflow: "hidden",
-        textOverflow: "ellipsis",
-        whiteSpace: "nowrap",
-        maxWidth: 600,
-    }));
 
     const columns = [
         {
@@ -59,36 +52,39 @@
         },
         {
             field: 'asnCode',
-            headerName: translate('table.field.asnOrderItem.asnCode')
+            headerName: translate('table.field.asnOrderItem.asnCode'),
+            width: 150,
         },
+        // {
+        //     field: 'poDetlId',
+        //     headerName: translate('table.field.asnOrderItem.poDetlId')
+        // },
         {
-            field: 'poDetlId',
-            headerName: translate('table.field.asnOrderItem.poDetlId')
-        },
-        {
-            field: 'poDetlCode',
+            field: 'poCode',
             headerName: translate('table.field.asnOrderItem.poDetlCode')
         },
         {
-            field: 'matnrId',
-            headerName: translate('table.field.asnOrderItem.matnrId')
+            field: 'matnrCode',
+            headerName: translate('table.field.asnOrderItem.matnrCode'),
+            width: 150,
         },
         {
             field: 'maktx',
-            headerName: translate('table.field.asnOrderItem.maktx')
+            headerName: translate('table.field.asnOrderItem.maktx'),
+            width: 200,
         },
         {
             field: 'anfme',
-            headerName: translate('table.field.asnOrderItem.anfme')
+            headerName: translate('table.field.asnOrderItem.purQty')
         },
         {
             field: 'stockUnit',
             headerName: translate('table.field.asnOrderItem.stockUnit')
         },
-        {
-            field: 'purQty',
-            headerName: translate('table.field.asnOrderItem.purQty')
-        },
+        // {
+        //     field: 'purQty',
+        //     headerName: translate('table.field.asnOrderItem.purQty')
+        // },
         {
             field: 'purUnit',
             headerName: translate('table.field.asnOrderItem.purUnit')
@@ -96,6 +92,10 @@
         {
             field: 'qty',
             headerName: translate('table.field.asnOrderItem.qty')
+        },
+        {
+            field: 'splrBatch',
+            headerName: translate('table.field.asnOrderItem.splrBatch')
         },
         {
             field: 'splrCode',
@@ -106,13 +106,28 @@
             headerName: translate('table.field.asnOrderItem.splrName')
         },
         {
-            field: 'barcode',
-            headerName: translate('table.field.asnOrderItem.barcode')
+            field: 'trackCode',
+            headerName: translate('table.field.asnOrderItem.barcode'),
+            width: 150
+        },
+        {
+            field: 'prodTime',
+            headerName: translate('table.field.asnOrderItem.prodTime')
         },
         {
             field: 'packName',
             headerName: translate('table.field.asnOrderItem.packName')
-        }]
+        },
+        {
+            field: 'action',
+            headerName: '鎿嶄綔',
+            width: 70,
+            lockPosition: 'left',
+            renderCell: (params) => (
+                <PrintButton rows={[params.row.id]} />
+            ),
+
+        },]
 
     const [selectedRows, setSelectedRows] = useState([]);
 
@@ -124,41 +139,43 @@
         setMaktx(value)
     }
 
-    const wakbarcode = () => {
-
-    }
-
-    const wakprint = () => {
-
-    }
-
 
     return (
         <Box sx={{
             position: 'relative',
             padding: '5px 10px'
         }}>
-
             <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: '4px', alignItems: 'center' }}>
-                <TextField value={maktx} onChange={(e) => maktxChange(e.target.value)} label="鎼滅储鐗╂枡" variant="outlined" sx={{ width: '300px' }} />
+                <TextField value={maktx} onChange={(e) => maktxChange(e.target.value)} label="鎼滅储鐗╂枡" sx={{ width: '300px' }} size="small" />
 
                 <div style={{ display: 'flex', gap: '10px' }}>
-                    <Button variant="contained" onClick={wakbarcode}>鐢熸垚鏉$爜</Button>
-                    <Button variant="contained" onClick={wakprint}>鎵撳嵃</Button>
+                    <PrintsButton rows={selectedRows} />
                 </div>
             </div>
 
 
             <DataGrid
+                sx={{ width: 'calc(100vw - 280px)' }}
                 size="small"
                 rows={rows}
                 columns={columns}
+                disableRowSelectionOnClick
                 checkboxSelection
                 onRowSelectionModelChange={handleSelectionChange}
                 selectionModel={selectedRows}
                 disableColumnMenu={true}
                 disableColumnSorting
                 disableMultipleColumnsSorting
+                columnHeaderHeight={40}
+                rowHeight={42}
+                initialState={{
+                    pagination: {
+                        paginationModel: {
+                            pageSize: 10,
+                        },
+                    },
+                }}
+                pageSizeOptions={[10, 25, 50]}
             />
         </Box >
 
@@ -166,3 +183,57 @@
 };
 
 export default AsnOrderPanel;
+
+const PrintsButton = ({ rows }) => {
+    const record = useRecordContext();
+    const { resource, selectedIds } = useListContext();
+    const notify = useNotify();
+    const refresh = useRefresh();
+    const translate = useTranslate();
+
+    const [createDialog, setCreateDialog] = useState(false);
+
+    const modalChange = () => {
+        if (rows?.length === 0) {
+            notify('璇烽�夋嫨鐗╂枡');
+            return;
+        } else {
+            setCreateDialog(true)
+        }
+
+    }
+
+    return (
+        <>
+            <Button size="small" color="secondary" onClick={modalChange} startIcon={<PrintIcon />}>{translate("toolbar.batchPrint")}</Button>
+
+            <PrintModal
+                open={createDialog}
+                setOpen={setCreateDialog}
+                rows={rows}
+            />
+        </>
+    )
+}
+
+const PrintButton = ({ rows }) => {
+    const record = useRecordContext();
+
+    const notify = useNotify();
+    const refresh = useRefresh();
+
+    const [createDialog, setCreateDialog] = useState(false);
+    const translate = useTranslate();
+
+    return (
+        <>
+            <Button size="small" color="secondary" onClick={() => setCreateDialog(true)} startIcon={<PrintIcon />}>{translate("toolbar.print")}</Button>
+
+            <PrintModal
+                open={createDialog}
+                setOpen={setCreateDialog}
+                rows={rows}
+            />
+        </>
+    )
+}

--
Gitblit v1.9.1