- Canvas 메뉴 수정
This commit is contained in:
parent
98680aecf9
commit
ff564e73e5
@ -1,5 +1,5 @@
|
|||||||
'use client'
|
'use client'
|
||||||
import { useState } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
import MenuDepth01 from './MenuDepth01'
|
import MenuDepth01 from './MenuDepth01'
|
||||||
import QSelectBox from '@/components/common/select/QSelectBox'
|
import QSelectBox from '@/components/common/select/QSelectBox'
|
||||||
import { useMessage } from '@/hooks/useMessage'
|
import { useMessage } from '@/hooks/useMessage'
|
||||||
@ -8,14 +8,21 @@ export default function CanvasMenu(props) {
|
|||||||
const { setShowCanvasSettingModal, showOutlineModal, setShowOutlineModal } = props
|
const { setShowCanvasSettingModal, showOutlineModal, setShowOutlineModal } = props
|
||||||
const [menuNumber, setMenuNumber] = useState(null)
|
const [menuNumber, setMenuNumber] = useState(null)
|
||||||
const [vertical, setVertical] = useState(true)
|
const [vertical, setVertical] = useState(true)
|
||||||
|
const [type, setType] = useState('')
|
||||||
const { getMessage } = useMessage()
|
const { getMessage } = useMessage()
|
||||||
const SelectOption = [{ name: '瓦53A' }, { name: '瓦53A' }]
|
const SelectOption = [{ name: '瓦53A' }, { name: '瓦53A' }]
|
||||||
const onClickNav = (number) => {
|
const onClickNav = (number) => {
|
||||||
setMenuNumber(number)
|
setMenuNumber(number)
|
||||||
|
if (number === 2) setType('outline')
|
||||||
|
if (number === 3) setType('surface')
|
||||||
|
if (number === 4) setType('module')
|
||||||
}
|
}
|
||||||
const menuProps = {
|
const menuProps = {
|
||||||
setShowOutlineModal,
|
setShowOutlineModal,
|
||||||
|
type,
|
||||||
}
|
}
|
||||||
|
useEffect(() => {}, [menuNumber, type])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={`canvas-menu-wrap ${menuNumber === 2 || menuNumber === 3 || menuNumber === 4 ? 'active' : ''}`}>
|
<div className={`canvas-menu-wrap ${menuNumber === 2 || menuNumber === 3 || menuNumber === 4 ? 'active' : ''}`}>
|
||||||
<div className="canvas-menu-inner">
|
<div className="canvas-menu-inner">
|
||||||
@ -42,7 +49,7 @@ export default function CanvasMenu(props) {
|
|||||||
>
|
>
|
||||||
<button>
|
<button>
|
||||||
<span className="menu-icon con02"></span>
|
<span className="menu-icon con02"></span>
|
||||||
{getMessage('plan.menu.root.cover')}
|
{getMessage('plan.menu.roof.cover')}
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
<li className={`canvas-menu-item ${menuNumber === 3 ? 'active' : ''}`} onClick={() => onClickNav(3)}>
|
<li className={`canvas-menu-item ${menuNumber === 3 ? 'active' : ''}`} onClick={() => onClickNav(3)}>
|
||||||
@ -143,8 +150,8 @@ export default function CanvasMenu(props) {
|
|||||||
</div>
|
</div>
|
||||||
<div className={`canvas-depth2-wrap ${menuNumber === 2 || menuNumber === 3 || menuNumber === 4 ? 'active' : ''}`}>
|
<div className={`canvas-depth2-wrap ${menuNumber === 2 || menuNumber === 3 || menuNumber === 4 ? 'active' : ''}`}>
|
||||||
{menuNumber === 2 && <MenuDepth01 {...menuProps} />}
|
{menuNumber === 2 && <MenuDepth01 {...menuProps} />}
|
||||||
{menuNumber === 3 && <MenuDepth01 />}
|
{menuNumber === 3 && <MenuDepth01 {...menuProps} />}
|
||||||
{menuNumber === 4 && <MenuDepth01 />}
|
{menuNumber === 4 && <MenuDepth01 {...menuProps} />}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import { useMessage } from '@/hooks/useMessage'
|
|||||||
import { useEffect, useState } from 'react'
|
import { useEffect, useState } from 'react'
|
||||||
|
|
||||||
export default function MenuDepth01(props) {
|
export default function MenuDepth01(props) {
|
||||||
const { setShowOutlineModal } = props
|
const { setShowOutlineModal, type } = props
|
||||||
const { getMessage } = useMessage()
|
const { getMessage } = useMessage()
|
||||||
const [activeMenu, setActiveMenu] = useState(0)
|
const [activeMenu, setActiveMenu] = useState(0)
|
||||||
const onClickMenu = (menuNum) => {
|
const onClickMenu = (menuNum) => {
|
||||||
@ -23,6 +23,27 @@ export default function MenuDepth01(props) {
|
|||||||
{ id: 6, name: '特殊コーナー形状' },
|
{ id: 6, name: '特殊コーナー形状' },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
const menuInfo = {
|
||||||
|
outline: [
|
||||||
|
// 지붕덮개
|
||||||
|
{ id: 0, name: 'plan.menu.roof.cover.outline.drawing' },
|
||||||
|
{ id: 1, name: 'plan.menu.roof.cover.roof.shape.setting' },
|
||||||
|
{ id: 2, name: 'plan.menu.roof.cover.roof.shape.edit' },
|
||||||
|
{ id: 3, name: 'plan.menu.roof.cover.auxiliary.line.drawing' },
|
||||||
|
],
|
||||||
|
surface: [
|
||||||
|
// 배치면
|
||||||
|
{ id: 0, name: 'plan.menu.placement.surface.drawing' },
|
||||||
|
{ id: 1, name: 'plan.menu.placement.surface.surface' },
|
||||||
|
{ id: 2, name: 'plan.menu.placement.surface.object' },
|
||||||
|
],
|
||||||
|
module: [
|
||||||
|
// 모듈, 회로 구성
|
||||||
|
{ id: 0, name: 'plan.menu.module.circuit.setting.default' },
|
||||||
|
{ id: 1, name: 'plan.menu.module.circuit.setting.circuit.trestle.setting' },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
menus.forEach((menu) => {
|
menus.forEach((menu) => {
|
||||||
menu.isActive = menu.id === activeMenu
|
menu.isActive = menu.id === activeMenu
|
||||||
@ -31,10 +52,10 @@ export default function MenuDepth01(props) {
|
|||||||
return (
|
return (
|
||||||
<div className="canvas-depth2-inner">
|
<div className="canvas-depth2-inner">
|
||||||
<ul className="canvas-depth2-list">
|
<ul className="canvas-depth2-list">
|
||||||
{menus.map((menu) => {
|
{menuInfo[type].map((menu) => {
|
||||||
return (
|
return (
|
||||||
<li key={menu.id} className={`canvas-depth2-item ${menu.id === activeMenu ? 'active' : ''}`}>
|
<li key={menu.id} className={`canvas-depth2-item ${menu.id === activeMenu ? 'active' : ''}`}>
|
||||||
<button onClick={() => onClickMenu(menu.id)}>{menu.name}</button>
|
<button onClick={() => onClickMenu(menu.id)}>{getMessage(menu.name)}</button>
|
||||||
</li>
|
</li>
|
||||||
)
|
)
|
||||||
})}
|
})}
|
||||||
|
|||||||
@ -3,6 +3,8 @@ import Link from 'next/link'
|
|||||||
import { usePathname } from 'next/navigation'
|
import { usePathname } from 'next/navigation'
|
||||||
import { useMessage } from '@/hooks/useMessage'
|
import { useMessage } from '@/hooks/useMessage'
|
||||||
import QSelectBox from '@/components/common/select/QSelectBox'
|
import QSelectBox from '@/components/common/select/QSelectBox'
|
||||||
|
import React from 'react'
|
||||||
|
import { logout } from '@/lib/authActions'
|
||||||
|
|
||||||
export const ToggleonMouse = (e, act, target) => {
|
export const ToggleonMouse = (e, act, target) => {
|
||||||
const listWrap = e.target.closest(target)
|
const listWrap = e.target.closest(target)
|
||||||
@ -21,15 +23,74 @@ export const ToggleonMouse = (e, act, target) => {
|
|||||||
|
|
||||||
export default function Header(props) {
|
export default function Header(props) {
|
||||||
const { loginedUserNm } = props
|
const { loginedUserNm } = props
|
||||||
// console.log('loginedUserNm:', loginedUserNm)
|
|
||||||
const { getMessage } = useMessage()
|
const { getMessage } = useMessage()
|
||||||
const pathName = usePathname()
|
const pathName = usePathname()
|
||||||
|
|
||||||
if (pathName.includes('login') || pathName.includes('join')) {
|
if (pathName.includes('login') || pathName.includes('join')) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
const SelectOption = [{ name: 'オンライン保証シ' }, { name: 'ステム' }]
|
const SelectOption = [{ name: 'オンライン保証シ' }, { name: 'ステム' }]
|
||||||
const onLogout = () => {
|
const onLogout = () => {
|
||||||
// logout()
|
logout()
|
||||||
|
}
|
||||||
|
const menus = [
|
||||||
|
{ name: 'header.menus.home', url: '/', children: [] },
|
||||||
|
{
|
||||||
|
name: 'header.menus.management',
|
||||||
|
url: '',
|
||||||
|
children: [
|
||||||
|
{ name: 'header.menus.management.stuff', url: '/management/stuff', children: [] },
|
||||||
|
{ name: 'header.menus.management.plan', url: '/floor-plan', children: [] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'header.menus.community',
|
||||||
|
url: '',
|
||||||
|
children: [
|
||||||
|
{ name: 'header.menus.community.notice', url: '/community/notice', children: [] },
|
||||||
|
{ name: 'header.menus.community.faq', url: '/community/faq', children: [] },
|
||||||
|
{ name: 'header.menus.community.archive', url: '/community/archive', children: [] },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const getMenuTemplate = (menus) => {
|
||||||
|
return menus.map((menu) => {
|
||||||
|
return (
|
||||||
|
<li
|
||||||
|
key={`${menu.name}-mn1`}
|
||||||
|
className={'nav-item'}
|
||||||
|
onMouseEnter={(e) => ToggleonMouse(e, 'add', 'nav > ul')}
|
||||||
|
onMouseLeave={(e) => ToggleonMouse(e, 'remove', 'nav > ul')}
|
||||||
|
>
|
||||||
|
{menu.children.length === 0 ? (
|
||||||
|
<Link key={`${menu.name}-link`} href={menu.url}>
|
||||||
|
{getMessage(menu.name)}
|
||||||
|
</Link>
|
||||||
|
) : (
|
||||||
|
<React.Fragment key={`${menu.name}-frag`}>
|
||||||
|
<button>{getMessage(menu.name)}</button>
|
||||||
|
<ul className="nav-depth2">
|
||||||
|
{menu.children.map((m) => {
|
||||||
|
return (
|
||||||
|
<li
|
||||||
|
key={`${m.name}-mn2`}
|
||||||
|
className={'nav-depth2-item'}
|
||||||
|
onMouseEnter={(e) => ToggleonMouse(e, 'add', 'li > ul')}
|
||||||
|
onMouseLeave={(e) => ToggleonMouse(e, 'remove', 'li > ul')}
|
||||||
|
>
|
||||||
|
<Link key={`${m.name}-link`} href={m.url}>
|
||||||
|
{getMessage(m.name)}
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
</ul>
|
||||||
|
</React.Fragment>
|
||||||
|
)}
|
||||||
|
</li>
|
||||||
|
)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -40,68 +101,7 @@ export default function Header(props) {
|
|||||||
<Link href={'/'}></Link>
|
<Link href={'/'}></Link>
|
||||||
</h1>
|
</h1>
|
||||||
<nav>
|
<nav>
|
||||||
<ul className="nav-list ">
|
<ul className="nav-list ">{getMenuTemplate(menus)}</ul>
|
||||||
<li
|
|
||||||
className="nav-item "
|
|
||||||
onMouseEnter={(e) => ToggleonMouse(e, 'add', 'nav > ul')}
|
|
||||||
onMouseLeave={(e) => ToggleonMouse(e, 'remove', 'nav > ul')}
|
|
||||||
>
|
|
||||||
<Link href={'/'}>{getMessage('header.menus.home')}</Link>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
className="nav-item"
|
|
||||||
onMouseEnter={(e) => ToggleonMouse(e, 'add', 'nav > ul')}
|
|
||||||
onMouseLeave={(e) => ToggleonMouse(e, 'remove', 'nav > ul')}
|
|
||||||
>
|
|
||||||
<button>{getMessage('header.menus.management')}</button>
|
|
||||||
<ul className="nav-depth2">
|
|
||||||
<li
|
|
||||||
className="nav-depth2-item"
|
|
||||||
onMouseEnter={(e) => ToggleonMouse(e, 'add', 'li > ul')}
|
|
||||||
onMouseLeave={(e) => ToggleonMouse(e, 'remove', 'li > ul')}
|
|
||||||
>
|
|
||||||
<Link href={'#'}>{getMessage('header.menus.management.stuff')}</Link>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
className="nav-depth2-item"
|
|
||||||
onMouseEnter={(e) => ToggleonMouse(e, 'add', 'li > ul')}
|
|
||||||
onMouseLeave={(e) => ToggleonMouse(e, 'remove', 'li > ul')}
|
|
||||||
>
|
|
||||||
<Link href={'/floor-plan'}>{getMessage('header.menus.management.plan')}</Link>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
className="nav-item"
|
|
||||||
onMouseEnter={(e) => ToggleonMouse(e, 'add', 'nav > ul')}
|
|
||||||
onMouseLeave={(e) => ToggleonMouse(e, 'remove', 'nav > ul')}
|
|
||||||
>
|
|
||||||
<button>{getMessage('header.menus.community')}</button>
|
|
||||||
<ul className="nav-depth2">
|
|
||||||
<li
|
|
||||||
className="nav-depth2-item"
|
|
||||||
onMouseEnter={(e) => ToggleonMouse(e, 'add', 'li > ul')}
|
|
||||||
onMouseLeave={(e) => ToggleonMouse(e, 'remove', 'li > ul')}
|
|
||||||
>
|
|
||||||
<Link href={'/community/notice'}>{getMessage('header.menus.community.notice')}</Link>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
className="nav-depth2-item"
|
|
||||||
onMouseEnter={(e) => ToggleonMouse(e, 'add', 'li > ul')}
|
|
||||||
onMouseLeave={(e) => ToggleonMouse(e, 'remove', 'li > ul')}
|
|
||||||
>
|
|
||||||
<Link href={'/community/faq'}>{getMessage('header.menus.community.faq')}</Link>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
className="nav-depth2-item"
|
|
||||||
onMouseEnter={(e) => ToggleonMouse(e, 'add', 'li > ul')}
|
|
||||||
onMouseLeave={(e) => ToggleonMouse(e, 'remove', 'li > ul')}
|
|
||||||
>
|
|
||||||
<Link href={'/community/archive'}>{getMessage('header.menus.community.archive')}</Link>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
<div className="header-left">
|
<div className="header-left">
|
||||||
|
|||||||
@ -15,8 +15,12 @@
|
|||||||
"header.stem": "ステム",
|
"header.stem": "ステム",
|
||||||
"plan.menu.plan.drawing": "도면작성",
|
"plan.menu.plan.drawing": "도면작성",
|
||||||
"plan.menu.placement.surface.initial.setting": "配置面 初期設定",
|
"plan.menu.placement.surface.initial.setting": "配置面 初期設定",
|
||||||
"plan.menu.root.cover": "지붕덮개",
|
"plan.menu.roof.cover": "지붕덮개",
|
||||||
"plan.menu.root.cover.outline.drawing": "外壁線を描",
|
"plan.menu.roof.cover.outline.drawing": "外壁線を描",
|
||||||
|
"plan.menu.roof.cover.roof.shape.setting": "屋根形状設定",
|
||||||
|
"plan.menu.roof.cover.roof.shape.edit": "지붕형상 편집",
|
||||||
|
"plan.menu.roof.cover.auxiliary.line.drawing": "補助線を描",
|
||||||
|
"plan.menu.roof.cover.roof.surface.alloc": "지붕면 할당",
|
||||||
"modal.cover.outline.drawing": "外壁線を描",
|
"modal.cover.outline.drawing": "外壁線を描",
|
||||||
"modal.cover.outline": "外壁線",
|
"modal.cover.outline": "外壁線",
|
||||||
"modal.cover.outline.right.angle": "直角",
|
"modal.cover.outline.right.angle": "直角",
|
||||||
@ -30,9 +34,9 @@
|
|||||||
"modal.cover.outline.rollback": "一変戦に戻る",
|
"modal.cover.outline.rollback": "一変戦に戻る",
|
||||||
"modal.cover.outline.remove": "外壁の削除",
|
"modal.cover.outline.remove": "外壁の削除",
|
||||||
"modal.cover.outline.select.move": "外壁の選択、移動",
|
"modal.cover.outline.select.move": "外壁の選択、移動",
|
||||||
"plan.menu.root.cover.roof.setting": "屋根形状設定",
|
"plan.menu.roof.cover.roof.setting": "屋根形状設定",
|
||||||
"plan.menu.root.cover.roof.edit": "지붕형상 편집",
|
"plan.menu.roof.cover.roof.edit": "지붕형상 편집",
|
||||||
"plan.menu.root.cover.sub.line": "補助線を描",
|
"plan.menu.roof.cover.sub.line": "補助線を描",
|
||||||
"plan.menu.placement.surface": "配置面",
|
"plan.menu.placement.surface": "配置面",
|
||||||
"plan.menu.placement.surface.drawing": "배치면 그리기",
|
"plan.menu.placement.surface.drawing": "배치면 그리기",
|
||||||
"plan.menu.placement.surface.surface": "면형상 배치",
|
"plan.menu.placement.surface.surface": "면형상 배치",
|
||||||
|
|||||||
@ -15,9 +15,12 @@
|
|||||||
"header.stem": "Stem",
|
"header.stem": "Stem",
|
||||||
"plan.menu.plan.drawing": "도면작성",
|
"plan.menu.plan.drawing": "도면작성",
|
||||||
"plan.menu.placement.surface.initial.setting": "배치면 초기 설정",
|
"plan.menu.placement.surface.initial.setting": "배치면 초기 설정",
|
||||||
"plan.menu.root.cover": "지붕덮개",
|
"plan.menu.roof.cover": "지붕덮개",
|
||||||
"plan.menu.root.cover.outline.drawing": "외벽선 그리기",
|
"plan.menu.roof.cover.outline.drawing": "외벽선 그리기",
|
||||||
"plan.menu.root.cover.auxiliary.line.drawing": "보조선 그리기",
|
"plan.menu.roof.cover.roof.shape.setting": "지붕형상 설정",
|
||||||
|
"plan.menu.roof.cover.roof.shape.edit": "지붕형상 편집",
|
||||||
|
"plan.menu.roof.cover.auxiliary.line.drawing": "보조선 그리기",
|
||||||
|
"plan.menu.roof.cover.roof.surface.alloc": "지붕면 할당",
|
||||||
"modal.cover.outline.drawing": "외벽선 작성",
|
"modal.cover.outline.drawing": "외벽선 작성",
|
||||||
"modal.cover.outline": "외벽선",
|
"modal.cover.outline": "외벽선",
|
||||||
"modal.cover.outline.right.angle": "직각",
|
"modal.cover.outline.right.angle": "직각",
|
||||||
@ -31,9 +34,6 @@
|
|||||||
"modal.cover.outline.rollback": "일변전으로 돌아가기",
|
"modal.cover.outline.rollback": "일변전으로 돌아가기",
|
||||||
"modal.cover.outline.remove": "외벽 제거",
|
"modal.cover.outline.remove": "외벽 제거",
|
||||||
"modal.cover.outline.select.move": "외벽 선택, 이동",
|
"modal.cover.outline.select.move": "외벽 선택, 이동",
|
||||||
"plan.menu.root.cover.roof.setting": "지붕형상 설정",
|
|
||||||
"plan.menu.root.cover.roof.edit": "지붕형상 편집",
|
|
||||||
"plan.menu.root.cover.sub.line": "보조선 그리기",
|
|
||||||
"plan.menu.placement.surface": "배치면",
|
"plan.menu.placement.surface": "배치면",
|
||||||
"plan.menu.placement.surface.drawing": "배치면 그리기",
|
"plan.menu.placement.surface.drawing": "배치면 그리기",
|
||||||
"plan.menu.placement.surface.surface": "면형상 배치",
|
"plan.menu.placement.surface.surface": "면형상 배치",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user