From 1a8ec3e8802db5c502ddac59bd963cc4461397d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?junh=5Feee=28=EC=9D=B4=EC=A4=80=ED=9D=AC=29?= Date: Fri, 4 Nov 2022 19:01:33 +0900 Subject: [PATCH] =?UTF-8?q?=ED=84=B0=EB=AF=B8=EB=84=90ID=EC=99=80=20?= =?UTF-8?q?=EA=B6=8C=ED=95=9C=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EA=B8=B0?= =?UTF-8?q?=EC=B2=B4=20=ED=91=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/map/naver/dron/DronMarker.js | 62 ++++++++++++++++++--- 1 file changed, 55 insertions(+), 7 deletions(-) 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);