Browse Source

merge

pull/2/head
김장현 1 year ago
parent
commit
e70568596a
  1. 11
      src/@core/layouts/components/menu/vertical-menu/index.js
  2. BIN
      src/assets/images/finevt_logo.png
  3. BIN
      src/assets/images/uam_icon.png
  4. BIN
      src/assets/images/uam_icon_purple.png
  5. 2
      src/components/map/naver/dron/DronMarker.js
  6. 44
      src/views/control/main/ControlMain.js
  7. 5
      src/views/control/report/ControlReportList.js

11
src/@core/layouts/components/menu/vertical-menu/index.js

@ -20,6 +20,8 @@ import VerticalMenuHeader from './VerticalMenuHeader';
import VerticalNavMenuItems from './VerticalNavMenuItems'; import VerticalNavMenuItems from './VerticalNavMenuItems';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import finevt_logo from '../../../../../assets/images/finevt_logo.png';
const Sidebar = props => { const Sidebar = props => {
const { topMenuCd } = useSelector(state => state.menuState); const { topMenuCd } = useSelector(state => state.menuState);
@ -123,6 +125,15 @@ const Sidebar = props => {
currentActiveItem={currentActiveItem} currentActiveItem={currentActiveItem}
/> />
</ul> </ul>
{menuHover ? (
<ul
style={{ position: 'absolute', bottom: 0, padding: '10px' }}
>
<img src={finevt_logo} width='200' />
</ul>
) : (
<></>
)}
</PerfectScrollbar> </PerfectScrollbar>
</Fragment> </Fragment>
)} )}

BIN
src/assets/images/finevt_logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
src/assets/images/uam_icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/assets/images/uam_icon_purple.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

2
src/components/map/naver/dron/DronMarker.js

@ -267,7 +267,7 @@ export const DronMarker = props => {
controlId: controlId, controlId: controlId,
type: markerOption.type, type: markerOption.type,
icon: { icon: {
content: `<img id=${id} src="${markerOption.url}" alt="" style="transform: rotate(${gps.heading}deg)">`, content: `<img id=${id} src="${markerOption.url}" alt="" style="transform: rotate(${gps.heading}deg);">`,
origin: markerOption.origin, origin: markerOption.origin,
anchor: markerOption.anchor anchor: markerOption.anchor
}, },

44
src/views/control/main/ControlMain.js

@ -2,6 +2,7 @@ import React, { useEffect, useState } from 'react';
import '../../../assets/css/custom.css'; import '../../../assets/css/custom.css';
import logo from '../../../assets/images/pal_logo.png'; import logo from '../../../assets/images/pal_logo.png';
import finevt_logo from '../../../assets/images/finevt_logo.png';
import { import {
Sun, Sun,
@ -42,6 +43,11 @@ const ControlMain = () => {
const { controlGpCountDrone, controlGpCountFlight } = useSelector( const { controlGpCountDrone, controlGpCountFlight } = useSelector(
state => state.controlGpCountState state => state.controlGpCountState
); );
// pav박람회 -> uam, 드론 구별을 위한 임시 코드
// (이 작업으로 고도화 하려면 추후에 서버에서 uam타입을 새로 더 받아 작업해야 함)
const [droneCount, setDroneCount] = useState(0);
const [uamCount, setUamCount] = useState(0);
const [alarm, setAlarm] = useState(false); const [alarm, setAlarm] = useState(false);
const { user } = useSelector(state => state.authState); const { user } = useSelector(state => state.authState);
const [oepnReportList, setOpenReportList] = useState(false); const [oepnReportList, setOpenReportList] = useState(false);
@ -102,6 +108,20 @@ const ControlMain = () => {
} }
}, [isClickObject]); }, [isClickObject]);
useEffect(() => {
if (controlGpCountDrone) {
const uamCnt = controlGpCountDrone.filter(i =>
i.gps.objectId.includes('UAM')
);
const droneCnt = controlGpCountDrone.filter(
i => !i.gps.objectId.includes('UAM')
);
setUamCount(uamCnt.length);
setDroneCount(droneCnt.length);
}
}, [controlGpCountDrone]);
const handlerClose = () => { const handlerClose = () => {
setOpenReportList(true); setOpenReportList(true);
dispatch(objectUnClickAction()); dispatch(objectUnClickAction());
@ -136,6 +156,7 @@ const ControlMain = () => {
<img src={logo} width='80' /> <img src={logo} width='80' />
<span>PAL</span> <span>PAL</span>
</h1> </h1>
<ul className='left-menu-nav'> <ul className='left-menu-nav'>
<li> <li>
<button onClick={() => openMenu('reportList')}> <button onClick={() => openMenu('reportList')}>
@ -163,6 +184,10 @@ const ControlMain = () => {
</li> </li>
</ul> </ul>
<ul className='left-menu-footer'> <ul className='left-menu-footer'>
<li>
<img src={finevt_logo} width='50' />
</li>
<li> <li>
<AiOutlinePoweroff <AiOutlinePoweroff
size={25} size={25}
@ -170,7 +195,9 @@ const ControlMain = () => {
onClick={handlerLogout} onClick={handlerLogout}
/> />
</li> </li>
<WebsocketClient /> <li style={{ marginLeft: '8px' }}>
<WebsocketClient />
</li>
{/* socket_off = 클래스명 변경시 빨간색! 접속이 원할하지않을때 */} {/* socket_off = 클래스명 변경시 빨간색! 접속이 원할하지않을때 */}
</ul> </ul>
</div> </div>
@ -185,7 +212,11 @@ const ControlMain = () => {
<Card> <Card>
<div className='data-box-header'> <div className='data-box-header'>
<span className='box-ti'> <span className='box-ti'>
{!isClickObject ? '인천광역시' : !controlDetail?.stAreaNm ? `${controlDetail?.res.area1} ${controlDetail?.res.area2} ${controlDetail?.res.area3} ${controlDetail?.res.landNm} ${controlDetail?.res.landNum} ` : controlDetail?.stAreaNm} {!isClickObject
? '인천광역시'
: !controlDetail?.stAreaNm
? `${controlDetail?.res.area1} ${controlDetail?.res.area2} ${controlDetail?.res.area3} ${controlDetail?.res.landNm} ${controlDetail?.res.landNum} `
: controlDetail?.stAreaNm}
</span> </span>
<span className=''>&nbsp;{weathericon()}</span> <span className=''>&nbsp;{weathericon()}</span>
</div> </div>
@ -233,11 +264,16 @@ const ControlMain = () => {
<div className='data-list'> <div className='data-list'>
<span>드론</span> <span>드론</span>
{/* <span>{controlGpList ? controlGpList.length : 0}</span> */} {/* <span>{controlGpList ? controlGpList.length : 0}</span> */}
<span> {/* <span>
{controlGpCountDrone?.length > 0 {controlGpCountDrone?.length > 0
? controlGpCountDrone?.length ? controlGpCountDrone?.length
: 0} : 0}
</span> </span> */}
<span>{droneCount}</span>
</div>
<div className='data-list'>
<span>UAM</span>
<span>{uamCount}</span>
</div> </div>
<div className='data-list'> <div className='data-list'>
<span>항공기</span> <span>항공기</span>

5
src/views/control/report/ControlReportList.js

@ -101,10 +101,7 @@ const ControlReportList = props => {
{item.objectId.includes('NAMWON') ? ( {item.objectId.includes('NAMWON') ? (
<dt> <dt>
<div className='data-list'> <div className='data-list'>
<NavLink <NavLink to='/system/multi/views'>
to='/system/multi/views'
style={{ width: '100%' }}
>
<span>실시간 영상보기</span> <span>실시간 영상보기</span>
</NavLink> </NavLink>
</div> </div>

Loading…
Cancel
Save