diff --git a/src/pages/OrganizationDetailPage/OrganizationCard.js b/src/pages/OrganizationDetailPage/OrganizationCard.js index 7dcf8b1..6911dd7 100644 --- a/src/pages/OrganizationDetailPage/OrganizationCard.js +++ b/src/pages/OrganizationDetailPage/OrganizationCard.js @@ -35,22 +35,34 @@ const OrganizationCard = ({ userData, loadDataFun, id }) => { } }, [currentUserData]); + function displayErrorMsg(errorMsg) { + return {errorMsg} + } const formik = useFormik({ enableReinitialize: true, initialValues: currentUserData, validationSchema: yup.object().shape({ - enCompanyName: yup.string().max(255).required('請輸入英文名稱'), - chCompanyName: yup.string().max(255, '請輸入中文名稱').nullable(), - addressLine1: yup.string().max(255).required('請輸入第一行地址'), - addressLine2: yup.string().max(255, "length must <= 255"), - addressLine3: yup.string().max(255, "length must <= 255"), - fax_countryCode: yup.string().min(3, '請輸入國際區號').nullable(), - tel_countryCode: yup.string().min(3, '請輸入國際區號'), - phoneNumber: yup.string().min(8, '請輸入有效聯絡電話').required('請輸入聯絡電話'), - faxNumber: yup.string().min(8, '請輸入8位數字').nullable(), - brExpiryDate: yup.string().min(8).required('請輸入商業登記證有效日期'), - brNo: yup.string().min(8, '請輸入有效商業登記證號碼').max(8, '請輸入有效商業登記證號碼').required('請輸入商業登記證號碼'), + enCompanyName: yup.string().max(255).required(displayErrorMsg('請輸入英文名稱')), + chCompanyName: yup.string().max(255, displayErrorMsg('請輸入中文名稱')).nullable(), + addressLine1: yup.string().max(255).required(displayErrorMsg('請輸入第一行地址')), + addressLine2: yup.string().max(255, displayErrorMsg("length must <= 255")), + addressLine3: yup.string().max(255, displayErrorMsg("length must <= 255")), + fax_countryCode: yup.string().min(3, displayErrorMsg('請輸入國際區號')).nullable(), + tel_countryCode: yup.string().min(3, displayErrorMsg('請輸入國際區號')), + phoneNumber: yup.string().min(8, displayErrorMsg('請輸入有效聯絡電話')).required(displayErrorMsg('請輸入聯絡電話')), + faxNumber: yup.string().min(8, displayErrorMsg('請輸入8位數字')).nullable(), + brExpiryDate: yup.string().min(8).required(displayErrorMsg('請輸入商業登記證有效日期')), + brNo: yup.string().required(displayErrorMsg('請輸入商業登記證號碼')).test('checkBrNoFormat', displayErrorMsg(displayErrorMsg(`請輸入有效商業登記證號碼`)), function (value) { + var brNo_pattern = /[0-9]{8}-[0-9]{3}-(0[1-9]|1[012])-[0-9]{2}-[0-9A-Z]{1}/ + if (value !== undefined) { + if (value.match(brNo_pattern)) { + return true + } else { + return false + } + } + }), }), onSubmit: vaule => { console.log(vaule) diff --git a/src/pages/OrganizationDetailPage_FromUser/OrganizationCard_loadFromUser.js b/src/pages/OrganizationDetailPage_FromUser/OrganizationCard_loadFromUser.js index e910d9c..84581bf 100644 --- a/src/pages/OrganizationDetailPage_FromUser/OrganizationCard_loadFromUser.js +++ b/src/pages/OrganizationDetailPage_FromUser/OrganizationCard_loadFromUser.js @@ -1,6 +1,6 @@ // material-ui import { - Grid, Button + Grid, Button, Typography } from '@mui/material'; import MainCard from "../../components/MainCard"; import * as React from "react"; @@ -34,21 +34,34 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => { } }, [currentUserData]); + function displayErrorMsg(errorMsg) { + return {errorMsg} + } + const formik = useFormik({ enableReinitialize: true, initialValues: currentUserData, validationSchema: yup.object().shape({ - enCompanyName: yup.string().max(255, "請輸入英文名稱").required('請輸入英文名稱'), - chCompanyName: yup.string().max(255, '請輸入中文名稱').nullable(), - addressLine1: yup.string().max(255).required('請輸入第一行地址'), + enCompanyName: yup.string().max(255, displayErrorMsg("請輸入英文名稱")).required(displayErrorMsg('請輸入英文名稱')), + chCompanyName: yup.string().max(255, displayErrorMsg('請輸入中文名稱')).nullable(), + addressLine1: yup.string().max(255).required(displayErrorMsg('請輸入第一行地址')), addressLine2: yup.string().max(255).nullable(), addressLine3: yup.string().max(255).nullable(), - fax_countryCode: yup.string().min(3, "請輸入國際區號").nullable(), - tel_countryCode: yup.string().min(3, "請輸入國際區號"), - phoneNumber: yup.string().min(8, '請輸入有效聯絡電話').required('請輸入聯絡電話'), + fax_countryCode: yup.string().min(3, displayErrorMsg("請輸入國際區號")).nullable(), + tel_countryCode: yup.string().min(3, displayErrorMsg("請輸入國際區號")), + phoneNumber: yup.string().min(8, displayErrorMsg('請輸入有效聯絡電話')).required(displayErrorMsg('請輸入聯絡電話')), faxNumber: yup.string().min(8).nullable(), - brExpiryDate: yup.string().min(8).required('請輸入商業登記證有效日期'), - brNo: yup.string().min(8, '請輸入有效商業登記證號碼').max(8, '請輸入有效商業登記證號碼').required('請輸入商業登記證號碼'), + brExpiryDate: yup.string().min(8).required(displayErrorMsg('請輸入商業登記證有效日期')), + brNo: yup.string().required(displayErrorMsg('請輸入商業登記證號碼')).test('checkBrNoFormat', displayErrorMsg(displayErrorMsg(`請輸入有效商業登記證號碼`)), function (value) { + var brNo_pattern = /[0-9]{8}-[0-9]{3}-(0[1-9]|1[012])-[0-9]{2}-[0-9A-Z]{1}/ + if (value !== undefined) { + if (value.match(brNo_pattern)) { + return true + } else { + return false + } + } + }), }), onSubmit: values => { HttpUtils.post({ diff --git a/src/pages/Proof/Payment/Pay_Creditor.js b/src/pages/Proof/Payment/Pay_Creditor.js index b41a49b..c2b2b37 100644 --- a/src/pages/Proof/Payment/Pay_Creditor.js +++ b/src/pages/Proof/Payment/Pay_Creditor.js @@ -76,12 +76,12 @@ const Index = () => {
- 公共啟事:交對完成 + 公共啟事:校對完成 - 我們已收到你已確定申請編號: {record?.appNo} 的稿件交對確定及可付印的指示,並將安排刊登於憲報 + 我們已收到你已確定申請編號: {record?.appNo} 的稿件校對確定及可付印的指示,並將安排刊登於憲報 期數 {record?.appNo} 年 {record?.issueVolume} 卷 第 {record?.issueNo} 期內。

此公共啟事申請的費用將於下期發出的繳費發票時收取,請依時繳費。 diff --git a/src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js b/src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js index af27ce2..ae961d3 100644 --- a/src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js +++ b/src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js @@ -1,7 +1,7 @@ // material-ui import { Grid, Typography, Button, - Dialog, DialogTitle, DialogContent, DialogActions + Dialog, DialogTitle, DialogContent, DialogActions, } from '@mui/material'; import MainCard from "../../../components/MainCard"; import * as React from "react"; @@ -39,23 +39,36 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) => } }, [currentUserData]); + function displayErrorMsg(errorMsg) { + return {errorMsg} + } + const formik = useFormik({ enableReinitialize: true, initialValues: currentUserData, validationSchema: yup.object().shape({ - contactPerson: yup.string().max(255).required('請輸入姓名'), - enCompanyName: yup.string().max(255).required('請輸入英文名稱'), + contactPerson: yup.string().max(255).required(displayErrorMsg('請輸入姓名')), + enCompanyName: yup.string().max(255).required(displayErrorMsg('請輸入英文名稱')), chCompanyName: yup.string().max(255).nullable(), - addressLine1: yup.string().max(255).required('請輸入第一行地址'), + addressLine1: yup.string().max(255).required(displayErrorMsg('請輸入第一行地址')), addressLine2: yup.string().max(255).nullable(), addressLine3: yup.string().max(255).nullable(), - emailBus: yup.string().max(255).required('請輸入電郵'), - tel_countryCode: yup.string().min(3, '請輸入3位數字').required('請輸入國際區號'), - fax_countryCode: yup.string().min(3, '請輸入3位數字').nullable(), - phoneNumber: yup.string().min(8, '請輸入8位數字').required('請輸入聯絡電話'), - faxNumber: yup.string().min(8, '請輸入8位數字').nullable(), - brExpiryDate: yup.string().min(8, '請輸入商業登記證有效日期'), - brNo: yup.string().min(8, '請輸入有效商業登記證號碼').max(8, '請輸入有效商業登記證號碼').required('請輸入商業登記證號碼'), + emailBus: yup.string().max(255).required(displayErrorMsg('請輸入電郵')), + tel_countryCode: yup.string().min(3, displayErrorMsg('請輸入3位數字')).required(displayErrorMsg('請輸入國際區號')), + fax_countryCode: yup.string().min(3, displayErrorMsg('請輸入3位數字')).nullable(), + phoneNumber: yup.string().min(8, displayErrorMsg('請輸入8位數字')).required(displayErrorMsg('請輸入聯絡電話')), + faxNumber: yup.string().min(8, displayErrorMsg('請輸入8位數字')).nullable(), + brExpiryDate: yup.string().min(8, displayErrorMsg('請輸入商業登記證有效日期')), + brNo: yup.string().required(displayErrorMsg('請輸入商業登記證號碼')).test('checkBrNoFormat', displayErrorMsg(`請輸入有效商業登記證號碼`), function (value) { + var brNo_pattern = /[0-9]{8}-[0-9]{3}-(0[1-9]|1[012])-[0-9]{2}-[0-9A-Z]{1}/ + if (value !== undefined) { + if (value.match(brNo_pattern)) { + return true + } else { + return false + } + } + }), }), onSubmit: (values) => { HttpUtils.post({ diff --git a/src/pages/authentication/auth-forms/BusCustomFormWizard.js b/src/pages/authentication/auth-forms/BusCustomFormWizard.js index b96fbc6..0f43897 100644 --- a/src/pages/authentication/auth-forms/BusCustomFormWizard.js +++ b/src/pages/authentication/auth-forms/BusCustomFormWizard.js @@ -118,16 +118,16 @@ const BusCustomFormWizard = (props) => { onCaptchaChange(); // } axios.get(`${GET_USERNAME}`) - .then((response) => { - if (response.status === 200) { - setUserNameList(response.data); - } + .then((response) => { + if (response.status === 200) { + setUserNameList(response.data); + } - }) - .catch(error => { - console.log(error); - return false; - }); + }) + .catch(error => { + console.log(error); + return false; + }); }, []); const handleCheckUsername = async () => { @@ -181,6 +181,7 @@ const BusCustomFormWizard = (props) => { handlePhone(data.phone) && handleUserName(data.username) && handleCaptcha(data.captchaField) && + handleBrNo(data.brNo) && !checkUsername ) { setisValid(true) @@ -223,6 +224,17 @@ const BusCustomFormWizard = (props) => { }, [updateRows]); + const handleBrNo = (brNo) => { + var brNo_pattern = /[0-9]{8}-[0-9]{3}-(0[1-9]|1[012])-[0-9]{2}-[0-9A-Z]{1}/ + if (brNo !== undefined) { + if (brNo.match(brNo_pattern)) { + return true + } else { + return false + } + } + } + const handleFileUpload = (event) => { let updateList = new DataTransfer(); let currentFileList = fileListData; @@ -465,21 +477,21 @@ const BusCustomFormWizard = (props) => { } } ) - .matches(/^[aA-zZ0-9\s]+$/, {message: displayErrorMsg("用戶名稱不包含特殊字符")}) - .matches(/^\S*$/, {message: displayErrorMsg('用戶名稱不包含空格')}), + .matches(/^[aA-zZ0-9\s]+$/, { message: displayErrorMsg("用戶名稱不包含特殊字符") }) + .matches(/^\S*$/, { message: displayErrorMsg('用戶名稱不包含空格') }), password: yup.string().min(8, displayErrorMsg('請輸入最少8位密碼')).required(displayErrorMsg('請輸入密碼')) - .matches(/^\S*$/, {message: displayErrorMsg('密碼不包含空格')}) - .matches(/^(?=.*[a-z])/, {message: displayErrorMsg('請包括最少1個小寫字母')}) - .matches(/^(?=.*[A-Z])/, {message: displayErrorMsg('請包括最少1個大寫字母')}) - .matches(/^(?=.*[0-9])/, {message: displayErrorMsg('請包括最少1個數字')}) - .matches(/^(?=.*[!@#%&])/, {message: displayErrorMsg('請包括最少1個特殊字符')}), + .matches(/^\S*$/, { message: displayErrorMsg('密碼不包含空格') }) + .matches(/^(?=.*[a-z])/, { message: displayErrorMsg('請包括最少1個小寫字母') }) + .matches(/^(?=.*[A-Z])/, { message: displayErrorMsg('請包括最少1個大寫字母') }) + .matches(/^(?=.*[0-9])/, { message: displayErrorMsg('請包括最少1個數字') }) + .matches(/^(?=.*[!@#%&])/, { message: displayErrorMsg('請包括最少1個特殊字符') }), confirmPassword: yup.string().min(8, displayErrorMsg('請最少輸入8位密碼')).required(displayErrorMsg('請確認密碼')).oneOf([yup.ref('password'), null], displayErrorMsg('請輸入相同密碼')), enName: yup.string().max(255).required(displayErrorMsg('請輸入英文姓名')), - enCompanyName: yup.string().matches(/^[^$^*()]+$/, {message: displayErrorMsg('No special characters $/^/*/(/)')}).when('chCompanyName', { + enCompanyName: yup.string().matches(/^[^$^*()]+$/, { message: displayErrorMsg('No special characters $/^/*/(/)') }).when('chCompanyName', { is: (chCompanyName) => !chCompanyName || chCompanyName.length === 0, then: yup.string().required(displayErrorMsg('Please enter either English or Chinese name')), }), - chCompanyName: yup.string().matches(/^[^$^*()]+$/, {message: displayErrorMsg('不包含特殊字符 $/^/*/(/)')}).when('enCompanyName', { + chCompanyName: yup.string().matches(/^[^$^*()]+$/, { message: displayErrorMsg('不包含特殊字符 $/^/*/(/)') }).when('enCompanyName', { is: (enCompanyName) => !enCompanyName || enCompanyName.length === 0, then: yup.string().required(displayErrorMsg('請輸入英文或中文名稱')), }), @@ -494,7 +506,16 @@ const BusCustomFormWizard = (props) => { phone: yup.string().min(8, displayErrorMsg('請輸入最少8位數字')).required(displayErrorMsg('請輸入聯絡電話')), fax: yup.string().min(8, displayErrorMsg('請輸入最少8位數字')), brExpiryDate: yup.date().min(new Date().toISOString().split("T")[0], displayErrorMsg('請輸入商業登記證有效日期')).max("2099-12-31", displayErrorMsg('請輸入商業登記證有效日期')).required(displayErrorMsg('請輸入商業登記證有效日期')), - brNo: yup.string().min(8, displayErrorMsg('請輸入商業登記證號碼')).required(displayErrorMsg('請輸入商業登記證號碼')), + brNo: yup.string().required(displayErrorMsg('請輸入商業登記證號碼')).test('checkBrNoFormat', displayErrorMsg(`請輸入有效商業登記證號碼`), function (value) { + var brNo_pattern = /[0-9]{8}-[0-9]{3}-(0[1-9]|1[012])-[0-9]{2}-[0-9A-Z]{1}/ + if (value !== undefined) { + if (value.match(brNo_pattern)) { + return true + } else { + return false + } + } + }), captchaField: yup.string().required(displayErrorMsg('請輸入驗證')).oneOf([captcha], displayErrorMsg('請輸入有效驗證')), }, ['enCompanyName', 'chCompanyName']), @@ -1547,7 +1568,7 @@ const BusCustomFormWizard = (props) => { 帳戶申請已成功提交。 - 驗證電郵將發送到你的電郵地址,請要指示完成驗證及登入系統。 + 驗證電郵將發送到你的電郵地址,請依指示完成驗證及登入系統。 :