From 9ac3e11f82856c21a57627ec802522ad60b0a0a3 Mon Sep 17 00:00:00 2001 From: Alex Cheung Date: Wed, 4 Oct 2023 13:47:12 +0800 Subject: [PATCH] update status ui --- .../ListPanel/PublicNoteStatusUtils.js | 4 +- .../ApplicationDetailCard.js | 13 ++- .../ApplicationDetailCard.js | 10 +- .../GazetteDetailCard.js | 40 +++++++- .../StatusChangeDialog.js | 36 +++----- src/pages/PublicNoticeDetail_GLD/index.js | 91 ++++++++++++------- src/utils/ApiPathConst.js | 4 +- 7 files changed, 131 insertions(+), 67 deletions(-) diff --git a/src/pages/PublicNotice/ListPanel/PublicNoteStatusUtils.js b/src/pages/PublicNotice/ListPanel/PublicNoteStatusUtils.js index b9b373f..b8c5f31 100644 --- a/src/pages/PublicNotice/ListPanel/PublicNoteStatusUtils.js +++ b/src/pages/PublicNotice/ListPanel/PublicNoteStatusUtils.js @@ -40,9 +40,9 @@ export function getStatusEng(params) { export function getStatusByTextEng(status) { switch (status) { case "submitted": - return getStatusTag({ color: "#f5a83d", text: "Processing" }) + return getStatusTag({ color: "#f5a83d", text: "Submitted" }) case "reviewed": - return getStatusTag({ color: "#f5a83d", text: "Processing" }) + return getStatusTag({ color: "#0C489E", text: "Reviewed" }) case "confirmed": if (localStorage.getItem('userData').creditor) return getStatusTag({ color: "#22a13f", text: "Pending Publish" }) diff --git a/src/pages/PublicNoticeDetail/ApplicationDetailCard.js b/src/pages/PublicNoticeDetail/ApplicationDetailCard.js index e324055..fdb16e8 100644 --- a/src/pages/PublicNoticeDetail/ApplicationDetailCard.js +++ b/src/pages/PublicNoticeDetail/ApplicationDetailCard.js @@ -175,11 +175,20 @@ const ApplicationDetailCard = ( 申請狀態: - - + + {StatusUtils.getStatusByText(currentApplicationDetailData.status)} + + + + + {currentApplicationDetailData.reason} + + + + diff --git a/src/pages/PublicNoticeDetail_GLD/ApplicationDetailCard.js b/src/pages/PublicNoticeDetail_GLD/ApplicationDetailCard.js index 514a827..d24221b 100644 --- a/src/pages/PublicNoticeDetail_GLD/ApplicationDetailCard.js +++ b/src/pages/PublicNoticeDetail_GLD/ApplicationDetailCard.js @@ -31,6 +31,7 @@ import ReplayIcon from '@mui/icons-material/Replay'; const ApplicationDetailCard = ( { applicationDetailData, setStatus, + setUploadStatus } ) => { @@ -72,6 +73,7 @@ const ApplicationDetailCard = ( skey: fileDetail.skey, filename: fileDetail.filename, }); + setUploadStatus(true) }; @@ -109,7 +111,7 @@ const ApplicationDetailCard = ( border={false} content={false} > - {verified && currentApplicationDetailData.status != "rejected" ? + {verified && currentApplicationDetailData.status != "notAccepted" ? - {currentApplicationDetailData.status == "accepted" ? + {currentApplicationDetailData.status == "reviewed" ? + + + + :null} Gazette Details diff --git a/src/pages/PublicNoticeDetail_GLD/StatusChangeDialog.js b/src/pages/PublicNoticeDetail_GLD/StatusChangeDialog.js index e3a837a..0f8d07c 100644 --- a/src/pages/PublicNoticeDetail_GLD/StatusChangeDialog.js +++ b/src/pages/PublicNoticeDetail_GLD/StatusChangeDialog.js @@ -30,21 +30,10 @@ const StatusChangeDialog = (props) => { const [prositiveBtnText, setPrositiveBtnText] = useState("Confirm"); const [remarks, setRemarks] = useState(""); const [helperText, setHelperText] = useState(""); - // const [selectedGazetteGroupInputType, setSelectedGazetteGroupInputType] = useState(""); + const [comboInputValue, setComboInputValue] = useState(""); const groupTitleComboList = ComboData.groupTitle; useEffect(() => { - // console.log(Object.keys(!props.selectedGazetteGroup).length) - // if (props.getStatus == "resubmit") { - // setStatus("Accept") - // } else if (props.getStatus == "reject") { - // setStatus("Reject") - // } else if (props.getStatus == "complete") { - // setStatus("Complete") - // } else if (props.getStatus == "withdraw") { - // setStatus("Withdraw") - // } - if (props.getStatus == "genGazetteCode") { setDialogTitle("Gen Gazette Code"); setPrositiveBtnText("Gen"); @@ -59,21 +48,24 @@ const StatusChangeDialog = (props) => { let str = "Are you sure you want to "+props.getStatus+" this application?" return getConfirmContent(str); } - - - }, [props.getStatus]); const acceptedHandle = () => () => { - // console.log(selectedGazetteGroup) - if(props.getStatus == "notAccepted"){ + const getStatus = props.getStatus.status; + if(getStatus == "notAccepted"){ if(!remarks || remarks=="" ) setHelperText("Please enter reason"); } if(!helperText){ - props.onWindowCallback(props.getStatus,{"reason": remarks}); + props.setReason({"reason": remarks}); + if (remarks!=null&&remarks!=""){ + console.log(remarks) + // props.setStatusWindowAccepted(true); + } } + if(getStatus != "notAccepted"){ props.setStatusWindowAccepted(true); + } }; @@ -107,7 +99,7 @@ const StatusChangeDialog = (props) => { placeholder="Please enter reason" helperText={helperText} onChange={(newValues)=>{ - setRemarks(newValues); + setRemarks(newValues.target.value); setHelperText(""); }} > @@ -144,10 +136,12 @@ const StatusChangeDialog = (props) => { id="gazetteGroup" options={groupTitleComboList} filterOptions={(options) => options} - inputValue={props.selectedGazetteGroupInputType} + inputValue={comboInputValue.label} onChange={(event, newValue) => { if (newValue != null && newValue != {}) { + console.log(comboInputValue) props.setSelectedGazetteGroupInputType(newValue.label); + setComboInputValue(newValue); props.setSelectedGazetteGroup(newValue); formik.setFieldValue("gazetteGroup", "") } else { @@ -198,7 +192,7 @@ const StatusChangeDialog = (props) => { - diff --git a/src/pages/PublicNoticeDetail_GLD/index.js b/src/pages/PublicNoticeDetail_GLD/index.js index c1ae869..14cdb32 100644 --- a/src/pages/PublicNoticeDetail_GLD/index.js +++ b/src/pages/PublicNoticeDetail_GLD/index.js @@ -26,10 +26,12 @@ const TabTableDetail = Loadable(lazy(() => import('./tabTableDetail/TabTable'))) import { GET_PUBLIC_NOTICE_APPLY_DETAIL, UPDATE_PUBLIC_NOTICE_APPLY_DETAIL, - SET_PUBLIC_NOTICE_STATUS_ACCEPTED, + SET_PUBLIC_NOTICE_GROUP_DETAIL, SET_PUBLIC_NOTICE_STATUS_NOT_ACCEPT, SET_PUBLIC_NOTICE_STATUS_COMPLATED, - SET_PUBLIC_NOTICE_STATUS_WITHDRAW + SET_PUBLIC_NOTICE_STATUS_WITHDRAW, + SET_PUBLIC_NOTICE_STATUS_RESUBMIT, + SET_PUBLIC_NOTICE_STATUS_REVIEWED } from "utils/ApiPathConst"; const StatusChangeDialog = Loadable(lazy(() => import('./StatusChangeDialog'))); import * as DateUtils from "utils/DateUtils"; @@ -44,6 +46,7 @@ const PublicNoticeDetail_GLD = () => { // const [refApplicationDetailData, setRefApplicationDetailData] = React.useState({}); const [isLoading, setLoading] = useState(false); const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent'))); + const [getUploadStatus, setUploadStatus] = useState(false); //pageTitle const [appNo, setAapNo] = useState(""); @@ -59,6 +62,7 @@ const PublicNoticeDetail_GLD = () => { const [statusWindowAccepted, setStatusWindowAccepted] = useState(false); const [selectedGazetteGroup, setSelectedGazetteGroup] = useState({}); const [selectedGazetteGroupInputType, setSelectedGazetteGroupInputType] = useState(""); + const [getReason, setReason] = useState({}); //editMode const [updateApplicationObject, setUpdateApplicationObject] = useState({}); @@ -156,37 +160,28 @@ const PublicNoticeDetail_GLD = () => { const handleReset = () => { setSelectedGazetteGroupInputType("") setSelectedGazetteGroup({}); + setReason({}); }; useEffect(() => { if (statusWindowAccepted) { - if (getStatus == "accept") { + if (getStatus == "genGazetteCode") { onAcceptedClick() - } else if (getStatus == "reject") { - onNotAcceptClick() } else if (getStatus == "complete") { onComplatedClick() } else if (getStatus == "withdraw") { onWithdrawnClick() + } else if (getStatus == "notAccepted"){ + onNotAcceptClick(getReason); + } else if (getStatus == "resubmit"){ + onReSubmitClick(); } } }, [statusWindowAccepted]); - const onWindowCallback = (status, data) => { - if (status == "genGazetteCode") { - onAcceptedClick() - } else if (getStatus == "notAccepted") { - onNotAcceptClick(data.reason); - } else if (getStatus == "complete") { - onComplatedClick() - } else if (getStatus == "withdraw") { - onWithdrawnClick() - } - } - const onAcceptedClick = () => { if (params.id > 0) { - axios.post(`${SET_PUBLIC_NOTICE_STATUS_ACCEPTED}/${params.id}`, + axios.post(`${SET_PUBLIC_NOTICE_GROUP_DETAIL}/${params.id}`, { "groupTitle": selectedGazetteGroup.title, "groupNo": selectedGazetteGroup.type, @@ -210,26 +205,13 @@ const PublicNoticeDetail_GLD = () => { if (params.id <= 0) return; HttpUtils.post({ url: `${SET_PUBLIC_NOTICE_STATUS_NOT_ACCEPT}/${params.id}`, - params: { - reason: reason - }, + params: reason, onSuccess: function () { + setOpen(false); + handleClose(); location.reload(); } }); - // axios.get(`${SET_PUBLIC_NOTICE_STATUS_REJRCTED}/${params.id}`) - // .then((response) => { - // if (response.status === 204) { - // setOpen(false); - // handleClose(); - // location.reload(); - // } - // }) - // .catch(error => { - // console.log(error); - // return false; - // }); - // } } const onComplatedClick = () => { @@ -266,16 +248,53 @@ const PublicNoticeDetail_GLD = () => { } }; + const onReSubmitClick = () => { + if (params.id > 0) { + axios.get(`${SET_PUBLIC_NOTICE_STATUS_RESUBMIT}/${params.id}`) + .then((response) => { + if (response.status === 204) { + setOpen(false); + handleClose(); + location.reload(); + } + }) + .catch(error => { + console.log(error); + return false; + }); + } + }; + + useEffect(() => { + const status = applicationDetailData.data!=undefined?applicationDetailData.data.status:"" + if(status === "submitted" && params.id > 0 && getUploadStatus){ + axios.get(`${SET_PUBLIC_NOTICE_STATUS_REVIEWED}/${params.id}`) + .then((response) => { + if (response.status === 204) { + setUploadStatus(false); + location.reload(); + } + }) + .catch(error => { + console.log(error); + return false; + }); + }else{ + setUploadStatus(false); + } + }, [getUploadStatus]); + return ( { applicationDetailData={applicationDetailData} setStatus={setStatus} // setReload = {setReload} + setUploadStatus={setUploadStatus} setUpdateApplicationObject={setUpdateApplicationObject} isEditMode={isEditMode} setiIsSave={setiIsSave} @@ -318,6 +338,7 @@ const PublicNoticeDetail_GLD = () => { diff --git a/src/utils/ApiPathConst.js b/src/utils/ApiPathConst.js index f157ebc..9b6ebc3 100644 --- a/src/utils/ApiPathConst.js +++ b/src/utils/ApiPathConst.js @@ -58,11 +58,13 @@ export const POST_PUBLIC_NOTICE_APPLY = apiPath+'/application/apply'; export const POST_ADMIN_USER_REGISTER = apiPath+'/user/registry'; export const DELETE_USER = apiPath+'/user'; export const GET_PUBLIC_NOTICE_APPLY_DETAIL = apiPath+'/application/application-detail'; -export const SET_PUBLIC_NOTICE_STATUS_ACCEPTED = apiPath+'/application/application-detail-status-accepted'; +export const SET_PUBLIC_NOTICE_GROUP_DETAIL = apiPath+'/application/application-group-detail'; export const SET_PUBLIC_NOTICE_STATUS_NOT_ACCEPT = apiPath+'/application/application-detail-status-not-accept'; export const SET_PUBLIC_NOTICE_STATUS_CANCELLED = apiPath+'/application/application-detail-status-cancelled'; export const SET_PUBLIC_NOTICE_STATUS_COMPLATED = apiPath+'/application/application-detail-status-complated'; export const SET_PUBLIC_NOTICE_STATUS_WITHDRAW = apiPath+'/application/application-detail-status-withdrawn'; +export const SET_PUBLIC_NOTICE_STATUS_RESUBMIT = apiPath+'/application/application-detail-status-resubmit'; +export const SET_PUBLIC_NOTICE_STATUS_REVIEWED = apiPath+'/application/application-detail-status-reviewed'; export const UPDATE_PUBLIC_NOTICE_APPLY_DETAIL = apiPath+'/application/save'; export const GET_ISSUE_COMBO = apiPath+'/gazette-issue/combo';