diff --git a/src/layout/MainLayout/Header/index.js b/src/layout/MainLayout/Header/index.js
index d3f39d1..7a62b2e 100644
--- a/src/layout/MainLayout/Header/index.js
+++ b/src/layout/MainLayout/Header/index.js
@@ -115,7 +115,7 @@ function Header(props) {
主頁
- 我的公共啟事
+ 我的公共啟事
校對記錄
diff --git a/src/layout/MainLayout/index.js b/src/layout/MainLayout/index.js
index 9068671..8675276 100644
--- a/src/layout/MainLayout/index.js
+++ b/src/layout/MainLayout/index.js
@@ -58,11 +58,11 @@ const MainLayout = () => {
{/* */}
-
+
{/* */}
{/* */}
-
+
diff --git a/src/pages/PublicNotice/SubmittedTab.js b/src/pages/PublicNotice/SubmittedTab.js
new file mode 100644
index 0000000..87f7aea
--- /dev/null
+++ b/src/pages/PublicNotice/SubmittedTab.js
@@ -0,0 +1,86 @@
+// material-ui
+import * as React from 'react';
+import {
+ DataGrid,
+ GridActionsCellItem,
+} from "@mui/x-data-grid";
+import * as Icon from '../../utils/IconUtils';
+import * as DateUtils from "../../utils/DateUtils"
+// ==============================|| EVENT TABLE ||============================== //
+
+export default function SubmittedTab({rows}) {
+ const [rowModesModel] = React.useState({});
+
+ const columns = [
+ {
+ id: 'appNo',
+ field: 'appNo',
+ headerName: '申請編號',
+ flex: 1,
+ },
+ {
+ id: 'created',
+ field: 'created',
+ headerName: '提交日期',
+ flex: 1,
+ valueGetter:(params)=>{
+ return DateUtils.datetimeStr(params.value);
+ }
+ },
+ {
+ id: 'remarks',
+ field: 'remarks',
+ headerName: '我的備註',
+ flex: 1,
+ valueGetter:(params)=>{
+ return DateUtils.datetimeStr(params.value);
+ }
+ },
+ {
+ id: 'status',
+ field: 'status',
+ headerName: '狀態',
+ flex: 1,
+ valueGetter:(params)=>{
+ return DateUtils.datetimeStr(params.value);
+ }
+ },
+ {
+ field: 'actions',
+ type: 'actions',
+ headerName: '',
+ width: 50,
+ cellClassName: 'actions',
+ getActions: (params) => {
+ return [
+ }
+ label="查看詳細"
+ className="textPrimary"
+ onClick={onDownloadClick(params.id, params.row.skey, params.row.filename)}
+ color="primary"
+ />]
+ },
+ }
+ ];
+
+ return (
+
+
+
+ );
+}
diff --git a/src/pages/PublicNotice/index.js b/src/pages/PublicNotice/index.js
new file mode 100644
index 0000000..4cee95b
--- /dev/null
+++ b/src/pages/PublicNotice/index.js
@@ -0,0 +1,166 @@
+// material-ui
+import {
+ // Grid,
+ Typography,
+ Tabs,
+ Tab,
+ Box
+} from '@mui/material';
+// import {TabPanel, TabContext, TabList } from '@mui/lab';
+// import {useEffect, useState} from "react";
+import * as React from "react";
+// import * as HttpUtils from "../../utils/HttpUtils";
+// import * as UrlUtils from "../../utils/ApiPathConst";
+
+// import Loadable from 'components/Loadable';
+// import { lazy } from 'react';
+// const SubmittedTab = Loadable(lazy(() => import('./SubmittedTab')));
+// const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
+
+
+// ==============================|| DASHBOARD - DEFAULT ||============================== //
+function a11yProps(index) {
+ return {
+ id: `simple-tab-${index}`,
+ 'aria-controls': `simple-tabpanel-${index}`,
+ };
+ }
+
+function CustomTabPanel(props) {
+ const { children, value, index, ...other } = props;
+
+ return (
+
+ {value === index && (
+
+ {children}
+
+ )}
+
+ );
+ }
+
+ export default function BasicTabs() {
+ const [value, setValue] = React.useState(0);
+
+ const handleChange = (event, newValue) => {
+ setValue(newValue);
+ };
+
+ return (
+ <>
+
+ 123
+
+
+
+
+
+
+
+
+
+
+
+ Item One
+
+
+ Item Two
+
+
+ Item Three
+
+
+ >
+ );
+ }
+
+// const PublicNotice = () => {
+// const [submittedList, setSubmittedList] = useState([]);
+// // const [inProgressList, setInProgressList] = useState([]);
+// // const [pendingPaymentList, setPendingPaymentList] = useState([]);
+// // const [pendingPublishList, setPendingPublishList] = useState([]);
+// const [isLoading, setLoding] = useState(true);
+// const [selectedTab, setSelectedTab] = useState("1");
+
+
+// useEffect(()=>{
+// loadData();
+// },[]);
+
+// const reloadPage=()=>{
+// window.location.reload(false);
+// }
+
+// const loadData = ()=>{
+// setLoding(true);
+// HttpUtils.get({
+// url: `${UrlUtils.GET_PUBLIC_NOTICE_LIST}`,
+// onSuccess: function(response){
+// setSubmittedList(response.data["submitted"]);
+// // setInProgressList(response.data["inProgress"]);
+// // setPendingPaymentList(response.data["pendingPayment"]);
+// // setPendingPublishList(response.data["pendingPublish"]);
+// }
+// });
+// };
+
+
+// useEffect(() => {
+// setLoding(false);
+// }, [submittedList]);
+
+// const handleChange = (event, newValue)=>{
+// setSelectedTab(newValue);
+// }
+
+// return (
+// isLoading ?
+//
+// :
+//
+//
+// 我的公共啟事
+//
+// {/*col 2*/}
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+// TODO
+//
+//
+// TODO
+//
+//
+// TODO
+//
+// TODO
+//
+//
+//
+// );
+// };
+
+
+// export default PublicNotice;
diff --git a/src/pages/pnspsUserSearchPage_Individual/UserTable_Individual.js b/src/pages/pnspsUserSearchPage_Individual/UserTable_Individual.js
index 6d3f172..b2fbb4e 100644
--- a/src/pages/pnspsUserSearchPage_Individual/UserTable_Individual.js
+++ b/src/pages/pnspsUserSearchPage_Individual/UserTable_Individual.js
@@ -134,19 +134,28 @@ export default function UserTable_Individual({recordList}) {
return (
-
+
+
);
}
diff --git a/src/routes/PublicUserRoutes.js b/src/routes/PublicUserRoutes.js
index 41ca198..a4343be 100644
--- a/src/routes/PublicUserRoutes.js
+++ b/src/routes/PublicUserRoutes.js
@@ -8,6 +8,7 @@ const MainLayout = Loadable(lazy(() => import('layout/MainLayout')));
// render - dashboard
const DashboardDefault = Loadable(lazy(() => import('pages/publicDashboard')));
const ManageOrgUser = Loadable(lazy(() => import('pages/ManageOrgUserPage')));
+const PublicNotice = Loadable(lazy(() => import('pages/PublicNotice')));
// ==============================|| MAIN ROUTING ||============================== //
@@ -29,6 +30,10 @@ const PublicDashboard = {
{
path: 'setting/manageUser',
element:
+ },
+ {
+ path: 'publicNotice',
+ element:
}
]
},
diff --git a/src/utils/ApiPathConst.js b/src/utils/ApiPathConst.js
index 2dc6072..3280202 100644
--- a/src/utils/ApiPathConst.js
+++ b/src/utils/ApiPathConst.js
@@ -47,6 +47,9 @@ export const GET_PUBLIC_ORG_USER_LIST = apiPath+'/user/listOrg';
export const GET_SET_PRIMARY_USER = apiPath+'/user/primary';
export const GET_SET_UN_PRIMARY_USER = apiPath+'/user/un-primary';
+export const GET_PUBLIC_NOTICE_LIST = apiPath+'/application/list';
+export const GET_PUBLIC_NOTICE_LIST_ListByStatus = apiPath+'/application/status-list';
+
//GLD User
export const POST_ADMIN_USER_REGISTER = apiPath+'/user/registry';
export const DELETE_USER = apiPath+'/user';
diff --git a/src/utils/SelectBase.js b/src/utils/SelectBase.js
new file mode 100644
index 0000000..385e058
--- /dev/null
+++ b/src/utils/SelectBase.js
@@ -0,0 +1,63 @@
+import {
+ Autocomplete, TextField
+} from '@mui/material';
+import * as React from 'react';
+import Select, { SelectChangeEvent } from '@mui/material/Select';
+
+export default function Combo ({valueName, disabled, form, dataList, filterOptions, getOptionLabel, isOptionEqualToValue, onInputChange, onChange, ...props}){
+ const [value, setValue] = React.useState(form.values[valueName]);
+ const [inputValue, setInputValue] = React.useState("");
+
+ return (
+ {
+ if(isOptionEqualToValue)
+ isOptionEqualToValue(option,newValue, setValue,setInputValue )
+ }}
+ onInputChange={(event, newValue) => {
+ setInputValue(newValue);
+ if(onInputChange){
+ onInputChange(event,newValue, setInputValue)
+ }
+ }}
+ onChange={(event, newValue) => {
+ setValue(newValue);
+ if (!onChange){
+ form.setFieldValue(valueName, newValue);
+ }else{
+ onChange(event, newValue);
+ }
+ }}
+ sx={{
+ "& .MuiInputBase-root": {
+ height: "41px",
+ padding: "0px 0px 0px 8px"
+ },
+ "& .MuiAutocomplete-endAdornment": {
+ top: "auto"
+ },
+ "& .MuiInputBase-input.Mui-disabled": {
+ WebkitTextFillColor: "#000000",
+ background: "#f8f8f8",
+ },
+ }}
+ renderInput={(params) => }
+ />
+ );
+}
\ No newline at end of file