From 52170e85ee751c827017e533661e89f1f32e7da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Wed, 18 Oct 2023 18:10:44 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B8=B0=EC=A4=80=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EB=B7=B0=EC=96=B4=20=EC=9E=91=EC=97=85=EC=A4=91.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/standardCode/Sb.style.js | 1 + .../src/pages/standardCode/SbItem.js | 21 ++++++++++++++----- .../src/pages/standardCode/viewer.js | 8 +++++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/egovframe-template-simple-react-contribution/src/pages/standardCode/Sb.style.js b/egovframe-template-simple-react-contribution/src/pages/standardCode/Sb.style.js index 582e6cc..4a0bb54 100644 --- a/egovframe-template-simple-react-contribution/src/pages/standardCode/Sb.style.js +++ b/egovframe-template-simple-react-contribution/src/pages/standardCode/Sb.style.js @@ -20,6 +20,7 @@ export const SbSub = styled.div` export const SbTitle = styled.div` display: flex; align-items: center; + background-color: ${props => props.isOpen ? 'bisque' : ''}; padding-left: ${props => 30+(props.depth * 10)}px; height: 32px; &:hover { diff --git a/egovframe-template-simple-react-contribution/src/pages/standardCode/SbItem.js b/egovframe-template-simple-react-contribution/src/pages/standardCode/SbItem.js index 9ee1c4b..5ee9d64 100644 --- a/egovframe-template-simple-react-contribution/src/pages/standardCode/SbItem.js +++ b/egovframe-template-simple-react-contribution/src/pages/standardCode/SbItem.js @@ -3,12 +3,22 @@ import {SbTitle, SbSub} from './Sb.style' import { FcFolder, FcOpenedFolder, FcFile } from 'react-icons/fc' import { AiOutlinePlusSquare, AiOutlineMinusSquare } from 'react-icons/ai' -const SbItem = ({item, updateDocCode}) => { - - const [collapsed, setCollapsed] = useState(false); +const SbItem = ({item, openDocCode, updateDocCode}) => { + const find = (array, openDocCode) => { + var result; + array.some(o => result = o.doc_code === openDocCode ? o : find(o.childrens || [], openDocCode)); + return result; + }; + const collapsedFlag = find(item.childrens, openDocCode) !== undefined; + // openDocCode === item.doc_code+' '+item.doc_code_name + const [collapsed, setCollapsed] = useState(collapsedFlag); + const [isOpenDoc, setIsOpenDoc] = useState(item.doc_code === openDocCode); function toggleCollapse() { setCollapsed(prevValue => !prevValue); } + function changeOpenDoc(){ + setIsOpenDoc(prevValue => !prevValue) + } if(item.childrens.length > 0){ const icon1 = collapsed?:; @@ -18,7 +28,7 @@ const SbItem = ({item, updateDocCode}) => { {icon1}{icon2} {(item.doc_level === 1?'':item.doc_code)+' '+item.doc_code_name} {item.childrens.map((child) => ( - + ))} @@ -26,8 +36,9 @@ const SbItem = ({item, updateDocCode}) => { }else{ const icon = ; return ( - + { + changeOpenDoc() updateDocCode(item.doc_code, item.doc_code_name) }}>{icon} {(item.doc_level === 1?'':item.doc_code)+' '+item.doc_code_name} diff --git a/egovframe-template-simple-react-contribution/src/pages/standardCode/viewer.js b/egovframe-template-simple-react-contribution/src/pages/standardCode/viewer.js index f5a5333..887d547 100644 --- a/egovframe-template-simple-react-contribution/src/pages/standardCode/viewer.js +++ b/egovframe-template-simple-react-contribution/src/pages/standardCode/viewer.js @@ -49,7 +49,7 @@ function CodeViewer(props) { treeTag.push( {tree.map((subItem) => - + )} ) @@ -115,7 +115,7 @@ function CodeViewer(props) { useEffect(() => { - getCodeDetailInfo(); + getCodeDetailInfo(docCode); }, []); useEffect(() => { getCodeTree(); @@ -144,5 +144,9 @@ function CodeViewer(props) { ); } +CodeViewer.defaultProps = { + docCode: 'KDS 21 45 00', + docName: '가설교량 및 노면복공 설계기준' +} export default CodeViewer;