From 98d4db97d3c21f9b31f978249c5572fdae948088 Mon Sep 17 00:00:00 2001
From: verou <857149855@qq.com>
Date: 星期三, 09 四月 2025 13:21:22 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop
---
rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx | 151 ++++++++++++++++++++++++++++++++++++--------------
1 files changed, 108 insertions(+), 43 deletions(-)
diff --git a/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx b/rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx
index 5d1eeb6..23d04c3 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,7 +52,8 @@
},
{
field: 'asnCode',
- headerName: translate('table.field.asnOrderItem.asnCode')
+ headerName: translate('table.field.asnOrderItem.asnCode'),
+ width: 150,
},
{
field: 'poDetlId',
@@ -70,25 +64,27 @@
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,37 @@
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}
+ paginationModel={{ pageSize: 10, page: 1 }}
+ pageSizeOptions={[10, 25, 50, 100]}
/>
</Box >
@@ -166,3 +177,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