From 6793162873940b6a34040ab815d6fa2eebfda402 Mon Sep 17 00:00:00 2001
From: verou <857149855@qq.com>
Date: 星期三, 26 三月 2025 10:36:31 +0800
Subject: [PATCH] fix:库位批量操作
---
rsf-admin/src/page/basicInfo/matnr/PrintModal.jsx | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 200 insertions(+), 5 deletions(-)
diff --git a/rsf-admin/src/page/basicInfo/matnr/PrintModal.jsx b/rsf-admin/src/page/basicInfo/matnr/PrintModal.jsx
index 4bb496e..f618577 100644
--- a/rsf-admin/src/page/basicInfo/matnr/PrintModal.jsx
+++ b/rsf-admin/src/page/basicInfo/matnr/PrintModal.jsx
@@ -53,8 +53,10 @@
import StatusSelectInput from "../../components/StatusSelectInput";
import { useReactToPrint } from "react-to-print";
+import jsbarcode from 'jsbarcode'
+import { el } from "date-fns/locale";
-const InitModal = ({ open, setOpen }) => {
+const PrintModal = ({ open, setOpen, rows }) => {
const refresh = useRefresh();
const translate = useTranslate();
const notify = useNotify();
@@ -98,8 +100,85 @@
</FormControl>
<Box>
- <div ref={contentRef}>
- 11
+ <div style={{ textAlign: 'center', display: 'flex', justifyContent: 'center' }}>
+ <table
+ className="contain"
+ style={{
+ overflow: 'hidden',
+ fontSize: 'small',
+ tableLayout: 'fixed',
+ width: '280px',
+ borderCollapse: 'collapse', // 鍚堝苟杈规
+ border: '1px solid black' // 璁剧疆琛ㄦ牸鏁翠綋杈规
+ }}
+ >
+ <tbody>
+ <tr style={{ height: '74px' }}>
+ <td
+ align="center"
+ colSpan={3}
+ style={{ border: '1px solid black' }} // 璁剧疆鍗曞厓鏍艰竟妗�
+ >
+ 鍟嗗搧缂栫爜
+ </td>
+ <td
+ align="center"
+ className="barcode"
+ colSpan={9}
+ style={{ border: '1px solid black' }}
+ >
+ <img className="template-code" src={'/img/barcode.jpeg'} style={{ width: '90%' }} alt="Barcode" />
+ <div style={{ letterSpacing: '2px', marginTop: '1px', textAlign: 'center' }}>
+ <span>{'xxxxxx'}</span>
+ </div>
+ </td>
+ </tr>
+ <tr style={{ height: '74px' }}>
+ <td
+ align="center"
+ colSpan={3}
+ style={{ border: '1px solid black' }}
+ >
+ 鍟嗗搧
+ </td>
+ <td
+ align="center"
+ colSpan={5}
+ style={{
+ overflow: 'hidden',
+ whiteSpace: 'nowrap',
+ textOverflow: 'ellipsis',
+ border: '1px solid black'
+ }}
+ >
+ {'xxxxxxxx'}
+ </td>
+ <td
+ align="center"
+ colSpan={2}
+ style={{ border: '1px solid black' }}
+ >
+ 澶囨敞
+ </td>
+ <td
+ align="center"
+ colSpan={2}
+ style={{ border: '1px solid black' }}
+ >
+ {'xx'}
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <style>{`
+ @media print {
+ .print-content {
+ display: block!important;
+ }
+ }`} </style>
+ <div ref={contentRef} className="print-content" style={{ textAlign: 'center', display: 'none' }}>
+ <PrintTemp key={'bb'} rows={rows} />
</div>
</Box>
</DialogContent>
@@ -110,8 +189,124 @@
</Button>
</Box>
</DialogActions>
- </Dialog>
+ </Dialog >
);
}
-export default InitModal;
\ No newline at end of file
+export default PrintModal;
+
+const PrintTemp = ({ rows }) => {
+ const notify = useNotify();
+ const [data, setData] = useState([]);
+ const http = async () => {
+ const res = await request.post(`/matnrs/many/${rows?.join()}`);
+ if (res?.data?.code === 200) {
+ let val = res.data.data.map((el => {
+ return {
+ barcode: '/img/barcode.jpeg',
+ code: el.code,
+ name: el.name,
+ memo: el.memo
+ }
+ }))
+ setData(val)
+ setTimeout(() => {
+ val.forEach((el) => {
+ jsbarcode(`#barcode${el.code}`, el.code, { height: 30 });
+ });
+ }, 10);
+
+
+
+ } else {
+ notify(res.data.msg);
+ }
+ }
+
+ useEffect(() => {
+ if (rows?.length > 0) {
+ http();
+ }
+
+ }, [rows]);
+
+
+ return (
+ <>
+ {data.map((item, index) => (
+ <table
+ key={index}
+ className="contain"
+ style={{
+ overflow: 'hidden',
+ fontSize: 'small',
+ tableLayout: 'fixed',
+ width: '280px',
+ borderCollapse: 'collapse',
+ borderSpacing: 0,
+ margin: '0 auto',
+ marginTop: '10px',
+ }}
+ >
+ <tbody>
+ <tr style={{ height: '74px' }}>
+ <td align="center" colSpan={3} style={{ border: '1px solid black' }} >
+ 鍟嗗搧缂栫爜
+ </td>
+ <td
+ align="center"
+ className="barcode"
+ colSpan={9}
+ style={{ border: '1px solid black' }}
+ >
+ <img id={"barcode" + item.code} style={{ width: '70%', verticalAlign: 'middle' }} />
+ {/* <img className="template-code" src={item.barcode} style={{ width: '90%', verticalAlign: 'middle' }} alt="Barcode" /> */}
+ {/* <div style={{ letterSpacing: '2px', marginTop: '1px', textAlign: 'center' }}>
+ <span>{item.code}</span>
+ </div> */}
+ </td>
+ </tr>
+ <tr style={{ height: '74px' }}>
+ <td
+ align="center"
+ colSpan={3}
+ style={{ border: '1px solid black' }}
+ >
+ 鍟嗗搧
+ </td>
+ <td
+ align="center"
+ colSpan={5}
+ style={{
+ overflow: 'hidden',
+ whiteSpace: 'nowrap',
+ textOverflow: 'ellipsis',
+ border: '1px solid black'
+ }}
+ >
+ {item.name}
+ </td>
+ <td
+ align="center"
+ colSpan={2}
+ style={{ border: '1px solid black' }}
+ >
+ 澶囨敞
+ </td>
+ <td
+ align="center"
+ colSpan={2}
+ style={{ border: '1px solid black' }}
+ >
+ {item.memo}
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ ))}
+
+ </>
+ )
+}
+
+
--
Gitblit v1.9.1