기준코드 링크 선택 연도 매칭 기능 추가.

cks
강석 최 2023-12-13 11:16:15 +09:00
parent c5557e6d6c
commit 03d9a596cb
1 changed files with 16 additions and 9 deletions

View File

@ -16,10 +16,9 @@ import CODE from "../../constants/code";
function CodeViewer(props) {
const [treeLoading, setTreeLoading] = useState(true);
const [docLoading, setDocLoading] = useState(true);
const [selectFlag, setSelectFlag] = useState(false);
const {linkedDocCode} = useParams();
const [docInfoSeq, setDocInfoSeq] = useState()
const [docCode, setDocCode] = useState(linkedDocCode !== undefined?linkedDocCode:props.docCode);
const [docCode, setDocCode] = useState(linkedDocCode !== undefined?linkedDocCode.split(':')[0]:props.docCode);
const [ymd, setYmd] = useState(linkedDocCode !== undefined?linkedDocCode.split(':')[1]:props.ymd);
const [docName, setDocName] = useState(props.docName);
const [docInfo, setDocInfo] = useState();
const [codeTree, setCodeTree] = useState();
@ -112,6 +111,17 @@ function CodeViewer(props) {
let headTag = [];
if(docInfo.length>0){
let optionTag = [];
let activeIndex = 0;
if(ymd===undefined){
activeIndex = docInfo.length-1
}else{
docInfo.forEach(function (item, index){
if(new Date(item.estb_ymd) <= new Date(ymd)){
activeIndex = index;
}
})
}
debugger
docInfo.forEach(function (item, index){
let buttonClass = "btn btn-sm docInfoBtn "
let pClass = "yearInfo ";
@ -120,7 +130,7 @@ function CodeViewer(props) {
}else{
buttonClass += "btn-outline-primary "
}
if(index === docInfo.length-1){
if(index === activeIndex){
pClass += "yearInfoActive"
buttonClass += "docInfoActive"
}
@ -213,7 +223,7 @@ function CodeViewer(props) {
for(let i=0; i<docCodeAry.length; i++) {
const docCode = docCodeAry[i];
//docCodeMap.set(docCode, '<a class="docLink" href="/standardCode/viewer/' + docCode + '" target="_blank">' + docCode + '</a>')
docCodeMap.set(docCode, '<a class="docLink" href="#" data-doccode="'+docCode+'" target="_blank">' + docCode + '</a>')
docCodeMap.set(docCode, '<a class="docLink" href="#" data-doccode="'+docCode+'">' + docCode + '</a>')
}
docCodeMap.forEach((docCodeLink, docCode)=>{
item.full_content = item.full_content.replaceAll(docCode, docCodeLink);
@ -273,7 +283,6 @@ function CodeViewer(props) {
setErrorSelector(errorTag);
}
setDocLoading(false);
setSelectFlag(false);
document.querySelector(".detailInfoDiv").scrollTop = 0
},
function (resp) {
@ -286,7 +295,6 @@ function CodeViewer(props) {
const docInfoSelectorChange = useCallback((el) => {
setDocSummary([<div></div>])
setDocDetail([<div>불러오는중</div>])
setSelectFlag(true);
const activeBtn = document.querySelector(".docInfoActive")
activeBtn.className = activeBtn.className.replace('docInfoActive', '').trim();
const activeP = document.querySelector(".yearInfoActive")
@ -317,8 +325,7 @@ function CodeViewer(props) {
for(let docLink of docLinkList){
docLink.onclick = (e) => {
const ymd = document.querySelector(".docInfoActive").dataset.ymd;
debugger
window.open("/standardCode/viewer/", "mozillaTab")
window.open("/standardCode/viewer/"+e.target.dataset.doccode+":"+ymd);
}
}