diff --git a/egovframe-template-simple-react-contribution/src/css/component.css b/egovframe-template-simple-react-contribution/src/css/component.css index ca64147..4b94a79 100644 --- a/egovframe-template-simple-react-contribution/src/css/component.css +++ b/egovframe-template-simple-react-contribution/src/css/component.css @@ -220,6 +220,15 @@ select::-ms-expand {display:none;} .f_select::after {content: ""; display: block; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); width: 15px; height: 9px; background: url(css/images/ico_arrow_gray_15x9.png) no-repeat;} .f_select select {width: 100%; height: 100%; padding: 0 40px 0 20px; border: 0; color: #222; font-size: 16px; background: transparent;} +/* 건설기준코드list 설계기준 표준시방서 전문시방서 통합 다운로드 탭 */ +/*.mini_board {position: relative;} +.mini_board .tab::after {content: ""; display: block; clear: both;} +.mini_board .tab li {float: left;} +.mini_board .tab li + li {margin-left: 40px;} +.mini_board .tab li a {display: block; position: relative; padding-bottom: 12px; color: #ccc; font-size: 30px; font-weight: 700;} +.mini_board .tab li a.on {color: #222;} +.mini_board .tab li a.on::after {content: ""; display: block; position: absolute; left: 0; bottom: 0; width: 100%; height: 4px; background: #0465be;}*/ + .f_input {height: 46px; padding: 0 20px; border: 0; border-radius: 5px; color: #222; font-size: 16px; background: #f7f7f7;} .f_input2 {height: 46px; padding: 0 20px; border: 1px solid #dde2e5; border-radius: 5px !important; color: #222; font-size: 16px; background: #fff;} diff --git a/egovframe-template-simple-react-contribution/src/pages/standardCode/StandardCodeList.jsx b/egovframe-template-simple-react-contribution/src/pages/standardCode/StandardCodeList.jsx index c5271a9..1844583 100644 --- a/egovframe-template-simple-react-contribution/src/pages/standardCode/StandardCodeList.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/standardCode/StandardCodeList.jsx @@ -1,11 +1,11 @@ -import React, { useState, useEffect, useCallback, useRef } from 'react'; +import React, {useState, useEffect, useCallback, useRef} from 'react'; import {Link, useLocation, useParams} from 'react-router-dom'; import * as EgovNet from 'api/egovFetch'; import URL from 'constants/url'; -import { NOTICE_BBS_ID } from 'config'; +import {NOTICE_BBS_ID} from 'config'; -import { itemIdxByPage } from 'utils/calc'; +import {itemIdxByPage} from 'utils/calc'; import {StandardCodeListModal, StandardCodeListModalTable} from './StandardCodeListModal' import {AiFillFileMarkdown, AiFillStar} from "react-icons/ai"; @@ -13,36 +13,37 @@ import {AiFillFileMarkdown, AiFillStar} from "react-icons/ai"; function StandardCodeList(props) { const {listCode} = useParams(); const [show, setshow] = useState(false); - const [groupseq,setgroupseq] = useState(); - function showhandling(e){ + const [groupseq, setgroupseq] = useState(); + + function showhandling(e) { const param = e.currentTarget.dataset; const groupseq = param.groupseq; console.log(groupseq); EgovNet.requestFetch( '/standardCode/codeListModal.do', - { - method: "POST", - headers: { - 'Content-type': 'application/json' - }, - body: JSON.stringify( - groupseq - ) - },(resp) =>{ - console.log(resp+"------------------------resp") - const body =[]; - const head =[]; - if(resp.length>0){ + { + method: "POST", + headers: { + 'Content-type': 'application/json' + }, + body: JSON.stringify( + groupseq + ) + }, (resp) => { + console.log(resp + "------------------------resp") + const body = []; + const head = []; + if (resp.length > 0) { - resp.forEach(function (item,index){ + resp.forEach(function (item, index) { const formattedDate = item.aplcnBgngYmd.match(/\d{4}-\d{2}-\d{2}/)[0]; - const url = "https://www.kcsc.re.kr/file/DownloadGrp/"+item.docFileGrpId; + const url = "https://www.kcsc.re.kr/file/DownloadGrp/" + item.docFileGrpId; body.push( - {formattedDate} - - - ) + {formattedDate} + + + ) }) head.push( @@ -53,19 +54,21 @@ function StandardCodeList(props) { ) } - setgroupseq(); + setgroupseq(); } ) setshow(true); } - function close () { + + function close() { setshow(false); } + console.group("StandardCodeList"); console.log("[Start] StandardCodeList ------------------------------"); console.log("StandardCodeList [props] : ", props); - console.log("listcode----------------------------"+listCode); + console.log("listcode----------------------------" + listCode); const location = useLocation(); console.log("StandardCodeList [location] : ", location); @@ -76,15 +79,29 @@ function StandardCodeList(props) { const bbsId = location.state?.bbsId || NOTICE_BBS_ID; // eslint-disable-next-line no-unused-vars - const [searchCondition, setSearchCondition] = useState(location.state?.searchCondition || { listCode: listCode, pageIndex: 1, searchCnd: '', searchWrd: '' });// 기존 조회에서 접근 했을 시 || 신규로 접근 했을 시 + const [searchCondition, setSearchCondition] = useState(location.state?.searchCondition || {listCode: listCode, pageIndex: 1, category1: '', searchWrd: ''});// 기존 조회에서 접근 했을 시 || 신규로 접근 했을 시 const [masterBoard, setMasterBoard] = useState({}); const [paginationInfo, setPaginationInfo] = useState({}); const [listTag, setListTag] = useState([]); /* 검색기능 추가 변수*/ - const [listdata,setlistdata] = useState([]); - const [filterData,setfilterData] = useState(''); + const [listdata, setlistdata] = useState([]); + const [filterData, setfilterData] = useState(''); + + /* 탭 */ + const [activeTab, setActiveTab] = useState('10'); + + const handleTabClick = (tabName) => { + setActiveTab(tabName); + + retrieveList({ + ...searchCondition, + category1: cndRef.current.value, + searchWrd: wrdRef.current.value, + tab: tabName + }); + }; const retrieveList = useCallback((searchCondition) => { console.groupCollapsed("StandardCodeList.retrieveList()"); @@ -112,7 +129,7 @@ function StandardCodeList(props) { } ); console.groupEnd("StandardCodeList.retrieveList()"); - },[]); + }, []); useEffect(() => { retrieveList(searchCondition); @@ -161,16 +178,30 @@ function StandardCodeList(props) { />
  • +
  • + {/*
  • +
  • +
  • + +
  • */} {/* */} - +
    +
    +
      +
      handleTabClick(10)}>설계기준
      +
      handleTabClick(20)}>표준시방서
      +
      handleTabClick(40)}>전문시방서
      +
      handleTabClick(50)}>통합 다운로드
      +
    +
    +
    {/* */}
    @@ -198,34 +252,35 @@ function StandardCodeList(props) {
    {/*검색기능 filterData가 없는경우 모든 데이터 출력*/} - {listdata.filter(item=>{ - if (item.groupNm.includes(filterData)){ + {listdata.filter(item => { + if (item.groupNm.includes(filterData)) { return item } return null - }).map(item=>{ - return( -
    -
    {item.mainCategory}
    -
    {item.middleCategory}
    -
    {item.kcscCd}
    -
    {item.groupNm}
    - -
    {item.contentcount>0?내용보기:null}
    -
    {item.docFileGrpId==null?null:}
    -
    -
    - ) + }).map(item => { + return ( +
    +
    {item.mainCategory}
    +
    {item.middleCategory}
    +
    {item.kcscCd}
    +
    {item.groupNm}
    + +
    {item.contentcount > 0 ? 내용보기 : null}
    +
    {item.docFileGrpId == null ? null : + }
    +
    +
    + ) })}
    {/* */} - {/* */} + {/* */} - {/* */} - + {/* */} + {/* */} diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/standardCode/StandardCodeController.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/standardCode/StandardCodeController.java index bb385a7..20e9f16 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/standardCode/StandardCodeController.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/standardCode/StandardCodeController.java @@ -157,9 +157,11 @@ public class StandardCodeController extends BaseController { paginationInfo.setPageSize(propertyService.getInt("Globals.pageSize")); resultMap.put("paginationInfo", paginationInfo); - System.out.println("@@@ searchCnd : " + tnDocumentInfo.getSearchCnd()); - if (!tnDocumentInfo.getSearchCnd().isEmpty()) { - tnDocumentInfo.setListCode(tnDocumentInfo.getSearchCnd()); + System.out.println("@@@ category1 : " + tnDocumentInfo.getCategory1()); + System.out.println("@@@ searchWrd : " + tnDocumentInfo.getSearchWrd()); + System.out.println("@@@ tab : " + tnDocumentInfo.getTab()); + if (!tnDocumentInfo.getCategory1().isEmpty()) { + tnDocumentInfo.setListCode(tnDocumentInfo.getTab() + tnDocumentInfo.getCategory1()); } List tnDocumentCodeList = standardCodeService.selectStandardCodeList(tnDocumentInfo); resultMap.put("resultList", tnDocumentCodeList); diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/standardCode/entity/TnDocumentInfo.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/standardCode/entity/TnDocumentInfo.java index a8a6c79..f983f61 100644 --- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/standardCode/entity/TnDocumentInfo.java +++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/standardCode/entity/TnDocumentInfo.java @@ -108,5 +108,7 @@ public class TnDocumentInfo { @Transient private String searchWrd; @Transient - private String searchCnd; + private String tab; + @Transient + private String category1; } \ No newline at end of file