2023-10-26 02:30:13 +00:00
import React , { useState , useEffect , useCallback , useRef } from 'react' ;
import { Link , useLocation } from 'react-router-dom' ;
import * as EgovNet from 'api/egovFetch' ;
import URL from 'constants/url' ;
import { NOTICE _BBS _ID } from 'config' ;
import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavInform' ;
import EgovPaging from 'components/EgovPaging' ;
import { itemIdxByPage } from 'utils/calc' ;
function StandardCodeList ( props ) {
console . group ( "StandardCodeList" ) ;
console . log ( "[Start] StandardCodeList ------------------------------" ) ;
console . log ( "StandardCodeList [props] : " , props ) ;
const location = useLocation ( ) ;
console . log ( "StandardCodeList [location] : " , location ) ;
const cndRef = useRef ( ) ;
const wrdRef = useRef ( ) ;
const bbsId = location . state ? . bbsId || NOTICE _BBS _ID ;
// eslint-disable-next-line no-unused-vars
const [ searchCondition , setSearchCondition ] = useState ( location . state ? . searchCondition || { bbsId : bbsId , pageIndex : 1 , searchCnd : '0' , searchWrd : '' } ) ; // 기존 조회에서 접근 했을 시 || 신규로 접근 했을 시
const [ masterBoard , setMasterBoard ] = useState ( { } ) ;
const [ paginationInfo , setPaginationInfo ] = useState ( { } ) ;
const [ listTag , setListTag ] = useState ( [ ] ) ;
const retrieveList = useCallback ( ( searchCondition ) => {
console . groupCollapsed ( "StandardCodeList.retrieveList()" ) ;
const retrieveListURL = '/standardCode/selectStandardCodeList.do' ;
const requestOptions = {
method : "POST" ,
headers : {
'Content-type' : 'application/json' ,
} ,
body : JSON . stringify ( searchCondition )
}
EgovNet . requestFetch ( retrieveListURL ,
requestOptions ,
( resp ) => {
2023-10-31 01:41:21 +00:00
setMasterBoard ( resp . result . tnDocumentInfoVO ) ;
2023-10-26 02:30:13 +00:00
setPaginationInfo ( resp . result . paginationInfo ) ;
2023-10-31 01:41:21 +00:00
2023-10-26 02:30:13 +00:00
let mutListTag = [ ] ;
mutListTag . push ( < p className = "no_data" key = "0" > 검색된 결과가 없습니다 . < / p > ) ; // 게시판 목록 초기값
2023-10-31 01:41:21 +00:00
const resultCnt = parseInt ( resp . result . resultCnt ) ;
2023-10-26 02:30:13 +00:00
const currentPageNo = resp . result . paginationInfo . currentPageNo ;
const pageSize = resp . result . paginationInfo . pageSize ;
2023-10-26 06:58:15 +00:00
console . log ( resp )
2023-10-26 02:30:13 +00:00
// 리스트 항목 구성
2023-10-26 06:58:15 +00:00
resp . result . resultList . forEach ( function ( item , index ) {
2023-10-26 02:30:13 +00:00
if ( index === 0 ) mutListTag = [ ] ; // 목록 초기화
const listIdx = itemIdxByPage ( resultCnt , currentPageNo , pageSize , index ) ;
mutListTag . push (
< Link
to = { { pathname : URL . STANDARD _CODE _DETAIL } }
state = { {
docInfoSeq : item . docInfoSeq ,
docNm : item . docNm ,
2023-10-31 01:41:21 +00:00
kcscCode : item . kcscCode ,
2023-10-26 02:30:13 +00:00
searchCondition : searchCondition
} }
key = { listIdx }
className = "list_item" >
< div > { listIdx } < / div >
{ ( item . replyLc * 1 ? true : false ) &&
< div className = "al reply" >
{ item . docNm }
< / div > }
{ ( item . replyLc * 1 ? false : true ) &&
< div className = "al" >
{ item . docNm }
< / div > }
< div > { item . frstRegisterNm } < / div >
< div > { item . frstRegisterPnttm } < / div >
< div > { item . inqireCo } < / div >
< / Link >
) ;
} ) ;
setListTag ( mutListTag ) ;
} ,
function ( resp ) {
console . log ( "err response : " , resp ) ;
}
) ;
console . groupEnd ( "StandardCodeList.retrieveList()" ) ;
} , [ ] ) ;
useEffect ( ( ) => {
retrieveList ( searchCondition ) ;
// eslint-disable-next-line react-hooks/exhaustive-deps
} , [ ] ) ;
console . log ( "------------------------------StandardCodeList [End]" ) ;
console . groupEnd ( "StandardCodeList" ) ;
return (
< div className = "container" >
< div className = "c_wrap" >
{ /* <!-- Location --> */ }
< div className = "location" >
< ul >
< li > < Link to = { URL . MAIN } className = "home" > Home < / Link > < / li >
< li > < Link to = '#' > 건설기준코드 < / Link > < / li >
< li > { masterBoard && masterBoard . bbsNm } < / li >
< / ul >
< / div >
{ /* <!--// Location --> */ }
< div className = "layout" >
{ /* <!-- Navigation --> */ }
2023-10-26 06:58:15 +00:00
< EgovLeftNav / >
2023-10-26 02:30:13 +00:00
{ /* <!--// Navigation --> */ }
< div className = "contents NOTICE_LIST" id = "contents" >
{ /* <!-- 본문 --> */ }
< div className = "top_tit" >
< h1 className = "tit_1" > 건설기준코드 < / h1 >
< / div >
< h2 className = "tit_2" > 설계기준 , 표준시방서 내용을 열람할 수 있습니다 . < / h2 >
{ /* <!-- 검색조건 --> */ }
< div className = "condition" >
< ul >
< li className = "third_1 L" >
< label className = "f_select" htmlFor = "sel1" >
< select id = "sel1" title = "조건" defaultValue = { searchCondition . searchCnd } ref = { cndRef }
onChange = { e => {
cndRef . current . value = e . target . value ;
} }
>
< option value = "0" > 제목 < / option >
< option value = "1" > 내용 < / option >
< option value = "2" > 작성자 < / option >
< / select >
< / label >
< / li >
< li className = "third_2 R" >
< span className = "f_search w_500" >
< input type = "text" name = "" defaultValue = { searchCondition . searchWrd } placeholder = "" ref = { wrdRef }
onChange = { e => {
wrdRef . current . value = e . target . value ;
} }
/ >
< button type = "button"
onClick = { ( ) => {
retrieveList ( { ... searchCondition , pageIndex : 1 , searchCnd : cndRef . current . value , searchWrd : wrdRef . current . value } ) ;
} } > 조회 < / button >
< / span >
< / li >
< li >
< Link to = { URL . INFORM _NOTICE _CREATE } state = { { bbsId : bbsId } } className = "btn btn_blue_h46 pd35" > 등록 < / Link >
< / li >
< / ul >
< / div >
{ /* <!--// 검색조건 --> */ }
{ /* <!-- 게시판목록 --> */ }
< div className = "board_list BRD002" >
< div className = "head" >
2023-10-31 01:41:21 +00:00
< span > 대분류 < / span >
< span > 중분류 < / span >
< span > 코드번호 < / span >
< span > 코드명 < / span >
< span > 개정이력 < / span >
< span > 보기 < / span >
< span > 다운로드 < / span >
< span > 즐겨찾기 < / span >
2023-10-26 02:30:13 +00:00
< / div >
< div className = "result" >
{ listTag }
< / div >
< / div >
{ /* <!--// 게시판목록 --> */ }
< div className = "board_bot" >
{ /* <!-- Paging --> */ }
< EgovPaging pagination = { paginationInfo } moveToPage = { passedPage => {
retrieveList ( { ... searchCondition , pageIndex : passedPage , searchCnd : cndRef . current . value , searchWrd : wrdRef . current . value } )
} } / >
{ /* <!--/ Paging --> */ }
< / div >
{ /* <!--// 본문 --> */ }
< / div >
< / div >
< / div >
< / div >
) ;
}
export default StandardCodeList ;