parent
fda47a31eb
commit
c962738e79
|
|
@ -308,5 +308,13 @@
|
|||
|
||||
.viewerDiv{height: calc(100vh - 180px); overflow-y: auto;}
|
||||
.openDoc{background-color: bisque;}
|
||||
.docLink{background-color: aquamarine}
|
||||
.docLink:hover{cursor: pointer}
|
||||
.docLink{
|
||||
color: black;
|
||||
background-color: palegreen
|
||||
}
|
||||
.docLink:hover{cursor: pointer}
|
||||
.docPart{
|
||||
color: forestgreen;
|
||||
}
|
||||
.docPart:hover{cursor: pointer}
|
||||
.errorText{color:red; font-size: x-small; vertical-align: bottom; padding-right: 10px;}
|
||||
|
|
@ -30,8 +30,6 @@ export const SbTitle = styled.div`
|
|||
`;
|
||||
|
||||
export const VwDiv = styled.div`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-left: ${props => (props.depth * 10)}px;
|
||||
color: ${props => (props.isTitle?'darkcyan':'black')};
|
||||
padding-top: ${props => (props.isTitle?'10':'')}px;
|
||||
|
|
|
|||
|
|
@ -84,7 +84,8 @@ function CodeViewer(props) {
|
|||
// 문서 전문 구성
|
||||
let detailTag = [];
|
||||
if(resp.result.document.length>0){
|
||||
const reg = /([A-Z]{3,5}(\s[0-9]{2}){3,4})/g
|
||||
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 // /(\((?:표|그림|부록)?\s*([A-Z]\.)?\d+(\.\d+)*(\s?\(\d\))?(-\d+)?(?:\s*[A-Z])?\))/g
|
||||
resp.result.document.forEach(function (item, index){
|
||||
const isTitle = item.full_content.includes(item.group_title);
|
||||
if(isTitle){
|
||||
|
|
@ -98,16 +99,36 @@ function CodeViewer(props) {
|
|||
</VwDiv>
|
||||
)
|
||||
}
|
||||
if(reg.test(item.full_content)){
|
||||
const docCodeAry = item.full_content.match(reg);
|
||||
const docCodeLink = [];
|
||||
if(docLinkReg.test(item.full_content)){
|
||||
const docCodeAry = item.full_content.match(docLinkReg);
|
||||
const docCodeMap = new Map();
|
||||
for(let i=0; i<docCodeAry.length; i++) {
|
||||
docCodeLink.push('<a class="docLink" href="/standardCode/viewer/' + docCode + '" target="_blank">' + docCode + '</a>')
|
||||
}
|
||||
for(let i=0; i<docCodeAry.length; i++){
|
||||
const docCode = docCodeAry[i];
|
||||
item.full_content = item.full_content.replaceAll(docCode, docCodeLink[i]);
|
||||
docCodeMap.set(docCode, '<a class="docLink" href="/standardCode/viewer/' + docCode + '" target="_blank">' + docCode + '</a>')
|
||||
}
|
||||
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<docPartAry.length; i++) {
|
||||
const docPart = docPartAry[i];
|
||||
docPartMap.set(docPart, docPart +
|
||||
'<key class="docPart">'+
|
||||
'<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 16 16" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M2 4a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v11.5a.5.5 0 0 1-.777.416L7 13.101l-4.223 2.815A.5.5 0 0 1 2 15.5V4z"></path><path d="M4.268 1A2 2 0 0 1 6 0h6a2 2 0 0 1 2 2v11.5a.5.5 0 0 1-.777.416L13 13.768V2a1 1 0 0 0-1-1H4.268z"></path></svg>'+
|
||||
'</key>');
|
||||
}
|
||||
docPartMap.forEach((docPartLink, docPart)=>{
|
||||
item.full_content = item.full_content.replaceAll(docPart, docPartLink);
|
||||
})
|
||||
}
|
||||
}
|
||||
if(item.full_content.includes("<table")){
|
||||
item.full_content = item.full_content.replace('<table ', '<table class="table table-bordered "')
|
||||
}
|
||||
if(item.error_cd !== null){
|
||||
item.full_content += "<div class='errorText'>"+item.error_cd+"</div>";
|
||||
}
|
||||
detailTag.push(
|
||||
<VwDiv depth={item.cont_level} isTitle={isTitle} id={item.cont_type_cd} dangerouslySetInnerHTML={ {__html: item.full_content} }></VwDiv>
|
||||
|
|
@ -145,10 +166,10 @@ function CodeViewer(props) {
|
|||
<Col xs={3} className="border-end viewerDiv">
|
||||
{codeTree}
|
||||
</Col>
|
||||
<Col xs={3} className="border-end viewerDiv">
|
||||
<Col xs={2} className="border-end viewerDiv">
|
||||
{docSummary}
|
||||
</Col>
|
||||
<Col xs={6} className="viewerDiv">
|
||||
<Col xs={7} className="viewerDiv">
|
||||
{docDetail}
|
||||
</Col>
|
||||
</Row>
|
||||
|
|
@ -156,8 +177,8 @@ function CodeViewer(props) {
|
|||
}
|
||||
|
||||
CodeViewer.defaultProps = {
|
||||
docCode: 'KDS 21 45 00',
|
||||
docName: '가설교량 및 노면복공 설계기준'
|
||||
docCode: 'KDS 24 14 30',
|
||||
docName: '강교 설계기준(허용응력설계법)'
|
||||
}
|
||||
|
||||
export default CodeViewer;
|
||||
|
|
|
|||
Loading…
Reference in New Issue