From b61c0e72bb17a8ecbaf798ca0c82d7b44e10c6e5 Mon Sep 17 00:00:00 2001 From: Alex Cheung Date: Thu, 21 Sep 2023 15:43:21 +0800 Subject: [PATCH] update public status cancel --- .../ApplicationDetailCard.js | 42 +++----- .../PublicNoticeDetail/StatusChangeDialog.js | 102 ++++++++++++++++++ src/pages/PublicNoticeDetail/index.js | 77 ++++++++++--- src/pages/PublicNoticeDetail_GLD/index.js | 10 +- 4 files changed, 186 insertions(+), 45 deletions(-) create mode 100644 src/pages/PublicNoticeDetail/StatusChangeDialog.js diff --git a/src/pages/PublicNoticeDetail/ApplicationDetailCard.js b/src/pages/PublicNoticeDetail/ApplicationDetailCard.js index 4d1960e..1a4a892 100644 --- a/src/pages/PublicNoticeDetail/ApplicationDetailCard.js +++ b/src/pages/PublicNoticeDetail/ApplicationDetailCard.js @@ -33,7 +33,7 @@ import DownloadIcon from '@mui/icons-material/Download'; // ==============================|| DASHBOARD - DEFAULT ||============================== // const ApplicationDetailCard = ( { applicationDetailData, - // isCollectData, + setStatus, // updateUserObject, // isNewRecord } @@ -79,21 +79,9 @@ const ApplicationDetailCard = ( }); }; - // const onStatusClick = () => () => { - // if(params.id > 0 ){ - // axios.post(`${GET_PUBLIC_NOTICE_APPLY_DETAIL}/${params.id}`) - // .then((response) => { - // if (response.status === 200) { - // navigate(`/application/${params.id}`); - // } - // }) - // .catch(error => { - // console.log(error); - // return false; - // }); - // } - // }; - + const cancelledClick = () => () =>{ + setStatus("cancel") + }; return ( !onReady ? @@ -116,6 +104,7 @@ const ApplicationDetailCard = ( // size="large" variant="contained" // onClick={handleNewUserClick} + disabled= {currentApplicationDetailData.status =="rejected"||currentApplicationDetailData.status =="cancelled"||currentApplicationDetailData.status =="paid"} sx={{ textTransform: 'capitalize', alignItems: 'end' @@ -126,7 +115,8 @@ const ApplicationDetailCard = ( + + + + + + + ); +}; + +export default StatusChangeDialog; diff --git a/src/pages/PublicNoticeDetail/index.js b/src/pages/PublicNoticeDetail/index.js index f0821cb..05ce602 100644 --- a/src/pages/PublicNoticeDetail/index.js +++ b/src/pages/PublicNoticeDetail/index.js @@ -23,9 +23,10 @@ const ApplicationDetailCard = Loadable(lazy(() => import('./ApplicationDetailCar // const TabTableDetail = Loadable(lazy(() => import('./tabTableDetail/TabTable'))); import { GET_PUBLIC_NOTICE_APPLY_DETAIL, + SET_PUBLIC_NOTICE_STATUS_CANCELLED } from "utils/ApiPathConst"; import {useNavigate} from "react-router-dom"; - +const StatusChangeDialog = Loadable(lazy(() => import('./StatusChangeDialog'))); // ==============================|| Body - DEFAULT ||============================== // @@ -36,6 +37,11 @@ const DashboardDefault = () => { // const [refApplicationDetailData, setRefApplicationDetailData] = React.useState({}); const navigate = useNavigate() + //statusWindow + const [open, setOpen] = useState(false); + const [getStatus, setStatus] = useState(""); + const [statusWindowAccepted, setStatusWindowAccepted] = useState(false); + const BackgroundHead = { backgroundImage: `url(${titleBackgroundImg})`, width: '100%', @@ -45,20 +51,24 @@ const DashboardDefault = () => { // const appNo = "G2023-343" useEffect(() => { + loadApplicationDetail() + }, []); + + const loadApplicationDetail = () => { if(params.id > 0 ){ - axios.get(`${GET_PUBLIC_NOTICE_APPLY_DETAIL}/${params.id}`) - .then((response) => { - if (response.status === 200) { - setApplicationDetailData(response.data); - setAapNo(response.data.data.appNo); - } - }) - .catch(error => { - console.log(error); - return false; - }); + axios.get(`${GET_PUBLIC_NOTICE_APPLY_DETAIL}/${params.id}`) + .then((response) => { + if (response.status === 200) { + setApplicationDetailData(response.data); + setAapNo(response.data.data.appNo); + } + }) + .catch(error => { + console.log(error); + return false; + }); } - }, []); + } useEffect(() => { if(applicationDetailData.data === null){ @@ -66,8 +76,47 @@ const DashboardDefault = () => { } }, [applicationDetailData]); + const handleClose = () => { + setOpen(false); + setStatus("") + setStatusWindowAccepted(false) + }; + + useEffect(() => { + if(statusWindowAccepted){ + if(getStatus == "cancel"){ + onCancelledClick() + } + } + }, [statusWindowAccepted]); + + useEffect(() => { + // console.log(getStatus) + if(getStatus!==""){ + setOpen(true) + } + }, [getStatus]); + + const onCancelledClick = () => { + if(params.id > 0 ){ + axios.get(`${SET_PUBLIC_NOTICE_STATUS_CANCELLED}/${params.id}`) + .then((response) => { + if (response.status === 204) { + setOpen(false); + handleClose(); + loadApplicationDetail() + } + }) + .catch(error => { + console.log(error); + return false; + }); + } + }; + return ( +
@@ -87,7 +136,7 @@ const DashboardDefault = () => { { return ( - +