| @@ -1,6 +1,7 @@ | |||||
| import * as React from "react"; | import * as React from "react"; | ||||
| import * as HttpUtils from "utils/HttpUtils"; | import * as HttpUtils from "utils/HttpUtils"; | ||||
| import * as DateUtils from "utils/DateUtils"; | |||||
| import * as UrlUtils from "utils/ApiPathConst"; | import * as UrlUtils from "utils/ApiPathConst"; | ||||
| import { | import { | ||||
| @@ -20,6 +21,7 @@ const Index = () => { | |||||
| const [isWarningPopUp, setIsWarningPopUp] = React.useState(false); | const [isWarningPopUp, setIsWarningPopUp] = React.useState(false); | ||||
| const [warningText, setWarningText] = React.useState(""); | const [warningText, setWarningText] = React.useState(""); | ||||
| const [resultStr, setResultStr] = React.useState(""); | const [resultStr, setResultStr] = React.useState(""); | ||||
| const [wait, setWait] = React.useState(false); | |||||
| const intl = useIntl(); | const intl = useIntl(); | ||||
| @@ -37,7 +39,9 @@ const Index = () => { | |||||
| const readFile = (event) => { | const readFile = (event) => { | ||||
| let file = event.target.files[0]; | let file = event.target.files[0]; | ||||
| setWait(true); | |||||
| if (file) { | if (file) { | ||||
| if (file.name.toLowerCase().substr(file.name.length - 5).includes(".xlsx") | if (file.name.toLowerCase().substr(file.name.length - 5).includes(".xlsx") | ||||
| ) { | ) { | ||||
| HttpUtils.postWithFiles({ | HttpUtils.postWithFiles({ | ||||
| @@ -45,20 +49,27 @@ const Index = () => { | |||||
| params:null, | params:null, | ||||
| files: [event.target.files[0]], | files: [event.target.files[0]], | ||||
| onSuccess: function (responData) { | onSuccess: function (responData) { | ||||
| setWait(false); | |||||
| if(responData?.msg){ | 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){ | }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 { | } else { | ||||
| setWarningText(intl.formatMessage({ id: 'requireValidFileWithFormat' })); | |||||
| setWait(false); | |||||
| setWarningText("Please upload a valid file (file format: .xlsx)"); | |||||
| setIsWarningPopUp(true); | setIsWarningPopUp(true); | ||||
| setAttachment({}); | |||||
| document.getElementById("uploadFileBtn").value = ""; | document.getElementById("uploadFileBtn").value = ""; | ||||
| return; | return; | ||||
| } | } | ||||
| }else{ | |||||
| setWait(false); | |||||
| } | } | ||||
| document.getElementById("uploadFileBtn").value = ""; | document.getElementById("uploadFileBtn").value = ""; | ||||
| } | } | ||||
| @@ -169,6 +180,23 @@ const Index = () => { | |||||
| </DialogActions> | </DialogActions> | ||||
| </Dialog> | </Dialog> | ||||
| </div> | </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> | </Grid> | ||||
| ); | ); | ||||
| }; | }; | ||||