// material-ui import { Grid, Typography, Button, RadioGroup, Dialog, DialogTitle, DialogContent, DialogActions, Stack, Box } from '@mui/material'; import { useFormik } from 'formik'; import * as yup from 'yup'; import * as React from "react"; import * as HttpUtils from "utils/HttpUtils"; import * as UrlUtils from "utils/ApiPathConst"; import * as FieldUtils from "utils/FieldUtils"; import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' import ForwardIcon from '@mui/icons-material/Forward'; import { isORGLoggedIn, } from "utils/Utils"; import { useNavigate } from "react-router-dom"; import { notifyActionSuccess } from 'utils/CommonFunction'; import {PNSPS_LONG_BUTTON_THEME} from "../../../themes/buttonConst"; import {ThemeProvider} from "@emotion/react"; import {FormattedMessage, useIntl} from "react-intl"; // ==============================|| DASHBOARD - DEFAULT ||============================== // const PublicNoticeApplyForm = ({ loadedData, selections }) => { const [isWarningPopUp, setIsWarningPopUp] = React.useState(false); const [warningText, setWarningText] = React.useState(""); const [attachment, setAttachment] = React.useState({}); const intl = useIntl(); const [issueId, setIssueId] = React.useState(loadedData.issueId); const navigate = useNavigate(); const BackgroundHead = { backgroundImage: `url(${titleBackgroundImg})`, width: 'auto', height: 'auto', backgroundSize: 'contain', backgroundRepeat: 'no-repeat', backgroundColor: '#0C489E', backgroundPosition: 'right' } // React.useEffect(()=>{ // loadedData.careOf = loadedData.contactPerson // },[]); const formik = useFormik({ enableReinitialize: true, initialValues: loadedData, validationSchema: yup.object().shape({ contactPerson: yup.string().max(40, intl.formatMessage({id: 'noMoreThen40Words'})).required(intl.formatMessage({id: 'requireContactPerson'})), tel_countryCode: yup.string().min(3, intl.formatMessage({id: 'require3Number'})).required(intl.formatMessage({id: 'requireDialingCode'})), fax_countryCode: yup.string().min(3, intl.formatMessage({id: 'require3Number'})), phoneNumber: yup.string().min(8, intl.formatMessage({id: 'require8Number'})).required(intl.formatMessage({id: 'requireContactNumber'})), faxNumber: yup.string().min(8, intl.formatMessage({id: 'require8Number'})), remarks: yup.string().max(255,intl.formatMessage({id: 'noMoreThen255Words'})).nullable(), }), onSubmit: values => { if (!values.issueId) { setWarningText(intl.formatMessage({id: 'requireTargetVol'})); setIsWarningPopUp(true); return; } if (!attachment) { setWarningText(intl.formatMessage({id: 'requireFile'})); setIsWarningPopUp(true); return; } else if (!attachment.size || attachment.size <= 0) { setWarningText(intl.formatMessage({id: 'requireValidFile'})); setIsWarningPopUp(true); return; } else if (attachment.size >= (10 * 1024 * 1034)) { setWarningText(intl.formatMessage({id: 'fileSizeWarning'})); setIsWarningPopUp(true); return; } HttpUtils.postWithFiles({ url: UrlUtils.POST_PUBLIC_NOTICE_APPLY, params: { id: 0, contactPerson: values.contactPerson, contactTelNo: { countryCode: values.tel_countryCode, phoneNumber: values.phoneNumber }, contactFaxNo: { countryCode: values.fax_countryCode, faxNumber: values.faxNumber }, issueId: issueId, careOf: values.careOf ? values.careOf: "", remarks: values.remarks ? values.remarks : "", }, files: [attachment], onSuccess: function () { notifyActionSuccess(intl.formatMessage({id: 'submissionSuccess'}) + '!') navigate("/publicNotice"); // location.reload(); } }); } }); const readFile = (event) => { let file = event.target.files[0]; if (file) { if (file.name.toLowerCase().substr(file.name.length - 4).includes(".doc") || file.name.toLowerCase().substr(file.name.length - 5).includes(".docx") || file.name.toLowerCase().substr(file.name.length - 4).includes(".xls") || file.name.toLowerCase().substr(file.name.length - 5).includes(".xlsx") ) { setAttachment(event.target.files[0]); } else { setWarningText(intl.formatMessage({id: 'requireValidFileWithFormat'})); setIsWarningPopUp(true); setAttachment({}); document.getElementById("uploadFileBtn").value = ""; return; } } } return (
{/* 申請公共啟事 */}
{FieldUtils.getTextField({ label: intl.formatMessage({id: 'contactPerson'}) + ":", valueName: "contactPerson", form: formik, disabled: true })} {FieldUtils.getPhoneField({ label: intl.formatMessage({id: 'userContactNumber'}) + ":", disabled: true, valueName: { code: "tel_countryCode", num: "phoneNumber", }, form: formik })} {FieldUtils.getPhoneField({ label: intl.formatMessage({id: 'contactFaxNumber'}) + ":", disabled: true, valueName: { code: "fax_countryCode", num: "faxNumber", }, form: formik })} : { setIssueId(event.target.value); }} > { selections } ({intl.formatMessage({id: 'fileSizeWarning'})}): { readFile(event) }} /> {attachment.name} {isORGLoggedIn()? {FieldUtils.getTextField({ label: "Care Of:", valueName: "careOf", form: formik, // disabled: true })} :null } {FieldUtils.getTextArea({ label: intl.formatMessage({id: 'extraMark'}) + ":", valueName: "remarks", form: formik, inputProps: { maxLength: 255 } })}
setIsWarningPopUp(false)} PaperProps={{ sx: { minWidth: '40vw', maxWidth: { xs: '90vw', s: '90vw', m: '70vw', lg: '70vw' }, maxHeight: { xs: '90vh', s: '70vh', m: '70vh', lg: '60vh' } } }} > {warningText}
); }; export default PublicNoticeApplyForm;