김지은 11 months ago
parent
commit
e5a5d5c572
  1. 28
      src/components/laanc/map/FlightArea.js
  2. 33
      src/components/laanc/map/LaancAreaMap.js
  3. 2
      src/components/laanc/map/LaancDrawControl.js
  4. 2
      src/components/laanc/map/LaancDrawModal.js

28
src/components/laanc/map/FlightArea.js

@ -41,6 +41,7 @@ import { FeatureAirZone } from '../../map/mapbox/feature/FeatureAirZone';
import { WeatherContainer } from '../../../containers/basis/flight/plan/WeatherContainer';
import { initFlightBas } from '../../../modules/laanc/models/laancModels';
import * as LaancAction from '../../../modules/laanc/actions/laancActions';
import LaancDrawModal from './LaancDrawModal';
const initialAddData = {
isAddable: false,
@ -72,6 +73,12 @@ export default function FlightArea({
const [previewLayer, setPreviewLayer] = useState();
const [formModal, setFormModal] = useState(false);
const [modal, setModal] = useState({
title: '',
desc: '',
isOpen: false
});
const [isSaveable, setIsSaveable] = useState(false);
const [addData, setAddData] = useState(initialAddData);
@ -169,8 +176,27 @@ export default function FlightArea({
});
};
const handlerModal = () => {
setModal(!modal);
};
const handlerDrawType = val => {
if (drawObj.getMode().includes('draw')) {
// alert('비행구역설정 완료 후 타입을 변경해주세요.');
setModal({
title: '비행 구역 설정',
desc: (
<>
비행구역 설정이 완료되지 않았습니다.
<br />
비행구역 설정 완료 타입 변경 부탁드립니다.
</>
),
isOpen: true
});
} else {
dispatch(drawTypeChangeAction(val));
}
};
const handlerSave = async () => {
@ -564,6 +590,7 @@ export default function FlightArea({
addData={addData}
setSaveData={setSaveData}
handlerSaveElev={handlerSaveElev}
setModal={setModal}
/>
</ModalBody>
<ModalFooter>
@ -657,6 +684,7 @@ export default function FlightArea({
</ModalFooter>
</Modal>
) : null}
{modal ? <LaancDrawModal modal={modal} handler={handlerModal} /> : null}
<Modal
isOpen={formModal}
toggle={handlerWeather}

33
src/components/laanc/map/LaancAreaMap.js

@ -32,7 +32,6 @@ import geoJson from '../../map/geojson/airArea.json';
import { FeatureAirZone } from '../../map/mapbox/feature/FeatureAirZone';
import LaancMapSearch from './LaancMapSearch';
import { LaancDrawControl } from './LaancDrawControl';
import LaancModal from '../../map/mapbox/draw/LaancModal';
export default function LaancAreaMap({
centeredModal,
@ -43,7 +42,8 @@ export default function LaancAreaMap({
addData,
handlerInitCoordinates,
setSaveData,
handlerSaveElev
handlerSaveElev,
setModal
}) {
const dispatch = useDispatch();
const mapControl = useSelector(state => state.controlMapReducer);
@ -57,11 +57,11 @@ export default function LaancAreaMap({
);
const [number, setNumber] = useState(0);
const [modal, setModal] = useState({
title: '',
desc: '',
isOpen: false
});
// const [modal, setModal] = useState({
// title: '',
// desc: '',
// isOpen: false
// });
const [detailLayer, setDetailLayer] = useState();
@ -315,9 +315,9 @@ export default function LaancAreaMap({
dispatch(AREA_COORDINATE_LIST_SAVE(areaList));
};
const handlerModal = () => {
setModal(!modal);
};
// const handlerModal = () => {
// setModal(!modal);
// };
return (
<Card className='mb-0'>
@ -325,9 +325,6 @@ export default function LaancAreaMap({
<div style={{ position: 'relative' }}>
<LaancMapSearch mapObject={mapObject} />
<div className='d-flex coords-wrap'>
{mapObject && viewCoordObj.length > 0 ? (
<div className='coords-box'>
{/* {console.log(viewCoordObj, '----')} */}
{viewCoordObj?.map((obj, i) => {
let coord =
obj.properties.id === 'LINE'
@ -341,6 +338,7 @@ export default function LaancAreaMap({
return (
<div
className='coords-box'
key={i}
onClick={() => {
const allObj = drawObj
@ -352,6 +350,7 @@ export default function LaancAreaMap({
});
}}
>
<div>
<h6 className='ti'>비행구역 {i + 1}</h6>
<div className='coords-box-scroll'>
{coord?.map((co, idx) => {
@ -387,11 +386,11 @@ export default function LaancAreaMap({
})}
</div>
</div>
</div>
);
})}
</div>
) : null}
</div>
<div
id='detail'
ref={mapContainer}
@ -417,9 +416,9 @@ export default function LaancAreaMap({
handlerSaveElev={handlerSaveElev}
/>
<FeatureAirZone map={mapObject} mapboxgl={mapboxgl} />
{modal ? (
{/* {modal ? (
<LaancModal modal={modal} handler={handlerModal} />
) : null}
) : null} */}
</>
) : null}
</div>

2
src/components/laanc/map/LaancDrawControl.js

@ -357,8 +357,10 @@ export const LaancDrawControl = props => {
const remainObj = drawObj
.getAll()
.features.filter(o => o.properties.id !== 'BUFFER' && o.id !== id);
if (remainObj.length === 0) {
props.handlerSaveCheck(false);
dispatch(drawTypeChangeAction('RESET'));
} else {
props.handlerSaveCheck(true);
}

2
src/components/map/mapbox/draw/LaancModal.js → src/components/laanc/map/LaancDrawModal.js

@ -1,6 +1,6 @@
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
export default function LaancModal({ modal, handler }) {
export default function LaancDrawModal({ modal, handler }) {
const handlerDroneOneStop = () => {
window.open('https://drone.onestop.go.kr/', '드론원스탑');
handler();
Loading…
Cancel
Save