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;