From f9a1b57d35529f8b8162e6dc7956d7b78375edd4 Mon Sep 17 00:00:00 2001
From: verou <857149855@qq.com>
Date: 星期三, 19 三月 2025 16:17:20 +0800
Subject: [PATCH] fix:货位可多选
---
rsf-admin/src/page/asnOrder/AsnOrderList.jsx | 96 ++++++++++++++++++++++++++++++++++++------------
1 files changed, 72 insertions(+), 24 deletions(-)
diff --git a/rsf-admin/src/page/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/asnOrder/AsnOrderList.jsx
index b032abd..095bde5 100644
--- a/rsf-admin/src/page/asnOrder/AsnOrderList.jsx
+++ b/rsf-admin/src/page/asnOrder/AsnOrderList.jsx
@@ -31,11 +31,11 @@
ReferenceArrayInput,
AutocompleteInput,
DeleteButton,
- Button
+ Button,
} from 'react-admin';
import { Box, Typography, Card, Stack } from '@mui/material';
import { styled } from '@mui/material/styles';
-import AsnOrderCreate from "./AsnOrderCreate";
+import AsnOrderModal from "./AsnOrderModal";
import AsnOrderPanel from "./AsnOrderPanel";
import EmptyData from "../components/EmptyData";
import MyCreateButton from "../components/MyCreateButton";
@@ -45,8 +45,10 @@
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
import * as Common from '@/utils/common';
import ConstructionIcon from "@mui/icons-material/Construction";
-import UploadloadIcon from "@mui/icons-material/Upload";
import FileDownloadIcon from '@mui/icons-material/FileDownload';
+import EditIcon from '@mui/icons-material/Edit';
+
+
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
'& .css-1vooibu-MuiSvgIcon-root': {
@@ -98,16 +100,42 @@
const [createDialog, setCreateDialog] = useState(false);
const [drawerVal, setDrawerVal] = useState(false);
+ const [modalType, setmodalType] = useState(0);
const navigate = useNavigate();
const assign = (record) => {
navigate(`/asnOrderItem?asnId=${record.id}`);
};
- const importList = () => { };
+
const inspection = () => { };
- const print = () => { };
+ const print = () => {
+ const imageUrls = ['https://www.baidu.com/img/flexible/logo/pc/result@2.png',]
+ const iframe = document.createElement('iframe');
+ iframe.style.display = 'none';
+ document.body.appendChild(iframe);
+
+ const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
+ iframeDoc.open();
+ iframeDoc.write('<html><head><title>Print Images</title></head><body>');
+
+ // 灏嗗浘鐗囨彃鍏ュ埌 iframe 涓�
+ imageUrls.forEach((imageUrl) => {
+ iframeDoc.write(`<img src="${imageUrl}" style="margin: 10px;">`);
+ });
+
+ iframeDoc.write('</body></html>');
+ iframeDoc.close();
+
+ // 绛夊緟鍥剧墖鍔犺浇瀹屾垚鍚庤Е鍙戞墦鍗�
+ iframe.contentWindow.onload = () => {
+ iframe.contentWindow.print();
+ // 鎵撳嵃瀹屾垚鍚庣Щ闄� iframe
+ document.body.removeChild(iframe);
+ };
+ };
+
return (
<Box display="flex">
@@ -121,21 +149,19 @@
marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
}}
title={"menu.asnOrder"}
- empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
+ empty={<EmptyData onClick={() => { setCreateDialog(true); setmodalType(0) }} />}
filters={filters}
sort={{ field: "create_time", order: "desc" }}
actions={(
<TopToolbar>
- <Button onClick={importList} label={"ra.action.import"}>
- <UploadloadIcon />
- </Button>
<Button onClick={inspection} label={"toolbar.inspection"}>
<ConstructionIcon />
</Button>
<FilterButton />
- <MyCreateButton onClick={() => { setCreateDialog(true) }} />
+ <MyCreateButton onClick={() => { setCreateDialog(true); setmodalType(0) }} />
<SelectColumnsButton preferenceKey='asnOrder' />
+
<MyExportButton />
</TopToolbar>
)}
@@ -145,19 +171,12 @@
preferenceKey='asnOrder'
bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
rowClick={(id, resource, record) => false}
- expand={() => <AsnOrderPanel />}
+ expand={(e) => <AsnOrderPanel key={Math.floor(Math.random() * 100)} />}
expandSingle={true}
omit={['id', 'createTime', 'createBy', 'memo']}
>
<NumberField source="id" />
- <MyField
- source="code"
- label="table.field.asnOrder.code"
- onClick={(event, record, val) => {
- event.stopPropagation();
- assign(record);
- }}
- />
+ <TextField source="code" label="table.field.asnOrder.code" />
<TextField source="poCode" label="table.field.asnOrder.poCode" />
<NumberField source="poId" label="table.field.asnOrder.poId" />
<TextField source="type" label="table.field.asnOrder.type" />
@@ -178,18 +197,28 @@
<DateField source="createTime" label="common.field.createTime" showTime />
<BooleanField source="statusBool" label="common.field.status" sortable={false} />
<TextField source="memo" label="common.field.memo" sortable={false} />
- <WrapperField cellClassName="opt" label="common.field.opt">
+ <WrapperField cellClassName="opt" label="common.field.opt" >
<Button label="toolbar.print" onClick={print}>
<FileDownloadIcon />
</Button>
- <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
+ {/* <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> */}
+ <MyButton setCreateDialog={setCreateDialog} setmodalType={setmodalType} />
+ {/* <Button
+ color="primary"
+ startIcon={<EditIcon />}
+ onClick={(event, record) => handleEditClick(record)}
+ sx={{ ml: 1 }}
+ label={'ra.action.edit'}
+ >
+ </Button> */}
<DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
</WrapperField>
</StyledDatagrid>
</List>
- <AsnOrderCreate
+ <AsnOrderModal
open={createDialog}
setOpen={setCreateDialog}
+ asnId={modalType}
/>
<PageDrawer
title='AsnOrder Detail'
@@ -197,8 +226,27 @@
setDrawerVal={setDrawerVal}
>
</PageDrawer>
- </Box>
+ </Box >
)
}
-
export default AsnOrderList;
+
+const MyButton = ({ setCreateDialog, setmodalType }) => {
+ const record = useRecordContext();
+ const handleEditClick = () => {
+ const id = record.id;
+ setmodalType(id);
+ setCreateDialog(true);
+
+ };
+ return (
+ <Button
+ color="primary"
+ startIcon={<EditIcon />}
+ onClick={() => handleEditClick()}
+ sx={{ ml: 1 }}
+ label={'ra.action.edit'}
+ >
+ </Button>
+ )
+}
--
Gitblit v1.9.1