|
|
|
@ -12,12 +12,6 @@ import {
|
|
|
|
|
GET_WGHT_TYPE_CD |
|
|
|
|
} from '../../../utility/CondeUtil'; |
|
|
|
|
import { controlGpLogAction, controlweatherAction } from '../../../modules/control/gp'; |
|
|
|
|
======= |
|
|
|
|
import dfsxyconv from '../../../utility/dfsxyconv'; |
|
|
|
|
import { |
|
|
|
|
controlGpLogAction, |
|
|
|
|
controlweatherAction |
|
|
|
|
} from '../../../modules/control/gp'; |
|
|
|
|
import ControlAlarmDetail from '../alarm/ControlAlarmDetail'; |
|
|
|
|
import axios from '../../../modules/utils/customAxiosUtil'; |
|
|
|
|
import { |
|
|
|
@ -43,105 +37,105 @@ const ControlReportDetail = props => {
|
|
|
|
|
|
|
|
|
|
function weathericon() { |
|
|
|
|
|
|
|
|
|
function a() { |
|
|
|
|
if (controlDetail) { |
|
|
|
|
let wheatherDetail = controlDetail.items.item; |
|
|
|
|
let skyDetail = wheatherDetail[6].fcstValue; |
|
|
|
|
if (skyDetail == 1 || skyDetail == 2 || skyDetail == 4) { |
|
|
|
|
return <CloudRain />; |
|
|
|
|
} else if (skyDetail == 4) { |
|
|
|
|
return <CloudSnow />; |
|
|
|
|
} else if (skyDetail == 0 || wheatherDetail[5].fcstValue == 1) { |
|
|
|
|
return <Sun />; |
|
|
|
|
} else return <Cloud />; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (historyModal) { |
|
|
|
|
if (controlGpDetail) { |
|
|
|
|
dispatch(controlGpLogAction.request({ id: controlGpDetail.controlId })); |
|
|
|
|
function a() { |
|
|
|
|
if (controlDetail) { |
|
|
|
|
let wheatherDetail = controlDetail.items.item; |
|
|
|
|
let skyDetail = wheatherDetail[6].fcstValue; |
|
|
|
|
if (skyDetail == 1 || skyDetail == 2 || skyDetail == 4) { |
|
|
|
|
return <CloudRain />; |
|
|
|
|
} else if (skyDetail == 4) { |
|
|
|
|
return <CloudSnow />; |
|
|
|
|
} else if (skyDetail == 0 || wheatherDetail[5].fcstValue == 1) { |
|
|
|
|
return <Sun />; |
|
|
|
|
} else return <Cloud />; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, [historyModal]); |
|
|
|
|
|
|
|
|
|
const handlerClose = () => { |
|
|
|
|
dispatch(objectUnClickAction()); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const nullMessage = val => { |
|
|
|
|
if (val) { |
|
|
|
|
return val; |
|
|
|
|
} else { |
|
|
|
|
return '-'; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
return ( |
|
|
|
|
<div className='left-layer'> |
|
|
|
|
<div className='layer-content'> |
|
|
|
|
<div className='layer-ti'> |
|
|
|
|
<h4>드론 상세정보</h4> |
|
|
|
|
<button |
|
|
|
|
className='btn-icon' |
|
|
|
|
color='primary' |
|
|
|
|
// onClick={() => props.setOpenReportDetail(false)}
|
|
|
|
|
onClick={() => handlerClose()} |
|
|
|
|
> |
|
|
|
|
<X size={20} /> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
useEffect(() => { |
|
|
|
|
if (historyModal) { |
|
|
|
|
if (controlGpDetail) { |
|
|
|
|
dispatch(controlGpLogAction.request({ id: controlGpDetail.controlId })); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, [historyModal]); |
|
|
|
|
|
|
|
|
|
<div className='layer-content-box mb-1'> |
|
|
|
|
<button |
|
|
|
|
type='button' |
|
|
|
|
className='history-btn' |
|
|
|
|
onClick={() => setHistoryModal(!historyModal)} |
|
|
|
|
> |
|
|
|
|
비정상상황 알림내역 |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
const handlerClose = () => { |
|
|
|
|
dispatch(objectUnClickAction()); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
<div className='layer-content-box'> |
|
|
|
|
<div className='drone-ti'> |
|
|
|
|
<img src={drone_yellow} width='40' /> |
|
|
|
|
{controlDetail?.arcrftModelNm |
|
|
|
|
? controlDetail?.arcrftModelNm |
|
|
|
|
: controlGpDetail?.objectId} |
|
|
|
|
const nullMessage = val => { |
|
|
|
|
if (val) { |
|
|
|
|
return val; |
|
|
|
|
} else { |
|
|
|
|
return '-'; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
return ( |
|
|
|
|
<div className='left-layer'> |
|
|
|
|
<div className='layer-content'> |
|
|
|
|
<div className='layer-ti'> |
|
|
|
|
<h4>드론 상세정보</h4> |
|
|
|
|
<button |
|
|
|
|
className='btn-icon' |
|
|
|
|
color='primary' |
|
|
|
|
// onClick={() => props.setOpenReportDetail(false)}
|
|
|
|
|
onClick={() => handlerClose()} |
|
|
|
|
> |
|
|
|
|
<X size={20} /> |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div className='drone-img'> |
|
|
|
|
{controlDetail?.imageUrl ? ( |
|
|
|
|
<img src={IMG_PATH + controlDetail?.imageUrl} /> |
|
|
|
|
) : ( |
|
|
|
|
<img src={drone_img} /> |
|
|
|
|
)} |
|
|
|
|
|
|
|
|
|
<div className='layer-content-box mb-1'> |
|
|
|
|
<button |
|
|
|
|
type='button' |
|
|
|
|
className='history-btn' |
|
|
|
|
onClick={() => setHistoryModal(!historyModal)} |
|
|
|
|
> |
|
|
|
|
비정상상황 알림내역 |
|
|
|
|
</button> |
|
|
|
|
</div> |
|
|
|
|
<div className='layer-content-info'> |
|
|
|
|
<dl> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>제작번호</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlDetail?.prdctNum)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>식별번호</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlGpDetail?.objectId} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>중량</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{GET_WGHT_TYPE_CD(controlDetail?.wghtTypeCd)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>종류</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{GET_ARCTFT_TYPE_CD(controlDetail?.arcrftTypeCd)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
{/* <dt> |
|
|
|
|
|
|
|
|
|
<div className='layer-content-box'> |
|
|
|
|
<div className='drone-ti'> |
|
|
|
|
<img src={drone_yellow} width='40' /> |
|
|
|
|
{controlDetail?.arcrftModelNm |
|
|
|
|
? controlDetail?.arcrftModelNm |
|
|
|
|
: controlGpDetail?.objectId} |
|
|
|
|
</div> |
|
|
|
|
<div className='drone-img'> |
|
|
|
|
{controlDetail?.imageUrl ? ( |
|
|
|
|
<img src={IMG_PATH + controlDetail?.imageUrl} /> |
|
|
|
|
) : ( |
|
|
|
|
<img src={drone_img} /> |
|
|
|
|
)} |
|
|
|
|
</div> |
|
|
|
|
<div className='layer-content-info'> |
|
|
|
|
<dl> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>제작번호</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlDetail?.prdctNum)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>식별번호</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlGpDetail?.objectId} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>중량</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{GET_WGHT_TYPE_CD(controlDetail?.wghtTypeCd)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>종류</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{GET_ARCTFT_TYPE_CD(controlDetail?.arcrftTypeCd)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
{/* <dt> |
|
|
|
|
<div className='list-left-txt'>배터리 잔량</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlGpDetail?.betteryLevel} % |
|
|
|
@ -153,179 +147,179 @@ const ControlReportDetail = props => {
|
|
|
|
|
{controlGpDetail?.betteryVoltage} volt |
|
|
|
|
</div> |
|
|
|
|
</dt> */} |
|
|
|
|
</dl> |
|
|
|
|
</dl> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div className='layer-content'> |
|
|
|
|
<div className='layer-ti'> |
|
|
|
|
<h4>비행정보</h4> |
|
|
|
|
</div> |
|
|
|
|
<div className='layer-content-box'> |
|
|
|
|
<div className='layer-content-info'> |
|
|
|
|
<dl> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>시작위치</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlDetail?.stAreaNm)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>시작시간</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlDetail?.cntrlStDt |
|
|
|
|
? moment(controlDetail?.cntrlStDt, 'YYYYMMDDHHmmss').format( |
|
|
|
|
<div className='layer-content'> |
|
|
|
|
<div className='layer-ti'> |
|
|
|
|
<h4>비행정보</h4> |
|
|
|
|
</div> |
|
|
|
|
<div className='layer-content-box'> |
|
|
|
|
<div className='layer-content-info'> |
|
|
|
|
<dl> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>시작위치</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlDetail?.stAreaNm)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>시작시간</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlDetail?.cntrlStDt |
|
|
|
|
? moment(controlDetail?.cntrlStDt, 'YYYYMMDDHHmmss').format( |
|
|
|
|
'MM-DD HH:mm:ss' |
|
|
|
|
) |
|
|
|
|
: '-'} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
{/* <dt> |
|
|
|
|
: '-'} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
{/* <dt> |
|
|
|
|
<div className='list-left-txt'>현재위치</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
인천광역시 부평구 안남로 272 |
|
|
|
|
</div> |
|
|
|
|
</dt> */} |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>속도</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlGpDetail?.speed && controlGpDetail?.speedType |
|
|
|
|
? `${controlGpDetail?.speed} ${controlGpDetail?.speedType}` |
|
|
|
|
: '-'} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>고도</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlGpDetail?.elev && controlGpDetail?.elevType |
|
|
|
|
? `${controlGpDetail?.elev} ${controlGpDetail?.elevType}` |
|
|
|
|
: '-'} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>좌표(위도/경도)</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlGpDetail?.lat && controlGpDetail?.lng |
|
|
|
|
? `${controlGpDetail?.lat} / ${controlGpDetail?.lng}` |
|
|
|
|
: '-'} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
{/* <dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>속도</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlGpDetail?.speed && controlGpDetail?.speedType |
|
|
|
|
? `${controlGpDetail?.speed} ${controlGpDetail?.speedType}` |
|
|
|
|
: '-'} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>고도</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlGpDetail?.elev && controlGpDetail?.elevType |
|
|
|
|
? `${controlGpDetail?.elev} ${controlGpDetail?.elevType}` |
|
|
|
|
: '-'} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>좌표(위도/경도)</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlGpDetail?.lat && controlGpDetail?.lng |
|
|
|
|
? `${controlGpDetail?.lat} / ${controlGpDetail?.lng}` |
|
|
|
|
: '-'} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
{/* <dt> |
|
|
|
|
<div className='list-left-txt'>비행거리</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlGpDetail?.moveDistance)}{' '} |
|
|
|
|
{controlGpDetail?.moveDistanceType} |
|
|
|
|
</div> |
|
|
|
|
</dt> */} |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>헤딩 방위각</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlGpDetail?.heading)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
{/* <dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>헤딩 방위각</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlGpDetail?.heading)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
{/* <dt> |
|
|
|
|
<div className='list-left-txt'>상태</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlGpDetail?.dronStatus)} |
|
|
|
|
</div> |
|
|
|
|
</dt> */} |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>위치정보 수신 시간</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlGpDetail?.serverRcvDt |
|
|
|
|
? moment( |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>위치정보 수신 시간</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{controlGpDetail?.serverRcvDt |
|
|
|
|
? moment( |
|
|
|
|
controlGpDetail?.serverRcvDt, |
|
|
|
|
'YYYYMMDDHHmmss' |
|
|
|
|
).format('MM-DD HH:mm:ss') |
|
|
|
|
: '-'} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
</dl> |
|
|
|
|
: '-'} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
</dl> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div className='layer-content'> |
|
|
|
|
<div className='layer-ti'> |
|
|
|
|
<h4>운영자 정보</h4> |
|
|
|
|
</div> |
|
|
|
|
<div className='layer-content-box'> |
|
|
|
|
<div className='layer-content-info'> |
|
|
|
|
<dl> |
|
|
|
|
{/* <dt> |
|
|
|
|
<div className='layer-content'> |
|
|
|
|
<div className='layer-ti'> |
|
|
|
|
<h4>운영자 정보</h4> |
|
|
|
|
</div> |
|
|
|
|
<div className='layer-content-box'> |
|
|
|
|
<div className='layer-content-info'> |
|
|
|
|
<dl> |
|
|
|
|
{/* <dt> |
|
|
|
|
<div className='list-left-txt'>소속기관</div> |
|
|
|
|
<div className='list-right-txt'>팔네트웍스</div> |
|
|
|
|
</dt> */} |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>담당자 이름</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlDetail?.ownerNm)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>담당자 연락처</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlDetail?.hpno)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
</dl> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>담당자 이름</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlDetail?.ownerNm)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
<dt> |
|
|
|
|
<div className='list-left-txt'>담당자 연락처</div> |
|
|
|
|
<div className='list-right-txt'> |
|
|
|
|
{nullMessage(controlDetail?.hpno)} |
|
|
|
|
</div> |
|
|
|
|
</dt> |
|
|
|
|
</dl> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div className='layer-content'> |
|
|
|
|
<div className='layer-ti'> |
|
|
|
|
<h4>날씨 정보</h4> |
|
|
|
|
</div> |
|
|
|
|
<div className='layer-content-box'> |
|
|
|
|
<div className='layer-content-info'> |
|
|
|
|
<div className='layer-weather-table'> |
|
|
|
|
<div className='layer-weather-address'> |
|
|
|
|
현재위치의 날씨 정보입니다. |
|
|
|
|
<span> |
|
|
|
|
<Compass size={20} /> |
|
|
|
|
{controlDetail?.stAreaNm} |
|
|
|
|
</span> |
|
|
|
|
<div className='layer-content'> |
|
|
|
|
<div className='layer-ti'> |
|
|
|
|
<h4>날씨 정보</h4> |
|
|
|
|
</div> |
|
|
|
|
<div className='layer-content-box'> |
|
|
|
|
<div className='layer-content-info'> |
|
|
|
|
<div className='layer-weather-table'> |
|
|
|
|
<div className='layer-weather-address'> |
|
|
|
|
현재위치의 날씨 정보입니다. |
|
|
|
|
<span> |
|
|
|
|
<Compass size={20} /> |
|
|
|
|
{controlDetail?.stAreaNm} |
|
|
|
|
</span> |
|
|
|
|
</div> |
|
|
|
|
<Table responsive> |
|
|
|
|
<thead> |
|
|
|
|
<tr> |
|
|
|
|
<th>시각</th> |
|
|
|
|
<th>날씨</th> |
|
|
|
|
<th>기온</th> |
|
|
|
|
<th>풍향</th> |
|
|
|
|
<th>풍속</th> |
|
|
|
|
</tr> |
|
|
|
|
</thead> |
|
|
|
|
<tbody> |
|
|
|
|
<tr> |
|
|
|
|
<td>{controlDetail?.items.item[0].baseTime.substring(0, 2)}시</td> |
|
|
|
|
<td>{weathericon()}</td> |
|
|
|
|
<td> |
|
|
|
|
{controlDetail?.items.item[12].fcstTime.substring(0, 2)}시 |
|
|
|
|
</td> |
|
|
|
|
<td>{a()}</td> |
|
|
|
|
<td>{controlDetail?.items.item[12].fcstValue}℃</td> |
|
|
|
|
<td> |
|
|
|
|
<Navigation2 |
|
|
|
|
style={{ |
|
|
|
|
transform: `rotate(${controlDetail?.items.item[3].fcstValue}deg)` |
|
|
|
|
}} |
|
|
|
|
/> |
|
|
|
|
</td> |
|
|
|
|
<td>{controlDetail?.items.item[4].fcstValue}m/s</td> |
|
|
|
|
</tr> |
|
|
|
|
</tbody> |
|
|
|
|
</Table> |
|
|
|
|
</div> |
|
|
|
|
<Table responsive> |
|
|
|
|
<thead> |
|
|
|
|
<tr> |
|
|
|
|
<th>시각</th> |
|
|
|
|
<th>날씨</th> |
|
|
|
|
<th>기온</th> |
|
|
|
|
<th>풍향</th> |
|
|
|
|
<th>풍속</th> |
|
|
|
|
</tr> |
|
|
|
|
</thead> |
|
|
|
|
<tbody> |
|
|
|
|
<tr> |
|
|
|
|
<td>{controlDetail?.items.item[0].baseTime.substring(0, 2)}시</td> |
|
|
|
|
<td>{weathericon()}</td> |
|
|
|
|
<td> |
|
|
|
|
{controlDetail?.items.item[12].fcstTime.substring(0, 2)}시 |
|
|
|
|
</td> |
|
|
|
|
<td>{a()}</td> |
|
|
|
|
<td>{controlDetail?.items.item[12].fcstValue}℃</td> |
|
|
|
|
<td> |
|
|
|
|
<Navigation2 |
|
|
|
|
style={{ |
|
|
|
|
transform: `rotate(${controlDetail?.items.item[3].fcstValue}deg)` |
|
|
|
|
}} |
|
|
|
|
/> |
|
|
|
|
</td> |
|
|
|
|
<td>{controlDetail?.items.item[4].fcstValue}m/s</td> |
|
|
|
|
</tr> |
|
|
|
|
</tbody> |
|
|
|
|
</Table> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<ControlAlarmDetail |
|
|
|
|
historyModal={historyModal} |
|
|
|
|
setHistoryModal={setHistoryModal} |
|
|
|
|
controlGpWarnLog={controlGpWarnLog} |
|
|
|
|
/> |
|
|
|
|
</div> |
|
|
|
|
<ControlAlarmDetail |
|
|
|
|
historyModal={historyModal} |
|
|
|
|
setHistoryModal={setHistoryModal} |
|
|
|
|
controlGpWarnLog={controlGpWarnLog} |
|
|
|
|
/> |
|
|
|
|
</div> |
|
|
|
|
); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
export default ControlReportDetail; |
|
|
|
|
); |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
export default ControlReportDetail; |