Browse Source

fix public notes save search criteria

New_Enhancement
Alex Cheung 2 months ago
parent
commit
f5e671ca7f
5 changed files with 29 additions and 11 deletions
  1. +1
    -1
      src/auth/utils.js
  2. +8
    -2
      src/components/FiDataGrid.js
  3. +2
    -1
      src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js
  4. +9
    -1
      src/pages/PublicNotice/ListPanel/SearchPublicNoticeTab.js
  5. +9
    -6
      src/pages/PublicNotice/ListPanel/SearchPublicNoticeTable.js

+ 1
- 1
src/auth/utils.js View File

@@ -150,7 +150,7 @@ export const checkSearchCriteriaPath = (path) =>{
if(!path.startsWith("/application") if(!path.startsWith("/application")
|| path === "/application/search"){ || path === "/application/search"){
if(!path.startsWith("/user/")){ if(!path.startsWith("/user/")){
if(!path.startsWith("/publicNotice/")){
if(!path.startsWith("/publicNotice/")|| path === "/publicNotice"){
return true return true
} }
} }


+ 8
- 2
src/components/FiDataGrid.js View File

@@ -12,7 +12,7 @@ import { getSearchCriteria, checkSearchCriteriaPath } from "auth/utils";


export function FiDataGrid({ rows, columns, sx, autoHeight, export function FiDataGrid({ rows, columns, sx, autoHeight,
hideFooterSelectedRowCount, rowModesModel, editMode, hideFooterSelectedRowCount, rowModesModel, editMode,
pageSizeOptions, filterItems, customPageSize, doLoad, applyGridOnReady, applySearch, ...props }) {
pageSizeOptions, filterItems, customPageSize, doLoad, applyGridOnReady, applySearch, tab, ...props }) {
const intl = useIntl(); const intl = useIntl();
const [_rows, set_rows] = useState([]); const [_rows, set_rows] = useState([]);
const [_doLoad, set_doLoad] = useState({}); const [_doLoad, set_doLoad] = useState({});
@@ -148,7 +148,13 @@ export function FiDataGrid({ rows, columns, sx, autoHeight,
_doLoad.params.start = page * pageSize; _doLoad.params.start = page * pageSize;
_doLoad.params.limit = pageSize; _doLoad.params.limit = pageSize;
if(checkSearchCriteriaPath(window.location.pathname)){ if(checkSearchCriteriaPath(window.location.pathname)){
localStorage.setItem('searchCriteria', JSON.stringify({path:window.location.pathname,data:_doLoad.params}))
if(window.location.pathname === "/publicNotice"){
if (tab != undefined && tab ==="application"){
localStorage.setItem('searchCriteria', JSON.stringify({path:window.location.pathname,data:_doLoad.params}))
}
}else if (window.location.pathname != "/publicNotice"){
localStorage.setItem('searchCriteria', JSON.stringify({path:window.location.pathname,data:_doLoad.params}))
}
} }
HttpUtils.get({ HttpUtils.get({


+ 2
- 1
src/pages/PublicNotice/ListPanel/SearchPublicNoticeForm.js View File

@@ -24,7 +24,7 @@ import {LocalizationProvider} from "@mui/x-date-pickers/LocalizationProvider";
import {AdapterDayjs} from "@mui/x-date-pickers/AdapterDayjs"; import {AdapterDayjs} from "@mui/x-date-pickers/AdapterDayjs";


// ==============================|| DASHBOARD - DEFAULT ||============================== // // ==============================|| DASHBOARD - DEFAULT ||============================== //
const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => {
const SearchPublicNoticeForm = ({ applySearch, searchCriteria, onGridReady }) => {
const intl = useIntl(); const intl = useIntl();
const [type, setType] = React.useState([]); const [type, setType] = React.useState([]);
const [status, setStatus] = React.useState(localStorage.getItem('userData').creditor?ComboData.publicNoticeStatic_Creditor[0]:ComboData.publicNoticeStatic[0]); const [status, setStatus] = React.useState(localStorage.getItem('userData').creditor?ComboData.publicNoticeStatic_Creditor[0]:ComboData.publicNoticeStatic[0]);
@@ -328,6 +328,7 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => {
<Button <Button
variant="contained" variant="contained"
type="submit" type="submit"
disabled={onGridReady}
aria-label={intl.formatMessage({id: 'search'})} aria-label={intl.formatMessage({id: 'search'})}
> >
<Typography variant="pnspsButtonText"> <Typography variant="pnspsButtonText">


+ 9
- 1
src/pages/PublicNotice/ListPanel/SearchPublicNoticeTab.js View File

@@ -18,6 +18,7 @@ const UserSearchPage_Individual = () => {


const [searchCriteria, setSearchCriteria] = React.useState({}); const [searchCriteria, setSearchCriteria] = React.useState({});
const [onReady, setOnReady] = React.useState(false); const [onReady, setOnReady] = React.useState(false);
const [onGridReady, setGridOnReady] = React.useState(false);


React.useEffect(() => { React.useEffect(() => {
if (Object.keys(getSearchCriteria(window.location.pathname)).length>0){ if (Object.keys(getSearchCriteria(window.location.pathname)).length>0){
@@ -38,8 +39,13 @@ const UserSearchPage_Individual = () => {
}, [searchCriteria]); }, [searchCriteria]);


function applySearch(input) { function applySearch(input) {
setGridOnReady(true);
setSearchCriteria(input); setSearchCriteria(input);
localStorage.setItem('searchCriteria', JSON.stringify({path:window.location.pathname,data:input}))
localStorage.setItem('searchCriteria', JSON.stringify({path:window.location.pathname,tab:"application",data:input}))
}

function applyGridOnReady(input) {
setGridOnReady(input);
} }


return ( return (
@@ -56,6 +62,7 @@ const UserSearchPage_Individual = () => {
<SearchForm <SearchForm
applySearch={applySearch} applySearch={applySearch}
searchCriteria={searchCriteria} searchCriteria={searchCriteria}
onGridReady={onGridReady}
/> />
</Grid> </Grid>
{/*row 2*/} {/*row 2*/}
@@ -69,6 +76,7 @@ const UserSearchPage_Individual = () => {
<EventTable <EventTable
autoHeight autoHeight
searchCriteria={searchCriteria} searchCriteria={searchCriteria}
applyGridOnReady={applyGridOnReady}
applySearch={applySearch} applySearch={applySearch}
/> />
</div> </div>


+ 9
- 6
src/pages/PublicNotice/ListPanel/SearchPublicNoticeTable.js View File

@@ -18,7 +18,7 @@ import { FormattedMessage, useIntl } from "react-intl";
import * as React from 'react'; import * as React from 'react';
// ==============================|| EVENT TABLE ||============================== // // ==============================|| EVENT TABLE ||============================== //


export default function SearchPublicNoticeTable({ searchCriteria, applySearch }) {
export default function SearchPublicNoticeTable({ searchCriteria, applyGridOnReady, applySearch }) {
const navigate = useNavigate() const navigate = useNavigate()
const theme = useTheme(); const theme = useTheme();
const isMdOrLg = useMediaQuery(theme.breakpoints.up('md')); const isMdOrLg = useMediaQuery(theme.breakpoints.up('md'));
@@ -142,16 +142,19 @@ export default function SearchPublicNoticeTable({ searchCriteria, applySearch })
<FiDataGrid <FiDataGrid
columns={columns} columns={columns}
customPageSize={10} customPageSize={10}
onRowDoubleClick={handleRowDoubleClick}
getRowHeight={() => 'auto'} getRowHeight={() => 'auto'}
onRowDoubleClick={handleRowDoubleClick}
applyGridOnReady = {applyGridOnReady}
applySearch={applySearch} applySearch={applySearch}
// doLoad={{
// url: GET_PUBLIC_NOTICE_LIST,
// params: _searchCriteria
// }}
tab={"application"}
doLoad={React.useMemo(() => ({ doLoad={React.useMemo(() => ({
url: GET_PUBLIC_NOTICE_LIST, url: GET_PUBLIC_NOTICE_LIST,
params: _searchCriteria, params: _searchCriteria,
applyGridOnReady: applyGridOnReady,
// callback: function (responseData) {
// setRows(responseData?.records);
// // applyGridOnReady(false)
// }
}), [_searchCriteria])} }), [_searchCriteria])}
/> />
</div> </div>


Loading…
Cancel
Save