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