diff --git a/src/components/map/naver/dron/DronMarker.js b/src/components/map/naver/dron/DronMarker.js index fae6ab4..9ac71d2 100644 --- a/src/components/map/naver/dron/DronMarker.js +++ b/src/components/map/naver/dron/DronMarker.js @@ -16,6 +16,7 @@ import { objectUnClickAction } from '../../../../modules/control/map/actions/controlMapActions'; import { controlGroupAuthAction } from '../../../../modules/control/gp'; +import { JOIN_LIST } from '../../../../modules/basis/group/actions/basisGroupAction'; export const DronMarker = props => { const dispatch = useDispatch(); @@ -32,6 +33,9 @@ export const DronMarker = props => { const { controlGpArcrftWarnList } = useSelector( state => state.controlGpLogState ); + const { user } = useSelector(state => state.authState); + const { joinList } = useSelector(state => state.groupState); + const [arrMarkers, setArrMarkers] = useState([]); // const [arrInfos, setArrInfos] = useState([]); @@ -83,6 +87,14 @@ export const DronMarker = props => { // dispatch(controlGroupAuthAction.request()); // }, [controlGpList]); + useEffect(() => { + dispatch( + JOIN_LIST.request({ + cstmrSno: user?.cstmrSno + }) + ); + }, []); + useEffect(() => { markerInit(); }, [controlGpList]); @@ -121,20 +133,56 @@ export const DronMarker = props => { //마커를 그린다. const addMarkers = (position, id, controlId, gps) => { const markerOption = {}; + if (id.substring(0, 2) === 'PA') { const pal = controlGroupAuthInfo?.find( prev => prev.idntfNum === gps.objectId ); - markerOption.url = pal ? DronIcon : FlightIcon; - markerOption.type = pal ? 'DRONE' : 'FLIGHT'; + if (pal) { + markerOption.url = DronIcon; + markerOption.type = 'DRONE'; + } else { + if (user.authId === 'SUPER' || user.authId === 'ADMIN') { + markerOption.url = FlightIcon; + markerOption.type = 'FLIGHT'; + } else { + const terminal = joinList?.find(prev => prev.trmnlId === gps.trmnlId); + if ( + terminal?.groupAuthCd === 'MASTER' || + terminal?.groupAuthCd === 'LEADER' + ) { + markerOption.url = FlightIcon; + markerOption.type = 'FLIGHT'; + } + } + } } else { - // const etc = controlGpList?.filter( - // prev => prev.command === 이사람이 가입한 그룹의 command(가입한 그룹의 리스트를 여기로 불러와야 함) - // ) - markerOption.url = FlightIcon; - markerOption.type = 'FLIGHT'; + if (user.authId === 'SUPER' || user.authId === 'ADMIN') { + markerOption.url = FlightIcon; + markerOption.type = 'FLIGHT'; + } else { + const terminal = joinList?.find(prev => prev.trmnlId === gps.trmnlId); + if ( + terminal?.groupAuthCd === 'MASTER' || + terminal?.groupAuthCd === 'LEADER' + ) { + markerOption.url = FlightIcon; + markerOption.type = 'FLIGHT'; + } + } } + // if (id.substring(0, 2) === 'PA') { + // const pal = controlGroupAuthInfo?.find( + // prev => prev.idntfNum === gps.objectId + // ); + // markerOption.url = pal ? DronIcon : FlightIcon; + // markerOption.type = pal ? 'DRONE' : 'FLIGHT'; + // } else { + // markerOption.url = FlightIcon; + // markerOption.type = 'FLIGHT'; + // } + markerOption.origin = new naver.maps.Point(0, 0); markerOption.anchor = new naver.maps.Point(15, 15);