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;