From 1de6b39bfe3967916dcab8122be0d69fbaba8cca Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 30 五月 2025 17:29:06 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop

---
 rsf-admin/src/page/components/ImportModal.jsx |   59 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 45 insertions(+), 14 deletions(-)

diff --git a/rsf-admin/src/page/components/ImportModal.jsx b/rsf-admin/src/page/components/ImportModal.jsx
index 3775169..caee07f 100644
--- a/rsf-admin/src/page/components/ImportModal.jsx
+++ b/rsf-admin/src/page/components/ImportModal.jsx
@@ -1,4 +1,4 @@
-import { useEffect, useState } from 'react';
+import { useEffect, useState, createContext, useContext } from 'react';
 import { Box, CircularProgress, Stack, Typography } from '@mui/material';
 import Alert from '@mui/material/Alert';
 import Dialog from '@mui/material/Dialog';
@@ -13,14 +13,16 @@
     Form,
     Toolbar,
     useRefresh,
-    useTranslate
+    useTranslate,
+    useNotify
 } from 'react-admin';
 import { Link } from 'react-router-dom';
 import DialogCloseButton from './DialogCloseButton';
 import { usePapaParse } from './usePapaParse';
 import MatnrList from '../basicInfo/matnr/MatnrList';
-
-const ImportModal = ({ open, onClose, importTemp, useCodeImport, onceBatch = 10 }) => {
+import request from '@/utils/request'
+import ImportExportOutlinedIcon from '@mui/icons-material/ImportExportOutlined';
+const ImportModal = ({ open, onClose, importTemp, useCodeImport, onceBatch = 10, value, parmas = {}}) => {
     const refresh = useRefresh();
     const translate = useTranslate();
 
@@ -31,6 +33,7 @@
     });
 
     const [file, setFile] = useState(null);
+    const notify = useNotify();
 
     useEffect(() => {
         if (importer.state === 'complete') {
@@ -46,8 +49,24 @@
         if (!file) {
             return;
         }
+        const form = new FormData();
+        for (const key in parmas) {
+            if (parmas.hasOwnProperty(key)) {
+                form.append(key, parmas[key]);
+            }
+        }
+        form.append('file', file);
+        const { data: { code, data, msg } } = await request.post(`/${value}/import`, form)
+        if (code === 200) {
+            handleClose()
+            notify(msg);
+            refresh()
+        } else {
+            handleClose()
+            notify(msg);
+            refresh()
+        }
 
-        parseCsv(file);
     };
 
     const handleClose = () => {
@@ -59,6 +78,22 @@
         e.preventDefault();
         reset();
     };
+
+    const downloadTemplate = async (type) => {
+        const res = await request.post(`/${value}/template/download`, {}, {
+            responseType: "blob",
+        })
+        const url = window.URL.createObjectURL(
+            new Blob([res.data], { type: res.headers["content-type"] }),
+        );
+
+        const link = document.createElement("a");
+        link.href = url;
+        link.setAttribute("download", `${value}.xlsx`);
+        document.body.appendChild(link);
+        link.click();
+        link.remove();
+    }
 
     return (
         <Dialog open={open} maxWidth="md" fullWidth>
@@ -187,6 +222,7 @@
                 <Toolbar
                     sx={{
                         width: '100%',
+                        justifyContent: 'end'
                     }}
                 >
                     {importer.state === 'idle' ? (
@@ -194,6 +230,8 @@
                             <Button
                                 label="common.action.import.title"
                                 variant="contained"
+                                startIcon={<ImportExportOutlinedIcon />}
+                                size='medium'
                                 onClick={startImport}
                                 disabled={!file}
                             />
@@ -210,15 +248,8 @@
         </Dialog>
     );
 }
-{/**涓嬭浇鎵撳嵃妯℃澘锛屼紶鍏ype绫诲瀷锛岃皟鐢ㄤ笅杞芥ā鏉挎帴鍙� */}
-const downloadTemplate = (type) => {
-    // 涓嬭浇鐗╂枡妯℃澘
-    if (type != undefined &&  type == 'matnr') {
-        
-    } 
-    console.log('======>');
-    console.log(type);
-}
+{/**涓嬭浇鎵撳嵃妯℃澘锛屼紶鍏ype绫诲瀷锛岃皟鐢ㄤ笅杞芥ā鏉挎帴鍙� */ }
+
 
 function millisecondsToTime(ms) {
     var seconds = Math.floor((ms / 1000) % 60);

--
Gitblit v1.9.1