|
|
|
@ -15,192 +15,175 @@ import { FlightPlanDraw } from '../../../map/naver/draw/FlightPlanDraw';
|
|
|
|
|
import { drawTypeChangeAction, drawCheckAction } from '../../../../modules/control/map/actions/controlMapActions'; |
|
|
|
|
import { FlightPlanDrawTest } from '../../../map/naver/draw/FlightPlanDrawTest'; |
|
|
|
|
|
|
|
|
|
const FlightPlanAreaDetailForm = ({ handleClose }) => { |
|
|
|
|
const dispatch = useDispatch(); |
|
|
|
|
const naver = window.naver; |
|
|
|
|
// const airArea = props.airArea;
|
|
|
|
|
const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, data }) => { |
|
|
|
|
|
|
|
|
|
const mapControl = useSelector(state => state.controlMapReducer); |
|
|
|
|
const coordList = data ? data[0].coordList : null;
|
|
|
|
|
|
|
|
|
|
const [map, setMap] = useState(); |
|
|
|
|
const [isMapLoad, setIsMapLoad] = useState(false); |
|
|
|
|
const [mode, setMode] = useState(); |
|
|
|
|
return (
|
|
|
|
|
<Card className='mb-0'> |
|
|
|
|
<CardBody> |
|
|
|
|
<Row> |
|
|
|
|
<Col> |
|
|
|
|
<Card> |
|
|
|
|
<CardBody className='pal-card-body'> |
|
|
|
|
<div className='search-cont search-info pd-0'> |
|
|
|
|
<div className='cont-ti mb-1 d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'> |
|
|
|
|
<div> |
|
|
|
|
<h4>비행 구역 상세 정보</h4> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
// useEffect(() => {
|
|
|
|
|
// setIsMapLoad(true);
|
|
|
|
|
// }, [airArea]);
|
|
|
|
|
<dl> |
|
|
|
|
<dt> |
|
|
|
|
<div className='search-info-ti d-flex justify-content-between'> |
|
|
|
|
<h4 className='ti'>좌표 정보</h4> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
// useEffect(() => {
|
|
|
|
|
// ModeInit();
|
|
|
|
|
// }, [mapControl.drawType])
|
|
|
|
|
<div className='search-info-box'> |
|
|
|
|
<Row> |
|
|
|
|
{coordList ?
|
|
|
|
|
coordList.map((coord, idx) => { |
|
|
|
|
const latlon = coord.lat + ' / ' + coord.lon; |
|
|
|
|
|
|
|
|
|
// const ModeInit = () => {
|
|
|
|
|
// setMode(mapControl.drawType)
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
// <Card className='mb-0'>
|
|
|
|
|
<Row> |
|
|
|
|
<Col sm='12'> |
|
|
|
|
<Card> |
|
|
|
|
<CardBody className='pt-2 card-body-tab-cont'> |
|
|
|
|
<Row> |
|
|
|
|
<Col> |
|
|
|
|
<Card> |
|
|
|
|
<CardBody className='pal-card-body'> |
|
|
|
|
<div className='search-cont search-info pd-0'> |
|
|
|
|
{/* <div className='cont-ti mb-1 d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'> |
|
|
|
|
<div> |
|
|
|
|
<h4>비행 구역 상세 정보</h4> |
|
|
|
|
</div> |
|
|
|
|
</div> */} |
|
|
|
|
|
|
|
|
|
<dl> |
|
|
|
|
<dt> |
|
|
|
|
<div className='search-info-ti d-flex justify-content-between'> |
|
|
|
|
<h4 className='ti'>좌표 정보</h4> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div className='search-info-box'> |
|
|
|
|
<Row> |
|
|
|
|
<Col className='list-input' lg={4} md={6} sm={12}> |
|
|
|
|
<FormGroup> |
|
|
|
|
<Label for='test'><span className='necessary'>*</span>좌표1</Label> |
|
|
|
|
<Input |
|
|
|
|
type='text' |
|
|
|
|
id='coord' |
|
|
|
|
name='coord' |
|
|
|
|
bsSize='sm' |
|
|
|
|
placeholdeer='' |
|
|
|
|
readOnly |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
|
</Col> |
|
|
|
|
<Col className='list-input' lg={4} md={6} sm={12}> |
|
|
|
|
<FormGroup> |
|
|
|
|
<Label for='test'><span className='necessary'>*</span>좌표2</Label> |
|
|
|
|
<Input |
|
|
|
|
type='text' |
|
|
|
|
id='coord' |
|
|
|
|
name='coord' |
|
|
|
|
bsSize='sm' |
|
|
|
|
placeholdeer='' |
|
|
|
|
readOnly |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div className='search-info-box'> |
|
|
|
|
<Row> |
|
|
|
|
<Col className='list-input' lg={4} md={6} sm={12}> |
|
|
|
|
<FormGroup> |
|
|
|
|
<Label for='test'><span className='necessary'>*</span>좌표3</Label> |
|
|
|
|
<Input |
|
|
|
|
type='text' |
|
|
|
|
id='coord' |
|
|
|
|
name='coord' |
|
|
|
|
bsSize='sm' |
|
|
|
|
placeholdeer='' |
|
|
|
|
readOnly |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
|
</Col> |
|
|
|
|
<Col className='list-input' lg={4} md={6} sm={12}> |
|
|
|
|
<FormGroup> |
|
|
|
|
<Label for='test'><span className='necessary'>*</span>좌표4</Label> |
|
|
|
|
<Input |
|
|
|
|
type='text' |
|
|
|
|
id='coord' |
|
|
|
|
name='coord' |
|
|
|
|
bsSize='sm' |
|
|
|
|
placeholdeer='' |
|
|
|
|
readOnly |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
|
|
|
|
|
<dt> |
|
|
|
|
<div className='search-info-ti d-flex justify-content-between'> |
|
|
|
|
<h4 className='ti'>기타 정보</h4> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div className='search-info-box'> |
|
|
|
|
<Row> |
|
|
|
|
<Col className='list-input' lg={5} md={7} sm={12}> |
|
|
|
|
<FormGroup className='m_ft'> |
|
|
|
|
<div className='m_ft_box'> |
|
|
|
|
<Label for='test'> |
|
|
|
|
<span className='necessary'>*</span> 반경 / 고도 |
|
|
|
|
</Label> |
|
|
|
|
return ( |
|
|
|
|
<Col key={idx} className='list-input' lg={4} md={6} sm={12}> |
|
|
|
|
<FormGroup> |
|
|
|
|
<Label for='test'><span className='necessary'>*</span>좌표 {idx+1} </Label> |
|
|
|
|
<Input |
|
|
|
|
type='text' |
|
|
|
|
id='ownerNm' |
|
|
|
|
name='ownerNm' |
|
|
|
|
type='text'
|
|
|
|
|
name='coord' |
|
|
|
|
bsSize='sm' |
|
|
|
|
placeholder='반경' |
|
|
|
|
placeholdeer='' |
|
|
|
|
readOnly |
|
|
|
|
value={latlon} |
|
|
|
|
/> |
|
|
|
|
</div> |
|
|
|
|
<div className='m_ft_box'> |
|
|
|
|
<Input |
|
|
|
|
type='text' |
|
|
|
|
id='ownerNm' |
|
|
|
|
name='ownerNm' |
|
|
|
|
bsSize='sm' |
|
|
|
|
placeholder='고도' |
|
|
|
|
readOnly |
|
|
|
|
/> |
|
|
|
|
</div> |
|
|
|
|
</FormGroup> |
|
|
|
|
</Col> |
|
|
|
|
<Col className='list-input' lg={4} md={6} sm={12}> |
|
|
|
|
<FormGroup> |
|
|
|
|
<Label for='test'><span className='necessary'>*</span>비행방식</Label> |
|
|
|
|
<Input |
|
|
|
|
type='text' |
|
|
|
|
id='ownerNm' |
|
|
|
|
name='ownerNm' |
|
|
|
|
bsSize='sm' |
|
|
|
|
placeholder='' |
|
|
|
|
readOnly |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
</dl> |
|
|
|
|
</div> |
|
|
|
|
</FormGroup> |
|
|
|
|
</Col> |
|
|
|
|
) |
|
|
|
|
}) |
|
|
|
|
: |
|
|
|
|
<Col className='list-input' lg={4} md={6} sm={12}> |
|
|
|
|
<FormGroup> |
|
|
|
|
<Label for='test'><span className='necessary'>*</span>좌표 1</Label> |
|
|
|
|
<Input |
|
|
|
|
type='text'
|
|
|
|
|
name='coord' |
|
|
|
|
bsSize='sm' |
|
|
|
|
placeholdeer='' |
|
|
|
|
readOnly
|
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
|
</Col> |
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</Row> |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
|
|
|
|
|
<dt> |
|
|
|
|
<div className='search-info-ti d-flex justify-content-between'> |
|
|
|
|
<h4 className='ti'>기타 정보</h4> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div className='search-info-box'> |
|
|
|
|
<Row> |
|
|
|
|
<Col className='list-input' lg={6} md={6} sm={12}> |
|
|
|
|
<FormGroup>
|
|
|
|
|
<Label for='test'><span className='necessary'>*</span>반경(m)</Label> |
|
|
|
|
<Input |
|
|
|
|
type='text' |
|
|
|
|
id='bufferZone' |
|
|
|
|
name='bufferZone' |
|
|
|
|
bsSize='sm' |
|
|
|
|
placeholder='반경'
|
|
|
|
|
value={data ? data[0].bufferZone : ''}
|
|
|
|
|
onChange={(e) => { |
|
|
|
|
const {name, value} = e.target; |
|
|
|
|
handleChange({ |
|
|
|
|
name, |
|
|
|
|
value |
|
|
|
|
}) |
|
|
|
|
}}
|
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
</div> |
|
|
|
|
<div className='search-info-box'> |
|
|
|
|
<Row> |
|
|
|
|
<Col className='list-input' lg={6} md={6} sm={12}> |
|
|
|
|
<FormGroup>
|
|
|
|
|
<Label for='test'><span className='necessary'>*</span>고도(ft)</Label> |
|
|
|
|
<Input |
|
|
|
|
type='text' |
|
|
|
|
id='fltElev' |
|
|
|
|
name='fltElev' |
|
|
|
|
bsSize='sm' |
|
|
|
|
placeholder='고도'
|
|
|
|
|
value={data ? data[0].fltElev : ''}
|
|
|
|
|
onChange={(e) => { |
|
|
|
|
const {name, value} = e.target; |
|
|
|
|
handleChange({ |
|
|
|
|
name, |
|
|
|
|
value |
|
|
|
|
}) |
|
|
|
|
}}
|
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
</div> |
|
|
|
|
<div className='search-info-box'> |
|
|
|
|
<Row> |
|
|
|
|
<Col className='list-input' lg={6} md={6} sm={12}> |
|
|
|
|
<FormGroup> |
|
|
|
|
<Label for='test'><span className='necessary'>*</span>비행 방식</Label> |
|
|
|
|
<Input |
|
|
|
|
type='text' |
|
|
|
|
id='fltMethod' |
|
|
|
|
name='fltMethod' |
|
|
|
|
bsSize='sm' |
|
|
|
|
placeholder='비행 방식'
|
|
|
|
|
value={data ? data[0].fltMethod : ''}
|
|
|
|
|
onChange={(e) => { |
|
|
|
|
const {name, value} = e.target; |
|
|
|
|
handleChange({ |
|
|
|
|
name, |
|
|
|
|
value |
|
|
|
|
}) |
|
|
|
|
}} |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
</dl> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div className='d-flex align-items-center mt-2'> |
|
|
|
|
<Button.Ripple |
|
|
|
|
type='submit' |
|
|
|
|
className='mr-1' |
|
|
|
|
color='primary' |
|
|
|
|
> |
|
|
|
|
등록 |
|
|
|
|
</Button.Ripple> |
|
|
|
|
<Button.Ripple |
|
|
|
|
className='mr-1' |
|
|
|
|
color='primary' |
|
|
|
|
onClick={e => handleClose()} |
|
|
|
|
> |
|
|
|
|
닫기 |
|
|
|
|
</Button.Ripple> |
|
|
|
|
</div> |
|
|
|
|
</CardBody> |
|
|
|
|
</Card> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
</CardBody> |
|
|
|
|
</Card> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
<div className='d-flex align-items-center mt-2'> |
|
|
|
|
<Button.Ripple |
|
|
|
|
type='submit' |
|
|
|
|
className='mr-1' |
|
|
|
|
color='primary' |
|
|
|
|
onClick={e => handleSave()} |
|
|
|
|
> |
|
|
|
|
등록 |
|
|
|
|
</Button.Ripple> |
|
|
|
|
<Button.Ripple |
|
|
|
|
className='mr-1' |
|
|
|
|
color='primary' |
|
|
|
|
onClick={e => handleClose()} |
|
|
|
|
> |
|
|
|
|
닫기 |
|
|
|
|
</Button.Ripple> |
|
|
|
|
</div> |
|
|
|
|
</CardBody> |
|
|
|
|
</Card> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
</CardBody> |
|
|
|
|
</Card> |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|