Browse Source

날씨 머지 버그 수정

pull/2/head
sanguu(박상현) 2 years ago
parent
commit
a19558c838
  1. 472
      src/views/control/report/ControlReportDetail.js

472
src/views/control/report/ControlReportDetail.js

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