You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

112 line
3.8 KiB

  1. // material-ui
  2. import {
  3. Grid,
  4. // Typography,
  5. Tab,
  6. Box,
  7. // Button
  8. } from '@mui/material';
  9. import { TabPanel, TabContext, TabList } from '@mui/lab';
  10. import {
  11. // useEffect,
  12. useState } from "react";
  13. // import { useNavigate } from "react-router-dom";
  14. import * as React from "react";
  15. // import * as HttpUtils from "../../../utils/HttpUtils";
  16. // import * as UrlUtils from "../../../utils/ApiPathConst";
  17. import Loadable from 'components/Loadable';
  18. import { lazy } from 'react';
  19. const BaseGrid = Loadable(lazy(() => import('./BaseGrid')));
  20. const PendingPaymentTab = Loadable(lazy(() => import('./PendingPaymentTab')));
  21. const LoadingComponent = Loadable(lazy(() => import('../../extra-pages/LoadingComponent')));
  22. // const SearchTab = Loadable(lazy(() => import('./SearchPublicNoticeTab')));
  23. // ==============================|| DASHBOARD - DEFAULT ||============================== //
  24. const PublicNotice = () => {
  25. const [submittedList, ] = useState([]);
  26. const [inProgressList, ] = useState([]);
  27. const [pendingPaymentList, ] = useState([]);
  28. const [isLoading,] = useState(false);
  29. const [selectedTab, setSelectedTab] = useState("1");
  30. // const navigate = useNavigate();
  31. // useEffect(() => {
  32. // loadData();
  33. // }, []);
  34. const reloadPage = () => {
  35. window.location.reload(false);
  36. }
  37. // const loadData = () => {
  38. // setLoding(true);
  39. // HttpUtils.get({
  40. // url: `${UrlUtils.GET_PUBLIC_NOTICE_LIST_ListByStatus}`,
  41. // onSuccess: function (response) {
  42. // setSubmittedList(response["submitted"]);
  43. // setInProgressList(response["inProgress"]);
  44. // setPendingPaymentList(response["pendingPayment"]);
  45. // setPendingPublishList(response["pendingPublish"]);
  46. // }
  47. // });
  48. // };
  49. // useEffect(() => {
  50. // setLoding(false);
  51. // }, [submittedList]);
  52. const handleChange = (event, newValue) => {
  53. setSelectedTab(newValue);
  54. }
  55. // const onBtnClick = () => {
  56. // navigate('/publicNotice/apply')
  57. // }
  58. return (
  59. isLoading ?
  60. <LoadingComponent />
  61. :
  62. <Grid container sx={{minHeight: '40vh'}}>
  63. {/*col 2*/}
  64. <Grid item xs={12}>
  65. <TabContext value={selectedTab}>
  66. <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>
  67. <TabList onChange={handleChange} aria-label="lab API tabs example">
  68. <Tab label={"已提交(" + submittedList.length + ")"} value="1" />
  69. <Tab label={"處理中(" + inProgressList.length + ")"} value="2" />
  70. <Tab label={"待付款(" + pendingPaymentList.length + ")"} value="3" />
  71. </TabList>
  72. </Box>
  73. <TabPanel value="1">
  74. <BaseGrid
  75. rows={submittedList}
  76. reloadFunction={reloadPage}
  77. />
  78. </TabPanel>
  79. <TabPanel value="2">
  80. <BaseGrid
  81. rows={inProgressList}
  82. reloadFunction={reloadPage}
  83. />
  84. </TabPanel>
  85. <TabPanel value="3">
  86. <PendingPaymentTab
  87. rows={pendingPaymentList}
  88. reloadFunction={reloadPage}
  89. />
  90. </TabPanel>
  91. </TabContext>
  92. </Grid>
  93. </Grid>
  94. );
  95. };
  96. export default PublicNotice;