From 05358bdd604467095b0db4c95db1b1140ccf6889 Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 17 May 2024 14:48:20 +0800 Subject: [PATCH 1/5] iAmSmart add success Login page --- src/pages/iAmSmart/AuthCallback/index.js | 2 +- src/pages/iAmSmart/SuccessCallback/index.js | 17 +++++++++++------ src/routes/AfterLoginRoutes.js | 5 ----- src/routes/GLDUserRoutes.js | 2 +- src/routes/PublicUserRoutes.js | 5 +++++ src/translations/en.json | 2 +- src/translations/zh-CN.json | 2 +- src/translations/zh-HK.json | 2 +- 8 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/pages/iAmSmart/AuthCallback/index.js b/src/pages/iAmSmart/AuthCallback/index.js index a6aa410..d1ea104 100644 --- a/src/pages/iAmSmart/AuthCallback/index.js +++ b/src/pages/iAmSmart/AuthCallback/index.js @@ -67,7 +67,7 @@ const Index = () => { // } // } dispatch(handleLogin(data)) - navigate('iamsmart/loginSucess', {state:{loginMethod:"iAmSmart"}}); + navigate('/iamsmart/loginSucess', {state:{loginMethod:"iAmSmart"}}); }, onFail: (response)=>{ console.log("onFail"); diff --git a/src/pages/iAmSmart/SuccessCallback/index.js b/src/pages/iAmSmart/SuccessCallback/index.js index 59840da..6356280 100644 --- a/src/pages/iAmSmart/SuccessCallback/index.js +++ b/src/pages/iAmSmart/SuccessCallback/index.js @@ -6,11 +6,12 @@ import { Button } from '@mui/material'; import * as React from "react"; -import { FormattedMessage } from "react-intl"; +import { FormattedMessage, useIntl } from "react-intl"; import { useLocation } from "react-router-dom"; import { useNavigate } from "react-router-dom"; import Loadable from 'components/Loadable'; const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); +import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'; import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' const BackgroundHead = { @@ -26,16 +27,17 @@ const BackgroundHead = { // ==============================|| DASHBOARD - DEFAULT ||============================== // const Index = () => { + const intl = useIntl(); const location = useLocation(); const navigate = useNavigate() const [onReady, setOnReady] = React.useState(false); React.useEffect(() => { - if("iAmSmart"==location.state.loginMethod){ + if ("iAmSmart" == location?.state?.loginMethod) { setOnReady(true); - }else{ + } else { navigate('/dashboard'); - } + } }, []); return ( @@ -60,9 +62,10 @@ const Index = () => {
+ - +
@@ -77,7 +80,9 @@ const Index = () => { variant="contained" size="large" sx={{ m: 4 }} - onClick={() => { navigate("/dashboard"); }} + onClick={() => { + navigate("/dashboard"); + }} > diff --git a/src/routes/AfterLoginRoutes.js b/src/routes/AfterLoginRoutes.js index 9dccfb9..ff949ba 100644 --- a/src/routes/AfterLoginRoutes.js +++ b/src/routes/AfterLoginRoutes.js @@ -5,7 +5,6 @@ import Loadable from 'components/Loadable'; import { Navigate } from "react-router"; const MainLayout = Loadable(lazy(() => import('layout/MainLayout'))); -const IAmSmart_SuccessCallback = Loadable(lazy(() => import('pages/iAmSmart/SuccessCallback'))); // ==============================|| MAIN ROUTING ||============================== // @@ -41,10 +40,6 @@ const AfterLoginRoutes = { path: 'iamsmart/loginFail', element: }, - { - path: 'iamsmart/loginSucess', - element: - }, { path: 'verify/:verifyCode/:email', element: diff --git a/src/routes/GLDUserRoutes.js b/src/routes/GLDUserRoutes.js index 725f817..12bc095 100644 --- a/src/routes/GLDUserRoutes.js +++ b/src/routes/GLDUserRoutes.js @@ -46,7 +46,7 @@ const GLDUserRoutes = { path: '/', children: [ { - path: 'dashboard', + path: '/dashboard', element: }, { diff --git a/src/routes/PublicUserRoutes.js b/src/routes/PublicUserRoutes.js index c707e3a..6ea64e0 100644 --- a/src/routes/PublicUserRoutes.js +++ b/src/routes/PublicUserRoutes.js @@ -29,6 +29,7 @@ const OrganizationDetailPage = Loadable(lazy(() => import('pages/Organization/De const Msg_Details = Loadable(lazy(() => import('pages/Message/Details'))); const Msg_Search = Loadable(lazy(() => import('pages/Message/Search'))); const AnnouncementSearch = Loadable(lazy(() => import('pages/Announcement/Search_Public'))); +const IAmSmart_SuccessCallback = Loadable(lazy(() => import('pages/iAmSmart/SuccessCallback'))); // ==============================|| MAIN ROUTING ||============================== // @@ -48,6 +49,10 @@ const PublicDashboard = { path: 'dashboard', element: }, + { + path: 'iamsmart/loginSucess', + element: + }, { path: 'setting/manageUser', element: diff --git a/src/translations/en.json b/src/translations/en.json index 02ce0f7..7bd2638 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -155,7 +155,7 @@ "loginErrorMessage6":"User account not found", "loginSuccessMessage1":"User account not found", - "loginSuccessMessage2":"You are our existing user and successfully linked your existing account. From now on, you can log in through \"iAm Smart\".", + "loginSuccessMessage2":"You are our existing user and successfully linked your existing account.
From now on, you can log in through \"iAm Smart\".", "loginSuccessMessage3":"Continue to use e-Service", "newPassword": "New Password", diff --git a/src/translations/zh-CN.json b/src/translations/zh-CN.json index 99f3b4d..208afc0 100644 --- a/src/translations/zh-CN.json +++ b/src/translations/zh-CN.json @@ -181,7 +181,7 @@ "loginErrorMessage6":"找不到用户帐户", "loginSuccessMessage1":"成功连结现有帐户", - "loginSuccessMessage2":"你是我们的现有用户,已成功连结现有帐户,以后可以透过「智方便」登入。", + "loginSuccessMessage2":"你是我们的现有用户,已成功连结现有帐户。
以后可以透过「智方便」登入。", "loginSuccessMessage3":"继续使用e-Service", "newPassword": "新密码", diff --git a/src/translations/zh-HK.json b/src/translations/zh-HK.json index 6941b44..3f9698a 100644 --- a/src/translations/zh-HK.json +++ b/src/translations/zh-HK.json @@ -182,7 +182,7 @@ "loginErrorMessage6":"找不到用戶帳戶", "loginSuccessMessage1":"成功連結現有帳戶", - "loginSuccessMessage2":"你是我們的現有用戶,已成功連結現有帳戶,以後可以透過「智方便」登入。", + "loginSuccessMessage2":"你是我們的現有用戶,已成功連結現有帳戶。
以後可以透過「智方便」登入。", "loginSuccessMessage3":"繼續使用e-Service", "newPassword": "新密碼", From 28d711e5e7573818cc2b59b11d83b1bf1d4b854a Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 17 May 2024 14:59:27 +0800 Subject: [PATCH 2/5] update dn payment time 1230->1200 --- src/pages/Proof/Reply_Public/ProofForm.js | 4 ++-- src/pages/PublicNotice/ApplyForm/PublicNoticeApplyForm.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/Proof/Reply_Public/ProofForm.js b/src/pages/Proof/Reply_Public/ProofForm.js index 24d47a9..d9398f7 100644 --- a/src/pages/Proof/Reply_Public/ProofForm.js +++ b/src/pages/Proof/Reply_Public/ProofForm.js @@ -337,7 +337,7 @@ const FormPanel = ({ formData }) => { {DateUtils.dateFormat(formData.closingDateOff, intl.formatMessage({ id: "dateStrFormat" }))} 5:00 p.m. @@ -424,7 +424,7 @@ const FormPanel = ({ formData }) => { {DateUtils.dateFormat(formData.closingDateOff, intl.formatMessage({ id: "dateStrFormat" }))} 5:00 p.m. diff --git a/src/pages/PublicNotice/ApplyForm/PublicNoticeApplyForm.js b/src/pages/PublicNotice/ApplyForm/PublicNoticeApplyForm.js index f070ef0..ca6f3b3 100644 --- a/src/pages/PublicNotice/ApplyForm/PublicNoticeApplyForm.js +++ b/src/pages/PublicNotice/ApplyForm/PublicNoticeApplyForm.js @@ -333,7 +333,7 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => {DateUtils.dateFormat(closingDateOff, dft)} 5:00 p.m. - {DateUtils.dateFormat(closeDate, dft)} 12:30 p.m. + {DateUtils.dateFormat(closeDate, dft)} 12:00 p.m. From a0906c907fe04cf4a9b82361aeccf5a396629314 Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 17 May 2024 16:31:32 +0800 Subject: [PATCH 3/5] update label --- src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js | 2 +- .../PublicNotice/Details_Public/tabTableDetail/TabTable.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js index 26a0361..cef3ed5 100644 --- a/src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js +++ b/src/pages/PublicNotice/Details_GLD/tabTableDetail/TabTable.js @@ -43,7 +43,7 @@ const PublicNotice = ({ appId, proofCount, paymentCount, statusHistoryCount, set - + diff --git a/src/pages/PublicNotice/Details_Public/tabTableDetail/TabTable.js b/src/pages/PublicNotice/Details_Public/tabTableDetail/TabTable.js index 6fee327..c8f716e 100644 --- a/src/pages/PublicNotice/Details_Public/tabTableDetail/TabTable.js +++ b/src/pages/PublicNotice/Details_Public/tabTableDetail/TabTable.js @@ -50,8 +50,8 @@ const PublicNotice = ({ appId, proofCount, paymentCount, setProofCount, setPayme intl.formatMessage({ id: 'proofRecord' }) + " (" + proofCount + ") "} value="1" /> From a3639166d0b3f63cac8e781a4312c04993baa4aa Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 17 May 2024 16:34:12 +0800 Subject: [PATCH 4/5] add viewDetail for payment method --- src/assets/style/styles.css | 22 +++ src/pages/Proof/Reply_Public/ProofForm.js | 149 ++++++++++++------ .../ApplyForm/PublicNoticeApplyForm.js | 110 ++++++++++--- 3 files changed, 205 insertions(+), 76 deletions(-) diff --git a/src/assets/style/styles.css b/src/assets/style/styles.css index 07d26ce..0226765 100644 --- a/src/assets/style/styles.css +++ b/src/assets/style/styles.css @@ -48,4 +48,26 @@ img img:hover{-webkit-filter:none;} + +a:link { + color: #1890ff; + background-color: transparent; + text-decoration: none; +} +a:visited { + color: #1890ff; + background-color: transparent; + text-decoration: none; +} +a:hover { + color: #1890ff; + background-color: transparent; + text-decoration: none; +} +a:active { + color: #1890ff; + background-color: transparent; + text-decoration: none; +} + /* iframe#webpack-dev-server-client-overlay{display:none!important} */ \ No newline at end of file diff --git a/src/pages/Proof/Reply_Public/ProofForm.js b/src/pages/Proof/Reply_Public/ProofForm.js index d9398f7..697c682 100644 --- a/src/pages/Proof/Reply_Public/ProofForm.js +++ b/src/pages/Proof/Reply_Public/ProofForm.js @@ -43,6 +43,7 @@ const FormPanel = ({ formData }) => { const [actionValue, setActionValue] = React.useState(true); + const [warningTitle, setWarningTitle] = React.useState(""); const [isWarningPopUp, setIsWarningPopUp] = React.useState(false); const [warningText, setWarningText] = React.useState(""); @@ -72,13 +73,14 @@ const FormPanel = ({ formData }) => { vaild: yup.string().max(255, intl.formatMessage({ id: 'requireLoginPassword' })).required(intl.formatMessage({ id: 'requireLoginPassword' })), }), onSubmit: values => { - if (isOverTime()&&!isDummyLoggedIn()) { + if (isOverTime() && !isDummyLoggedIn()) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'MSG.proofOutOfTime' })); setIsWarningPopUp(true); return; } let pm = paymentMethod; - if (!isDummyLoggedIn()){ + if (!isDummyLoggedIn()) { if (pm == "demandNote") { pm = isOverDnReviseDeadline() ? "" : pm; } else if (pm == "office") { @@ -86,12 +88,14 @@ const FormPanel = ({ formData }) => { } } - if (actionValue == false && isOverReviseDeadline() &&!isDummyLoggedIn()) { + if (actionValue == false && isOverReviseDeadline() && !isDummyLoggedIn()) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'MSG.overReviseDeadline' })); setIsWarningPopUp(true); return; } else if (formData.creditor == false && pm == "") { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'MSG.plzSelectPaymentMethod' })); setIsWarningPopUp(true); return; @@ -99,6 +103,7 @@ const FormPanel = ({ formData }) => { if (!actionValue) { if (!attachments || attachments.length <= 0) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'requireFile' })); setIsWarningPopUp(true); return; @@ -116,6 +121,7 @@ const FormPanel = ({ formData }) => { files: attachments ? attachments : [], onSuccess: function (responseData) { if (responseData.msg) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: responseData.msg })); setIsWarningPopUp(true); return; @@ -128,11 +134,13 @@ const FormPanel = ({ formData }) => { } }, onFail: function (response) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'actionFail' })); setIsWarningPopUp(true); console.log(response); }, onError: function (error) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'actionFail' })); setIsWarningPopUp(true); console.log(error); @@ -145,12 +153,14 @@ const FormPanel = ({ formData }) => { let file = event.target.files[0]; if (file) { if (!file.name.toLowerCase().substr(file.name.length - 4).includes(".pdf")) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'requireValidFileWithPdfFormat' })); setIsWarningPopUp(true); document.getElementById("uploadFileBtn").value = ""; return; } if (file.size >= (10 * 1024 * 1034)) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'fileSizeWarning' })); setIsWarningPopUp(true); return; @@ -306,10 +316,9 @@ const FormPanel = ({ formData }) => { - - + - + - -
@@ -320,19 +329,27 @@ const FormPanel = ({ formData }) => { }} /> -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
+ +
{ + setWarningTitle(intl.formatMessage({ id: "payDn" })) + setWarningText( + <> +
    +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
+ + ); + setIsWarningPopUp(true); + }}>
{DateUtils.dateFormat(formData.closingDateOff, intl.formatMessage({ id: "dateStrFormat" }))} 5:00 p.m. @@ -350,12 +367,20 @@ const FormPanel = ({ formData }) => { }} /> -
    -
  • -
  • -
+ +
{ + setWarningTitle(intl.formatMessage({ id: "payNPGO" })) + setWarningText( + <> +
    +
  • +
  • +
+ + ); + setIsWarningPopUp(true); + }}>
{DateUtils.dateFormat(formData.closingDate, intl.formatMessage({ id: "dateStrFormat" }))} 12:00 p.m. @@ -370,10 +395,9 @@ const FormPanel = ({ formData }) => { - - + - + - @@ -407,20 +439,29 @@ const FormPanel = ({ formData }) => { /> } - + -
@@ -384,13 +408,21 @@ const FormPanel = ({ formData }) => { }} /> -
    -
  • -
  • -
  • -
+ +
{ + setWarningTitle(intl.formatMessage({ id: "payOnline" })) + setWarningText( + <> +
    +
  • +
  • +
  • +
+ + ); + setIsWarningPopUp(true); + }}>
{DateUtils.dateFormat(formData.closingDate, intl.formatMessage({ id: "dateStrFormat" }))} 2:00 p.m. {DateUtils.dateFormat(formData.closingDate, intl.formatMessage({ id: "dateStrFormat" }))} 2:30 p.m. -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
+ +
{ + setWarningTitle(intl.formatMessage({ id: "payDn" })) + setWarningText( + <> +
    +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
+ + ); + setIsWarningPopUp(true); + }}>
{DateUtils.dateFormat(formData.closingDateOff, intl.formatMessage({ id: "dateStrFormat" }))} 5:00 p.m. { /> } -
    -
  • -
  • -
+ +
{ + setWarningTitle(intl.formatMessage({ id: "payDn" })) + setWarningText( + <> +
    +
  • +
  • +
+ + ); + setIsWarningPopUp(true); + }}>
{DateUtils.dateFormat(formData.closingDate, intl.formatMessage({ id: "dateStrFormat" }))} 12:00 p.m. @@ -589,7 +638,7 @@ const FormPanel = ({ formData }) => { }} > - + {warningTitle} {warningText} diff --git a/src/pages/PublicNotice/ApplyForm/PublicNoticeApplyForm.js b/src/pages/PublicNotice/ApplyForm/PublicNoticeApplyForm.js index ca6f3b3..5490ac5 100644 --- a/src/pages/PublicNotice/ApplyForm/PublicNoticeApplyForm.js +++ b/src/pages/PublicNotice/ApplyForm/PublicNoticeApplyForm.js @@ -32,14 +32,15 @@ const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingCo // ==============================|| DASHBOARD - DEFAULT ||============================== // -const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => { +const PublicNoticeApplyForm = ({ loadedData, _selections, gazetteIssueList }) => { const [isWarningPopUp, setIsWarningPopUp] = useState(false); + const [warningTitle, setWarningTitle] = useState(""); const [warningText, setWarningText] = useState(""); const [attachment, setAttachment] = useState({}); const [selections, setsSelections] = useState(<>); const intl = useIntl(); const { locale } = intl; - const dft = locale === 'en' ?"DD MMM YYYY":"YYYY年MM月DD日"; + const dft = locale === 'en' ? "DD MMM YYYY" : "YYYY年MM月DD日"; const [val, setVal] = useState({}); const [reloadPage, setReloadPage] = useState(false); @@ -62,8 +63,8 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => } const tabelStyle = { - border: "2px solid gray", - borderCollapse: "collapse", + border: "2px solid gray", + borderCollapse: "collapse", padding: "right" } @@ -78,13 +79,13 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => useEffect(() => { for (var i = 0; i < gazetteIssueList?.length; i++) { let data = gazetteIssueList[i]; - if(data.id == issueId){ + if (data.id == issueId) { setCloseDate(data.closingDate) setClosingDateOff(data.closingDateOff) break; } } - + }, [issueId]); // function displayErrorMsg(errorMsg) { @@ -109,37 +110,41 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => } else { return false } - }else{ + } else { return true } }), - careOfDum: yup.string().max(60, getMaxErrStr(60)).test('checkCareOfDumFormat',intl.formatMessage({ id: 'requireCareOf' }), function (value) { + careOfDum: yup.string().max(60, getMaxErrStr(60)).test('checkCareOfDumFormat', intl.formatMessage({ id: 'requireCareOf' }), function (value) { if (isDummyLoggedIn()) { if (value !== undefined) { return true } else { return false } - }else{ + } else { return true } }), }), onSubmit: values => { if (!values.issueId) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'requireTargetVol' })); setIsWarningPopUp(true); return; } if (!attachment) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'requireFile' })); setIsWarningPopUp(true); return; } else if (!attachment.size || attachment.size <= 0) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'requireValidFile' })); setIsWarningPopUp(true); return; } else if (attachment.size >= (10 * 1024 * 1034)) { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'fileSizeWarning' })); setIsWarningPopUp(true); return; @@ -150,6 +155,7 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => onSuccess: (responData) => { if (responData.haveOverdue) { setVal(values); + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'dnOverdueWarning' })); setIsWarningPopUp(true); } else { @@ -167,11 +173,11 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => const apply = (values) => { setSubmitting(true) let careOf = values.careOf ?? ""; - let remarks = values.remarks ??""; - if (isDummyLoggedIn()){ + let remarks = values.remarks ?? ""; + if (isDummyLoggedIn()) { careOf = values.careOfDum } - if (isDummyLoggedIn()){ + if (isDummyLoggedIn()) { remarks = values.emailAddress } HttpUtils.postWithFiles({ @@ -196,6 +202,7 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => if (responData.msg) { setVal({}); setReloadPage(true); + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: responData.msg })); setIsWarningPopUp(true); return; @@ -218,6 +225,7 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => ) { setAttachment(event.target.files[0]); } else { + setWarningTitle(intl.formatMessage({ id: "attention" })) setWarningText(intl.formatMessage({ id: 'requireValidFileWithFormat' })); setIsWarningPopUp(true); setAttachment({}); @@ -318,25 +326,73 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => - + - + - + - + - + @@ -398,7 +454,7 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => {isORGLoggedIn() ? <> - {isDummyLoggedIn()? + {isDummyLoggedIn() ? {FieldUtils.getCarOfField({ label: intl.formatMessage({ id: 'careOf' }) + ":", @@ -407,7 +463,7 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => // disabled: true })} - : + : {FieldUtils.getCarOfField({ label: intl.formatMessage({ id: 'careOf' }) + ":", @@ -416,7 +472,7 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => // disabled: true })} - + } @@ -430,7 +486,7 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => } { - isDummyLoggedIn()? + isDummyLoggedIn() ? {FieldUtils.getTextField({ label: intl.formatMessage({ id: 'userContactEmail' }), @@ -438,7 +494,7 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => form: formik })} - : + : {FieldUtils.getTextArea({ label: intl.formatMessage({ id: 'extraMark' }) + ":", @@ -460,7 +516,7 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => { + onChange={(event) => { setTickAccept(event.target.checked) }} name="tickAccept" @@ -480,7 +536,7 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => aria-label={intl.formatMessage({ id: 'applyPublicNotice' })} variant="contained" type="submit" - disabled = {!tickAccept} + disabled={!tickAccept} > @@ -509,10 +565,12 @@ const PublicNoticeApplyForm = ({ loadedData, _selections , gazetteIssueList}) => }} > - + {warningTitle} - {warningText} + + {warningText} + - + +
+ +
{ + setWarningTitle(intl.formatMessage({ id: "payOnline" })) + setWarningText( + <> +
    +
  • +
  • +
  • +
+ + ); + setIsWarningPopUp(true); + }}>
+
{DateUtils.dateFormat(closeDate, dft)} 2:00 p.m. {DateUtils.dateFormat(closeDate, dft)} 2:30 p.m.
+
{ + setWarningTitle(intl.formatMessage({ id: "payDn" })) + setWarningText( + <> +
    +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
+ + ); + setIsWarningPopUp(true); + }}>
+
{DateUtils.dateFormat(closingDateOff, dft)} 5:00 p.m. {DateUtils.dateFormat(closeDate, dft)} 12:00 p.m.
+
{ + setWarningTitle(intl.formatMessage({ id: "payNPGO" })) + setWarningText( + <> +
    +
  • +
  • +
+ + ); + setIsWarningPopUp(true); + }}>
+
{DateUtils.dateFormat(closeDate, dft)} 12:00 p.m. {DateUtils.dateFormat(closeDate, dft)} 12:30 p.m.
{DateUtils.dateFormat(formData.closingDate, intl.formatMessage({ id: "dateStrFormat" }))} 2:00 p.m.{DateUtils.dateFormat(formData.closingDate, intl.formatMessage({ id: "dateStrFormat" }))} 2:30 p.m.{DateUtils.dateFormat(formData.proofPaymentDeadline, intl.formatMessage({ id: "paymentMethodDatetimeStrFormat" }))?.replace("am", "a.m.")?.replace("pm", "p.m.")}{DateUtils.dateFormat(formData.expiryDate, intl.formatMessage({ id: "paymentMethodDatetimeStrFormat" }))?.replace("am", "a.m.")?.replace("pm", "p.m.")}
diff --git a/src/translations/en.json b/src/translations/en.json index 7bd2638..4cd5653 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -6,6 +6,7 @@ "iamsmartLink": "https://www.iamsmart.gov.hk/en/", "dateStrFormat": "YYYY-MM-DD", "datetimeStrFormat": "YYYY-MM-DD HH:mm:ss", + "paymentMethodDatetimeStrFormat": "YYYY-MM-DD h:mm a", "PNSPS": "PNSPS", "HKSARGOV": "HKSAR Government", diff --git a/src/translations/zh-CN.json b/src/translations/zh-CN.json index 208afc0..4124171 100644 --- a/src/translations/zh-CN.json +++ b/src/translations/zh-CN.json @@ -6,6 +6,7 @@ "iamsmartLink": "https://www.iamsmart.gov.hk/sc/", "dateStrFormat": "YYYY年MM月DD日", "datetimeStrFormat": "YYYY年MM月DD日 HH:mm:ss", + "paymentMethodDatetimeStrFormat": "YYYY年MM月DD日 h:mm a", "PNSPS": "公共启事提交及缴费系统", "HKSARGOV": "香港特别行政区政府", diff --git a/src/translations/zh-HK.json b/src/translations/zh-HK.json index 3f9698a..7d186af 100644 --- a/src/translations/zh-HK.json +++ b/src/translations/zh-HK.json @@ -6,6 +6,7 @@ "iamsmartLink": "https://www.iamsmart.gov.hk/tc/", "dateStrFormat": "YYYY年MM月DD日", "datetimeStrFormat": "YYYY年MM月DD日 HH:mm:ss", + "paymentMethodDatetimeStrFormat": "YYYY年MM月DD日 h:mm a", "PNSPS": "公共啟事提交及繳費系統", "HKSARGOV": "香港特別行政區政府",