Просмотр исходного кода

fix holiday with year selected

master
Alex Cheung 1 год назад
Родитель
Сommit
2d24120894
5 измененных файлов: 90 добавлений и 55 удалений
  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 Просмотреть файл

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


+ 7
- 10
src/pages/Holiday/Search_GLD/DataGrid.js Просмотреть файл

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

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

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

const columns = [
{
id: 'holiday_DAY',
field: 'holiday_DAY',
id: 'HOLIDAY_DAY',
field: 'HOLIDAY_DAY',
headerName: 'Date',
flex: 4,
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',
flex: 5,
},


+ 47
- 31
src/pages/Holiday/Search_GLD/SearchForm.js Просмотреть файл

@@ -3,7 +3,7 @@ import {
Button,
Grid,
TextField,
// Autocomplete,
Autocomplete,
Typography
} from '@mui/material';
import MainCard from "components/MainCard";
@@ -16,25 +16,38 @@ import {ThemeProvider} from "@emotion/react";
// ==============================|| 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 (
<MainCard xs={12} md={12} lg={12}
@@ -45,29 +58,32 @@ const SearchPublicNoticeForm = ({ applySearch, searchCriteria }) => {
<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:2.5}}>
<Grid item justifyContent="space-between" alignItems="center" sx={{mt:1,ml:3,mb:1}}>
<Typography variant="h5" >
Date
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 }}>
<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>



+ 33
- 12
src/pages/Holiday/Search_GLD/index.js Просмотреть файл

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

const [record, setRecord] = React.useState([]);
const [comboData, setComboData] = React.useState([]);
const [onReady, setOnReady] = React.useState(false);
// const navigate = useNavigate()
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)),
});
const [attachments, setAttachments] = React.useState([]);
@@ -49,20 +50,41 @@ const Index = () => {
const [isWarningPopUp, setIsWarningPopUp] = React.useState(false);
const [warningText, setWarningText] = React.useState("");

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

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({
url: UrlUtils.GET_HOLIDAY,
params: searchCriteria,
onSuccess: (responseData) => {
console.log(dateStr_Year(new Date()))
console.log(comboData)
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(() => {
if (!attachments || attachments.length <= 0) {
setAttachments([]);
return;
if (attachments.length > 0) {
importHoliday();
}
importHoliday();
}, [attachments]);

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


+ 2
- 1
src/utils/ApiPathConst.js Просмотреть файл

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

//Holiday
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

Загрузка…
Отмена
Сохранить