Browse Source

비행승인 신청 검토결과 현황 팝업 데이터 동기화

master
김장현 2 months ago
parent
commit
2b866bbc34
  1. 22
      src/components/flight/NewFlightApprovalsReport.js
  2. 18
      src/containers/flight/ControlApprovalsContainer.js
  3. 17
      src/containers/flight/OperationApprovalsContainer.js
  4. 26
      src/containers/flight/popup/OperationApprovalsPopupContainer.js

22
src/components/flight/NewFlightApprovalsReport.js

@ -1,4 +1,4 @@
import { useState, useEffect } from 'react'; import { useState, useEffect, useRef } from 'react';
import Flatpickr from 'react-flatpickr'; import Flatpickr from 'react-flatpickr';
import { Button, Input, CustomInput, Col, Row } from '@component/ui'; import { Button, Input, CustomInput, Col, Row } from '@component/ui';
import { Search, Calendar } from 'react-feather'; import { Search, Calendar } from 'react-feather';
@ -12,7 +12,8 @@ export default function NewFlightApprovalsReport(props) {
startDate: dayjs().format('YYYY-MM-DD'), startDate: dayjs().format('YYYY-MM-DD'),
endDate: dayjs().format('YYYY-MM-DD') endDate: dayjs().format('YYYY-MM-DD')
}); });
const location = useLocation();
const flatPickerRef = useRef(null);
useEffect(() => { useEffect(() => {
const popupSyncSearchData = JSON.parse(localStorage.getItem('popupState')); const popupSyncSearchData = JSON.parse(localStorage.getItem('popupState'));
@ -24,10 +25,11 @@ export default function NewFlightApprovalsReport(props) {
address: popupSyncSearchData.address address: popupSyncSearchData.address
}); });
props.setFilterId(popupSyncSearchData.filter); props.setFilterId(popupSyncSearchData.filter);
setSearchDate({
startDate: popupSyncSearchData.startDate, flatPickerRef.current.flatpickr.setDate(
endDate: popupSyncSearchData.endDate [popupSyncSearchData.startDate, popupSyncSearchData.endDate],
}); true
);
localStorage.removeItem('popupState'); localStorage.removeItem('popupState');
} }
}, []); }, []);
@ -51,6 +53,7 @@ export default function NewFlightApprovalsReport(props) {
<div className='list-input'> <div className='list-input'>
<div className='calendar-flat'> <div className='calendar-flat'>
<Flatpickr <Flatpickr
ref={flatPickerRef}
placeholder='날짜를 선택해주세요' placeholder='날짜를 선택해주세요'
id='searchDate' id='searchDate'
options={{ options={{
@ -146,13 +149,14 @@ export default function NewFlightApprovalsReport(props) {
<div className='list-input list-input-btn'> <div className='list-input list-input-btn'>
<Button <Button
color='primary' color='primary'
onClick={() => onClick={() => {
console.log(searchDate);
props.handlerSearch( props.handlerSearch(
props.filterId, props.filterId,
searchDate, searchDate,
props.filterArea props.filterArea
) );
} }}
size='sm' size='sm'
> >
검색 검색

18
src/containers/flight/ControlApprovalsContainer.js

@ -122,18 +122,6 @@ export default function ControlApprovalsContainer({ mode }) {
const { payload } = e.data; const { payload } = e.data;
console.log(payload); console.log(payload);
switch (type) { switch (type) {
case 'initalState':
popupRef.current.postMessage({
type: 'initalState',
payload: {
filter,
selected,
startDate,
endDate
}
});
return;
case 'search': case 'search':
const { search, searchDate, filterArea } = payload; const { search, searchDate, filterArea } = payload;
@ -293,12 +281,6 @@ export default function ControlApprovalsContainer({ mode }) {
} }
// ); // );
setFilter(search); setFilter(search);
if (isPopup) {
popupRef.current.postMessage({
type: 'handlerSearchRs',
payload: { search }
});
}
}; };
const handlerDetail = area => { const handlerDetail = area => {

17
src/containers/flight/OperationApprovalsContainer.js

@ -166,17 +166,6 @@ export default function OperationApprovalsContainer({ mode }) {
const { payload } = e.data; const { payload } = e.data;
// console.log(payload); // console.log(payload);
switch (type) { switch (type) {
case 'initalState':
popupRef.current.postMessage({
type: 'initalState',
payload: {
filter,
selected,
startDate,
endDate
}
});
return;
case 'search': case 'search':
const { search, searchDate, filterArea } = payload; const { search, searchDate, filterArea } = payload;
@ -337,12 +326,6 @@ export default function OperationApprovalsContainer({ mode }) {
} }
// ); // );
setFilter(search); setFilter(search);
if (isPopup) {
popupRef.current.postMessage({
type: 'handlerSearchRs',
payload: { search }
});
}
}; };
//현재 선택한 sno 및 areacoordList 저장 //현재 선택한 sno 및 areacoordList 저장

26
src/containers/flight/popup/OperationApprovalsPopupContainer.js

@ -24,7 +24,7 @@ function OperationApprovalsPopupContainer() {
const dispatch = useDispatch(); const dispatch = useDispatch();
useEffect(() => { useEffect(() => {
handlerOpnerPostMessage('initalState', null); // handlerOpnerPostMessage('initalState', null);
window.addEventListener('message', opnerMessage); window.addEventListener('message', opnerMessage);
return () => { return () => {
@ -32,19 +32,22 @@ function OperationApprovalsPopupContainer() {
}; };
}, []); }, []);
// 부모창에서 보내는 메세지
const opnerMessage = e => { const opnerMessage = e => {
const { type } = e.data; const { type } = e.data;
const { payload } = e.data; const { payload } = e.data;
switch (type) { switch (type) {
case 'initalState': // case 'initalState':
setFilter(payload.filter); // setFilterId(payload.filterId);
setSelected([payload.selected]); // // setFilterArea(payload.filterArea);
setSelectedPlanSno(payload.selectedPlanSno); // setFilter(payload.filter);
setStartDate(payload.startDate); // setSelected([payload.selected]);
setEndDate(payload.endDate); // setSelectedPlanSno(payload.selectedPlanSno);
// setStartDate(payload.startDate);
return; // setEndDate(payload.endDate);
// return;
case 'matchingRow': case 'matchingRow':
handlerMatchingRow(payload.selected, payload.targetValue); handlerMatchingRow(payload.selected, payload.targetValue);
@ -72,6 +75,7 @@ function OperationApprovalsPopupContainer() {
} }
}; };
// 부모에게 보내는 메세지
const handlerOpnerPostMessage = (type, payload) => { const handlerOpnerPostMessage = (type, payload) => {
switch (type) { switch (type) {
case 'initalState': case 'initalState':
@ -175,10 +179,6 @@ function OperationApprovalsPopupContainer() {
handlerOpnerPostMessage('detail', { area }); handlerOpnerPostMessage('detail', { area });
}; };
const handleBeforeUnload = () => {
handlerOpnerPostMessage('closedSync', '');
};
return ( return (
<div className='right-menu active'> <div className='right-menu active'>
<div <div

Loading…
Cancel
Save