Browse Source

flyTo 계정 전용 작업

master
이준희 2 months ago
parent
commit
6ba21bf69f
  1. 162
      src/@core/layouts/HorizontalLayout.js
  2. 7
      src/@core/layouts/components/menu/vertical-menu/VerticalMenuHeader.js
  3. 3
      src/@core/layouts/components/navbar/NavbarUser.js
  4. 4
      src/components/dashboard/DashboardMenu.js
  5. 26
      src/views/control/main/ControlMain.js

162
src/@core/layouts/HorizontalLayout.js

@ -1,123 +1,129 @@
// ** React Imports // ** React Imports
import { useState, useEffect } from 'react' import { useState, useEffect } from 'react';
import { Link } from 'react-router-dom' import { Link } from 'react-router-dom';
// ** Store & Actions // ** Store & Actions
import { useSelector, useDispatch } from 'react-redux' import { useSelector, useDispatch } from 'react-redux';
import { handleMenuHidden, handleContentWidth } from '@store/actions/layout' import { handleMenuHidden, handleContentWidth } from '@store/actions/layout';
// ** Third Party Components // ** Third Party Components
import classnames from 'classnames' import classnames from 'classnames';
import { ArrowUp } from 'react-feather' import { ArrowUp } from 'react-feather';
import ScrollToTop from 'react-scroll-up' import ScrollToTop from 'react-scroll-up';
import { Navbar, NavItem, Button } from 'reactstrap' import { Navbar, NavItem, Button } from 'reactstrap';
// ** Configs // ** Configs
import themeConfig from '@configs/themeConfig' import themeConfig from '@configs/themeConfig';
// ** Custom Components // ** Custom Components
import Customizer from '@components/customizer' import Customizer from '@components/customizer';
import NavbarComponent from './components/navbar' import NavbarComponent from './components/navbar';
import FooterComponent from './components/footer' import FooterComponent from './components/footer';
import MenuComponent from './components/menu/horizontal-menu' import MenuComponent from './components/menu/horizontal-menu';
// ** Custom Hooks // ** Custom Hooks
import { useRTL } from '@hooks/useRTL' import { useRTL } from '@hooks/useRTL';
import { useSkin } from '@hooks/useSkin' import { useSkin } from '@hooks/useSkin';
import { useNavbarType } from '@hooks/useNavbarType' import { useNavbarType } from '@hooks/useNavbarType';
import { useFooterType } from '@hooks/useFooterType' import { useFooterType } from '@hooks/useFooterType';
import { useNavbarColor } from '@hooks/useNavbarColor' import { useNavbarColor } from '@hooks/useNavbarColor';
// ** Styles // ** Styles
import '@styles/base/core/menu/menu-types/horizontal-menu.scss' import '@styles/base/core/menu/menu-types/horizontal-menu.scss';
const HorizontalLayout = props => { const HorizontalLayout = props => {
// ** Props // ** Props
const { children, navbar, footer, menu, currentActiveItem, routerProps } = props const { children, navbar, footer, menu, currentActiveItem, routerProps } =
props;
// ** Hooks // ** Hooks
const [skin, setSkin] = useSkin() const [skin, setSkin] = useSkin();
const [isRtl, setIsRtl] = useRTL() const [isRtl, setIsRtl] = useRTL();
const [navbarType, setNavbarType] = useNavbarType() const [navbarType, setNavbarType] = useNavbarType();
const [footerType, setFooterType] = useFooterType() const [footerType, setFooterType] = useFooterType();
const [navbarColor, setNavbarColor] = useNavbarColor() const [navbarColor, setNavbarColor] = useNavbarColor();
// ** States // ** States
const [isMounted, setIsMounted] = useState(false) const [isMounted, setIsMounted] = useState(false);
const [navbarScrolled, setNavbarScrolled] = useState(false) const [navbarScrolled, setNavbarScrolled] = useState(false);
// ** Store Vars // ** Store Vars
const dispatch = useDispatch() const dispatch = useDispatch();
const layoutStore = useSelector(state => state.layout) const layoutStore = useSelector(state => state.layout);
const { user } = useSelector(state => state.authState);
// ** Vars // ** Vars
const contentWidth = layoutStore.contentWidth const contentWidth = layoutStore.contentWidth;
const isHidden = layoutStore.menuHidden const isHidden = layoutStore.menuHidden;
// ** Handles Content Width // ** Handles Content Width
const setContentWidth = val => dispatch(handleContentWidth(val)) const setContentWidth = val => dispatch(handleContentWidth(val));
// ** Handles Content Width // ** Handles Content Width
const setIsHidden = val => dispatch(handleMenuHidden(val)) const setIsHidden = val => dispatch(handleMenuHidden(val));
// ** UseEffect Cleanup // ** UseEffect Cleanup
const cleanup = () => { const cleanup = () => {
setIsMounted(false) setIsMounted(false);
setNavbarScrolled(false) setNavbarScrolled(false);
} };
//** ComponentDidMount //** ComponentDidMount
useEffect(() => { useEffect(() => {
setIsMounted(true) setIsMounted(true);
window.addEventListener('scroll', function () { window.addEventListener('scroll', function () {
if (window.pageYOffset > 65 && navbarScrolled === false) { if (window.pageYOffset > 65 && navbarScrolled === false) {
setNavbarScrolled(true) setNavbarScrolled(true);
} }
if (window.pageYOffset < 65) { if (window.pageYOffset < 65) {
setNavbarScrolled(false) setNavbarScrolled(false);
} }
}) });
return () => cleanup() return () => cleanup();
}, []) }, []);
// ** Vars // ** Vars
const footerClasses = { const footerClasses = {
static: 'footer-static', static: 'footer-static',
sticky: 'footer-fixed', sticky: 'footer-fixed',
hidden: 'footer-hidden' hidden: 'footer-hidden'
} };
const navbarWrapperClasses = { const navbarWrapperClasses = {
floating: 'navbar-floating', floating: 'navbar-floating',
sticky: 'navbar-sticky', sticky: 'navbar-sticky',
static: 'navbar-static' static: 'navbar-static'
} };
const navbarClasses = { const navbarClasses = {
floating: 'floating-nav', floating: 'floating-nav',
sticky: 'fixed-top' sticky: 'fixed-top'
} };
const bgColorCondition = navbarColor !== '' && navbarColor !== 'light' && navbarColor !== 'white' const bgColorCondition =
navbarColor !== '' && navbarColor !== 'light' && navbarColor !== 'white';
if (!isMounted) { if (!isMounted) {
return null return null;
} }
return ( return (
<div <div
className={classnames( className={classnames(
`wrapper horizontal-layout horizontal-menu ${navbarWrapperClasses[navbarType] || 'navbar-floating'} ${ `wrapper horizontal-layout horizontal-menu ${
footerClasses[footerType] || 'footer-static' navbarWrapperClasses[navbarType] || 'navbar-floating'
} menu-expanded` } ${footerClasses[footerType] || 'footer-static'} menu-expanded`
)} )}
{...(isHidden ? { 'data-col': '1-column' } : {})} {...(isHidden ? { 'data-col': '1-column' } : {})}
> >
<Navbar <Navbar
expand='lg' expand='lg'
className={classnames('header-navbar navbar-fixed align-items-center navbar-shadow navbar-brand-center', { className={classnames(
'navbar-scrolled': navbarScrolled 'header-navbar navbar-fixed align-items-center navbar-shadow navbar-brand-center',
})} {
'navbar-scrolled': navbarScrolled
}
)}
> >
{!navbar && ( {!navbar && (
<div className='navbar-header d-xl-block d-none'> <div className='navbar-header d-xl-block d-none'>
@ -127,7 +133,9 @@ const HorizontalLayout = props => {
<span className='brand-logo'> <span className='brand-logo'>
<img src={themeConfig.app.appLogoImage} alt='logo' /> <img src={themeConfig.app.appLogoImage} alt='logo' />
</span> </span>
<h2 className='brand-text mb-0'>{themeConfig.app.appName}</h2> <h2 className='brand-text mb-0'>
{user?.cstmrSno === 27 ? 'FLYTO' : themeConfig.app.appName}
</h2>
</Link> </Link>
</NavItem> </NavItem>
</ul> </ul>
@ -145,12 +153,24 @@ const HorizontalLayout = props => {
expand='sm' expand='sm'
light={skin !== 'dark'} light={skin !== 'dark'}
dark={skin === 'dark' || bgColorCondition} dark={skin === 'dark' || bgColorCondition}
className={classnames(`header-navbar navbar-horizontal navbar-shadow menu-border`, { className={classnames(
[navbarClasses[navbarType]]: navbarType !== 'static', `header-navbar navbar-horizontal navbar-shadow menu-border`,
'floating-nav': (!navbarClasses[navbarType] && navbarType !== 'static') || navbarType === 'floating' {
})} [navbarClasses[navbarType]]: navbarType !== 'static',
'floating-nav':
(!navbarClasses[navbarType] && navbarType !== 'static') ||
navbarType === 'floating'
}
)}
> >
{menu ? menu : <MenuComponent routerProps={routerProps} currentActiveItem={currentActiveItem} />} {menu ? (
menu
) : (
<MenuComponent
routerProps={routerProps}
currentActiveItem={currentActiveItem}
/>
)}
</Navbar> </Navbar>
</div> </div>
) : null} ) : null}
@ -180,11 +200,21 @@ const HorizontalLayout = props => {
/> />
) : null} ) : null}
<footer <footer
className={classnames(`footer footer-light ${footerClasses[footerType] || 'footer-static'}`, { className={classnames(
'd-none': footerType === 'hidden' `footer footer-light ${footerClasses[footerType] || 'footer-static'}`,
})} {
'd-none': footerType === 'hidden'
}
)}
> >
{footer ? footer : <FooterComponent footerType={footerType} footerClasses={footerClasses} />} {footer ? (
footer
) : (
<FooterComponent
footerType={footerType}
footerClasses={footerClasses}
/>
)}
</footer> </footer>
{themeConfig.layout.scrollTop === true ? ( {themeConfig.layout.scrollTop === true ? (
@ -197,6 +227,6 @@ const HorizontalLayout = props => {
</div> </div>
) : null} ) : null}
</div> </div>
) );
} };
export default HorizontalLayout export default HorizontalLayout;

7
src/@core/layouts/components/menu/vertical-menu/VerticalMenuHeader.js

@ -1,6 +1,7 @@
// ** React Imports // ** React Imports
import { useEffect } from 'react'; import { useEffect } from 'react';
import { NavLink } from 'react-router-dom'; import { NavLink } from 'react-router-dom';
import { useSelector } from 'react-redux';
// ** Third Party Components // ** Third Party Components
import { Disc, X, Circle } from 'react-feather'; import { Disc, X, Circle } from 'react-feather';
@ -18,6 +19,8 @@ const VerticalMenuHeader = props => {
menuHover menuHover
} = props; } = props;
const { user } = useSelector(state => state.authState);
// ** Reset open group // ** Reset open group
useEffect(() => { useEffect(() => {
if (!menuHover && menuCollapsed) setGroupOpen([]); if (!menuHover && menuCollapsed) setGroupOpen([]);
@ -54,7 +57,9 @@ const VerticalMenuHeader = props => {
<span className='brand-logo'> <span className='brand-logo'>
<img src={themeConfig.app.appLogoImage} alt='logo' /> <img src={themeConfig.app.appLogoImage} alt='logo' />
</span> </span>
<h2 className='brand-text mb-0'>{themeConfig.app.appName}</h2> <h2 className='brand-text mb-0'>
{user?.cstmrSno === 27 ? 'FLYTO' : themeConfig.app.appName}
</h2>
</NavLink> </NavLink>
</li> </li>
<li className='nav-item nav-toggle'> <li className='nav-item nav-toggle'>

3
src/@core/layouts/components/navbar/NavbarUser.js

@ -13,6 +13,7 @@ const NavbarUser = props => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const { topMenuCd } = useSelector(state => state.menuState); const { topMenuCd } = useSelector(state => state.menuState);
const { user } = useSelector(state => state.authState);
// ** Function to toggle Theme (Light/Dark) // ** Function to toggle Theme (Light/Dark)
const ThemeToggler = () => { const ThemeToggler = () => {
@ -100,7 +101,7 @@ const NavbarUser = props => {
// toggle('2') // toggle('2')
// }} // }}
> >
드론 관제 시스템 {user?.cstmrSno === 27 ? 'UAM 관제 시스템' : '드론 관제 시스템'}
</NavLink> </NavLink>
</NavItem> </NavItem>
<NavItem> <NavItem>

4
src/components/dashboard/DashboardMenu.js

@ -1,12 +1,14 @@
import { Card, Col, Row } from 'reactstrap'; import { Card, Col, Row } from 'reactstrap';
import { useSelector } from 'react-redux';
export const DashboardMenu = props => { export const DashboardMenu = props => {
const { user } = useSelector(state => state.authState);
return ( return (
<Row className='menu-page'> <Row className='menu-page'>
<Col md={3}> <Col md={3}>
<Card className='menu-list01'> <Card className='menu-list01'>
<a href='#' onClick={() => window.open('/control', '_blank')}> <a href='#' onClick={() => window.open('/control', '_blank')}>
드론 관제 시스템 {user?.cstmrSno === 27 ? 'UAM 관제 시스템' : '드론 관제 시스템'}
</a> </a>
</Card> </Card>
</Col> </Col>

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

@ -168,7 +168,7 @@ const ControlMain = () => {
<div className='left-menu'> <div className='left-menu'>
<h1 className='logo'> <h1 className='logo'>
<img src={logo} width='80' /> <img src={logo} width='80' />
<span>PAL</span> <span>{user?.cstmrSno === 27 ? 'FLYTO' : 'PAL'}</span>
</h1> </h1>
<ul className='left-menu-nav'> <ul className='left-menu-nav'>
@ -210,15 +210,21 @@ const ControlMain = () => {
<li> <li>
<img src={tp_logo} width='50' /> <img src={tp_logo} width='50' />
</li> */} </li> */}
<li> {user?.cstmrSno === 27 ? (
<img src={nam_logo} width='50' /> <></>
</li> ) : (
<li> <>
<img src={mi_logo} width='60' /> <li>
</li> <img src={nam_logo} width='50' />
<li> </li>
<img src={kiast_logo} width='80' /> <li>
</li> <img src={mi_logo} width='60' />
</li>
<li>
<img src={kiast_logo} width='80' />
</li>
</>
)}
<li> <li>
<AiOutlinePoweroff <AiOutlinePoweroff
size={25} size={25}

Loading…
Cancel
Save