From 46119a9b8539f2e12744871f0220711481f156f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?scnoh=28=EB=85=B8=EC=8A=B9=EC=B2=A0=29?= Date: Mon, 5 Sep 2022 16:17:44 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=A4=EC=8B=9C=EA=B0=84=20=EB=B9=84?= =?UTF-8?q?=EC=A0=95=EC=83=81=20=EC=95=8C=EB=A6=BC=20=EC=B0=BD=20=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EC=BD=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/control/alarm/ControlAlarmList.js | 28 +++++++++++++++++++-- src/views/control/main/ControlMain.js | 27 ++++++++++++++++++-- 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src/views/control/alarm/ControlAlarmList.js b/src/views/control/alarm/ControlAlarmList.js index 8c20553..1aeb4c9 100644 --- a/src/views/control/alarm/ControlAlarmList.js +++ b/src/views/control/alarm/ControlAlarmList.js @@ -3,6 +3,7 @@ import { X } from 'react-feather'; import { useDispatch, useSelector } from 'react-redux'; import { controlGpArcrftWarnAction, controlGpLogAction } from '../../../modules/control/gp/actions/controlGpAction'; import ControlAlarmDetail from './ControlAlarmDetail'; +import { Badge } from 'reactstrap'; const ControlAlarmList = props => { const dispatch = useDispatch(); @@ -12,6 +13,8 @@ const ControlAlarmList = props => { const { controlGpList } = useSelector(state => state.controlGpState); const { controlGpArcrftWarnList } = useSelector(state => state.controlGpLogState); const { controlGpWarnLog } = useSelector(state => state.controlGpLogState); + const { objectId, isClickObject } = useSelector(state => state.controlMapReducer); + const [total, setTotal] = useState({ totalDroneCnt: 0, @@ -25,6 +28,13 @@ const ControlAlarmList = props => { dispatch(controlGpLogAction.request({id : cntrlId})); } + useEffect(() => { + if(isClickObject) { + props.setOpenAlarmList(false); + } + + }, [objectId, isClickObject]) + useEffect(() => { if(controlGpArcrftWarnList) { let totalWarnCnt = 0; @@ -89,8 +99,22 @@ const ControlAlarmList = props => {
-
{total? total.totalDroneCnt: 0}대 비행 중
-
전체 {total? total.totalWarnCnt : 0}건
+
드론 현황
+
+ + {total? total.totalDroneCnt: 0}대 비행 중 + +
+
+
+
+
+
비정상 알림 전체
+
+ + {total? total.totalWarnCnt : 0}건 + +
diff --git a/src/views/control/main/ControlMain.js b/src/views/control/main/ControlMain.js index 0b38daf..3a0b023 100644 --- a/src/views/control/main/ControlMain.js +++ b/src/views/control/main/ControlMain.js @@ -5,7 +5,8 @@ import logo from '../../../assets/images/pal_logo.png'; import { Sun, Map, Bell } from 'react-feather'; -import { AiOutlinePoweroff } from 'react-icons/ai'; +import { AiOutlinePoweroff, AiOutlineExclamation } from 'react-icons/ai'; +import { IoAlertOutline } from 'react-icons/io5'; import { ReactComponent as DroneMenuIcon } from '../../../assets/images/drone_menu_icon.svg'; @@ -19,11 +20,15 @@ import WebsocketClient from '../../../components/websocket/WebsocketClient'; import { useDispatch, useSelector } from 'react-redux'; import * as Actions from '../../../modules/account/login/actions/authAction'; +import { objectUnClickAction } from '../../../modules/control/map/actions/controlMapActions'; const ControlMain = () => { const dispatch = useDispatch(); const { isClickObject } = useSelector(state => state.controlMapReducer); + const { controlGpList } = useSelector(state => state.controlGpState); + + const [alarm, setAlarm] = useState(false); const [oepnReportList, setOpenReportList] = useState(false); const [openReportDetail, setOpenReportDetail] = useState(false); @@ -45,10 +50,14 @@ const ControlMain = () => { setOpenWeatherList(true); setOpenAlarmList(false); } else if (val === 'alarmList') { + dispatch(objectUnClickAction()); + setOpenReportList(false); setOpenReportDetail(false); setOpenWeatherList(false); setOpenAlarmList(true); + + setAlarm(false); } }; @@ -61,6 +70,20 @@ const ControlMain = () => { dispatch(Actions.logout.request()); }; + useEffect(() => { + + if(controlGpList) { + const warnGps = controlGpList.find(gps => { + return gps.controlWarnNotyCd === true + }) + + if(warnGps) { + setAlarm(true); + } + } + + }, [controlGpList]); + return ( <> @@ -88,7 +111,7 @@ const ControlMain = () => { */}