Browse Source

Merge branch 'master' of http://gitea.palntour.com/pav/pav-home

pull/2/head
junh_eee(이준희) 2 years ago
parent
commit
fce8356398
  1. 1
      src/components/basis/flight/plan/FlightPlanAreaDetailForm.js
  2. 2
      src/components/map/naver/NaverMap.js
  3. 2
      src/components/map/naver/draw/FlightPlanDraw.js
  4. 50
      src/components/map/naver/dron/DronMarker.js
  5. 61
      src/containers/basis/dron/BasisIdntfContainer.js
  6. 21
      src/modules/control/gp/sagas/controlGpSaga.ts
  7. 2
      src/modules/control/map/reducers/controlMapReducer.ts

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

@ -177,6 +177,7 @@ const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handl
className='mr-1'
color='primary'
onClick={e => handleSave()}
disabled={!coordList[0].lat ? true : false }
>
등록
</Button.Ripple>

2
src/components/map/naver/NaverMap.js

@ -41,7 +41,7 @@ export const NaverCustomMap = () => {
center: new naver.maps.LatLng(36.56793936069445, 127.85101412107547),
zoom: 10,
zoomControl: true,
mapTypeId: naver.maps.MapTypeId.NORMAL,
mapTypeId: naver.maps.MapTypeId.HYBRID,
zoomControlOptions: {
position: naver.maps.Position.TOP_LEFT,

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

@ -200,6 +200,7 @@ export const FlightPlanDraw = props => {
title: '우회 여부 확인',
desc: '좌표를 두 개 점으로 이어주세요.'
})
polyline.setMap(null);
polyline = '';
}
@ -885,7 +886,6 @@ export const FlightPlanDraw = props => {
return text;
}
// return null;
return(
<InfoModal modal={alertModal} setModal={setAlertModal} />
)

50
src/components/map/naver/dron/DronMarker.js

@ -92,7 +92,12 @@ export const DronMarker = props => {
id: id,
controlId: controlId,
icon: {
// content: [
// '<div>dddd</div>',
// ].join(''),
url: DronIcon,
// size: new naver.maps.Size(50, 50),
origin: new naver.maps.Point(0, 0),
anchor: new naver.maps.Point(15, 15),
}
@ -104,9 +109,6 @@ export const DronMarker = props => {
handlerDronClick(marker);
});
// drone 정보 창
// markerInfoWindow(marker);
setArrMarkers(m => [...m, marker]);
};
@ -114,6 +116,10 @@ export const DronMarker = props => {
const idntfNum = marker.id;
const contorlId = marker.controlId;
// 클릭한 식별번호 정보를 가진 그룹 추출
// const group = controlGroupAuthInfo.find(group => group.idntfNum === idntfNum);
//히스토리 불러오기
dispatch(objectClickAction(contorlId));
dispatch(controlGpDtlAction.request(contorlId));
dispatch(controlGpFlightPlanAction.request(idntfNum));
@ -176,43 +182,5 @@ export const DronMarker = props => {
setArrMarkers(arrData);
};
const markerInfoWindow = (marker) => {
controlGpList.forEach(gps => {
const contents = [
`<div class="tooltip-box">`,
` <div class="tooltip-ti">`,
` <span>${marker.id}</span>`,
` </div>`,
` <div class="tooltip-txt">`,
` <div class="tooltip-txt-list">`,
` <span>${gps.speed}${gps.speedType}</span>`,
` </div>`,
` <div class="tooltip-txt-list">`,
` <span>${gps.elev}${gps.elevType}</span>`,
` </div>`,
` <div class="tooltip-txt-list">`,
` <span>${gps.heading}</span>`,
` </div>`,
` </div>`,
`</div>`
].join('');
const info = new naver.maps.InfoWindow({
id: marker.id,
content: contents,
backgroundColor: '#283046', //박스안쪽영역 컬러
anchorSize: new props.naver.maps.Size(30, -10),
anchorSkew: false,
anchorColor: '#283046',
pixelOffset: new props.naver.maps.Point(20, -20)
});
console.log(info);
info.open(props.map, marker);
});
}
return null;
};

61
src/containers/basis/dron/BasisIdntfContainer.js

@ -3,7 +3,7 @@ import { useDispatch, useSelector } from 'react-redux';
import { Card, CardBody, Col, Row } from 'reactstrap';
import { BasisIdntfForm } from '../../../components/basis/dron/BasisIdntform';
import * as Actions from '../../../modules/basis/dron/actions/basisDronAction';
import { ErrorModal } from '../../../components/modal/ErrorModal';
export const BasisIdntfContainer = props => {
const { listIdntf, idntfCount, detail, isRefreshIdntf } = useSelector(
state => state.dronState
@ -18,6 +18,12 @@ export const BasisIdntfContainer = props => {
hpno:'',
isSave: false
});
//모달 관련 설정
const [modal, setModal] = useState({
isOpen: false,
title: '',
desc: ''
});
const [idntDataList, setIdntfDataList] = useState([]);
@ -50,16 +56,60 @@ export const BasisIdntfContainer = props => {
dispatch(Actions.IDNTF_LIST.request(props.id));
};
const handlerCreate = async data => {
const handlerCreate = async () => {
console.log('idntDataList>>>', idntDataList);
let saveArr = idntDataList.filter(item => item.isSave === false);
if (saveArr.length > 0) {
let checking = true;
saveArr.forEach(idntf => {
if (!idntf.idntfNum && idntf.idntfNum === '') {
setModal({
isOpen: true,
title: '필수값 입력 오류',
desc: '식별번호를 입력해주세요.'
});
checking = false;
return false;
}
if(!idntf.ownerNm && idntf.ownerNm === '') {
setModal({
isOpen: true,
title: '필수값 입력 오류',
desc: '소유자명을 입력해주세요.'
});
checking = false;
return false;
}
if(!idntf.hpno && idntf.hpno === '') {
setModal({
isOpen: true,
title: '필수값 입력 오류',
desc: '연락처를 입력해주세요.'
});
checking = false;
return false;
}
});
if (!checking) return false;
dispatch(
Actions.IDNTF_CREATE.request({
arcrftSno: detail?.arcrftSno,
data: saveArr
})
);
} else {
setModal({
isOpen: true,
title: '필수값 입력 오류',
desc: '식별장치 정보를 입력해주세요.'
});
return false;
}
};
const handlerDelete = async data => {
@ -104,6 +154,8 @@ export const BasisIdntfContainer = props => {
</Col>
</Row>
) : (
<Row>
<Col>
<BasisIdntfForm
data={idntDataList}
count={idntDataList?.length}
@ -113,5 +165,8 @@ export const BasisIdntfContainer = props => {
handlerSave={handlerCreate}
handlerDelete={handlerDelete}
/>
<ErrorModal modal={modal} setModal={setModal} />
</Col>
</Row>
);
};

21
src/modules/control/gp/sagas/controlGpSaga.ts

@ -36,9 +36,11 @@ function* getControlGpSaga(
});
}
console.log('gps ', gpsData);
yield put(
Actions.controlGpAction.success({
controlGpList: data
controlGpList: gpsData
})
);
@ -57,18 +59,15 @@ function* getControlGpSaga(
// History Push
if(controlGpHistory) {
const stateHistory = controlGpHistory.concat();
const hisObj = {
lat: detailData.lat,
lng: detailData.lng,
objectId: detailData.objectId
const stateHistory = controlGpHistory;
const history = stateHistory.map((h) => {
return {
...h,
detailData
}
stateHistory.push(hisObj);
});
yield put(Actions.controlGpHisAction.success({
controlGpHistory: stateHistory
}));
yield put(Actions.controlGpHisAction.success(history));
}
}
} catch (error) {

2
src/modules/control/map/reducers/controlMapReducer.ts

@ -1,6 +1,6 @@
// ** Initial State
const initialState = {
mapType: 'NORMAL',
mapType: 'HYBRID',
objectId: null,
isClickObject: false,
area0001: true, // 비행금지 구역

Loading…
Cancel
Save