From 2106d561f3a2564d6bc771daf6b2c46d0f9d8166 Mon Sep 17 00:00:00 2001 From: Alex Cheung Date: Tue, 4 Nov 2025 20:11:26 +0800 Subject: [PATCH] add report pages --- src/layout/MainLayout/Header/index.js | 23 ++-- .../Report/{ => FullList}/FullListForm.js | 2 +- src/pages/Report/{ => FullList}/index.js | 16 +-- src/pages/Report/{ => Summary}/SummaryForm.js | 2 +- src/pages/Report/Summary/index.js | 100 ++++++++++++++++++ src/routes/GLDUserRoutes.js | 11 +- 6 files changed, 128 insertions(+), 26 deletions(-) rename src/pages/Report/{ => FullList}/FullListForm.js (99%) rename src/pages/Report/{ => FullList}/index.js (82%) rename src/pages/Report/{ => Summary}/SummaryForm.js (99%) create mode 100644 src/pages/Report/Summary/index.js diff --git a/src/layout/MainLayout/Header/index.js b/src/layout/MainLayout/Header/index.js index 897c8ce..010550c 100644 --- a/src/layout/MainLayout/Header/index.js +++ b/src/layout/MainLayout/Header/index.js @@ -265,13 +265,24 @@ function Header(props) { <> }
  • - - - Report - - + Report +
      +
    • + + + Summary of Gazette Notice + + +
    • +
    • + + + Gazette Notice Full List + + +
    • +
  • -
  • Settings
      diff --git a/src/pages/Report/FullListForm.js b/src/pages/Report/FullList/FullListForm.js similarity index 99% rename from src/pages/Report/FullListForm.js rename to src/pages/Report/FullList/FullListForm.js index d46bd53..d15ae37 100644 --- a/src/pages/Report/FullListForm.js +++ b/src/pages/Report/FullList/FullListForm.js @@ -10,7 +10,7 @@ import { useForm } from "react-hook-form"; import * as React from "react"; import * as DateUtils from "utils/DateUtils"; import {ThemeProvider} from "@emotion/react"; -import {PNSPS_BUTTON_THEME} from "../../themes/buttonConst"; +import {PNSPS_BUTTON_THEME} from "../../../themes/buttonConst"; import * as FormatUtils from "utils/FormatUtils"; import * as HttpUtils from "utils/HttpUtils"; import * as UrlUtils from "utils/ApiPathConst"; diff --git a/src/pages/Report/index.js b/src/pages/Report/FullList/index.js similarity index 82% rename from src/pages/Report/index.js rename to src/pages/Report/FullList/index.js index f9fa980..5a81b75 100644 --- a/src/pages/Report/index.js +++ b/src/pages/Report/FullList/index.js @@ -14,7 +14,6 @@ import * as UrlUtils from "utils/ApiPathConst"; import Loadable from 'components/Loadable'; const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); const FullListForm = Loadable(React.lazy(() => import('./FullListForm'))); -const SummaryForm = Loadable(React.lazy(() => import('./SummaryForm'))); import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' const BackgroundHead = { @@ -75,30 +74,17 @@ const ReportSearchPage = () => {
      - Report + Gazette Notice Full List
      {/*row 1*/} - - Gazette Notice Full List - - - - - Summary of Gazette Notice - - - {/*row 2*/} import('pages/extra-pages/LoadingComponent'))); +const SummaryForm = Loadable(React.lazy(() => import('./SummaryForm'))); +import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png' + +const BackgroundHead = { + backgroundImage: `url(${titleBackgroundImg})`, + width: '100%', + height: '100%', + backgroundSize: 'contain', + backgroundRepeat: 'no-repeat', + backgroundColor: '#0C489E', + backgroundPosition: 'right' +} + +// ==============================|| DASHBOARD - DEFAULT ||============================== // + +const ReportSearchPage = () => { + + const [searchCriteria, setSearchCriteria] = React.useState({}); + const [onReady, setOnReady] = React.useState(false); + const [issueCombo, setIssueCombo] = React.useState([]); + + React.useEffect(() => { + 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)), + }) + } + }, []); + + function getIssueCombo() { + HttpUtils.get({ + url: UrlUtils.GET_ISSUE_COMBO, + onSuccess: function (responseData) { + let combo = responseData; + setIssueCombo(combo); + } + }); + } + + React.useEffect(() => { + setOnReady(true); + }, [searchCriteria]); + + + return ( + !onReady ? + + + + + + : + + +
      + + Summary of Gazette Notice + +
      +
      + {/*row 1*/} + + + + {/*row 2*/} + + + + +
      + ); +} +export default ReportSearchPage; diff --git a/src/routes/GLDUserRoutes.js b/src/routes/GLDUserRoutes.js index 0460b75..1fd1668 100644 --- a/src/routes/GLDUserRoutes.js +++ b/src/routes/GLDUserRoutes.js @@ -34,7 +34,8 @@ const AuditLogPage = Loadable(lazy(() => import('pages/AuditLog/index'))); const ReconReportPage = Loadable(lazy(() => import('pages/Recon'))); const ChangePasswordPage = Loadable(lazy(() => import('pages/User/ChangePasswordPage'))); const JVMDefault = Loadable(lazy(() => import('pages/JVM'))); -const ReportPage = Loadable(lazy(() => import('pages/Report'))); +const FullListReportPage = Loadable(lazy(() => import('pages/Report/FullList'))); +const SummaryReportPage = Loadable(lazy(() => import('pages/Report/Summary'))); // ==============================|| MAIN ROUTING ||============================== // @@ -205,8 +206,12 @@ const GLDUserRoutes = { element: }, { - path: '/setting/report', - element: + path: '/setting/report/fullList', + element: + }, + { + path: '/setting/report/summary', + element: }, ] }