| @@ -1,6 +1,7 @@ | |||
| import * as React from "react"; | |||
| import * as HttpUtils from "utils/HttpUtils"; | |||
| import * as DateUtils from "utils/DateUtils"; | |||
| import * as UrlUtils from "utils/ApiPathConst"; | |||
| import { | |||
| @@ -20,6 +21,7 @@ const Index = () => { | |||
| const [isWarningPopUp, setIsWarningPopUp] = React.useState(false); | |||
| const [warningText, setWarningText] = React.useState(""); | |||
| const [resultStr, setResultStr] = React.useState(""); | |||
| const [wait, setWait] = React.useState(false); | |||
| const intl = useIntl(); | |||
| @@ -37,7 +39,9 @@ const Index = () => { | |||
| const readFile = (event) => { | |||
| let file = event.target.files[0]; | |||
| setWait(true); | |||
| if (file) { | |||
| if (file.name.toLowerCase().substr(file.name.length - 5).includes(".xlsx") | |||
| ) { | |||
| HttpUtils.postWithFiles({ | |||
| @@ -45,20 +49,27 @@ const Index = () => { | |||
| params:null, | |||
| files: [event.target.files[0]], | |||
| onSuccess: function (responData) { | |||
| setWait(false); | |||
| if(responData?.msg){ | |||
| setResultStr(<><span style={{"color": "red"}}>Error</span><br/><span style={{"whiteSpace": "pre-line"}}>{responData?.msg}</span></>) | |||
| setResultStr(<>{DateUtils.datetimeStr(new Date())}<br/><span style={{"color": "red"}}>Error</span><br/><span style={{"whiteSpace": "pre-line"}}>{responData?.msg}</span></>) | |||
| }else if(responData?.success){ | |||
| setResultStr(<><span style={{"color": "green"}}>Success</span><br/>Record Count: {responData.recordCount}</>) | |||
| setResultStr(<>{DateUtils.datetimeStr(new Date())}<br/><span style={{"color": "green"}}>Success</span><br/>Record Count: {responData.recordCount}</>) | |||
| } | |||
| }, | |||
| onError: function(){ | |||
| setWait(false); | |||
| setResultStr(<>{DateUtils.datetimeStr(new Date())}<br/><span style={{"color": "red"}}>Error</span><br/>Action Fail: Please import valid file.</>) | |||
| } | |||
| }); | |||
| } else { | |||
| setWarningText(intl.formatMessage({ id: 'requireValidFileWithFormat' })); | |||
| setWait(false); | |||
| setWarningText("Please upload a valid file (file format: .xlsx)"); | |||
| setIsWarningPopUp(true); | |||
| setAttachment({}); | |||
| document.getElementById("uploadFileBtn").value = ""; | |||
| return; | |||
| } | |||
| }else{ | |||
| setWait(false); | |||
| } | |||
| document.getElementById("uploadFileBtn").value = ""; | |||
| } | |||
| @@ -169,6 +180,23 @@ const Index = () => { | |||
| </DialogActions> | |||
| </Dialog> | |||
| </div> | |||
| <div> | |||
| <Dialog | |||
| open={wait} | |||
| onClose={() => setWait(false)} | |||
| PaperProps={{ | |||
| sx: { | |||
| minWidth: '40vw', | |||
| maxWidth: { xs: '90vw', s: '90vw', m: '70vw', lg: '70vw' }, | |||
| maxHeight: { xs: '90vh', s: '70vh', m: '70vh', lg: '60vh' } | |||
| } | |||
| }} | |||
| > | |||
| <DialogContent style={{ display: 'flex', }}> | |||
| <Typography variant="h4" style={{ padding: '16px' }}>Please wait ...</Typography> | |||
| </DialogContent> | |||
| </Dialog> | |||
| </div> | |||
| </Grid> | |||
| ); | |||
| }; | |||