diff --git a/src/pages/OrganizationDetailPage/OrganizationCard.js b/src/pages/OrganizationDetailPage/OrganizationCard.js
index df5d58f..b71639e 100644
--- a/src/pages/OrganizationDetailPage/OrganizationCard.js
+++ b/src/pages/OrganizationDetailPage/OrganizationCard.js
@@ -24,19 +24,19 @@ const OrganizationCard = ({userData, loadDataFun, id}) => {
const formik = useFormik({
enableReinitialize:true,
initialValues:currentUserData,
- validationSchema:yup.object().shape({
- enCompanyName: yup.string().max(255).required('請輸入英文名稱'),
- chCompanyName: yup.string().max(255).required('請輸入中文姓名'),
- address1: yup.string().max(255).required('請輸入第一行地址'),
- address2: yup.string().max(255).required('請輸入第二行地址'),
- address3: yup.string().max(255).required('請輸入第三行地址'),
- fax_countryCode: yup.string().min(3).required('請輸入國際區號'),
- tel_countryCode: yup.string().min(3).required('請輸入國際區號'),
- phoneNumber: yup.string().min(8).required('請輸入聯絡電話'),
- faxNumber: yup.string().min(8).required('請輸入8位數字'),
- brExpiryDate: yup.string().min(8).required('請輸入商業登記證有效日期'),
- brNo: yup.string().min(8).required('請輸入商業登記證號碼'),
- }),
+ validationSchema:yup.object().shape({
+ enCompanyName: yup.string().max(255).required('請輸入英文名稱'),
+ chCompanyName: yup.string().max(255).required('請輸入中文姓名'),
+ 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).required('請輸入國際區號'),
+ tel_countryCode: yup.string().min(3).required('請輸入國際區號'),
+ phoneNumber: yup.string().min(8).required('請輸入聯絡電話'),
+ faxNumber: yup.string().min(8).required('請輸入8位數字'),
+ brExpiryDate: yup.string().min(8).required('請輸入商業登記證有效日期'),
+ brNo: yup.string().min(8).required('請輸入商業登記證號碼'),
+ }),
onSubmit: vaule =>{
console.log(vaule)
HttpUtils.post({
diff --git a/src/pages/OrganizationDetailPage_FromUser/OrganizationCard_loadFromUser.js b/src/pages/OrganizationDetailPage_FromUser/OrganizationCard_loadFromUser.js
index a5415c7..1950021 100644
--- a/src/pages/OrganizationDetailPage_FromUser/OrganizationCard_loadFromUser.js
+++ b/src/pages/OrganizationDetailPage_FromUser/OrganizationCard_loadFromUser.js
@@ -16,7 +16,7 @@ import { useFormik } from 'formik';
// ==============================|| DASHBOARD - DEFAULT ||============================== //
-const OrganizationCard_loadFromUser = ({userData}) => {
+const OrganizationCard_loadFromUser = ({userData,userId}) => {
const [currentUserData, setCurrentUserData] = useState(userData);
@@ -26,15 +26,15 @@ const OrganizationCard_loadFromUser = ({userData}) => {
enableReinitialize:true,
initialValues:currentUserData,
validationSchema:yup.object().shape({
- enCompanyName: yup.string().max(255).required('請輸入英文名稱'),
- chCompanyName: yup.string().max(255).required('請輸入中文姓名'),
- address1: yup.string().max(255).required('請輸入第一行地址'),
- address2: yup.string().max(255).required('請輸入第二行地址'),
- address3: yup.string().max(255).required('請輸入第三行地址'),
- fax_countryCode: yup.string().min(3).required('請輸入國際區號'),
- tel_countryCode: yup.string().min(3).required('請輸入國際區號'),
+ enCompanyName: yup.string().max(255,"請輸入英文名稱"),
+ chCompanyName: yup.string().max(255,'請輸入中文名稱'),
+ addressLine1: yup.string().max(255).required('請輸入第一行地址'),
+ addressLine2: yup.string().max(255),
+ addressLine3: yup.string().max(255),
+ fax_countryCode: yup.string().min(3,"請輸入國際區號"),
+ tel_countryCode: yup.string().min(3,"請輸入國際區號"),
phoneNumber: yup.string().min(8).required('請輸入聯絡電話'),
- faxNumber: yup.string().min(8).required('請輸入8位數字'),
+ faxNumber: yup.string().min(8),
brExpiryDate: yup.string().min(8).required('請輸入商業登記證有效日期'),
brNo: yup.string().min(8).required('請輸入商業登記證號碼'),
}),
@@ -43,6 +43,7 @@ const OrganizationCard_loadFromUser = ({userData}) => {
url: UrlUtils.POST_ORG_SAVE_PATH,
params: {
id:null,
+ primaryUserId:userId,
enCompanyName: values.enCompanyName,
chCompanyName: values.chCompanyName,
brNo: values.brNo,
@@ -87,6 +88,17 @@ const OrganizationCard_loadFromUser = ({userData}) => {
Information
+
+ {/*
+ TODO: Error Summary
+ {Object.values(formik.errors).map(error => (
+
{error}
+ ))}
+
*/}
+
+
+
+
-
-
);
};
diff --git a/src/pages/pnspsUserDetailPage_Organization/index.js b/src/pages/pnspsUserDetailPage_Organization/index.js
index 53d2f88..5d1c38f 100644
--- a/src/pages/pnspsUserDetailPage_Organization/index.js
+++ b/src/pages/pnspsUserDetailPage_Organization/index.js
@@ -8,13 +8,12 @@ import {useParams} from "react-router-dom";
import FileList from "../../components/FileList"
import MainCard from "../../components/MainCard";
import * as UrlUtils from "../../utils/ApiPathConst";
+import * as DateUtils from '../../utils/DateUtils';
import Loadable from 'components/Loadable';
import { lazy } from 'react';
const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
const UserInformationCard = Loadable(lazy(() => import('./UserInformationCard_Organization')));
-//import UserInformationCard from "./UserInformationCard_Organization";
-//import LoadingComponent from "../extra-pages/LoadingComponent";
// ==============================|| DASHBOARD - DEFAULT ||============================== //
@@ -23,6 +22,7 @@ const UserInformationCard = Loadable(lazy(() => import('./UserInformationCard_Or
const UserMaintainPage_Organization = () => {
const params = useParams();
const [userData, setUserData] = useState({})
+ const [orgData, setOrgData] = useState({})
const [isLoading, setLoding] = useState(true);
@@ -31,6 +31,10 @@ const UserMaintainPage_Organization = () => {
loadData();
},[]);
+ const reloadPage=()=>{
+ window.location.reload(false);
+ }
+
const loadData = ()=>{
setLoding(true);
HttpUtils.get({
@@ -39,7 +43,33 @@ const UserMaintainPage_Organization = () => {
response.data["addressBus"] = JSON.parse(response.data["addressBus"]);
response.data["contactTel"] = JSON.parse(response.data["contactTel"]);
response.data["faxNo"] = JSON.parse(response.data["faxNo"]);
+
+ let createDate = DateUtils.datetimeStr(response.data.created);
+ let modifiedBy = DateUtils.datetimeStr(response.data.modified)+", "+response.data.modifiedBy;
+ response.data["createDate"] = createDate;
+ response.data["modifieDate"] = modifiedBy;
+ response.data["verifiedStatus"] = response.data.verifiedBy? DateUtils.datetimeStr(response.data.verifiedDate)+", "+response.data.verifiedByName: "Not verify yet";
+
+ response.data["lastLoginDate"] = response.data.lastLogin?DateUtils.datetimeStr(response.data.lastLoginDate):"";
+
+ response.data["country"] = response.data.addressBus?.country;
+ response.data["district"] = response.data.addressBus?.district;
+ response.data["addressLine1"] = response.data.addressBus?.addressLine1;
+ response.data["addressLine2"] = response.data.addressBus?.addressLine2;
+ response.data["addressLine3"] = response.data.addressBus?.addressLine3;
+
+ response.data["phoneNumber"] = response.data.contactTel?.phoneNumber;
+ response.data["tel_countryCode"] = response.data.contactTel?.countryCode;
+
+ response.data["faxNumber"] = response.data.faxNo?.faxNumber;
+ response.data["fax_countryCode"] = response.data.faxNo?.countryCode;
+
+ response.data["brExpiryDate"] = response.data.brExpiryDate?DateUtils.dateStr(response.data.brExpiryDate):"";
+
+ //response.data["orgId"] = response.data.brExpiryDate?DateUtils.dateStr(response.data.brExpiryDate):"";
+
setUserData(response.data);
+ setOrgData(response.orgList);
}
});
};
@@ -63,7 +93,8 @@ const UserMaintainPage_Organization = () => {
diff --git a/src/utils/Combo.js b/src/utils/Combo.js
index a06baf9..75f5393 100644
--- a/src/utils/Combo.js
+++ b/src/utils/Combo.js
@@ -20,7 +20,10 @@ export default function Combo ({valueName, disabled, form, dataList, filterOptio
filterOptions={filterOptions}
options={dataList}
getOptionLabel={getOptionLabel}
- isOptionEqualToValue={isOptionEqualToValue}
+ isOptionEqualToValue={(option, newValue)=>{
+ if(isOptionEqualToValue)
+ isOptionEqualToValue(option,newValue, setValue,setInputValue )
+ }}
onInputChange={(event, newValue) => {
setInputValue(newValue);
if(onInputChange){
@@ -29,16 +32,31 @@ export default function Combo ({valueName, disabled, form, dataList, filterOptio
}}
onChange={(event, newValue) => {
setValue(newValue);
- setInputValue(newValue);
if (!onChange){
form.setFieldValue(valueName, newValue);
}else{
onChange(event, newValue);
}
}}
- sx={{"& .MuiInputBase-root": { height: "41px", padding: "0px 0px 0px 8px" },
- "& .MuiAutocomplete-endAdornment": { top: "auto" },}}
- renderInput={(params) => }
+ sx={{
+ "& .MuiInputBase-root": {
+ height: "41px",
+ padding: "0px 0px 0px 8px"
+ },
+ "& .MuiAutocomplete-endAdornment": {
+ top: "auto"
+ },
+ "& .MuiInputBase-input.Mui-disabled": {
+ WebkitTextFillColor: "#000000",
+ background: "#f8f8f8",
+ },
+ }}
+ renderInput={(params) => }
/>
);
}
\ No newline at end of file
diff --git a/src/utils/DateUtils.js b/src/utils/DateUtils.js
index e9a5416..1fc3b86 100644
--- a/src/utils/DateUtils.js
+++ b/src/utils/DateUtils.js
@@ -11,14 +11,14 @@ export const dateStr = (date) =>{
};
export const convertToDate = (date)=>{
- if(Array.isArray(date)){
+ if(typeof date == 'number'){
+ return dayjs(date);
+ }else if(Array.isArray(date)){
if(date.length==3){
return new Date(date[0],date[1]-1,date[2],0,0,0);
}
return new Date(date[0],date[1]-1,date[2],date[3],date[4],date[5]);
}
- if(typeof date == 'number'){
- return dayjs(date*1000);
- }
+
return date;
}
\ No newline at end of file
diff --git a/src/utils/FieldUtils.js b/src/utils/FieldUtils.js
index 5761fe9..49418bb 100644
--- a/src/utils/FieldUtils.js
+++ b/src/utils/FieldUtils.js
@@ -14,7 +14,7 @@ export const getDateField=({label, valueName, form, disabled})=>{
{initField({
- label:"date",
+ type:"date",
valueName:valueName,
form:form,
disabled:disabled
@@ -33,7 +33,7 @@ export const getTextField=({label, valueName, form, disabled})=>{
{initField({
- label:"text",
+ type:"text",
valueName:valueName,
form:form,
disabled:disabled
@@ -52,7 +52,7 @@ export const getPhoneField=({label, valueName, form, disabled})=>{
{initField({
- label:"tel",
+ type:"tel",
valueName:valueName.code,
form:form,
disabled:disabled
@@ -60,7 +60,7 @@ export const getPhoneField=({label, valueName, form, disabled})=>{
{initField({
- label:"tel",
+ type:"tel",
valueName:valueName.num,
form:form,
disabled:disabled
@@ -70,32 +70,6 @@ export const getPhoneField=({label, valueName, form, disabled})=>{
;
}
-export const getIdField=({label, valueName, form, disabled})=>{
- return
-
-
- {label}
-
-
- {initField({
- label:"text",
- valueName:valueName.code,
- form:form,
- disabled:disabled
- })}
-
-
- {initField({
- label:"text",
- valueName:valueName.num,
- form:form,
- disabled:disabled
- })}
-
-
-;
-}
export const getAddressField=({label, valueName, form, disabled})=>{
return
@@ -107,7 +81,7 @@ export const getAddressField=({label, valueName, form, disabled})=>{
{initField({
- label:"text",
+ type:"text",
valueName:valueName[0],
form:form,
disabled:disabled
@@ -115,7 +89,7 @@ export const getAddressField=({label, valueName, form, disabled})=>{
{initField({
- label:"text",
+ type:"text",
valueName:valueName[1],
form:form,
disabled:disabled
@@ -123,7 +97,7 @@ export const getAddressField=({label, valueName, form, disabled})=>{
{initField({
- label:"text",
+ type:"text",
valueName:valueName[2],
form:form,
disabled:disabled
@@ -196,5 +170,11 @@ export const initField=({type, valueName, form, disabled, placeholder, inputProp
onChange={form.handleChange}
value={form.values[valueName]}
disabled={disabled}
+ sx={{
+ "& .MuiInputBase-input.Mui-disabled": {
+ WebkitTextFillColor: "#000000",
+ background: "#f8f8f8",
+ },
+ }}
/>
}
\ No newline at end of file
diff --git a/src/utils/Utils.js b/src/utils/Utils.js
index 8436791..ad2629d 100644
--- a/src/utils/Utils.js
+++ b/src/utils/Utils.js
@@ -78,6 +78,11 @@ export const isORGLoggedIn = () =>{
return JSON.parse(localStorage.getItem('userData')).type === 'ORG'
}
}
+export const isPrimaryLoggedIn = () =>{
+ if (localStorage.getItem('userData') != null){
+ return JSON.parse(localStorage.getItem('userData')).role === 'primary'
+ }
+}
/**
** This function is used for demo purpose route navigation
** In real app you won't need this function because your app will navigate to same route for each users regardless of ability