Browse Source

fix holiday with year selected

master
Alex Cheung 1 year ago
parent
commit
2d24120894
5 changed files with 90 additions and 55 deletions
  1. +1
    -1
      src/layout/MainLayout/Header/index.js
  2. +7
    -10
      src/pages/Holiday/Search_GLD/DataGrid.js
  3. +47
    -31
      src/pages/Holiday/Search_GLD/SearchForm.js
  4. +33
    -12
      src/pages/Holiday/Search_GLD/index.js
  5. +2
    -1
      src/utils/ApiPathConst.js

+ 1
- 1
src/layout/MainLayout/Header/index.js View File

@@ -361,7 +361,7 @@ function Header(props) {
alignItems="center" alignItems="center"
spacing={0} spacing={0}
> >
<Box sx={{ display: { xs: 'none', sm: 'none', md: 'block' } }}>
<Box mt={0.5} sx={{ display: { xs: 'none', sm: 'none', md: 'block' } }}>
<AdminLogo /> <AdminLogo />
</Box> </Box>
<IconButton <IconButton


+ 7
- 10
src/pages/Holiday/Search_GLD/DataGrid.js View File

@@ -15,27 +15,24 @@ export default function EmailTemplateTable({ recordList }) {
// const navigate = useNavigate() // const navigate = useNavigate()


useEffect(() => { useEffect(() => {
console.log(recordList)
setRows(recordList); setRows(recordList);
}, [recordList]); }, [recordList]);


// const handleEditClick = (id) => () => {
// navigate('/emailTemplate/' + id);
// };

const columns = [ const columns = [
{ {
id: 'holiday_DAY',
field: 'holiday_DAY',
id: 'HOLIDAY_DAY',
field: 'HOLIDAY_DAY',
headerName: 'Date', headerName: 'Date',
flex: 4, flex: 4,
renderCell: (params) => { renderCell: (params) => {
let holiday_DAY = params.row.holiday_DAY;
return <div style={{ margin: 4 }}>{dateStr(holiday_DAY)}</div>
let HOLIDAY_DAY = params.row.HOLIDAY_DAY;
return <div style={{ margin: 4 }}>{dateStr(HOLIDAY_DAY)}</div>
}, },
}, },
{ {
id: 'description',
field: 'description',
id: 'DESCRIPTION',
field: 'DESCRIPTION',
headerName: 'Description', headerName: 'Description',
flex: 5, flex: 5,
}, },


+ 47
- 31
src/pages/Holiday/Search_GLD/SearchForm.js View File

@@ -3,7 +3,7 @@ import {
Button, Button,
Grid, Grid,
TextField, TextField,
// Autocomplete,
Autocomplete,
Typography Typography
} from '@mui/material'; } from '@mui/material';
import MainCard from "components/MainCard"; import MainCard from "components/MainCard";
@@ -16,25 +16,38 @@ import {ThemeProvider} from "@emotion/react";
// ==============================|| DASHBOARD - DEFAULT ||============================== // // ==============================|| DASHBOARD - DEFAULT ||============================== //




const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => {
const SearchPublicNoticeForm = ({ applySearch, comboData}) => {
const [selectedYear, setSelectedYear] = React.useState([]);
// const [defaultYear, setDefaultYear] = React.useState(searchCriteria.year);
const [comboList, setComboList] = React.useState([]);
// const [onReady, setOnReady] = React.useState(false);


// const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom);
const [maxDate] = React.useState(searchCriteria.dateFrom);
// const [status, setStatus] = React.useState(ComboData.paymentStatus[0]);
const {
// register,
handleSubmit } = useForm()


const { register, handleSubmit } = useForm()

const onSubmit = (data) => {
const temp = {
// code: data.code,
// transNo: data.transNo,
dateFrom: data.dateFrom,
dateTo: data.dateTo,
// status : (status?.type && status?.type != 'all') ? status?.type : "",
};
applySearch(temp);
const onSubmit = () => {
if (selectedYear !=null){
const temp = {
year: selectedYear.label,
};
applySearch(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 ( return (
<MainCard xs={12} md={12} lg={12} <MainCard xs={12} md={12} lg={12}
@@ -45,29 +58,32 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => {
<form onSubmit={handleSubmit(onSubmit)} > <form onSubmit={handleSubmit(onSubmit)} >
<Grid container sx={{ backgroundColor: '#ffffff', ml: 2, mt: 1}} width="98%"> <Grid container sx={{ backgroundColor: '#ffffff', ml: 2, mt: 1}} width="98%">
{/*row 1*/} {/*row 1*/}
<Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:2.5}}>
<Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:1}}>
<Typography variant="h5" > <Typography variant="h5" >
Date
Year
</Typography> </Typography>
</Grid> </Grid>
{/*row 2*/} {/*row 2*/}


<Grid container display="flex" alignItems={"center"}> <Grid container display="flex" alignItems={"center"}>
<Grid item xs={9} s={6} md={4} lg={4} sx={{ ml: 3, mr: 3, mb: 3 }}> <Grid item xs={9} s={6} md={4} lg={4} sx={{ ml: 3, mr: 3, mb: 3 }}>
<TextField
fullWidth
{...register("dateFrom")}
id="dateFrom"
type="date"
label="Credit Date"
defaultValue={searchCriteria.dateFrom}
InputProps={{ inputProps: { max: maxDate } }}
// onChange={(newValue) => {
// setMinDate(DateUtils.dateStr(newValue));
// }}
InputLabelProps={{
shrink: true
<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>




+ 33
- 12
src/pages/Holiday/Search_GLD/index.js View File

@@ -38,10 +38,11 @@ import { notifySaveSuccess } from 'utils/CommonFunction';
const Index = () => { const Index = () => {


const [record, setRecord] = React.useState([]); const [record, setRecord] = React.useState([]);
const [comboData, setComboData] = React.useState([]);
const [onReady, setOnReady] = React.useState(false); const [onReady, setOnReady] = React.useState(false);
// const navigate = useNavigate() // const navigate = useNavigate()
const [searchCriteria, setSearchCriteria] = React.useState({ const [searchCriteria, setSearchCriteria] = React.useState({
dateFrom: dateStr_Year(new Date()),
year: dateStr_Year(new Date()),
// dateFrom: DateUtils.dateStr(new Date().setDate(new Date().getDate()-14)), // dateFrom: DateUtils.dateStr(new Date().setDate(new Date().getDate()-14)),
}); });
const [attachments, setAttachments] = React.useState([]); const [attachments, setAttachments] = React.useState([]);
@@ -49,20 +50,41 @@ const Index = () => {
const [isWarningPopUp, setIsWarningPopUp] = React.useState(false); const [isWarningPopUp, setIsWarningPopUp] = React.useState(false);
const [warningText, setWarningText] = React.useState(""); const [warningText, setWarningText] = React.useState("");


React.useLayoutEffect(() => {
loadForm();
}, []);
// React.useLayoutEffect(() => {
// loadForm();
// }, []);


React.useLayoutEffect(() => { React.useLayoutEffect(() => {
setOnReady(true);
}, [record]);
if (comboData && comboData.length > 0) {
setOnReady(true);
}
}, [comboData]);


const loadForm = () => {
React.useEffect(() => {
// console.log(searchCriteria)
loadForm();
}, [searchCriteria]);

function loadForm() {
HttpUtils.get({ HttpUtils.get({
url: UrlUtils.GET_HOLIDAY, url: UrlUtils.GET_HOLIDAY,
params: searchCriteria,
onSuccess: (responseData) => { onSuccess: (responseData) => {
console.log(dateStr_Year(new Date()))
console.log(comboData)
setRecord(responseData); setRecord(responseData);
if (comboData.length == 0) {
loadCombo();
}
}
});
}

function loadCombo() {
HttpUtils.get({
url: UrlUtils.GET_HOLIDAY_COMBO,
onSuccess: (responseData) => {
let combo = responseData;
setComboData(combo);
} }
}); });
} }
@@ -72,11 +94,9 @@ const Index = () => {
} }


React.useEffect(() => { React.useEffect(() => {
if (!attachments || attachments.length <= 0) {
setAttachments([]);
return;
if (attachments.length > 0) {
importHoliday();
} }
importHoliday();
}, [attachments]); }, [attachments]);


const readFile = (event) => { const readFile = (event) => {
@@ -166,6 +186,7 @@ const Index = () => {
applySearch={applySearch} applySearch={applySearch}
// generateXML={generateXML} // generateXML={generateXML}
searchCriteria={searchCriteria} searchCriteria={searchCriteria}
comboData={comboData}
/> />
</Grid> </Grid>
{/*row 2*/} {/*row 2*/}


+ 2
- 1
src/utils/ApiPathConst.js View File

@@ -171,4 +171,5 @@ export const GEN_GFMIS_XML = apiPath+'/gfmis'; //GET


//Holiday //Holiday
export const GET_HOLIDAY = apiPath+'/holiday/list'; //GET export const GET_HOLIDAY = apiPath+'/holiday/list'; //GET
export const POST_HOLIDAY = apiPath+'/holiday/import'; //POST
export const POST_HOLIDAY = apiPath+'/holiday/import'; //POST
export const GET_HOLIDAY_COMBO = apiPath+'/holiday/combo'; //GET

Loading…
Cancel
Save