From 41fe6299bd23269fe5dc81ca387f1f42a3fc5c5a Mon Sep 17 00:00:00 2001 From: Alex Cheung Date: Fri, 26 Apr 2024 18:48:32 +0800 Subject: [PATCH] add date picker to orgdetail --- .../DetailPage/OrganizationCard.js | 79 +++++++++---------- .../OrganizationCard_loadFromUser.js | 56 ++++++++++++- 2 files changed, 88 insertions(+), 47 deletions(-) diff --git a/src/pages/Organization/DetailPage/OrganizationCard.js b/src/pages/Organization/DetailPage/OrganizationCard.js index 71e0bb7..23e487e 100644 --- a/src/pages/Organization/DetailPage/OrganizationCard.js +++ b/src/pages/Organization/DetailPage/OrganizationCard.js @@ -23,27 +23,13 @@ import { notifySaveSuccess } from 'utils/CommonFunction'; import { useIntl } from "react-intl"; import { PNSPS_BUTTON_THEME } from "themes/buttonConst"; import { ThemeProvider } from "@emotion/react"; -import { makeStyles } from '@mui/styles'; +import {DatePicker} from "@mui/x-date-pickers/DatePicker"; +import dayjs from "dayjs"; +import {DemoItem} from "@mui/x-date-pickers/internals/demo"; +import {LocalizationProvider} from "@mui/x-date-pickers/LocalizationProvider"; +import {AdapterDayjs} from "@mui/x-date-pickers/AdapterDayjs"; // ==============================|| DASHBOARD - DEFAULT ||============================== // -const useStyles = makeStyles(() => ({ - root: { - position: "relative" - }, - display: { - position: "absolute", - top: 2, - left: 12, - bottom: 2, - background: "white", - pointerEvents: "none", - right: 50, - display: "flex", - alignItems: "center", - width:"70%" - }, -})); - const OrganizationCard = ({ userData, loadDataFun, id, setEditModeFun }) => { const intl = useIntl(); const [creditorConfirmPopUp, setCreditorConfirmPopUp] = React.useState(false); @@ -72,28 +58,6 @@ const OrganizationCard = ({ userData, loadDataFun, id, setEditModeFun }) => { } }, [currentUserData]); - function FormDateInputComponent({ inputRef, ...props }) { - const classes = useStyles(); - return ( - <> -
- {DateUtils.dateStr(fromDateValue) == "Invalid Date" ? - fromDateValue - : - DateUtils.dateStr(fromDateValue)} -
- - - ); - } - function displayErrorMsg(errorMsg) { return {errorMsg} } @@ -418,7 +382,36 @@ const OrganizationCard = ({ userData, loadDataFun, id, setEditModeFun }) => { {FieldUtils.notNullFieldLabel("Expiry Date:")} - + + { + // console.log(DateUtils.dateValue(newValue)) + // console.log(DateUtils.dateValue(minDate)) + if(DateUtils.dateValue(newValue)>DateUtils.dateValue(minDate)){ + setFromDate(newValue); + }else{ + alert("Please select a date after today.") + } + }} + /> + + + {/* { }} disabled={(!editMode && !createMode)} sx={{ "& .MuiInputBase-input": {display:"block", textIndent: "-9999px"} }} - /> + /> */} diff --git a/src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js b/src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js index 067a74d..0165d92 100644 --- a/src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js +++ b/src/pages/Organization/DetailPage_FromUser/OrganizationCard_loadFromUser.js @@ -2,7 +2,8 @@ import { Grid, Button, Typography, Dialog, DialogTitle, DialogContent, DialogActions, - FormHelperText, TextField + FormHelperText, + // TextField } from '@mui/material'; import MainCard from "components/MainCard"; import * as React from "react"; @@ -21,6 +22,11 @@ import { lazy } from 'react'; import { notifyCreateSuccess } from 'utils/CommonFunction'; import { useIntl } from "react-intl"; +import {DatePicker} from "@mui/x-date-pickers/DatePicker"; +import dayjs from "dayjs"; +import {DemoItem} from "@mui/x-date-pickers/internals/demo"; +import {LocalizationProvider} from "@mui/x-date-pickers/LocalizationProvider"; +import {AdapterDayjs} from "@mui/x-date-pickers/AdapterDayjs"; // ==============================|| DASHBOARD - DEFAULT ||============================== // @@ -32,15 +38,23 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => { const [isFailPopUp, setIsFailPopUp] = useState(false); const [failText, setFailText] = useState(""); const [errorMsg, setErrorMsg] = useState(""); + const [minDate] = React.useState(new Date()); + const [fromDate, setFromDate] = React.useState("dd / mm / yyyy"); + const [fromDateValue, setFromDateValue] = React.useState("dd / mm / yyyy"); useEffect(() => { //if state data are ready and assign to different field // console.log(currentApplicationDetailData) if (Object.keys(currentUserData).length > 0) { + setFromDate(currentUserData.brExpiryDate) setOnReady(true); } }, [currentUserData]); + React.useEffect(() => { + setFromDateValue(fromDate); + }, [fromDate]); + function displayErrorMsg(errorMsg) { return {errorMsg} } @@ -78,6 +92,11 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => { if (values.country.type == "hongKong" && values.district == null) { setErrorMsg(intl.formatMessage({ id: 'pleaseFillInDistrict' })) } else { + let sentDateFrom = ""; + if (fromDateValue != "dd / mm / yyyy") { + sentDateFrom = DateUtils.dateValue(fromDateValue) + } + HttpUtils.post({ url: UrlUtils.POST_ORG_SAVE_PATH, params: { @@ -86,7 +105,7 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => { enCompanyName: values.enCompanyName, chCompanyName: values.chCompanyName, brNo: values.brNo, - brExpiryDate: values.brExpiryDate, + brExpiryDate: sentDateFrom, enCompanyNameTemp: values.enCompanyNameTemp, chCompanyNameTemp: values.chCompanyNameTemp, brExpiryDateTemp: values.brExpiryDateTemp, @@ -207,7 +226,36 @@ const OrganizationCard_loadFromUser = ({ userData, userId }) => { {FieldUtils.notNullFieldLabel("Expiry Date:")} - + + { + // console.log(DateUtils.dateValue(newValue)) + // console.log(DateUtils.dateValue(minDate)) + if(DateUtils.dateValue(newValue)>DateUtils.dateValue(minDate)){ + setFromDate(newValue); + }else{ + alert("Please select a date after today.") + } + }} + /> + + + {/* { sx={{ width: '100%' }} - /> + /> */}