From 377bb784799a7c1aea84d5f16de8fc6202b800bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?scnoh=28=EB=85=B8=EC=8A=B9=EC=B2=A0=29?= Date: Tue, 2 Aug 2022 19:46:47 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=ED=96=89=20=EA=B5=AC=EC=97=AD=20?= =?UTF-8?q?=EC=B4=88=EA=B8=B0=ED=99=94=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basis/flight/plan/FlightPlanForm.js | 1 + .../map/naver/draw/FlightPlanDrawTest.js | 3 +-- .../basis/flight/plan/FlightPlanAreaContainer.js | 2 +- .../flight/plan/FlightPlanAreaDetailContainer.js | 2 +- .../basis/flight/plan/FlightPlanContainer.js | 7 +++++-- .../flight/plan/FlightPlanDetailContainer.js | 16 ++++++++++++---- .../basis/flight/actions/basisFlightAction.ts | 9 ++++++++- .../basis/flight/reducers/basisFlightReducer.ts | 11 +++++++++-- 8 files changed, 38 insertions(+), 13 deletions(-) diff --git a/src/components/basis/flight/plan/FlightPlanForm.js b/src/components/basis/flight/plan/FlightPlanForm.js index 8ede4e8f..3487aa3f 100644 --- a/src/components/basis/flight/plan/FlightPlanForm.js +++ b/src/components/basis/flight/plan/FlightPlanForm.js @@ -18,6 +18,7 @@ import { FlightPlanModal } from './FlightPlanModal'; import FlightPlanArcrftContainer from '../../../../containers/basis/flight/plan/FlightPlanArcrftContainer'; import FlightPlanAreaContainer from '../../../../containers/basis/flight/plan/FlightPlanAreaContainer'; import { X } from 'react-feather'; +import { useDispatch } from 'react-redux'; const FlightPlanForm = ({data, handleModal, handleChange, handleSave, handleDelete, modal, handleDeleteArray }) => { diff --git a/src/components/map/naver/draw/FlightPlanDrawTest.js b/src/components/map/naver/draw/FlightPlanDrawTest.js index 6a59029c..da4df93d 100644 --- a/src/components/map/naver/draw/FlightPlanDrawTest.js +++ b/src/components/map/naver/draw/FlightPlanDrawTest.js @@ -475,8 +475,7 @@ export const FlightPlanDrawTest = props => { const handleDetailDrwa = () => { if (props.areaCoordList) { - console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') - + console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>') const areas = props.areaCoordList[0]; diff --git a/src/containers/basis/flight/plan/FlightPlanAreaContainer.js b/src/containers/basis/flight/plan/FlightPlanAreaContainer.js index 0d457e7f..3ae27cb3 100644 --- a/src/containers/basis/flight/plan/FlightPlanAreaContainer.js +++ b/src/containers/basis/flight/plan/FlightPlanAreaContainer.js @@ -29,7 +29,7 @@ const FlightPlanAreaContainer = ({handleModal}) => { dispatch(Actions.AREA_COORDINATE_LIST_SAVE(areaList)) } - useEffect(() => { + useEffect(() => { dispatch(drawTypeChangeAction('')); getAirAreaList(); }, []); diff --git a/src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js b/src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js index 9091b5d2..c6e54435 100644 --- a/src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js +++ b/src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js @@ -9,7 +9,7 @@ import {initFlightBas} from '../../../../modules/basis/flight/models/basisFlight const FlightPlanAreaDetailContainer = ({ handleModal }) => { const dispatch = useDispatch(); - const { areaCoordList, areaList, detail } = useSelector(state => state.flightState); + const { areaCoordList, detail } = useSelector(state => state.flightState); const [areaDetail, setAreaDetail] = useState(initFlightBas.initDetail.areaList); const handleClose = (status) => { diff --git a/src/containers/basis/flight/plan/FlightPlanContainer.js b/src/containers/basis/flight/plan/FlightPlanContainer.js index 83d583bd..033ea4cd 100644 --- a/src/containers/basis/flight/plan/FlightPlanContainer.js +++ b/src/containers/basis/flight/plan/FlightPlanContainer.js @@ -13,7 +13,7 @@ import FlightPlanGroupGrid from '../../../../components/basis/flight/plan/Flight const initSearchData = { - schFltStDt: moment().set({'date': 1, 'h': 0, 'm': 0, 's': 0}).format('YYYY-MM-DD HH:mm:ss'), + schFltStDt: moment().set({'m': 7, 'date': 1, 'h': 0, 'm': 0, 's': 0}).format('YYYY-MM-DD HH:mm:ss'), schFltEndDt: moment().set({'h': 23, 'm': 59, 's': 59}).format('YYYY-MM-DD HH:mm:ss'), aprvlYn: 'N', groupId: '', @@ -24,7 +24,7 @@ const FlightPlanContainer = () => { const dispatch = useDispatch(); const history = useHistory(); const [searchData, setSerchData] = useState(initSearchData); - const {list: planListData, detail: planDetailData, selectGroup} = useSelector(state => state.flightState); + const {list: planListData, detail: planDetailData, selectGroup, areaCoordList } = useSelector(state => state.flightState); const { joinList, joinListCount } = useSelector(state => state.groupState); const { user } = useSelector(state => state.authState, shallowEqual); @@ -35,6 +35,9 @@ const FlightPlanContainer = () => { if(planDetailData){ dispatch(FlightAction.FLIGHT_PLAN_DETAIL_INIT()); } + if(areaCoordList) { + dispatch(FlightAction.AREA_DETAIL_INIT()); + } history.push('/basis/flight/plan/create'); }; diff --git a/src/containers/basis/flight/plan/FlightPlanDetailContainer.js b/src/containers/basis/flight/plan/FlightPlanDetailContainer.js index f27539b8..fd9d613d 100644 --- a/src/containers/basis/flight/plan/FlightPlanDetailContainer.js +++ b/src/containers/basis/flight/plan/FlightPlanDetailContainer.js @@ -101,7 +101,7 @@ const FlightPlanDetailContainer = () => { } }, [arcrftSelect]) - useEffect(() => { + useEffect(() => { if(areaList !== undefined) { const areas = detailData.areaList.concat(); @@ -135,17 +135,25 @@ const FlightPlanDetailContainer = () => { ...prevState, ['areaList']: createAreaList } - }) + }) + + // dispatch(Actions.AREA_DETAIL_INIT()); } }, [areaList]); useEffect(() => { // 조종사, 기체 정보 Redux 초기화 - dispatch(Actions.PILOT_ARCRFT_SELECT_INIT()); - }) + dispatch(Actions.PILOT_ARCRFT_SELECT_INIT()); + }, []); const handleModal = (modal) => { + if(modal.target === 'area' && modal.isOpen) { + if(detailData.areaList) { + dispatch(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.request(detailData.areaList)); + } + } + setModal(prevState => ({ ...initModal, [modal.target]: modal.isOpen diff --git a/src/modules/basis/flight/actions/basisFlightAction.ts b/src/modules/basis/flight/actions/basisFlightAction.ts index 469fd190..32021151 100644 --- a/src/modules/basis/flight/actions/basisFlightAction.ts +++ b/src/modules/basis/flight/actions/basisFlightAction.ts @@ -75,6 +75,9 @@ const AREA_DETAIL_LIST = 'basis/flight/plan/area/DETAIL_LIST'; // 비행계획서 그룹 선택 const ROUP_SELECT = 'basis/flight/plan/group/select'; +// 조종사, 기체 선택 초기화 +const AREA_DETAIL_INITIAL = 'basis/flight/plan/detail/AREA_DETAIL_INIT'; + // 버퍼 좌표 가져오기 const AREA_BUFFER_LIST_REQUEST = 'basis/flight/plan/area/BUFFER_LIST_REQUEST'; const AREA_BUFFER_LIST_SUCCESS = 'basis/flight/plan/area/BUFFER_LIST_SUCCESS'; @@ -160,6 +163,9 @@ export const AREA_DETAIL_LIST_SAVE = createAction(AREA_DETAIL_LIST)(); +// 비행 구역 상세 값 초기화 +export const AREA_DETAIL_INIT = createAction(AREA_DETAIL_INITIAL)(); + // 버퍼 좌표 가져오기 export const FLIGHT_PLAN_AREA_BUFFER_LIST = createAsyncAction( AREA_BUFFER_LIST_REQUEST, @@ -184,7 +190,8 @@ const actions = { AREA_COORDINATE_LIST_SAVE, AREA_DETAIL_LIST_SAVE, FLIGHT_PLAN_GROUP_SELECT, - FLIGHT_PLAN_AREA_BUFFER_LIST + FLIGHT_PLAN_AREA_BUFFER_LIST, + AREA_DETAIL_INIT }; export type FlightAction = ActionType; diff --git a/src/modules/basis/flight/reducers/basisFlightReducer.ts b/src/modules/basis/flight/reducers/basisFlightReducer.ts index 1f47a098..9f87ac1e 100644 --- a/src/modules/basis/flight/reducers/basisFlightReducer.ts +++ b/src/modules/basis/flight/reducers/basisFlightReducer.ts @@ -71,7 +71,7 @@ export const flightReducer = createReducer(in produce(state, draft => { draft.arcrftSelect = undefined; draft.pilotSelect = undefined; - draft.areaList = undefined; + // draft.areaList = undefined; // draft.areaCoordList = undefined; }) ) @@ -97,10 +97,17 @@ export const flightReducer = createReducer(in draft.selectGroup = data; }) ) - // 비행 계획서 그룹 선택 + // 비행 계획서 버퍼 영역 조회 .handleAction(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.success, (state, action) => produce(state, draft => { const data = action.payload; draft.areaCoordList = data; }) ) + // 조종사, 기체 선택 초기화 + .handleAction(Actions.AREA_DETAIL_INIT, (state, action) => + produce(state, draft => { + draft.areaList = undefined; + draft.areaCoordList = undefined; + }) + )