import React, {useState, useEffect, useCallback, useRef} from 'react'; import { Link, useLocation, useNavigate } from 'react-router-dom'; import Row from 'react-bootstrap/Row'; import Col from 'react-bootstrap/Col'; import Button from 'react-bootstrap/Button'; import CountUp from 'react-countup'; import { Box, Tabs, Tab, Typography } from '@mui/material'; import Slider from "react-slick"; import "slick-carousel/slick/slick.css"; import "slick-carousel/slick/slick-theme.css"; import * as EgovNet from 'api/egovFetch'; import EgovLogin from "../main/EgovLogin"; import {parseJwt} from "../../utils/parseJwt"; import {getLocalItem, setLocalItem} from "utils/storage"; import URL from 'constants/url'; import CODE from "constants/code"; import CustomModal from './EgovModal'; import { useCookies } from "react-cookie"; function a11yProps(index) { return { id: `wrapped-tab-${index}`, 'aria-controls': `wrapped-tabpanel-${index}`, }; } function TabPanel(props) { const { children, value, index, ...other } = props; return ( ); } function EgovMain(props) { console.group("EgovMain"); console.log("[Start] EgovMain ------------------------------"); console.log("EgovMain [props] : ", props); const location = useLocation(); const navigate = useNavigate(); console.log("EgovMain [location] : ", location); const [user, setUser] = useState(parseJwt(getLocalItem('accessToken')) || null); console.log(user); // 모달 상태 및 콘텐츠 관리 const [show, setShow] = React.useState(false); const [modalContent, setModalContent] = React.useState({}); const [showModals, setShowModals] = useState([]); const [cookies, setCookie] = useCookies([`MainModal_${modalContent.id}`]); const handleShow = (content) => { setShowModals(prev => [...prev, content]); }; const handleClose = (id) => { setShowModals(prev => prev.filter(modal => modal.id !== id)); }; const handlePlusClick = (currentTabValue) => { const urls = [ URL.SUPPORT_LIST_NOCODE+'/KCSC-NOT', URL.SUPPORT_LIST_NOCODE+'/KCSC-NTC', URL.COMMITTEE_PROGRESS, URL.SUPPORT_RESEARCH, URL.SUPPORT_LIST_NOCODE+'/KCSC-TEC', URL.SUPPORT_LIST_NOCODE+'/KCSC-NWS' ]; if (currentTabValue >= 0 && currentTabValue < urls.length) { navigate(urls[currentTabValue]); } }; const settings = { dots: false, infinite: true, speed: 500, slidesToShow: 6, slidesToScroll: 1, arrows: false, autoplay: true, autoplaySpeed: 3000, pauseOnHover: true }; const settings1 = { dots: true, infinite: true, speed: 1000, slidesToShow: 1, slidesToScroll: 1, arrows: false, autoplay: true, autoplaySpeed: 5000, pauseOnHover: true }; const banners = [ { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, { src: '/assets/images/copy2.png', url: 'https://talbakkum.com' }, { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, { src: '/assets/images/copy2.png', url: 'https://talbakkum.com' }, { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, { src: '/assets/images/copy2.png', url: 'https://talbakkum.com' }, { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, { src: '/assets/images/copy2.png', url: 'https://talbakkum.com' }, { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, { src: '/assets/images/f-logo.png', url: 'https://talbakkum.com' }, // 필요한 만큼 배너 이미지를 추가합니다. ]; // TAB 상태를 정의합니다. const [leftTabValue, setLeftTabValue] = useState(0); const [rightTabValue, setRightTabValue] = useState(3); const handleLeftTabChange = (event, newValue) => { setLeftTabValue(newValue); }; const handleRightTabChange = (event, newValue) => { setRightTabValue(newValue); }; // eslint-disable-next-line no-unused-vars // const [noticeBoard, setNoticeBoard] = useState(); // // eslint-disable-next-line no-unused-vars // const [gallaryBoard, setGallaryBoard] = useState(); // const [noticeListTag, setNoticeListTag] = useState(); // const [gallaryListTag, setGallaryListTag] = useState(); // // const retrieveList = useCallback(() => { // console.groupCollapsed("EgovMain.retrieveList()"); // // // const retrieveListURL = '/'; // const requestOptions = { // method: "POST", // // headers: { // 'Content-type': 'application/json' // }, // body: JSON.stringify() // } // // EgovNet.requestFetch(retrieveListURL, // requestOptions, // (resp) => { // // setNoticeBoard(resp.result.notiList); // setGallaryBoard(resp.result.galList); // // let mutNotiListTag = []; // mutNotiListTag.push(
  • 검색된 결과가 없습니다.
  • ); // 게시판 목록 초기값 // // // 리스트 항목 구성 // resp.result.notiList.forEach(function (item, index) { // if (index === 0) mutNotiListTag = []; // 목록 초기화 // mutNotiListTag.push( //
  • // // {item.nttSj} // {item.frstRegisterPnttm} // //
  • // ); // }); // setNoticeListTag(mutNotiListTag); // // let mutGallaryListTag = []; // mutGallaryListTag.push(
  • 검색된 결과가 없습니다.
  • ); // 게시판 목록 초기값 // // // 리스트 항목 구성 // resp.result.galList.forEach(function (item, index) { // if (index === 0) mutGallaryListTag = []; // 목록 초기화 // mutGallaryListTag.push( //
  • // // {item.nttSj} // {item.frstRegisterPnttm} // //
  • // ); // }); // setGallaryListTag(mutGallaryListTag); // }, // function (resp) { // console.log("err response : ", resp); // } // ); // console.groupEnd("EgovMain.retrieveList()"); // },[]); // // useEffect(() => { // retrieveList(); // }, [retrieveList]); useEffect(() => { // 모달 콘텐츠 배열 const modalContents = [ { id: 1, title: `제목 제목 제목 제목 제목 제목 1`, body: `내용 내용 내용 내용 내용 내용 내용 내용 내용 내용\\n내용 내용 내용 내용 내용 내용 내용 내용 내용 내용\\n내용 내용 내용 내용 내용 내용 내용 내용 내용 내용 1`, files: [ { name: '파일1.txt', imageSrc: '/assets/images/file.png' }, { name: '파일2.txt', imageSrc: '/assets/images/file.png' } ] }, { id: 2, title: `제목 2`, body: `내용 2\n내용 2`, files: [ { name: '파일3.txt', imageSrc: '/assets/images/file.png' }, { name: '파일4.txt', imageSrc: '/assets/images/file.png' } ] } ]; // 쿠키가 없는 모달만 열기 modalContents.forEach(content => { if (!cookies[`MainModal_${content.id}`]) { handleShow(content); } }); }, [cookies]); const onChangeLogin = (user) => { setUser(user); // props.onChangeLogin(user); } const logOutHandler = () => {// 로그인 정보 존재할 때 const logOutUrl = '/auth/logout'; const requestOptions = { headers: { 'Content-type': 'application/json', }, credentials: 'include', } EgovNet.requestFetch(logOutUrl, requestOptions, function (resp) { console.log("===>>> logout resp= ", resp); if (parseInt(resp.resultCode) === parseInt(CODE.RCV_SUCCESS)) { onChangeLogin({ loginVO: {} }); setLocalItem('loginUser', {"id":""}); setLocalItem('accessToken', null); setLocalItem('refreshToken', null); window.alert("로그아웃되었습니다!"); // PC와 Mobile 열린메뉴 닫기: 2023.04.13(목) 김일국 추가 document.querySelector('.all_menu.WEB').classList.add('closed'); document.querySelector('.btnAllMenu').classList.remove('active'); document.querySelector('.btnAllMenu').title = '전체메뉴 닫힘'; document.querySelector('.all_menu.Mobile').classList.add('closed'); onChangeLogin(null); } } ); } console.log("------------------------------EgovMain [End]"); console.groupEnd("EgovMain"); return (
    {/* container */}
    설계기준 더보기 + 표준시방서 더보기 + 공통 지반 구조 조경 건축 농업기반 내진 가설 교량 철도 하천 터널 공동구 설비 상수도 하수도 도로 건설기준안내 위원회일정 전문시방서 훈련/예규/지침 영문건설기준 건설기준용어 최근수정코드 수요조사 오픈 API
    {user ? ( <> {user.id} 님. ) : ('로그인')}
    handlePlusClick(leftTabValue)} /> 국토교통부고시_제2024-147호(내진설계일반(KDS_17_10_00))_정정_고시 2024.01.23. {/**/} 국토교통부고시_제2024-147호(내진설계일반(KDS_17_10_00))_정정_고시 2024.01.23. 국토교통부고시_제2024-147호(내진설계일반(KDS_17_10_00))_정정_고시 2024.01.23. 국토교통부고시_제2024-147호(내진설계일반(KDS_17_10_00))_정정_고시_정정_고시_정정_고시_정정_고시_정정_고시_정정_고시_정정_고시 2024.01.23. 2024년 제7차 건설기준연구 2024.01.23. 2024년 제7차 건설기준위원회 2024.01.23. 2024년 제7차 건설기준위원회 2024.01.23. 2024년 제7차 건설기준위원회 2024.01.23. 위원회 진행현황 리스트 출력
    handlePlusClick(rightTabValue)} /> 2024년 제7차 공지사항 2024.01.23. 2024년 제7차 건설기준연구 2024.01.23. 2024년 제7차 건설기준연구 2024.01.23. 2024년 제7차 건설기준연구 2024.01.23. 기술자료 리스트 출력 보도자료 리스트 출력
    {/**/}
    Q&A
    1/2
    00.jpg 콘크리트 내구성 설계 및 평가 문의요.. 정말 잘 되나요? 콘크리트 내구성 설계 및 평가 문의요.. 정말 잘 되나요? 정말 잘 되나요? 정말 잘 되나요? 정말 잘 되나요? 정말 잘 되나요? 2024.01.23
    00.jpg 콘크리트 내구성 설계 및 평가 문의요.. 정말 잘 되나요? 콘크리트 내구성 설계 및 평가 문의요.. 정말 잘 되나요? 2024.01.23
    00.jpg 콘크리트 내구성 설계 및 평가 문의요.. 정말 잘 되나요? 콘크리트 내구성 설계 및 평가 문의요.. 정말 잘 되나요? 2024.01.23
    00.jpg 콘크리트 내구성 설계 및 평가 문의요.. 정말 잘 되나요? 콘크리트 내구성 설계 및 평가 문의요.. 정말 잘 되나요? 2024.01.23
    다운로드 수 회원가입자 수 일 평균 방문자 개정고시
    {banners.map((banner, index) => (
    {`Banner
    ))}
    {showModals.map(modalContent => ( handleClose(modalContent.id)} modalContent={modalContent} /> ))}
    ); } export default EgovMain;