diff --git a/src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js b/src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js index ac1d529..c9fa273 100644 --- a/src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js +++ b/src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js @@ -2,15 +2,16 @@ import { Grid, Button, Typography, Dialog, DialogTitle, DialogContent, DialogActions, + FormHelperText } from '@mui/material'; -import MainCard from "../../../components/MainCard"; +import MainCard from "components/MainCard"; import * as React from "react"; import * as yup from 'yup'; 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 * 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 { useFormik } from 'formik'; const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent'))); @@ -29,6 +30,7 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => { const [onReady, setOnReady] = useState(false); const [isFailPopUp, setIsFailPopUp] = useState(false); const [failText, setFailText] = useState(""); + const [errorMsg, setErrorMsg] = useState(""); useEffect(() => { //if state data are ready and assign to different field @@ -57,7 +59,7 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => { faxNumber: yup.string().min(8).nullable(), brExpiryDate: yup.string().min(8).required(displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertValidityDate'}))), brNo: yup.string().max(8).required(displayErrorMsg(intl.formatMessage({id: 'pleaseFillInBusinessRegCertNumber'}))) - .test('checkBrNoFormat', displayErrorMsg(displayErrorMsg(`${intl.formatMessage({id: 'pleaseFillInValidBusinessRegCertNumber'})} (e.g. 12341234)`)), function (value) { + .test('checkBrNoFormat', displayErrorMsg(`${intl.formatMessage({id: 'pleaseFillInValidBusinessRegCertNumber'})} (e.g. 12341234)`), function (value) { var brNo_pattern = /[0-9]{8}/ if (value !== undefined) { if (value.match(brNo_pattern)) { @@ -69,45 +71,53 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => { }), }), onSubmit: values => { - HttpUtils.post({ - url: UrlUtils.POST_ORG_SAVE_PATH, - params: { - id: null, - primaryUserId: userId, - enCompanyName: values.enCompanyName, - chCompanyName: values.chCompanyName, - brNo: values.brNo, - brExpiryDate: values.brExpiryDate, - enCompanyNameTemp: values.enCompanyNameTemp, - chCompanyNameTemp: values.chCompanyNameTemp, - brExpiryDateTemp: values.brExpiryDateTemp, - contactPerson: values.contactPerson, - contactTel: { - countryCode: values.tel_countryCode, - phoneNumber: values.phoneNumber - }, - faxNo: { - countryCode: values.fax_countryCode, - faxNumber: values.faxNumber - }, - addressTemp: { - country: values.country.key, - district: values.district.key, - addressLine1: values.addressLine1, - addressLine2: values.addressLine2, - addressLine3: values.addressLine3, - } - }, - onSuccess: function (responseData) { - if(responseData.msg){ - setFailText(responseData.msg); - setIsFailPopUp(true); - return; - } - navigate('/org/' + responseData.id); - notifyCreateSuccess() + if (values.country==null){ + setErrorMsg(intl.formatMessage({id: 'pleaseFillInCountry'})) + } else { + if (values.country.key ==1 && values.district == null){ + setErrorMsg(intl.formatMessage({id: 'pleaseFillInDistrict'})) + } else { + HttpUtils.post({ + url: UrlUtils.POST_ORG_SAVE_PATH, + params: { + id: null, + primaryUserId: userId, + enCompanyName: values.enCompanyName, + chCompanyName: values.chCompanyName, + brNo: values.brNo, + brExpiryDate: values.brExpiryDate, + enCompanyNameTemp: values.enCompanyNameTemp, + chCompanyNameTemp: values.chCompanyNameTemp, + brExpiryDateTemp: values.brExpiryDateTemp, + contactPerson: values.contactPerson, + contactTel: { + countryCode: values.tel_countryCode, + phoneNumber: values.phoneNumber + }, + faxNo: { + countryCode: values.fax_countryCode, + faxNumber: values.faxNumber + }, + addressTemp: { + country: values.country.key, + district: values.district?.key, + addressLine1: values.addressLine1, + addressLine2: values.addressLine2, + addressLine3: values.addressLine3, + } + }, + onSuccess: function (responseData) { + if(responseData.msg){ + setFailText(responseData.msg); + setIsFailPopUp(true); + return; + } + navigate('/org/' + responseData.id); + notifyCreateSuccess() + } + }); } - }); + } } }); @@ -140,9 +150,7 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => { {/*top*/} - - - + - {/*top*/} + + + + {errorMsg} + + + + {FieldUtils.getTextField({ label: "BR No.:", diff --git a/src/pages/Organization/DetailPage_FromUser/index.js b/src/pages/Organization/DetailPage_FromUser/index.js index 32ce97c..17afd41 100644 --- a/src/pages/Organization/DetailPage_FromUser/index.js +++ b/src/pages/Organization/DetailPage_FromUser/index.js @@ -1,18 +1,30 @@ // material-ui -import {Grid, Typography} from '@mui/material'; +import {Grid, Typography, Stack, Box} from '@mui/material'; import {useEffect, useState} from "react"; import * as React from "react"; -import * as HttpUtils from "../../../utils/HttpUtils"; +import * as HttpUtils from "utils/HttpUtils"; import {useParams} from "react-router-dom"; import {useNavigate} from "react-router-dom"; -import * as UrlUtils from "../../../utils/ApiPathConst"; -import * as DateUtils from "../../../utils/DateUtils"; +import * as UrlUtils from "utils/ApiPathConst"; +import * as DateUtils from "utils/DateUtils"; +import {getObjectByValue} from "utils/CommonFunction"; +import * as ComboData from "utils/ComboData"; import Loadable from 'components/Loadable'; import { lazy } from 'react'; const InfoCard = Loadable(lazy(() => import('./OrganizationCard_loadFromUser'))); -const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent'))); +const LoadingComponent = Loadable(lazy(() => import('pages/extra-pages/LoadingComponent'))); +import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' +const BackgroundHead = { + backgroundImage: `url(${titleBackgroundImg})`, + width: '100%', + height: '100%', + backgroundSize: 'contain', + backgroundRepeat: 'no-repeat', + backgroundColor: '#0C489E', + backgroundPosition: 'right' +} // ==============================|| DASHBOARD - DEFAULT ||============================== // @@ -34,8 +46,8 @@ const OrganizationDetailPage_FromUser = () => { HttpUtils.get({ url: UrlUtils.GET_ORG_FROM_USER_PATH+"/"+params.id, onSuccess: function(response){ - response.data["country"] = response.data.addressTemp?.country; - response.data["district"] = response.data.addressTemp?.district; + response.data["country"] = getObjectByValue(ComboData.country, "key", response.data.addressTemp?.country); + response.data["district"] = getObjectByValue(ComboData.district, "key", response.data.addressTemp?.district); response.data["addressLine1"] = response.data.addressTemp?.addressLine1; response.data["addressLine2"] = response.data.addressTemp?.addressLine2; response.data["addressLine3"] = response.data.addressTemp?.addressLine3; @@ -62,20 +74,32 @@ const OrganizationDetailPage_FromUser = () => { return ( isLoading ? - + + + + + : - - - Organisation (Create From User) + + +
+ + + Organisation (Create From User) + + +
{/*col 1*/} - + + + diff --git a/src/translations/en.json b/src/translations/en.json index 0904085..ec155ab 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -199,6 +199,8 @@ "requireUsername": "Please enter user name", "requirePassword": "Please enter password", "regionOrCountry": "Country/Region", + "pleaseFillInCountry": "Please enter the Country/Region", + "pleaseFillInDistrict": "Please enter the District", "hongKong": "Hong Kong", "mainland": "Mainland China", "macau": "Macau", diff --git a/src/translations/zh-CN.json b/src/translations/zh-CN.json index 72be87f..9572bc6 100644 --- a/src/translations/zh-CN.json +++ b/src/translations/zh-CN.json @@ -195,6 +195,8 @@ "requirePassword": "请输入密码", "region": "区域 (只适用于香港)", "regionOrCountry": "国家/地区", + "pleaseFillInCountry": "请输入国家/地区", + "pleaseFillInDistrict": "请输入地区", "hongKong": "香港", "mainland": "内地", "macau": "澳门", diff --git a/src/translations/zh-HK.json b/src/translations/zh-HK.json index b4537a5..dfe82de 100644 --- a/src/translations/zh-HK.json +++ b/src/translations/zh-HK.json @@ -200,6 +200,8 @@ "requirePassword": "請輸入密碼", "region": "區域 (只適用於香港)", "regionOrCountry": "國家/地區", + "pleaseFillInCountry": "請輸入國家/地區", + "pleaseFillInDistrict": "請輸入地區", "hongKong": "香港", "mainland": "內地", "macau": "澳門",