From c2fe95a1a6c4ab6d5b2abd9470403f1c298c011b Mon Sep 17 00:00:00 2001 From: Alex Cheung Date: Sat, 10 May 2025 03:01:57 +0800 Subject: [PATCH] update application and bug fix --- src/pages/Announcement/Search/SearchForm.js | 4 ++- src/pages/Announcement/Search/index.js | 19 +++++++++--- .../Announcement/Search_Public/SearchForm.js | 2 +- src/pages/DemandNote/Search/SearchForm.js | 3 +- src/pages/Payment/Search_Public/SearchForm.js | 5 +++- src/pages/Proof/Search_GLD/SearchForm.js | 3 +- src/pages/Proof/Search_Public/SearchForm.js | 5 +++- .../ListPanel/SearchPublicNoticeForm.js | 17 +++++++++-- .../PublicNotice/Search_GLD/SearchForm.js | 29 +++++++++++++++++-- src/pages/PublicNotice/Search_GLD/index.js | 16 +++++++--- .../Search_Mark_As_Paid_GLD/SearchForm.js | 3 +- .../UserSearchForm_Organization.js | 3 +- 12 files changed, 87 insertions(+), 22 deletions(-) diff --git a/src/pages/Announcement/Search/SearchForm.js b/src/pages/Announcement/Search/SearchForm.js index 759b676..77495cd 100644 --- a/src/pages/Announcement/Search/SearchForm.js +++ b/src/pages/Announcement/Search/SearchForm.js @@ -17,6 +17,7 @@ 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 SearchPublicNoticeForm = ({ applySearch, searchCriteria, onGridReady}) => { const navigate = useNavigate() @@ -58,7 +59,8 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria, onGridReady}) => function resetForm() { setMinDate(DateUtils.dateValue(new Date().setDate(new Date().getDate()-14))) setMaxDate(DateUtils.dateValue(new Date())) - reset(); + reset({key:""}); + localStorage.setItem('searchCriteria',"") } diff --git a/src/pages/Announcement/Search/index.js b/src/pages/Announcement/Search/index.js index 75a88c4..0327006 100644 --- a/src/pages/Announcement/Search/index.js +++ b/src/pages/Announcement/Search/index.js @@ -7,6 +7,7 @@ import { import MainCard from "components/MainCard"; import * as React from "react"; import * as DateUtils from "utils/DateUtils"; +import { getSearchCriteria } from "auth/utils"; import Loadable from 'components/Loadable'; const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); @@ -28,13 +29,22 @@ const BackgroundHead = { const UserSearchPage_Individual = () => { - const [searchCriteria, setSearchCriteria] = React.useState({ - dateTo: DateUtils.dateValue(new Date()), - dateFrom: DateUtils.dateValue(new Date().setDate(new Date().getDate() - 90)), - }); + const [searchCriteria, setSearchCriteria] = React.useState({}); const [onReady, setOnReady] = React.useState(false); const [onGridReady, setGridOnReady] = React.useState(false); + React.useEffect(() => { + if (Object.keys(getSearchCriteria(window.location.pathname)).length>0){ + setSearchCriteria(getSearchCriteria(window.location.pathname)) + }else{ + localStorage.setItem('searchCriteria',"") + setSearchCriteria({ + dateTo: DateUtils.dateValue(new Date()), + dateFrom: DateUtils.dateValue(new Date().setDate(new Date().getDate()-14)), + }) + } + }, []); + React.useEffect(() => { setOnReady(true); }, [searchCriteria]); @@ -42,6 +52,7 @@ const UserSearchPage_Individual = () => { function applySearch(input) { setGridOnReady(true) setSearchCriteria(input); + localStorage.setItem('searchCriteria', JSON.stringify({path:window.location.pathname,data:input})) } function applyGridOnReady(input) { diff --git a/src/pages/Announcement/Search_Public/SearchForm.js b/src/pages/Announcement/Search_Public/SearchForm.js index ad249d1..df8ad0e 100644 --- a/src/pages/Announcement/Search_Public/SearchForm.js +++ b/src/pages/Announcement/Search_Public/SearchForm.js @@ -76,7 +76,7 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria, onGridReady }) => function resetForm() { setMinDate(DateUtils.dateValue(new Date().setDate(new Date().getDate()-14))) setMaxDate(DateUtils.dateValue(new Date())) - reset(); + reset({key:""}); localStorage.setItem('searchCriteria',"") } diff --git a/src/pages/DemandNote/Search/SearchForm.js b/src/pages/DemandNote/Search/SearchForm.js index 1b4bbf7..7b29fea 100644 --- a/src/pages/DemandNote/Search/SearchForm.js +++ b/src/pages/DemandNote/Search/SearchForm.js @@ -213,7 +213,8 @@ const SearchDemandNoteForm = ({ applySearch, orgComboData, searchCriteria, issue size="small" value={orgSelected} getOptionLabel={(option) => option.name? option.name : ""} - inputValue={orgSelected ? orgSelected.name : ""} + inputValue={orgSelected ? orgSelected.name!=undefined?orgSelected.name:"" : ""} + onChange={(event, newValue) => { if (newValue !== null) { setOrgSelected(newValue); diff --git a/src/pages/Payment/Search_Public/SearchForm.js b/src/pages/Payment/Search_Public/SearchForm.js index ea8fc4c..2dc5623 100644 --- a/src/pages/Payment/Search_Public/SearchForm.js +++ b/src/pages/Payment/Search_Public/SearchForm.js @@ -78,7 +78,10 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria, onGridReady }) => setStatus(ComboData.paymentStatus[0]); setMinDate(DateUtils.dateValue(new Date().setDate(new Date().getDate()-14))) setMaxDate(DateUtils.dateValue(new Date())) - reset(); + reset({ + code:"", + transNo:"" + }); localStorage.setItem('searchCriteria',"") } diff --git a/src/pages/Proof/Search_GLD/SearchForm.js b/src/pages/Proof/Search_GLD/SearchForm.js index 32b3621..2708aa2 100644 --- a/src/pages/Proof/Search_GLD/SearchForm.js +++ b/src/pages/Proof/Search_GLD/SearchForm.js @@ -362,7 +362,8 @@ const SearchPublicNoticeForm = ({ applySearch, orgComboData, searchCriteria, iss size="small" value={orgSelected} getOptionLabel={(option) => option.name? option.name : ""} - inputValue={orgSelected ? orgSelected.name : ""} + inputValue={orgSelected ? orgSelected.name!=undefined?orgSelected.name:"" : ""} + onChange={(event, newValue) => { if (newValue !== null) { setOrgSelected(newValue); diff --git a/src/pages/Proof/Search_Public/SearchForm.js b/src/pages/Proof/Search_Public/SearchForm.js index 4370f0f..40a3f00 100644 --- a/src/pages/Proof/Search_Public/SearchForm.js +++ b/src/pages/Proof/Search_Public/SearchForm.js @@ -122,7 +122,10 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria, issueComboData, o setGroupSelected({}); setMinDate(DateUtils.dateValue(new Date().setDate(new Date().getDate()-14))) setMaxDate(DateUtils.dateValue(new Date())) - reset(); + reset({ + refNo:"", + code:"", + }); localStorage.setItem('searchCriteria',"") } diff --git a/src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js b/src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js index 885deb1..a386922 100644 --- a/src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js +++ b/src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js @@ -41,9 +41,17 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { React.useEffect(() => { if(searchCriteria.status!=undefined){ if(localStorage.getItem('userData').creditor){ - setStatus(ComboData.publicNoticeStatic_Creditor.find(item => item.type === searchCriteria.status)) + if(searchCriteria.status === ""){ + ComboData.publicNoticeStatic_Creditor[0] + }else{ + setStatus(ComboData.publicNoticeStatic_Creditor.find(item => item.type === searchCriteria.status)) + } }else{ - setStatus(ComboData.publicNoticeStatic.find(item => item.type === searchCriteria.status)) + if(searchCriteria.status === ""){ + ComboData.publicNoticeStatic[0] + }else{ + setStatus(ComboData.publicNoticeStatic.find(item => item.type === searchCriteria.status)) + } } }else{ if(localStorage.getItem('userData').creditor){ @@ -93,7 +101,10 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => { setStatus(localStorage.getItem('userData').creditor?ComboData.publicNoticeStatic_Creditor[0]:ComboData.publicNoticeStatic[0]); setMinDate(DateUtils.dateValue(new Date().setDate(new Date().getDate()-14))) setMaxDate(DateUtils.dateValue(new Date())) - reset(); + reset({ + appNo:"" + }); + localStorage.setItem('searchCriteria',"") } return ( diff --git a/src/pages/PublicNotice/Search_GLD/SearchForm.js b/src/pages/PublicNotice/Search_GLD/SearchForm.js index 3585d44..e7e8918 100644 --- a/src/pages/PublicNotice/Search_GLD/SearchForm.js +++ b/src/pages/PublicNotice/Search_GLD/SearchForm.js @@ -31,13 +31,25 @@ const SearchPublicNoticeForm = ({ applySearch, orgComboData, searchCriteria, iss const [issueSelected, setIssueSelected] = React.useState({}); const [issueCombo, setIssueCombo] = React.useState([]); const [selectedStatus, setSelectedStatus] = React.useState({key: 0, label: 'All', type: 'all'}); - const [groupSelected, setGroupSelected] = React.useState({}); + const [groupSelected, setGroupSelected] = React.useState(searchCriteria.gazettGroup!=undefined?ComboData.groupTitle.find(item => item.code === searchCriteria.gazettGroup):{}); const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom); const [maxDate, setMaxDate] = React.useState(searchCriteria.dateTo); const [fromDateValue, setFromDateValue] = React.useState("dd / mm / yyyy"); const [toDateValue, setToDateValue] = React.useState("dd / mm / yyyy"); + React.useEffect(() => { + if(searchCriteria.status!=undefined){ + if(searchCriteria.status === ""){ + ComboData.publicNoticeStatic_GLD[0] + }else{ + setSelectedStatus(ComboData.publicNoticeStatic_GLD.find(item => item.type === searchCriteria.status)) + } + }else{ + setSelectedStatus(ComboData.publicNoticeStatic_GLD[0]) + } + }, [searchCriteria]); + React.useEffect(() => { setFromDateValue(minDate); }, [minDate]); @@ -84,25 +96,36 @@ const SearchPublicNoticeForm = ({ applySearch, orgComboData, searchCriteria, iss React.useEffect(() => { if (orgComboData && orgComboData.length > 0) { setOrgCombo(orgComboData); + if(searchCriteria.orgId!=undefined){ + setOrgSelected(orgComboData.find(item => item.key === searchCriteria.orgId)) + } } }, [orgComboData]); React.useEffect(() => { if (issueComboData && issueComboData.length > 0) { setIssueCombo(issueComboData); + if(searchCriteria.issueId!=undefined){ + setIssueSelected(issueComboData.find(item => item.id === searchCriteria.issueId)) + } } }, [issueComboData]); function resetForm() { setType([]); // setStatus({ key: 0, label: 'All', type: 'all' }); + localStorage.setItem('searchCriteria',"") setOrgSelected({}); setIssueSelected({}); setGroupSelected({}); setSelectedStatus({key: 0, label: 'All', type: 'all'}); setMinDate(DateUtils.dateValue(new Date().setDate(new Date().getDate()-14))) setMaxDate(DateUtils.dateValue(new Date())) - reset(); + reset({ + appNo:"", + contact:"", + groupNo:"" + }); } const getIssueLabel=(data)=> { @@ -303,7 +326,7 @@ const SearchPublicNoticeForm = ({ applySearch, orgComboData, searchCriteria, iss size="small" value={orgSelected} getOptionLabel={(option) => option.name? option.name : ""} - inputValue={orgSelected ? orgSelected.name : ""} + inputValue={orgSelected ? orgSelected.name!=undefined?orgSelected.name:"" : ""} onChange={(event, newValue) => { if (newValue !== null) { setOrgSelected(newValue); diff --git a/src/pages/PublicNotice/Search_GLD/index.js b/src/pages/PublicNotice/Search_GLD/index.js index 3be6de8..30a6e3c 100644 --- a/src/pages/PublicNotice/Search_GLD/index.js +++ b/src/pages/PublicNotice/Search_GLD/index.js @@ -9,6 +9,7 @@ import * as React from "react"; import * as UrlUtils from "utils/ApiPathConst"; import * as HttpUtils from "utils/HttpUtils"; import * as DateUtils from "utils/DateUtils"; +import { getSearchCriteria } from "auth/utils"; import Loadable from 'components/Loadable'; const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); @@ -31,16 +32,22 @@ const BackgroundHead = { const UserSearchPage_Individual = () => { const [orgCombo, setOrgCombo] = React.useState([]); const [issueCombo, setIssueCombo] = React.useState([]); - const [searchCriteria, setSearchCriteria] = React.useState({ - dateTo: DateUtils.dateValue(new Date()), - dateFrom: DateUtils.dateValue(new Date().setDate(new Date().getDate() - 14)) - }); + const [searchCriteria, setSearchCriteria] = React.useState({}); const [onReady, setOnReady] = React.useState(false); const [onGridReady, setGridOnReady] = React.useState(false); React.useEffect(() => { getOrgCombo(); getIssueCombo(); + if (Object.keys(getSearchCriteria(window.location.pathname)).length>0){ + setSearchCriteria(getSearchCriteria(window.location.pathname)) + }else{ + localStorage.setItem('searchCriteria',"") + setSearchCriteria({ + dateTo: DateUtils.dateValue(new Date()), + dateFrom: DateUtils.dateValue(new Date().setDate(new Date().getDate()-14)), + }) + } }, []); React.useEffect(() => { @@ -70,6 +77,7 @@ const UserSearchPage_Individual = () => { function applySearch(input) { setGridOnReady(true); setSearchCriteria(input); + localStorage.setItem('searchCriteria', JSON.stringify({path:window.location.pathname,data:input})) } function applyGridOnReady(input) { diff --git a/src/pages/PublicNotice/Search_Mark_As_Paid_GLD/SearchForm.js b/src/pages/PublicNotice/Search_Mark_As_Paid_GLD/SearchForm.js index 43feb3a..7c89ea7 100644 --- a/src/pages/PublicNotice/Search_Mark_As_Paid_GLD/SearchForm.js +++ b/src/pages/PublicNotice/Search_Mark_As_Paid_GLD/SearchForm.js @@ -299,7 +299,8 @@ const SearchPublicNoticeForm = ({ applySearch, orgComboData, searchCriteria, iss size="small" value={orgSelected} getOptionLabel={(option) => option.name? option.name : ""} - inputValue={orgSelected ? orgSelected.name : ""} + inputValue={orgSelected ? orgSelected.name!=undefined?orgSelected.name:"" : ""} + onChange={(event, newValue) => { if (newValue !== null) { setOrgSelected(newValue); diff --git a/src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js b/src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js index 35a403e..e3aadb1 100644 --- a/src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js +++ b/src/pages/User/SearchPage_Organization/UserSearchForm_Organization.js @@ -84,7 +84,8 @@ const UserSearchForm_Organization = ({applySearch, orgComboData, onGridReady}) = size="small" value={orgSelected} getOptionLabel={(option) => option.name? option.name : ""} - inputValue={orgSelected ? orgSelected.name : ""} + inputValue={orgSelected ? orgSelected.name!=undefined?orgSelected.name:"" : ""} + onChange={(event, newValue) => { if (newValue !== null) { setOrgSelected(newValue);