| @@ -43,6 +43,7 @@ const PublicNoticeDetail_GLD = () => { | |||||
| const params = useParams(); | const params = useParams(); | ||||
| // const navigate = useNavigate() | // const navigate = useNavigate() | ||||
| const [applicationDetailData, setApplicationDetailData] = useState({}); | const [applicationDetailData, setApplicationDetailData] = useState({}); | ||||
| const [proofList, setProofList] = useState([]); | |||||
| // const [refApplicationDetailData, setRefApplicationDetailData] = React.useState({}); | // const [refApplicationDetailData, setRefApplicationDetailData] = React.useState({}); | ||||
| const [isLoading, setLoading] = useState(false); | const [isLoading, setLoading] = useState(false); | ||||
| const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent'))); | const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent'))); | ||||
| @@ -83,7 +84,7 @@ const PublicNoticeDetail_GLD = () => { | |||||
| const title = groupNo != null ? ("Application / " + appNo + ", " + gazetteIssue + ", " + issueNum + " , " + groupNo) : ("Application / " + appNo + ", " + gazetteIssue + ", " + issueNum) | const title = groupNo != null ? ("Application / " + appNo + ", " + gazetteIssue + ", " + issueNum + " , " + groupNo) : ("Application / " + appNo + ", " + gazetteIssue + ", " + issueNum) | ||||
| useEffect(() => { | useEffect(() => { | ||||
| loadApplicationDetail() | |||||
| loadApplicationDetail(); | |||||
| }, []); | }, []); | ||||
| // useEffect(() => { | // useEffect(() => { | ||||
| @@ -110,6 +111,7 @@ const PublicNoticeDetail_GLD = () => { | |||||
| setIssueNum(" No. " + gazetteIssueDetail.issueNo); | setIssueNum(" No. " + gazetteIssueDetail.issueNo); | ||||
| setIssueDate(DateUtils.dateFormat(gazetteIssueDetail.issueDate, "D MMM YYYY (ddd)")); | setIssueDate(DateUtils.dateFormat(gazetteIssueDetail.issueDate, "D MMM YYYY (ddd)")); | ||||
| setGroupNo(response.data.data.groupNo); | setGroupNo(response.data.data.groupNo); | ||||
| setProofList(response.data.proofList); | |||||
| setLoading(false); | setLoading(false); | ||||
| } | } | ||||
| }) | }) | ||||
| @@ -171,9 +173,9 @@ const PublicNoticeDetail_GLD = () => { | |||||
| onComplatedClick() | onComplatedClick() | ||||
| } else if (getStatus == "withdraw") { | } else if (getStatus == "withdraw") { | ||||
| onWithdrawnClick() | onWithdrawnClick() | ||||
| } else if (getStatus == "notAccepted"){ | |||||
| } else if (getStatus == "notAccepted") { | |||||
| onNotAcceptClick(getReason); | onNotAcceptClick(getReason); | ||||
| } else if (getStatus == "resubmit"){ | |||||
| } else if (getStatus == "resubmit") { | |||||
| onReSubmitClick(); | onReSubmitClick(); | ||||
| } | } | ||||
| } | } | ||||
| @@ -266,8 +268,8 @@ const PublicNoticeDetail_GLD = () => { | |||||
| }; | }; | ||||
| useEffect(() => { | useEffect(() => { | ||||
| const status = applicationDetailData.data!=undefined?applicationDetailData.data.status:"" | |||||
| if(status === "submitted" && params.id > 0 && getUploadStatus){ | |||||
| const status = applicationDetailData.data != undefined ? applicationDetailData.data.status : "" | |||||
| if (status === "submitted" && params.id > 0 && getUploadStatus) { | |||||
| axios.get(`${SET_PUBLIC_NOTICE_STATUS_REVIEWED}/${params.id}`) | axios.get(`${SET_PUBLIC_NOTICE_STATUS_REVIEWED}/${params.id}`) | ||||
| .then((response) => { | .then((response) => { | ||||
| if (response.status === 204) { | if (response.status === 204) { | ||||
| @@ -279,7 +281,7 @@ const PublicNoticeDetail_GLD = () => { | |||||
| console.log(error); | console.log(error); | ||||
| return false; | return false; | ||||
| }); | }); | ||||
| }else{ | |||||
| } else { | |||||
| setUploadStatus(false); | setUploadStatus(false); | ||||
| } | } | ||||
| }, [getUploadStatus]); | }, [getUploadStatus]); | ||||
| @@ -346,7 +348,10 @@ const PublicNoticeDetail_GLD = () => { | |||||
| </Grid> | </Grid> | ||||
| <Grid item xs={12} md={10}> | <Grid item xs={12} md={10}> | ||||
| <Box xs={12} ml={4} mt={3}> | <Box xs={12} ml={4} mt={3}> | ||||
| <TabTableDetail applicationDetailData={applicationDetailData} /> | |||||
| <TabTableDetail | |||||
| applicationDetailData={applicationDetailData} | |||||
| proofList={proofList} | |||||
| /> | |||||
| </Box> | </Box> | ||||
| </Grid> | </Grid> | ||||
| </Grid> | </Grid> | ||||
| @@ -1,54 +1,53 @@ | |||||
| // material-ui | // material-ui | ||||
| import * as React from 'react'; | import * as React from 'react'; | ||||
| import * as DateUtils from "utils/DateUtils"; | |||||
| import {FiDataGrid} from "components/FiDataGrid"; | import {FiDataGrid} from "components/FiDataGrid"; | ||||
| import { | |||||
| Button | |||||
| } from '@mui/material'; | |||||
| // ==============================|| EVENT TABLE ||============================== // | // ==============================|| EVENT TABLE ||============================== // | ||||
| export default function ProofTab({rows}) { | export default function ProofTab({rows}) { | ||||
| function currencyFormat(num) { | |||||
| return num.toLocaleString('en-US', { | |||||
| minimumFractionDigits: 2 | |||||
| }); | |||||
| } | |||||
| const columns = [ | const columns = [ | ||||
| { | { | ||||
| id: 'proofRef', | |||||
| field: 'proofRef', | |||||
| headerName: 'Proof Ref.', | |||||
| id: 'refNo', | |||||
| field: 'refNo', | |||||
| headerName: 'Proof No.', | |||||
| flex: 1, | flex: 1, | ||||
| }, | }, | ||||
| { | { | ||||
| id: 'proofSent', | |||||
| field: 'proofSent', | |||||
| headerName: 'Proof Return', | |||||
| id: 'created', | |||||
| field: 'created', | |||||
| headerName: 'Proof Date', | |||||
| flex: 1, | flex: 1, | ||||
| valueGetter: (params) => { | |||||
| return DateUtils.datetimeStr(params?.value); | |||||
| } | |||||
| }, | }, | ||||
| { | { | ||||
| id: 'proofReturn', | |||||
| field: 'proofReturn', | |||||
| headerName: 'Proof Return', | |||||
| flex: 1, | |||||
| }, | |||||
| { | |||||
| id: 'status', | |||||
| field: 'status', | |||||
| headerName: 'Status', | |||||
| id: 'replyDate', | |||||
| field: 'replyDate', | |||||
| headerName: 'Confirmed/Return Date', | |||||
| flex: 1, | flex: 1, | ||||
| valueGetter: (params) => { | |||||
| return params?.value?DateUtils.datetimeStr(params?.value):""; | |||||
| } | |||||
| }, | }, | ||||
| { | { | ||||
| id: 'fee', | id: 'fee', | ||||
| field: 'fee', | field: 'fee', | ||||
| headerName: 'Fee (HKD)', | |||||
| flex: 2, | |||||
| headerName: 'Fee', | |||||
| flex: 1, | |||||
| valueGetter: (params) => { | |||||
| return (params?.value)?"$ "+currencyFormat(params?.value):""; | |||||
| } | |||||
| }, | }, | ||||
| { | |||||
| field: 'detail', | |||||
| type: 'actions', | |||||
| headerName: '', | |||||
| width: 50, | |||||
| cellClassName: 'actions', | |||||
| renderCell: () => { | |||||
| return <Button onClick={()=>{}}>查看詳細</Button>; | |||||
| }, | |||||
| } | |||||
| ]; | ]; | ||||
| return ( | return ( | ||||
| @@ -21,31 +21,28 @@ const ProofTab = Loadable(lazy(() => import('./ProofTab'))); | |||||
| // ==============================|| DASHBOARD - DEFAULT ||============================== // | // ==============================|| DASHBOARD - DEFAULT ||============================== // | ||||
| const PublicNotice = ({applicationDetailData}) => { | |||||
| const [submittedList, ] = React.useState([]); | |||||
| const [inProgressList, ] = React.useState([]); | |||||
| const PublicNotice = ({applicationDetailData, proofList}) => { | |||||
| const [_proofList, setProofList] = React.useState([]); | |||||
| const [inProgressList,] = React.useState([]); | |||||
| const [onReady,setOnReady] = React.useState(false); | const [onReady,setOnReady] = React.useState(false); | ||||
| const [selectedTab, setSelectedTab] = React.useState("1"); | const [selectedTab, setSelectedTab] = React.useState("1"); | ||||
| // const navigate = useNavigate(); | // const navigate = useNavigate(); | ||||
| const [statusHistoryList, setStatusHistoryList] = React.useState([]); | const [statusHistoryList, setStatusHistoryList] = React.useState([]); | ||||
| // useEffect(() => { | |||||
| // loadData(); | |||||
| // }, []); | |||||
| const reloadPage = () => { | const reloadPage = () => { | ||||
| window.location.reload(false); | window.location.reload(false); | ||||
| } | } | ||||
| React.useEffect(() => { | React.useEffect(() => { | ||||
| //if user data from parent are not null | |||||
| // console.log(applicationDetailData) | |||||
| if (Object.keys(applicationDetailData).length > 0) { | if (Object.keys(applicationDetailData).length > 0) { | ||||
| setStatusHistoryList(applicationDetailData.statusHistoryList); | setStatusHistoryList(applicationDetailData.statusHistoryList); | ||||
| } | } | ||||
| }, [applicationDetailData]); | }, [applicationDetailData]); | ||||
| React.useEffect(() => { | |||||
| setProofList(proofList); | |||||
| }, [proofList]); | |||||
| React.useEffect(() => { | React.useEffect(() => { | ||||
| //if state data are ready and assign to different field | //if state data are ready and assign to different field | ||||
| if (statusHistoryList.length > 0) { | if (statusHistoryList.length > 0) { | ||||
| @@ -75,14 +72,14 @@ const PublicNotice = ({applicationDetailData}) => { | |||||
| <TabContext value={selectedTab}> | <TabContext value={selectedTab}> | ||||
| <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | <Box sx={{ borderBottom: 1, borderColor: 'divider' }}> | ||||
| <TabList onChange={handleChange} aria-label="lab API tabs example"> | <TabList onChange={handleChange} aria-label="lab API tabs example"> | ||||
| <Tab label={"Proof(" + submittedList.length + ")"} value="1" /> | |||||
| <Tab label={"Proof(" + (_proofList?.length?_proofList?.length:0) + ")"} value="1" /> | |||||
| <Tab label={"Payment(" + inProgressList.length + ")"} value="2" /> | <Tab label={"Payment(" + inProgressList.length + ")"} value="2" /> | ||||
| <Tab label={"Status History(" + statusHistoryList.length + ")"} value="3" /> | <Tab label={"Status History(" + statusHistoryList.length + ")"} value="3" /> | ||||
| </TabList> | </TabList> | ||||
| </Box> | </Box> | ||||
| <TabPanel value="1"> | <TabPanel value="1"> | ||||
| <ProofTab | <ProofTab | ||||
| rows={submittedList} | |||||
| rows={_proofList} | |||||
| reloadFunction={reloadPage} | reloadFunction={reloadPage} | ||||
| /> | /> | ||||
| </TabPanel> | </TabPanel> | ||||