오류코드 표현.

기준코드 링크 오류 수정.
문단 책갈피 삽입.
cks
강석 최 2023-10-23 15:57:14 +09:00
parent fda47a31eb
commit c962738e79
3 changed files with 43 additions and 16 deletions

View File

@ -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;}

View File

@ -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;

View File

@ -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;