@@ -0,0 +1,133 @@ | |||
// material-ui | |||
import { | |||
Button, | |||
Grid, | |||
TextField, | |||
Autocomplete, | |||
Typography | |||
} from '@mui/material'; | |||
import MainCard from "components/MainCard"; | |||
import { useForm } from "react-hook-form"; | |||
import * as React from "react"; | |||
// import * as DateUtils from "utils/DateUtils"; | |||
import {PNSPS_BUTTON_THEME} from "themes/buttonConst"; | |||
import {ThemeProvider} from "@emotion/react"; | |||
// import * as ComboData from "utils/ComboData"; | |||
// ==============================|| DASHBOARD - DEFAULT ||============================== // | |||
const SearchGazetteIssueForm = ({ applyExport, comboData, waitDownload}) => { | |||
const [selectedYear, setSelectedYear] = React.useState([]); | |||
// const [defaultYear, setDefaultYear] = React.useState(searchCriteria.year); | |||
const [comboList, setComboList] = React.useState([]); | |||
// const [onReady, setOnReady] = React.useState(false); | |||
const { | |||
// register, | |||
handleSubmit } = useForm() | |||
const onSubmit = () => { | |||
console.log(selectedYear) | |||
if (selectedYear !=null && Object.keys(selectedYear).length>0){ | |||
console.log("okkkkkkkkkkkkkkkk") | |||
const temp = { | |||
year: selectedYear.label, | |||
}; | |||
applyExport(temp); | |||
} | |||
}; | |||
React.useEffect(() => { | |||
if (comboData && comboData.length > 0) { | |||
// console.log(comboData) | |||
// const labelValue = comboData.find(obj => obj.label === searchCriteria.year); | |||
// console.log(labelValue) | |||
// if(selectedYear.length == 0){ | |||
// setSelectedYear(comboData[0]) | |||
// } | |||
setComboList(comboData) | |||
// setSelectedYear(searchCriteria.dateFrom) | |||
} | |||
}, [comboData]); | |||
return ( | |||
<MainCard xs={12} md={12} lg={12} | |||
border={false} | |||
content={false} | |||
> | |||
<form onSubmit={handleSubmit(onSubmit)} > | |||
<Grid container sx={{ backgroundColor: '#ffffff', ml: 2, mt: 1}} width="98%"> | |||
{/*row 1*/} | |||
<Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:1}}> | |||
<Typography variant="h5" > | |||
Export Preliminary Gazette Issue From Holiday Year | |||
</Typography> | |||
</Grid> | |||
{/*row 2*/} | |||
<Grid container display="flex" alignItems={"center"}> | |||
<Grid item xs={9} s={6} md={4} lg={4} sx={{ ml: 3, mr: 3, mb: 3 }}> | |||
<Autocomplete | |||
disablePortal | |||
id="year-combo" | |||
value={selectedYear} | |||
// defaultValue={selectedYear} | |||
options={comboList} | |||
// disabled={checkCountry} | |||
getOptionLabel={(option) => option.label ? option.label : ""} | |||
onChange={(event, newValue) => { | |||
setSelectedYear(newValue); | |||
}} | |||
sx={{ | |||
"& .MuiInputBase-root": { height: "41px" }, | |||
"#year-combo": { padding: "0px 0px 0px 0px" }, | |||
"& .MuiAutocomplete-endAdornment": { top: "auto" }, | |||
}} | |||
renderInput={(params) => <TextField {...params} placeholder={""}/>} | |||
/> | |||
</Grid> | |||
<Grid item xs={9} s={6} md={4} lg={4} sx={{ ml: 3, mr: 3, mb: 3 }}> | |||
{/* <TextField | |||
fullWidth | |||
InputLabelProps={{ | |||
shrink: true | |||
}} | |||
{...register("dateTo")} | |||
InputProps={{ inputProps: { min: minDate } }} | |||
onChange={(newValue) => { | |||
setMaxDate(DateUtils.dateStr(newValue)); | |||
}} | |||
id="dateTo" | |||
type="date" | |||
label="To" | |||
defaultValue={searchCriteria.dateTo} | |||
/> */} | |||
</Grid> | |||
{/* <Grid item xs={9} s={6} md={4} lg={3}> | |||
</Grid> */} | |||
</Grid> | |||
<Grid container justifyContent="center" direction="row" alignItems="center" spacing={3}> | |||
<ThemeProvider theme={PNSPS_BUTTON_THEME}> | |||
<Grid item sx={{ ml: 3, mb: 3, }} > | |||
<Button | |||
variant="contained" | |||
type="submit" | |||
size="large" | |||
disabled={waitDownload} | |||
> | |||
Export | |||
</Button> | |||
</Grid> | |||
</ThemeProvider> | |||
</Grid> | |||
</Grid> | |||
</form> | |||
</MainCard> | |||
); | |||
}; | |||
export default SearchGazetteIssueForm; |
@@ -60,7 +60,7 @@ const SearchGazetteIssueForm = ({ applySearch, comboData}) => { | |||
{/*row 1*/} | |||
<Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:1}}> | |||
<Typography variant="h5" > | |||
Year | |||
Search | |||
</Typography> | |||
</Grid> | |||
{/*row 2*/} | |||
@@ -14,6 +14,7 @@ import Loadable from 'components/Loadable'; | |||
const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); | |||
import MainCard from 'components/MainCard'; | |||
const ExportForm = Loadable(React.lazy(() => import('./ExportForm'))); | |||
const SearchForm = Loadable(React.lazy(() => import('./SearchForm'))); | |||
const GazetteIssueTable = Loadable(React.lazy(() => import('./DataGrid'))) | |||
@@ -36,13 +37,20 @@ import { notifySaveSuccess } from 'utils/CommonFunction'; | |||
const Index = () => { | |||
const [record, setRecord] = React.useState([]); | |||
const [comboData, setComboData] = React.useState([]); | |||
const [holidayComboData, setHolidayComboData] = React.useState([]); | |||
const [onReady, setOnReady] = React.useState(false); | |||
const [onSearchReady, setOnSearchReady] = React.useState(false); | |||
const [onExportReady, setOnExportReady] = React.useState(false); | |||
// const navigate = useNavigate() | |||
const [searchCriteria, setSearchCriteria] = React.useState({ | |||
year: dateStr_Year(new Date()), | |||
// dateFrom: DateUtils.dateStr(new Date().setDate(new Date().getDate()-14)), | |||
}); | |||
const [exportCriteria, setExportCriteria] = React.useState({ | |||
// year: dateStr_Year(new Date()), | |||
// dateFrom: DateUtils.dateStr(new Date().setDate(new Date().getDate()-14)), | |||
}); | |||
const [attachments, setAttachments] = React.useState([]); | |||
const [waitImport, setWaitImport] = React.useState(false); | |||
@@ -78,8 +86,21 @@ const Index = () => { | |||
onSuccess: (responseData) => { | |||
let combo = responseData; | |||
setComboData(combo); | |||
setOnReady(true); | |||
setOnSearchReady(true) | |||
loadHolidayCombo(true) | |||
// setOnReady(true); | |||
} | |||
}); | |||
} | |||
function loadHolidayCombo() { | |||
HttpUtils.get({ | |||
url: UrlUtils.GET_HOLIDAY_COMBO, | |||
onSuccess: (responseData) => { | |||
let combo = responseData | |||
setHolidayComboData(combo) | |||
setOnExportReady(true) | |||
setOnReady(true) | |||
} | |||
}); | |||
} | |||
@@ -87,6 +108,17 @@ const Index = () => { | |||
function applySearch(input) { | |||
setSearchCriteria(input); | |||
} | |||
function applyExport(input) { | |||
setExportCriteria(input); | |||
} | |||
React.useEffect(() => { | |||
if (Object.keys(exportCriteria).length > 0) { | |||
// console.log(exportCriteria) | |||
doExport(); | |||
} | |||
}, [exportCriteria]); | |||
React.useEffect(() => { | |||
if (attachments.length > 0) { | |||
@@ -116,6 +148,7 @@ const Index = () => { | |||
setWaitDownload(true) | |||
HttpUtils.fileDownload({ | |||
url: UrlUtils.GET_ISSUE_LIST, | |||
params: exportCriteria, | |||
onResponse: () => { | |||
setTimeout(()=> setWaitDownload(false), 500) | |||
} | |||
@@ -158,23 +191,18 @@ const Index = () => { | |||
</Stack> | |||
</div> | |||
</Grid> | |||
{!onExportReady? | |||
<LoadingComponent />: | |||
<Grid item xs={12} md={12} lg={12} width="100%"> | |||
<ExportForm | |||
applyExport={applyExport} | |||
comboData={holidayComboData} | |||
waitDownload={waitDownload} | |||
/> | |||
</Grid> | |||
} | |||
<Grid item xs={12} md={12} lg={6} width="100%"> | |||
<Stack direction="row" justifyContent="flex-start" alignItems="center" spacing={2} sx={{ml:2,mt:1}} > | |||
<ThemeProvider theme={PNSPS_LONG_BUTTON_THEME}> | |||
<label htmlFor="downloadFileBtn"> | |||
<Button | |||
component="span" | |||
variant="contained" | |||
size="large" | |||
disabled={waitDownload} | |||
onClick={doExport} | |||
> | |||
<Typography variant="h5">Export</Typography> | |||
</Button> | |||
</label> | |||
</ThemeProvider> | |||
<ThemeProvider theme={PNSPS_LONG_BUTTON_THEME}> | |||
<input | |||
id="uploadFileBtn" | |||
@@ -201,14 +229,13 @@ const Index = () => { | |||
</Stack> | |||
</Grid> | |||
{/*row 1*/} | |||
<Grid item xs={12} md={12} lg={12} width="100%"> | |||
<SearchForm | |||
applySearch={applySearch} | |||
// generateXML={generateXML} | |||
searchCriteria={searchCriteria} | |||
comboData={comboData} | |||
/> | |||
<SearchForm | |||
applySearch={applySearch} | |||
comboData={comboData} | |||
/> | |||
</Grid> | |||
{/*row 2*/} | |||
{!onSearchReady? | |||
@@ -231,9 +231,9 @@ const ApplicationDetailCard = ({ formData, }) => { | |||
<Grid item xs={12} md={12} lg={12} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<Typography variant="h5" display="inline"> | |||
<Typography variant="h5" style={{color:'red'}} display="inline"> | |||
{/* <Typography variant="h5" style={{color:'red'}} display="inline"> | |||
<FormattedMessage id="payAnd" /> | |||
</Typography> | |||
</Typography> */} | |||
<FormattedMessage id="commentDeadline" />: | |||
</Typography> | |||
</Grid> | |||
@@ -250,7 +250,7 @@ const ApplicationDetailCard = ({ formData, }) => { | |||
<Grid item xs={12} md={12} lg={12} | |||
sx={{ display: 'flex', alignItems: 'center' }}> | |||
<Typography variant="h5" display="inline"> | |||
<Typography variant="h5" style={{color:'red'}} display="inline"> | |||
<Typography variant="h5" display="inline"> | |||
<FormattedMessage id="payAnd" /> | |||
</Typography> | |||
<FormattedMessage id="paymentDeadline" />: | |||
@@ -363,8 +363,8 @@ | |||
"applicationPublishDate": "Publish date", | |||
"pleaseCheckReminder": "Please download the following printed manuscript file and proofread it carefully", | |||
"payAnd": "Pay and ", | |||
"commentDeadline": "Deadline of Proof with Revise", | |||
"paymentDeadline": "Deadline of Confirm Proof and Payment", | |||
"commentDeadline": "Deadline for proof with revison", | |||
"paymentDeadline": "Deadline for confirm proof and payment", | |||
"before": "Before", | |||
"page": "Page", | |||
"proofReplyDate": "Proof Reply Date", | |||
@@ -359,7 +359,7 @@ | |||
"pleaseCheckReminder": "请下载下列印刷稿档案,并仔细校对", | |||
"payAnd": "缴费及", | |||
"commentDeadline": "返稿最后限期", | |||
"paymentDeadline": "付款最后限期", | |||
"paymentDeadline": "确定付款及缴费最后限期", | |||
"before": "前", | |||
"page": "页", | |||
"proofReplyDate": "校对回覆日期", | |||
@@ -364,7 +364,7 @@ | |||
"pleaseCheckReminder": "請下載下列印刷稿檔案,並仔細校對", | |||
"payAnd": "繳費及", | |||
"commentDeadline": "返稿最後限期", | |||
"paymentDeadline": "付款最後限期", | |||
"paymentDeadline": "確定付款及繳費最後限期", | |||
"before": "前", | |||
"page": "頁", | |||
"proofReplyDate": "校對回覆日期", | |||