import * as EgovNet from "../../../api/egovFetch";
import React, {useEffect, useState} from "react";
import SbItem from "./SbItem";
import {Col, Row} from "react-bootstrap";
import {VwDiv, VwPtag} from "./Vw.style";
/*최상위 컴포넌트*/
export function Maincontent({docCode}) {
const [doccode, setdoccode] = useState('');
const [docname, setdocname] = useState('');
//TODO 맨처음 목차코드 및 목차제목 안나오는 문제 수정
function setdoccodandname(doccode, docname) {
setdoccode(doccode);
setdocname(docname);
}
return (
{doccode+' '+docname}
)
}
/*글 트리 컴포넌트*/
export function CodeTree({docCode, setdoccodandname}) {
const [codeTree, setcodeTree] = useState([]);
const [doccode, setdoccode] = useState(docCode);
let data = [];
const getCodeTree = () => {
EgovNet.requestFetch(
'/standardCode/getCodeTree.do',
{
method: "POST",
headers: {
'Content-type': 'application/json'
},
body: JSON.stringify({})
}, (item) => {
data = item.result.codeTree;
const nest = (menuData, parent_seq = null, link = 'parent_seq') =>
menuData.filter(item => item[link] === parent_seq)
.map(item => ({...item, childrens: nest(menuData, item.seq)}));
setcodeTree(nest(data));
}, () => {
})
}
useEffect(() => {
getCodeTree()
}, [])
return (
{codeTree.map(resp => {
return (
)
}
)}
)
}
/*글 내용+목차 분리 컴포넌트*/
//TODO 추가 분리 작업 필요
export function CodeCotentData({docCode}) {
const [codeChapter, setcodeChapter] = useState([]);
const [codeContent, setcodeContetn] = useState([]);
let result =[];
const getCodeDetail = (docCode) => {
EgovNet.requestFetch(
'/standardCode/getCodeDetailInfo.do',
{
method: "POST",
headers: {
'Content-type': 'application/json'
},
body: JSON.stringify({
docCode: docCode
})
}, (item) => {
result = item.result.document;
}, () => {
})
}
useEffect(() => {
getCodeDetail(docCode)
setcodeChapter(result.map(item =>{
const isTitle = item.full_content.includes(item.group_title);
return(
{
document.location.hash="#"+item.cont_type_cd;
}} dangerouslySetInnerHTML={ {__html: item.group_title} }>
)
}))
setcodeContetn(result.map(item =>{
const isTitle = item.full_content.includes(item.group_title);
const docLinkReg = /([A-Z]{3,5}(\s[0-9]{2}){3,4})/g
const docPartReg = /\((?:표|그림|부록)?\s*([A-Z]\.)?(?!\d\))\d+(\.\d+)*(\s?\(\d\))?(-\d+)?(?:\s*[A-Z])?\)/g
if(docLinkReg.test(item.full_content)){
const docCodeAry = item.full_content.match(docLinkReg);
const docCodeMap = new Map();
for(let i=0; i' + docCode + '')
}
docCodeMap.forEach((docCodeLink, docCode)=>{
item.full_content = item.full_content.replaceAll(docCode, docCodeLink);
})
if(docPartReg.test(item.full_content)){
const docPartAry = item.full_content.match(docPartReg);
const docPartMap = new Map();
for(let i=0; i'+
''+
'');
}
docPartMap.forEach((docPartLink, docPart)=>{
item.full_content = item.full_content.replaceAll(docPart, docPartLink);
})
}
if(item.full_content.includes(""+item.full_content;
}
item.full_content = item.full_content+"
"
return(
)
}
}))
}, [docCode])
return (<>
>)
}
/*글 목차 컴포넌트*/
export function CodeChapter({codeChapter}) {
return (<>{codeChapter}>)
}
/*글 내용 컴포넌트*/
export function CodeContent({codeContent}) {
return (<>{codeContent}>)
}