|
|
@@ -1,49 +1,49 @@ |
|
|
|
// material-ui |
|
|
|
import { |
|
|
|
Grid, Typography, Button |
|
|
|
Grid, Button |
|
|
|
} from '@mui/material'; |
|
|
|
import MainCard from "../../components/MainCard"; |
|
|
|
import * as React from "react"; |
|
|
|
import * as yup from 'yup'; |
|
|
|
import {useEffect, useState} from "react"; |
|
|
|
import { useEffect, useState } from "react"; |
|
|
|
import * as HttpUtils from '../../utils/HttpUtils'; |
|
|
|
import * as UrlUtils from "../../utils/ApiPathConst"; |
|
|
|
import * as FieldUtils from "../../utils/FieldUtils"; |
|
|
|
import * as ComboData from "../../utils/ComboData"; |
|
|
|
import {useNavigate} from "react-router-dom"; |
|
|
|
import { useNavigate } from "react-router-dom"; |
|
|
|
import { useFormik } from 'formik'; |
|
|
|
|
|
|
|
// ==============================|| DASHBOARD - DEFAULT ||============================== // |
|
|
|
|
|
|
|
|
|
|
|
const OrganizationCard_loadFromUser = ({userData,userId}) => { |
|
|
|
const OrganizationCard_loadFromUser = ({ userData, userId }) => { |
|
|
|
|
|
|
|
const [currentUserData, setCurrentUserData] = useState(userData); |
|
|
|
|
|
|
|
const navigate = useNavigate(); |
|
|
|
|
|
|
|
const formik = useFormik({ |
|
|
|
enableReinitialize:true, |
|
|
|
initialValues:currentUserData, |
|
|
|
validationSchema:yup.object().shape({ |
|
|
|
enCompanyName: yup.string().max(255,"請輸入英文名稱").required('請輸入英文名稱'), |
|
|
|
chCompanyName: yup.string().max(255,'請輸入中文名稱').nullable(), |
|
|
|
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).nullable(), |
|
|
|
addressLine3: yup.string().max(255).nullable(), |
|
|
|
fax_countryCode: yup.string().min(3,"請輸入國際區號").nullable(), |
|
|
|
tel_countryCode: yup.string().min(3,"請輸入國際區號"), |
|
|
|
fax_countryCode: yup.string().min(3, "請輸入國際區號").nullable(), |
|
|
|
tel_countryCode: yup.string().min(3, "請輸入國際區號"), |
|
|
|
phoneNumber: yup.string().min(8, '請輸入有效聯絡電話').required('請輸入聯絡電話'), |
|
|
|
faxNumber: yup.string().min(8).nullable(), |
|
|
|
brExpiryDate: yup.string().min(8).required('請輸入商業登記證有效日期'), |
|
|
|
brNo: yup.string().min(8, '請輸入有效商業登記證號碼').max(8,'請輸入有效商業登記證號碼').required('請輸入商業登記證號碼'), |
|
|
|
brNo: yup.string().min(8, '請輸入有效商業登記證號碼').max(8, '請輸入有效商業登記證號碼').required('請輸入商業登記證號碼'), |
|
|
|
}), |
|
|
|
onSubmit: values =>{ |
|
|
|
onSubmit: values => { |
|
|
|
HttpUtils.post({ |
|
|
|
url: UrlUtils.POST_ORG_SAVE_PATH, |
|
|
|
params: { |
|
|
|
id:null, |
|
|
|
primaryUserId:userId, |
|
|
|
id: null, |
|
|
|
primaryUserId: userId, |
|
|
|
enCompanyName: values.enCompanyName, |
|
|
|
chCompanyName: values.chCompanyName, |
|
|
|
brNo: values.brNo, |
|
|
@@ -65,11 +65,11 @@ const OrganizationCard_loadFromUser = ({userData,userId}) => { |
|
|
|
district: values.district, |
|
|
|
addressLine1: values.addressLine1, |
|
|
|
addressLine2: values.addressLine2, |
|
|
|
addressLine3: values.addressLine3, |
|
|
|
addressLine3: values.addressLine3, |
|
|
|
} |
|
|
|
}, |
|
|
|
onSuccess: function(responseData){ |
|
|
|
navigate('/org/'+responseData.id); |
|
|
|
onSuccess: function (responseData) { |
|
|
|
navigate('/org/' + responseData.id); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
@@ -80,111 +80,138 @@ const OrganizationCard_loadFromUser = ({userData,userId}) => { |
|
|
|
}, [userData]); |
|
|
|
|
|
|
|
return ( |
|
|
|
<MainCard elevation={0} |
|
|
|
border={false} |
|
|
|
content={false} |
|
|
|
> |
|
|
|
<Typography variant="h5" sx={{mt: 3, ml: 3, mb: 1}}> |
|
|
|
Information |
|
|
|
</Typography> |
|
|
|
|
|
|
|
|
|
|
|
{/* <div style={{ border: "solid 1px;", color: "red" }}> |
|
|
|
<MainCard elevation={0} |
|
|
|
border={false} |
|
|
|
content={false} |
|
|
|
> |
|
|
|
|
|
|
|
{/* <div style={{ border: "solid 1px;", color: "red" }}> |
|
|
|
TODO: Error Summary |
|
|
|
{Object.values(formik.errors).map(error => ( |
|
|
|
<div>{error}</div> |
|
|
|
))} |
|
|
|
</div> */} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<form onSubmit={formik.handleSubmit}> |
|
|
|
<div style={{ padding: 24 }}> |
|
|
|
<form onSubmit={formik.handleSubmit}> |
|
|
|
|
|
|
|
<Grid container spacing={1}> |
|
|
|
{/*top*/} |
|
|
|
<Grid item s={12} md={12} lg={12} sx={{mb: 3}} alignItems={"start"} justifyContent="center"> |
|
|
|
|
|
|
|
|
|
|
|
<Grid item sx={{ml: 3, mr: 3}}> |
|
|
|
<Button |
|
|
|
size="large" |
|
|
|
variant="contained" |
|
|
|
type="submit" |
|
|
|
sx={{ |
|
|
|
textTransform: 'capitalize', |
|
|
|
alignItems: 'end' |
|
|
|
}} |
|
|
|
> |
|
|
|
Create |
|
|
|
</Button> |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Grid item s={12} md={12} lg={12} sx={{ mb: 3 }} alignItems={"start"} justifyContent="center"> |
|
|
|
|
|
|
|
|
|
|
|
<Grid item sx={{ ml: 3, mr: 3 }}> |
|
|
|
<Button |
|
|
|
size="large" |
|
|
|
variant="contained" |
|
|
|
type="submit" |
|
|
|
sx={{ |
|
|
|
textTransform: 'capitalize', |
|
|
|
alignItems: 'end' |
|
|
|
}} |
|
|
|
> |
|
|
|
Create |
|
|
|
</Button> |
|
|
|
</Grid> |
|
|
|
|
|
|
|
</Grid> |
|
|
|
{/*top*/} |
|
|
|
|
|
|
|
{FieldUtils.getTextField({ |
|
|
|
label:"BR No.:", |
|
|
|
valueName:"brNo", |
|
|
|
form: formik})} |
|
|
|
<Grid item lg={4}> |
|
|
|
{FieldUtils.getTextField({ |
|
|
|
label: "BR No.:", |
|
|
|
valueName: "brNo", |
|
|
|
form: formik |
|
|
|
})} |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Grid item lg={8}></Grid> |
|
|
|
|
|
|
|
{FieldUtils.getTextField({ |
|
|
|
label:FieldUtils.notNullFieldLabel("Name (Eng):"), |
|
|
|
valueName:"enCompanyName", |
|
|
|
form: formik})} |
|
|
|
|
|
|
|
{FieldUtils.getTextField({ |
|
|
|
label:"Name (Ch):", |
|
|
|
valueName:"chCompanyName", |
|
|
|
form: formik})} |
|
|
|
|
|
|
|
{FieldUtils.getDateField({ |
|
|
|
label:FieldUtils.notNullFieldLabel("Expiry Date:"), |
|
|
|
valueName:"brExpiryDate", |
|
|
|
form: formik})} |
|
|
|
|
|
|
|
{FieldUtils.getTextField({ |
|
|
|
label:FieldUtils.notNullFieldLabel("Contact Person:"), |
|
|
|
valueName:"contactPerson", |
|
|
|
form: formik})} |
|
|
|
|
|
|
|
{FieldUtils.getPhoneField({ |
|
|
|
label:FieldUtils.notNullFieldLabel("Contact Tel:"), |
|
|
|
valueName:{ |
|
|
|
code:"tel_countryCode", |
|
|
|
num:"phoneNumber" |
|
|
|
}, |
|
|
|
form: formik})} |
|
|
|
|
|
|
|
{FieldUtils.getPhoneField({ |
|
|
|
label:"Fax No:", |
|
|
|
valueName:{ |
|
|
|
code:"fax_countryCode", |
|
|
|
num:"faxNumber" |
|
|
|
}, |
|
|
|
form: formik})} |
|
|
|
|
|
|
|
{FieldUtils.getComboField({ |
|
|
|
label:FieldUtils.notNullFieldLabel("Country:"), |
|
|
|
valueName:"country", |
|
|
|
dataList: ComboData.country, |
|
|
|
form: formik})} |
|
|
|
|
|
|
|
{FieldUtils.getComboField({ |
|
|
|
label:FieldUtils.notNullFieldLabel("District:"), |
|
|
|
valueName:"district", |
|
|
|
dataList: ComboData.district, |
|
|
|
form: formik})} |
|
|
|
|
|
|
|
{FieldUtils.getAddressField({ |
|
|
|
label:FieldUtils.notNullFieldLabel("Address:"), |
|
|
|
valueName:["addressLine1","addressLine2","addressLine3"], |
|
|
|
form: formik})} |
|
|
|
<Grid item lg={4}> |
|
|
|
{FieldUtils.getTextField({ |
|
|
|
label: FieldUtils.notNullFieldLabel("Name (Eng):"), |
|
|
|
valueName: "enCompanyName", |
|
|
|
form: formik |
|
|
|
})} |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Grid item lg={4}> |
|
|
|
{FieldUtils.getTextField({ |
|
|
|
label: "Name (Ch):", |
|
|
|
valueName: "chCompanyName", |
|
|
|
form: formik |
|
|
|
})} |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Grid item lg={4}> |
|
|
|
{FieldUtils.getDateField({ |
|
|
|
label: FieldUtils.notNullFieldLabel("Expiry Date:"), |
|
|
|
valueName: "brExpiryDate", |
|
|
|
form: formik |
|
|
|
})} |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Grid item lg={4}> |
|
|
|
{FieldUtils.getTextField({ |
|
|
|
label: FieldUtils.notNullFieldLabel("Contact Person:"), |
|
|
|
valueName: "contactPerson", |
|
|
|
form: formik |
|
|
|
})} |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Grid item lg={4}> |
|
|
|
{FieldUtils.getPhoneField({ |
|
|
|
label: FieldUtils.notNullFieldLabel("Contact Tel:"), |
|
|
|
valueName: { |
|
|
|
code: "tel_countryCode", |
|
|
|
num: "phoneNumber" |
|
|
|
}, |
|
|
|
form: formik |
|
|
|
})} |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Grid item lg={4}> |
|
|
|
{FieldUtils.getPhoneField({ |
|
|
|
label: "Fax No:", |
|
|
|
valueName: { |
|
|
|
code: "fax_countryCode", |
|
|
|
num: "faxNumber" |
|
|
|
}, |
|
|
|
form: formik |
|
|
|
})} |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Grid item lg={4}> |
|
|
|
{FieldUtils.getComboField({ |
|
|
|
label: FieldUtils.notNullFieldLabel("Country:"), |
|
|
|
valueName: "country", |
|
|
|
dataList: ComboData.country, |
|
|
|
form: formik |
|
|
|
})} |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Grid item lg={4}> |
|
|
|
{FieldUtils.getComboField({ |
|
|
|
label: FieldUtils.notNullFieldLabel("District:"), |
|
|
|
valueName: "district", |
|
|
|
dataList: ComboData.district, |
|
|
|
form: formik |
|
|
|
})} |
|
|
|
</Grid> |
|
|
|
|
|
|
|
<Grid item lg={4}> |
|
|
|
{FieldUtils.getAddressField({ |
|
|
|
label: FieldUtils.notNullFieldLabel("Address:"), |
|
|
|
valueName: ["addressLine1", "addressLine2", "addressLine3"], |
|
|
|
form: formik |
|
|
|
})} |
|
|
|
</Grid> |
|
|
|
</form> |
|
|
|
</MainCard> |
|
|
|
</Grid> |
|
|
|
</form> |
|
|
|
</div> |
|
|
|
</MainCard> |
|
|
|
); |
|
|
|
}; |
|
|
|
|
|
|
|