// material-ui import { Button, CardContent, 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 ComboData from "utils/ComboData"; import * as DateUtils from "utils/DateUtils"; import * as FormatUtils from "utils/FormatUtils"; import { FormattedMessage, useIntl } from "react-intl"; import { PNSPS_BUTTON_THEME } from "../../../themes/buttonConst"; import { ThemeProvider } from "@emotion/react"; import { makeStyles } from '@mui/styles'; // ==============================|| DASHBOARD - DEFAULT ||============================== // const useStyles = makeStyles(() => ({ root: { position: "relative" }, display: { position: "absolute", top: 2, left: 12, bottom: 2, background: "white", pointerEvents: "none", right: 50, display: "flex", alignItems: "center" }, })); const SearchDemandNoteForm = ({ applySearch, searchCriteria, issueComboData }) => { const intl = useIntl(); const { locale } = intl; const [type, setType] = React.useState([]); const [issueSelected, setIssueSelected] = React.useState({ key: 0, i18nLabel: 'all', labelCht: '全部', label: 'All', type: 'all' }); const [issueCombo, setIssueCombo] = React.useState([]); const [selectedStatus, setSelectedStatus] = React.useState(ComboData.denmandNoteStatus_Public[0]); const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom); const [maxDate, setMaxDate] = React.useState(searchCriteria.dateTo); const [fromDateValue, setFromDateValue] = React.useState("dd / mm / yyyy"); const [toDateValue, setToDateValue] = React.useState("dd / mm / yyyy"); React.useEffect(() => { setFromDateValue(minDate); }, [minDate]); React.useEffect(() => { setToDateValue(maxDate); }, [maxDate]); function FormDateInputComponent({ inputRef, ...props }) { const classes = useStyles(); return ( <>
{DateUtils.dateStr(fromDateValue) == "Invalid Date" ? fromDateValue : DateUtils.dateStr(fromDateValue)}
); } function ToDateInputComponent({ inputRef, ...props }) { const classes = useStyles(); return ( <>
{DateUtils.dateStr(toDateValue) == "Invalid Date" ? toDateValue : DateUtils.dateStr(toDateValue)}
); } const { reset, register, handleSubmit } = useForm() const onSubmit = (data) => { let typeArray = []; let sentDateFrom = ""; let sentDateTo = ""; for (let i = 0; i < type.length; i++) { typeArray.push(type[i].label); } if (fromDateValue != "dd / mm / yyyy" && toDateValue != "dd / mm / yyyy") { sentDateFrom = DateUtils.dateValue(fromDateValue) sentDateTo = DateUtils.dateValue(toDateValue) } const temp = { appNo: data.appNo, issueId: issueSelected?.id, dnNo: data.dnNo, sentDateFrom: sentDateFrom, sentDateTo: sentDateTo, status: (selectedStatus?.type && selectedStatus?.type != 'all') ? selectedStatus?.type : "", }; // console.log(temp) applySearch(temp); }; React.useEffect(() => { if (issueComboData && issueComboData.length > 0) { setIssueCombo(issueComboData); } }, [issueComboData]); function resetForm() { setType([]); // setStatus({ key: 0, label: 'All', type: 'all' }); // setOrgSelected({}); setMinDate(DateUtils.dateValue(new Date().setDate(new Date().getDate()-14))) setMaxDate(DateUtils.dateValue(new Date())) setIssueSelected({}); reset(); } function getIssueLabel(data) { let issueYear = data.issueYear let volume = data.volume; let issueNo = data.issueNo; let issueDate = data.issueDate; if (locale === 'zh-HK') { return issueYear + " 第" + volume + "卷," + " 第" + issueNo + "期," + " " + DateUtils.dateFormat(issueDate, "YYYY年MM月DD日") + " (" + DateUtils.getWeekdayStr_ZH(issueDate) + ")"; } else if (locale === 'zh-CN') { return issueYear + " 第" + volume + "卷," + " 第" + issueNo + "期," + " " + DateUtils.dateFormat(issueDate, "YYYY年MM月DD日") + " (" + DateUtils.getWeekdayStr_CN(issueDate) + ")"; } return issueYear + " Vol. " + FormatUtils.zeroPad(volume, 3) + ", No. " + FormatUtils.zeroPad(issueNo, 2) + ", " + DateUtils.dateFormat(issueDate, "D MMM YYYY (ddd)"); } return (
{/*row 1*/} {/*row 2*/} getIssueLabel(option)} onChange={(event, newValue) => { if (newValue !== null) { setIssueSelected(newValue); } }} renderInput={(params) => ( )} /> { if(newValue.target.value!=""){ setMinDate(newValue.target.value); } }} InputLabelProps={{ shrink: true }} /> { if(newValue.target.value!=""){ setMaxDate(newValue.target.value); } }} id="dateTo" type="date" label={intl.formatMessage({ id: 'sendDateTo' })} defaultValue={searchCriteria.dateTo} /> option?.i18nLabel ? intl.formatMessage({ id: option.i18nLabel }) : ""} inputValue={selectedStatus?.i18nLabel ? intl.formatMessage({ id: selectedStatus.i18nLabel }) : ""} value={selectedStatus} onChange={(event, newValue) => { if (newValue !== null) { setSelectedStatus(newValue); } }} renderInput={(params) => ( )} InputLabelProps={{ shrink: true }} /> {/*last row*/}
); }; export default SearchDemandNoteForm;