Browse Source

비정상 알림 표출 로직 수정

pull/2/head
노승철 2 years ago
parent
commit
e50c143c83
  1. 43
      src/components/map/naver/dron/DronToast.js
  2. 18
      src/modules/control/gp/sagas/controlGpSaga.ts
  3. 27
      src/views/control/alarm/ControlAlarmList.js

43
src/components/map/naver/dron/DronToast.js

@ -6,34 +6,41 @@ import Avatar from '../../../../@core/components/avatar';
import { Bell, Check, X, AlertTriangle, Info } from 'react-feather' import { Bell, Check, X, AlertTriangle, Info } from 'react-feather'
import { controlGpDtlAction, controlGpFlightPlanAction } from '../../../../modules/control/gp'; import { controlGpDtlAction, controlGpFlightPlanAction } from '../../../../modules/control/gp';
import { objectClickAction, objectUnClickAction } from '../../../../modules/control/map/actions/controlMapActions'; import { objectClickAction, objectUnClickAction } from '../../../../modules/control/map/actions/controlMapActions';
import 'react-toastify/dist/ReactToastify.css';
const DronToast = () => { const DronToast = () => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const { controlGpList } = useSelector(state => state.controlGpState); const { controlGpList } = useSelector(state => state.controlGpState);
const { controlGpArcrftWarnList } = useSelector(state => state.controlGpLogState);
const [toastId, setToastId] = useState(); const [toastId, setToastId] = useState();
useEffect(() => { useEffect(() => {
if (controlGpList) { if (controlGpArcrftWarnList) {
console.log("===================================")
console.log('tastID : ', toastId);
if (!toastId) { if (!toastId) {
controlGpList.forEach(gps => { controlGpArcrftWarnList.forEach(warn => {
// console.log("===================================")
// console.log("Warn ==> ", gps.controlWarnCd); // console.log("Warn ==> ", gps.controlWarnCd);
// console.log("Noti ==> ", gps.controlWarnNotyCd); // console.log("Noti ==> ", gps.controlWarnNotyCd);
if (gps.controlWarnCd && gps.controlWarnNotyCd) { if (warn.controlWarnCd) {
console.log('warn CD : ', warn.controlWarnCd);
const id = toast.info( const id = toast.info(
toastRender( toastRender(
`${gps.objectId} 비정상 상황 알림`, `${warn.idntfNum} 비정상 상황 알림`,
`경로 상에 비행 구역을 이탈했습니다.` `경로 상에 비행 구역을 이탈했습니다.`
), ),
{ {
autoClose: false, autoClose: false,
hideProgressBar: true, hideProgressBar: true,
position: toast.POSITION.BOTTOM_RIGHT, position: toast.POSITION.BOTTOM_RIGHT,
onClick: props => { onClick: () => {
setToastId(null);
handleNotiClick(warn.controlId, warn.idntfNum);
},
onClose: () => {
setToastId(null); setToastId(null);
handleNotiClick(gps.controlId, gps.objectId);
} }
} }
) )
@ -43,7 +50,7 @@ const DronToast = () => {
}) })
} }
} }
}, [controlGpList]); }, [controlGpArcrftWarnList]);
const handleNotiClick = (controlId, idntfNum) => { const handleNotiClick = (controlId, idntfNum) => {
dispatch(objectClickAction(controlId)); dispatch(objectClickAction(controlId));
@ -73,23 +80,7 @@ const DronToast = () => {
) )
} }
return ( return (
// <Fragment>
// <div className='toastify-header'>
// <div className='title-wrapper'>
// <Avatar size='sm' color='info' icon={<Info size={12} />} />
// <h6 className='text-info ml-50 mb-0'>
// {/* {title} */}
// </h6>
// </div>
// </div>
// <div className='toastify-body'>
// <span>
// {/* {message} */}
// </span>
// </div>
// </Fragment>
null null
) )

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

@ -43,14 +43,28 @@ function* getControlGpSaga(
} }
// console.log('websocket data :: ', data); // console.log('websocket data :: ', data);
yield put( yield put(
Actions.controlGpAction.success({ Actions.controlGpAction.success({
//*
controlGpList: data controlGpList: data
}) })
); );
if (data.length > 0) {
const controlIds: any = [];
data.forEach((gps) => {
controlIds.push(gps.controlId);
});
const param = controlIds.join(',');
const rs = yield call(controlGpApi.getArcrftWarnList, param);
yield put(Actions.controlGpArcrftWarnAction.success(rs));
}
if (objectId && isClickObject) { if (objectId && isClickObject) {
let detailData; let detailData;

27
src/views/control/alarm/ControlAlarmList.js

@ -55,32 +55,7 @@ const ControlAlarmList = props => {
} }
}, [controlGpArcrftWarnList]); }, [controlGpArcrftWarnList]);
useEffect(() => {
if(controlGpList) {
const controlIds = [];
if(controlGpList.length > 0) {
controlGpList.forEach(gps => {
controlIds.push(gps.controlId);
});
const param = controlIds.join(',');
dispatch(controlGpArcrftWarnAction.request(param));
} else {
setTotal(total => {
return {
totalDroneCnt: 0,
totalWarnCnt: 0,
warnList: []
}
})
}
}
}, [controlGpList]);
return ( return (
<div className='left-layer'> <div className='left-layer'>
<div className='layer-content'> <div className='layer-content'>

Loading…
Cancel
Save