Browse Source

비행계획서 - 비행 시작 후 수정 불가

pull/2/head
junh_eee(이준희) 2 years ago
parent
commit
b56edf7892
  1. 134
      src/components/basis/flight/plan/FlightPlanAreaDetailForm.js
  2. 11
      src/components/basis/flight/plan/FlightPlanAreaMap.js
  3. 135
      src/components/basis/flight/plan/FlightPlanForm.js
  4. 15
      src/components/map/naver/draw/FlightPlanDraw.js
  5. 88
      src/containers/basis/flight/plan/FlightPlanAreaContainer.js
  6. 53
      src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js
  7. 1033
      src/containers/basis/flight/plan/FlightPlanDetailContainer.js

134
src/components/basis/flight/plan/FlightPlanAreaDetailForm.js

@ -10,8 +10,16 @@ import {
Button
} from 'reactstrap';
const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handleBufferList, data, mapControl, test }) => {
const FlightPlanAreaDetailForm = ({
handleSave,
handleClose,
handleChange,
handleBufferList,
data,
mapControl,
test,
isDone
}) => {
const coordList = data ? data[0].coordList : null;
return (
@ -36,14 +44,23 @@ const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handl
<div className='search-info-box'>
<Row>
{coordList ?
{coordList ? (
coordList.map((coord, idx) => {
const latlon = coord.lat + ' / ' + coord.lon;
return (
<Col key={idx} className='list-input' lg={6} md={6} sm={12}>
<Col
key={idx}
className='list-input'
lg={6}
md={6}
sm={12}
>
<FormGroup>
<Label for='test'><span className='necessary'>*</span> {idx + 1} </Label>
<Label for='test'>
<span className='necessary'>*</span>{' '}
{idx + 1}{' '}
</Label>
<Input
type='text'
name='coord'
@ -54,12 +71,14 @@ const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handl
/>
</FormGroup>
</Col>
)
);
})
:
) : (
<Col className='list-input' lg={6} md={6} sm={12}>
<FormGroup>
<Label for='test'><span className='necessary'>*</span> 1</Label>
<Label for='test'>
<span className='necessary'>*</span> 1
</Label>
<Input
type='text'
name='coord'
@ -69,8 +88,7 @@ const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handl
/>
</FormGroup>
</Col>
}
)}
</Row>
</div>
</dt>
@ -85,65 +103,88 @@ const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handl
<Col className='list-input' lg={6} md={6} sm={12}>
<FormGroup className='m_ft'>
<div className='m_ft_box'>
<Label for='test'><span className='necessary'>*</span>(m)</Label>
{test ?
<Label for='test'>
<span className='necessary'>*</span>(m)
</Label>
{test || isDone ? (
<Input
type='text'
id='bufferZone'
name='bufferZone'
bsSize='sm'
readOnly={test}
// readOnly={test}
disabled={test || isDone}
placeholder='반경'
value={data[0].bufferZone ? data[0].bufferZone : ''}
onChange={(e) => {
value={
data[0].bufferZone
? data[0].bufferZone
: ''
}
onChange={e => {
const { name, value } = e.target;
handleChange({
name,
value
})
});
}}
/>
:
) : (
<Input
type='text'
id='bufferZone'
name='bufferZone'
bsSize='sm'
readOnly={coordList[0].lat && (data[0].areaType && data[0].areaType != ("POLYGON")) ? false : true}
readOnly={
coordList[0].lat &&
data[0].areaType &&
data[0].areaType != 'POLYGON'
? false
: true
}
placeholder='반경'
value={data[0].bufferZone ? data[0].bufferZone : ''}
onChange={(e) => {
value={
data[0].bufferZone
? data[0].bufferZone
: ''
}
onChange={e => {
const { name, value } = e.target;
handleChange({
name,
value
})
});
}}
/>
}
)}
</div>
<div className='m_ft_box'>
{test ?
{test || isDone ? (
<Button.Ripple
className='mr-1'
color='primary'
size='sm'
disabled={test}
disabled={test || isDone}
onClick={() => handleBufferList()}
>
적용
</Button.Ripple>
:
) : (
<Button.Ripple
className='mr-1'
color='primary'
size='sm'
disabled={coordList[0].lat && (data[0].areaType && data[0].areaType != ("POLYGON")) ? false : true}
disabled={
coordList[0].lat &&
data[0].areaType &&
data[0].areaType != 'POLYGON'
? false
: true
}
onClick={() => handleBufferList()}
>
적용
</Button.Ripple>
}
)}
</div>
</FormGroup>
</Col>
@ -153,23 +194,26 @@ const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handl
<Row>
<Col className='list-input' lg={6} md={6} sm={12}>
<FormGroup>
<Label for='test'><span className='necessary'>*</span>(ft)</Label>
<Label for='test'>
<span className='necessary'>*</span>(ft)
</Label>
<Input
readOnly={test}
// readOnly={test}
type='text'
id='fltElev'
name='fltElev'
bsSize='sm'
placeholder='고도'
value={data[0].fltElev ? data[0].fltElev : ''}
onChange={(e) => {
onChange={e => {
const { name, value } = e.target;
handleChange({
name,
value
})
});
}}
disabled={test || isDone}
/>
</FormGroup>
</Col>
@ -179,22 +223,27 @@ const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handl
<Row>
<Col className='list-input' lg={6} md={6} sm={12}>
<FormGroup>
<Label for='test'><span className='necessary'>*</span> </Label>
<Label for='test'>
<span className='necessary'>*</span>
</Label>
<Input
readOnly={test}
// readOnly={test}
type='text'
id='fltMethod'
name='fltMethod'
bsSize='sm'
placeholder='비행 방식'
value={data[0].fltMethod ? data[0].fltMethod : ''}
onChange={(e) => {
value={
data[0].fltMethod ? data[0].fltMethod : ''
}
onChange={e => {
const { name, value } = e.target;
handleChange({
name,
value
})
});
}}
disabled={test || isDone}
/>
</FormGroup>
</Col>
@ -205,18 +254,17 @@ const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handl
</div>
<div className='d-flex align-items-center mt-2'>
{test ?
{test || isDone ? (
<Button.Ripple
type='submit'
className='mr-1'
color='primary'
onClick={e => handleSave()}
disabled={test}
disabled={test || isDone}
>
등록
</Button.Ripple>
:
) : (
<Button.Ripple
type='submit'
className='mr-1'
@ -226,7 +274,7 @@ const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handl
>
등록
</Button.Ripple>
}
)}
<Button.Ripple
className='mr-1'
color='primary'
@ -241,7 +289,7 @@ const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handl
</Row>
</CardBody>
</Card>
)
}
);
};
export default FlightPlanAreaDetailForm;

11
src/components/basis/flight/plan/FlightPlanAreaMap.js

@ -214,7 +214,8 @@ const FlightPlanAreaMap = props => {
handleCoordinates={handleCoordinates}
handleInitCoordinates={handleInitCoordinates}
handleConfirm={props.handleConfirm}
isDisabled={props.test}
isYour={props.test}
isDone={props.isDone}
/>
) : null}
@ -304,7 +305,7 @@ const FlightPlanAreaMap = props => {
className='mr-1'
color='primary'
onClick={e => handlerDrawType('LINE')}
disabled={props.test}
disabled={props.test || props.isDone}
>
WayPoint
</Button.Ripple>
@ -312,7 +313,7 @@ const FlightPlanAreaMap = props => {
className='mr-1'
color='primary'
onClick={e => handlerDrawType('CIRCLE')}
disabled={props.test}
disabled={props.test || props.isDone}
>
Circle
</Button.Ripple>
@ -320,7 +321,7 @@ const FlightPlanAreaMap = props => {
className='mr-1'
color='primary'
onClick={e => handlerDrawType('POLYGON')}
disabled={props.test}
disabled={props.test || props.isDone}
>
Polygon
</Button.Ripple>
@ -332,7 +333,7 @@ const FlightPlanAreaMap = props => {
// ):(
// {disabled:false}
// )}
disabled={props.test}
disabled={props.test || props.isDone}
>
초기화
</Button.Ripple>

135
src/components/basis/flight/plan/FlightPlanForm.js

@ -34,7 +34,8 @@ const FlightPlanForm = ({
handleSave,
handleDelete,
modal,
handleDeleteArray
handleDeleteArray,
isDone
}) => {
const { areaList, pilotList, arcrftList } = data;
@ -79,7 +80,7 @@ const FlightPlanForm = ({
<span className='necessary'>*</span>
</Label>
<Input
readOnly={test}
// readOnly={test}
type='text'
id='memberName'
name='memberName'
@ -95,6 +96,7 @@ const FlightPlanForm = ({
}}
bsSize='sm'
placeholder=''
disabled={isDone || test}
/>
</FormGroup>
</Col>
@ -126,7 +128,7 @@ const FlightPlanForm = ({
</div>
<div className='m_ft_box'>
<Input
readOnly={test}
// readOnly={test}
type='text'
id='hpno'
name='hpno'
@ -142,6 +144,7 @@ const FlightPlanForm = ({
});
}}
placeholder='010-0000-0000'
disabled={isDone || test}
/>
</div>
</FormGroup>
@ -152,7 +155,7 @@ const FlightPlanForm = ({
<span className='necessary'>*</span>
</Label>
<Input
readOnly={test}
// readOnly={test}
type='text'
id='email'
name='email'
@ -169,6 +172,7 @@ const FlightPlanForm = ({
}}
// innerRef={props.data}
placeholder=''
disabled={isDone || test}
/>
</FormGroup>
</Col>
@ -187,45 +191,8 @@ const FlightPlanForm = ({
<span className='necessary'>*</span>
비행시작일자
</Label>
{/* {
(isFlightDone) ?
(
<Input
type='text'
id='groupNm'
name='groupNm'
value={data.schFltStDt}
bsSize='sm'
placeholder=''
readOnly
/>
)
:
(
<Flatpickr
size='sm'
className='form-control calendar-flat'
type='text'
id='schFltStDt'
name='schFltStDt'
data-enable-time
// defaultValue={data.schFltStDt}
value={data.schFltStDt}
onChange={(date) => {
const value = moment(date[0]).format('YYYY-MM-DD HH:mm:ss') || '';
handleChange({
type: 'plan',
name: 'schFltStDt',
value
})
}}
placeholder='비행 시작일자 선택(클릭)'
{...{options:{minDate: "today"}}}
/>
)
} */}
<Flatpickr
disabled={test}
// disabled={test}
className='form-control form-control-sm'
type='text'
id='schFltStDt'
@ -245,6 +212,7 @@ const FlightPlanForm = ({
});
}}
placeholder='비행 시작일자 선택(클릭)'
disabled={isDone || test}
// {...{options:{minDate: "today"}}}
/>
</FormGroup>
@ -255,45 +223,8 @@ const FlightPlanForm = ({
<span className='necessary'>*</span>
비행종료일자
</Label>
{/* {
(isFlightDone) ?
(
<Input
type='text'
id='groupNm'
name='groupNm'
value={data.schFltEndDt}
bsSize='sm'
placeholder=''
readOnly
/>
)
:
(
<Flatpickr
size='sm'
className='form-control calendar-flat'
type='text'
id='schFltEndDt'
name='schFltEndDt'
data-enable-time
// defaultValue={data.schFltEndDt}
value={data.schFltEndDt}
onChange={(date) => {
const value = moment(date[0]).format('YYYY-MM-DD HH:mm:ss') || '';
handleChange({
type: 'plan',
name: 'schFltEndDt',
value
})
}}
placeholder='비행 종료일자 선택(클릭)'
{...{options:{minDate: "today"}}}
/>
)
} */}
<Flatpickr
disabled={test}
// disabled={test}
className='form-control form-control-sm'
type='text'
id='schFltEndDt'
@ -313,6 +244,7 @@ const FlightPlanForm = ({
});
}}
placeholder='비행 종료일자 선택(클릭)'
disabled={isDone || test}
// {...{options:{minDate: "today"}}}
/>
</FormGroup>
@ -324,7 +256,7 @@ const FlightPlanForm = ({
목적
</Label>
<Input
disabled={test}
// disabled={test}
type='select'
id='fltPurpose'
name='fltPurpose'
@ -338,6 +270,7 @@ const FlightPlanForm = ({
value
});
}}
disabled={isDone || test}
// innerRef={props.data}
// className={classnames({
// 'is-invalid': props.errors.arcrftTypeCd
@ -402,7 +335,7 @@ const FlightPlanForm = ({
<div className='search-info-ti d-flex justify-content-between'>
<h4 className='ti'>조종사 정보</h4>
<Button.Ripple
disabled={test}
disabled={test || isDone}
color='primary'
onClick={e => {
handleModal({ target: 'pilot', isOpen: true });
@ -419,6 +352,7 @@ const FlightPlanForm = ({
data={item}
handleChange={handleChange}
handleDeleteArray={handleDeleteArray}
isDone={isDone}
/>
))
) : (
@ -432,7 +366,7 @@ const FlightPlanForm = ({
<div className='search-info-ti d-flex justify-content-between'>
<h4 className='ti'>기체 정보</h4>
<Button.Ripple
disabled={test}
disabled={test || isDone}
color='primary'
onClick={e => {
handleModal({ target: 'arcrft', isOpen: true });
@ -449,6 +383,7 @@ const FlightPlanForm = ({
data={item}
handleChange={handleChange}
handleDeleteArray={handleDeleteArray}
isDone={isDone}
/>
))
) : (
@ -461,7 +396,7 @@ const FlightPlanForm = ({
<div className='d-flex align-items-center'>
<Button.Ripple
disabled={test}
disabled={test || isDone}
className='mr-1'
color='primary'
size='sm'
@ -471,7 +406,7 @@ const FlightPlanForm = ({
</Button.Ripple>
{data.planSno ? (
<Button.Ripple
disabled={test}
disabled={test || isDone}
color='danger'
size='sm'
onClick={handleDelete}
@ -489,14 +424,19 @@ const FlightPlanForm = ({
</CardBody>
</Card>
</Col>
<SelectModal modal={modal} handleModal={handleModal} test={test} />
<SelectModal
modal={modal}
handleModal={handleModal}
test={test}
isDone={isDone}
/>
</Row>
);
};
export default FlightPlanForm;
const SelectModal = ({ handleModal, modal, test }) => {
const SelectModal = ({ handleModal, modal, test, isDone }) => {
let title = '';
let description = '';
let type = '';
@ -529,6 +469,7 @@ const SelectModal = ({ handleModal, modal, test }) => {
handleModal={handleModal}
type={type}
test={test}
isDone={isDone}
/>
);
}
@ -686,7 +627,13 @@ const AreaForm = ({ data, handleChange, index }) => {
</div>
);
};
const PilotForm = ({ data, handleChange, index, handleDeleteArray }) => {
const PilotForm = ({
data,
handleChange,
index,
handleDeleteArray,
isDone
}) => {
const [test, setTest] = useState();
const { user } = useSelector(state => state.authState, shallowEqual);
const { detail } = useSelector(state => state.flightState);
@ -806,7 +753,7 @@ const PilotForm = ({ data, handleChange, index, handleDeleteArray }) => {
<Col className='search-info-box-del-btn' lg={1} md={6} sm={12}>
{data.groupNm ? (
<Button.Ripple
disabled={test}
disabled={test || isDone}
color='danger'
className='btn-icon'
onClick={() => handleDeleteArray({ type: 'pilot', index })}
@ -822,7 +769,13 @@ const PilotForm = ({ data, handleChange, index, handleDeleteArray }) => {
);
};
const ArcrftForm = ({ data, handleChange, index, handleDeleteArray }) => {
const ArcrftForm = ({
data,
handleChange,
index,
handleDeleteArray,
isDone
}) => {
const [test, setTest] = useState();
const { user } = useSelector(state => state.authState, shallowEqual);
const { detail } = useSelector(state => state.flightState);
@ -945,7 +898,7 @@ const ArcrftForm = ({ data, handleChange, index, handleDeleteArray }) => {
{data.groupNm ? (
<Col className='search-info-box-del-btn' lg={1} md={6} sm={12}>
<Button.Ripple
disabled={test}
disabled={test || isDone}
color='danger'
className='btn-icon'
onClick={() => handleDeleteArray({ type: 'arcrft', index })}

15
src/components/map/naver/draw/FlightPlanDraw.js

@ -7,7 +7,8 @@ import { InfoModal } from '../../../modal/InfoModal';
export const FlightPlanDraw = props => {
const dispatch = useDispatch();
const mapControl = useSelector(state => state.controlMapReducer);
const isDisabled = props.isDisabled;
const isYour = props.isYour;
const isDone = props.isDone;
const [pastPolyline, setPolyline] = useState();
const [pastBuffer, setBuffer] = useState();
@ -590,7 +591,8 @@ export const FlightPlanDraw = props => {
let clickSet;
{
isDisabled === true ? (clickSet = false) : (clickSet = true);
// isDisabled === true ? (clickSet = false) : (clickSet = true);
(isYour || isDone) === true ? (clickSet = false) : (clickSet = true);
}
if (areas.areaType && areas.areaType === 'LINE') {
@ -629,7 +631,8 @@ export const FlightPlanDraw = props => {
);
// dragCircleEve.push(naver.maps.Event.addListener(dragCircle[i], 'mousedown', function () { onMouseDownDrag(i) }))
{
isDisabled
// isDisabled
isYour || isDone
? {}
: dragCircleEve.push(
naver.maps.Event.addListener(
@ -741,7 +744,8 @@ export const FlightPlanDraw = props => {
);
// dragCircleEve.push(naver.maps.Event.addListener(dragCircle[i], 'mousedown', function () { onMouseDownDrag(i) }))
{
isDisabled
// isDisabled
isYour || isDone
? {}
: dragCircleEve.push(
naver.maps.Event.addListener(
@ -838,7 +842,8 @@ export const FlightPlanDraw = props => {
});
// Eve.mousedownEve = naver.maps.Event.addListener(circle, 'mousedown', function () { onMouseDownDrag(0); })
{
isDisabled
// isDisabled
isYour || isDone
? {}
: (Eve.mousedownEve = naver.maps.Event.addListener(
circle,

88
src/containers/basis/flight/plan/FlightPlanAreaContainer.js

@ -1,60 +1,60 @@
import React, { useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import {Col, Row } from 'reactstrap';
import { Col, Row } from 'reactstrap';
import * as Actions from '../../../../modules/basis/flight/actions/basisFlightAction';
import FlightPlanAreaMap from '../../../../components/basis/flight/plan/FlightPlanAreaMap';
import { drawTypeChangeAction } from '../../../../modules/control/map/actions/controlMapActions';
import FlightPlanAreaDetailContainer from './FlightPlanAreaDetailContainer';
const FlightPlanAreaContainer = ({handleModal, test}) => {
const dispatch = useDispatch();
const FlightPlanAreaContainer = ({ handleModal, test, isDone }) => {
const dispatch = useDispatch();
const { publicAreaList} = useSelector(state => state.flightState);
const [airArea, setAirArea] = useState(null);
const { publicAreaList } = useSelector(state => state.flightState);
const [airArea, setAirArea] = useState(null);
useEffect(() => {
dispatch(drawTypeChangeAction(''));
getAirAreaList();
}, []);
useEffect(() => {
dispatch(drawTypeChangeAction(''));
getAirAreaList();
}, []);
useEffect(() => {
setAirArea(publicAreaList);
}, [publicAreaList])
useEffect(() => {
setAirArea(publicAreaList);
}, [publicAreaList]);
const getAirAreaList = () => {
dispatch(Actions.PUBLIC_AREA_LIST.request());
};
const getAirAreaList = () => {
dispatch(Actions.PUBLIC_AREA_LIST.request());
const handleConfirm = areaList => {
if (areaList === undefined) {
alert('영역을 설정해 주세요.');
return false;
}
const handleConfirm = (areaList) => {
if(areaList === undefined) {
alert('영역을 설정해 주세요.')
return false;
}
dispatch(Actions.AREA_COORDINATE_LIST_SAVE(areaList))
}
return (
<Row>
<Col md={6} lg={6}>
{airArea != null ? (
<FlightPlanAreaMap
airArea={airArea}
handleConfirm={handleConfirm}
test={test}
/>
) : null}
</Col>
<Col md={6} lg={6}>
<FlightPlanAreaDetailContainer
handleModal={handleModal}
test={test}
/>
</Col>
</Row>
)
}
dispatch(Actions.AREA_COORDINATE_LIST_SAVE(areaList));
};
return (
<Row>
<Col md={6} lg={6}>
{airArea != null ? (
<FlightPlanAreaMap
airArea={airArea}
handleConfirm={handleConfirm}
test={test}
isDone={isDone}
/>
) : null}
</Col>
<Col md={6} lg={6}>
<FlightPlanAreaDetailContainer
handleModal={handleModal}
test={test}
isDone={isDone}
/>
</Col>
</Row>
);
};
export default FlightPlanAreaContainer;

53
src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js

@ -3,34 +3,35 @@ import { useDispatch, useSelector } from 'react-redux';
import { Col, Row, Form } from 'reactstrap';
import * as Actions from '../../../../modules/basis/flight/actions/basisFlightAction';
import FlightPlanAreaDetailForm from '../../../../components/basis/flight/plan/FlightPlanAreaDetailForm';
import {initFlightBas} from '../../../../modules/basis/flight/models/basisFlightModel';
import { initFlightBas } from '../../../../modules/basis/flight/models/basisFlightModel';
import { InfoModal } from '../../../../components/modal/InfoModal';
import axios from '../../../../modules/utils/customAxiosUtil';
const FlightPlanAreaDetailContainer = ({ handleModal,test }) => {
const FlightPlanAreaDetailContainer = ({ handleModal, test, isDone }) => {
const dispatch = useDispatch();
const mapControl = useSelector(state => state.controlMapReducer);
const { areaCoordList, detail } = useSelector(state => state.flightState);
const [areaDetail, setAreaDetail] = useState(initFlightBas.initDetail.areaList);
const [areaDetail, setAreaDetail] = useState(
initFlightBas.initDetail.areaList
);
const [alertModal, setAlertModal] = useState({
isOpen: false,
title: '',
desc: ''
});
const handleClose = (status) => {
handleModal({ type: 'area', isOpne: false});
}
const handleClose = status => {
handleModal({ type: 'area', isOpne: false });
};
const handleSave = async () => {
const resultAreaDetail = areaDetail.map(area => {
return {
...area,
coordList : areaDetail[0].coordList
}
})
coordList: areaDetail[0].coordList
};
});
// const resultAreaDetail_api = areaDetail.map((area, i) => {
// let polygonCoord = areaDetail[0].coordList.concat(areaDetail[0].coordList[0]);
@ -50,43 +51,44 @@ const FlightPlanAreaDetailContainer = ({ handleModal,test }) => {
const { data } = await axios.post(
// `api/bas/flight/airspace/contains`, resultAreaDetail_api
`api/bas/flight/airspace/contains`, resultAreaDetail
)
`api/bas/flight/airspace/contains`,
resultAreaDetail
);
if(data.result) {
if (data.result) {
setAlertModal({
isOpen: true,
title: '우회 여부 확인',
desc: '경로상에 비행 금지된 구역이 있습니다.\n우회하여 경로 설정해주시기 바랍니다.'
})
});
return false;
}
dispatch(Actions.AREA_DETAIL_LIST_SAVE(resultAreaDetail));
handleModal({ type: 'area', isOpne: false});
}
handleModal({ type: 'area', isOpne: false });
};
const handleChange = ({ name, value }) => {
setAreaDetail(prevState => {
const areaList = prevState.map((area, i) => {
return {
...area,
[name] : value
}
[name]: value
};
});
return areaList;
})
}
});
};
const handleBufferList = () => {
dispatch(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.request(areaDetail));
}
};
useEffect(() => {
// 좌표등록 (등록 시 데이터 초기화)
if(areaCoordList !== undefined) {
if (areaCoordList !== undefined) {
setAreaDetail(areaCoordList); // 새로 만든 영역
}
}, [areaCoordList]);
@ -103,7 +105,6 @@ const FlightPlanAreaDetailContainer = ({ handleModal,test }) => {
// }, [])
return (
<Row>
<Col>
@ -116,12 +117,12 @@ const FlightPlanAreaDetailContainer = ({ handleModal,test }) => {
data={areaDetail}
mapControl={mapControl}
test={test}
isDone={isDone}
/>
</Col>
<InfoModal modal={alertModal} setModal={setAlertModal} />
</Row>
)
}
);
};
export default FlightPlanAreaDetailContainer;

1033
src/containers/basis/flight/plan/FlightPlanDetailContainer.js

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save