浏览代码

Update

master
cyril.tsui 1年前
父节点
当前提交
ae77186d9e
共有 5 个文件被更改,包括 112 次插入53 次删除
  1. +23
    -11
      src/pages/OrganizationDetailPage/OrganizationCard.js
  2. +22
    -9
      src/pages/OrganizationDetailPage_FromUser/OrganizationCard_loadFromUser.js
  3. +2
    -2
      src/pages/Proof/Payment/Pay_Creditor.js
  4. +24
    -11
      src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js
  5. +41
    -20
      src/pages/authentication/auth-forms/BusCustomFormWizard.js

+ 23
- 11
src/pages/OrganizationDetailPage/OrganizationCard.js 查看文件

@@ -35,22 +35,34 @@ const OrganizationCard = ({ userData, loadDataFun, id }) => {
} }
}, [currentUserData]); }, [currentUserData]);


function displayErrorMsg(errorMsg) {
return <Typography variant="errorMessage1">{errorMsg}</Typography>
}


const formik = useFormik({ const formik = useFormik({
enableReinitialize: true, enableReinitialize: true,
initialValues: currentUserData, initialValues: currentUserData,
validationSchema: yup.object().shape({ 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 => { onSubmit: vaule => {
console.log(vaule) console.log(vaule)


+ 22
- 9
src/pages/OrganizationDetailPage_FromUser/OrganizationCard_loadFromUser.js 查看文件

@@ -1,6 +1,6 @@
// material-ui // material-ui
import { import {
Grid, Button
Grid, Button, Typography
} from '@mui/material'; } from '@mui/material';
import MainCard from "../../components/MainCard"; import MainCard from "../../components/MainCard";
import * as React from "react"; import * as React from "react";
@@ -34,21 +34,34 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => {
} }
}, [currentUserData]); }, [currentUserData]);


function displayErrorMsg(errorMsg) {
return <Typography variant="errorMessage1">{errorMsg}</Typography>
}

const formik = useFormik({ const formik = useFormik({
enableReinitialize: true, enableReinitialize: true,
initialValues: currentUserData, initialValues: currentUserData,
validationSchema: yup.object().shape({ 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(), addressLine2: yup.string().max(255).nullable(),
addressLine3: 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(), 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 => { onSubmit: values => {
HttpUtils.post({ HttpUtils.post({


+ 2
- 2
src/pages/Proof/Payment/Pay_Creditor.js 查看文件

@@ -76,12 +76,12 @@ const Index = () => {
<center> <center>
<Grid item xs={12} md={8} > <Grid item xs={12} md={8} >
<Typography variant="h2" sx={{ textAlign: "left", ml: 4, mr: 4, mt: 4, borderBottom: "1px solid black" }}> <Typography variant="h2" sx={{ textAlign: "left", ml: 4, mr: 4, mt: 4, borderBottom: "1px solid black" }}>
公共啟事:對完成
公共啟事:對完成
</Typography> </Typography>




<Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "left" }}> <Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "left" }}>
我們已收到你已確定申請編號: {record?.appNo} 的稿件對確定及可付印的指示,並將安排刊登於憲報
我們已收到你已確定申請編號: {record?.appNo} 的稿件對確定及可付印的指示,並將安排刊登於憲報
期數 {record?.appNo} 年 {record?.issueVolume} 卷 第 {record?.issueNo} 期內。 期數 {record?.appNo} 年 {record?.issueVolume} 卷 第 {record?.issueNo} 期內。
<br/><br/> <br/><br/>
此公共啟事申請的費用將於下期發出的繳費發票時收取,請依時繳費。 此公共啟事申請的費用將於下期發出的繳費發票時收取,請依時繳費。


+ 24
- 11
src/pages/User/DetailsPage_Organization/UserInformationCard_Organization.js 查看文件

@@ -1,7 +1,7 @@
// material-ui // material-ui
import { import {
Grid, Typography, Button, Grid, Typography, Button,
Dialog, DialogTitle, DialogContent, DialogActions
Dialog, DialogTitle, DialogContent, DialogActions,
} from '@mui/material'; } from '@mui/material';
import MainCard from "../../../components/MainCard"; import MainCard from "../../../components/MainCard";
import * as React from "react"; import * as React from "react";
@@ -39,23 +39,36 @@ const UserInformationCard_Organization = ({ userData, loadDataFun, orgData }) =>
} }
}, [currentUserData]); }, [currentUserData]);


function displayErrorMsg(errorMsg) {
return <Typography variant="errorMessage1">{errorMsg}</Typography>
}

const formik = useFormik({ const formik = useFormik({
enableReinitialize: true, enableReinitialize: true,
initialValues: currentUserData, initialValues: currentUserData,
validationSchema: yup.object().shape({ 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(), 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(), addressLine2: yup.string().max(255).nullable(),
addressLine3: 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) => { onSubmit: (values) => {
HttpUtils.post({ HttpUtils.post({


+ 41
- 20
src/pages/authentication/auth-forms/BusCustomFormWizard.js 查看文件

@@ -118,16 +118,16 @@ const BusCustomFormWizard = (props) => {
onCaptchaChange(); onCaptchaChange();
// } // }
axios.get(`${GET_USERNAME}`) 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 () => { const handleCheckUsername = async () => {
@@ -181,6 +181,7 @@ const BusCustomFormWizard = (props) => {
handlePhone(data.phone) && handlePhone(data.phone) &&
handleUserName(data.username) && handleUserName(data.username) &&
handleCaptcha(data.captchaField) && handleCaptcha(data.captchaField) &&
handleBrNo(data.brNo) &&
!checkUsername !checkUsername
) { ) {
setisValid(true) setisValid(true)
@@ -223,6 +224,17 @@ const BusCustomFormWizard = (props) => {


}, [updateRows]); }, [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) => { const handleFileUpload = (event) => {
let updateList = new DataTransfer(); let updateList = new DataTransfer();
let currentFileList = fileListData; 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('請輸入密碼')) 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('請輸入相同密碼')), confirmPassword: yup.string().min(8, displayErrorMsg('請最少輸入8位密碼')).required(displayErrorMsg('請確認密碼')).oneOf([yup.ref('password'), null], displayErrorMsg('請輸入相同密碼')),
enName: yup.string().max(255).required(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, is: (chCompanyName) => !chCompanyName || chCompanyName.length === 0,
then: yup.string().required(displayErrorMsg('Please enter either English or Chinese name')), 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, is: (enCompanyName) => !enCompanyName || enCompanyName.length === 0,
then: yup.string().required(displayErrorMsg('請輸入英文或中文名稱')), then: yup.string().required(displayErrorMsg('請輸入英文或中文名稱')),
}), }),
@@ -494,7 +506,16 @@ const BusCustomFormWizard = (props) => {
phone: yup.string().min(8, displayErrorMsg('請輸入最少8位數字')).required(displayErrorMsg('請輸入聯絡電話')), phone: yup.string().min(8, displayErrorMsg('請輸入最少8位數字')).required(displayErrorMsg('請輸入聯絡電話')),
fax: yup.string().min(8, displayErrorMsg('請輸入最少8位數字')), 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('請輸入商業登記證有效日期')), 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('請輸入有效驗證')), captchaField: yup.string().required(displayErrorMsg('請輸入驗證')).oneOf([captcha], displayErrorMsg('請輸入有效驗證')),
}, ['enCompanyName', 'chCompanyName']), }, ['enCompanyName', 'chCompanyName']),


@@ -1547,7 +1568,7 @@ const BusCustomFormWizard = (props) => {
<Stack mt={1} direction="column" justifyContent="flex-start" alignItems="center" spacing={2}> <Stack mt={1} direction="column" justifyContent="flex-start" alignItems="center" spacing={2}>
<CheckCircleOutlineIcon color="success" sx={{ width: "200px", height: "200px" }} /> <CheckCircleOutlineIcon color="success" sx={{ width: "200px", height: "200px" }} />
<Typography display="inline" variant="h4">帳戶申請已成功提交。</Typography> <Typography display="inline" variant="h4">帳戶申請已成功提交。</Typography>
<Typography display="inline" variant="h4">驗證電郵將發送到你的電郵地址,請指示完成驗證及登入系統。</Typography>
<Typography display="inline" variant="h4">驗證電郵將發送到你的電郵地址,請指示完成驗證及登入系統。</Typography>
<Button variant="outlined" component={Link} to="/login" sx={{ fontSize: 20, height: '60px' }}><Typography variant="h5">返回登入頁面</Typography></Button> <Button variant="outlined" component={Link} to="/login" sx={{ fontSize: 20, height: '60px' }}><Typography variant="h5">返回登入頁面</Typography></Button>
</Stack> </Stack>
: :


正在加载...
取消
保存