kcscDev/egovframe-template-simple-r.../src/pages/main/EgovMain.jsx

189 lines
9.5 KiB
React
Raw Normal View History

2023-10-12 04:15:42 +00:00
import React, { useState, useEffect, useCallback } from 'react';
import { Link, useLocation } from 'react-router-dom';
import Row from 'react-bootstrap/Row';
import Col from 'react-bootstrap/Col';
import Button from 'react-bootstrap/Button';
2024-05-29 03:16:11 +00:00
import CountUp from 'react-countup';
import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
2023-10-12 04:15:42 +00:00
import * as EgovNet from 'api/egovFetch';
import URL from 'constants/url';
function EgovMain(props) {
console.group("EgovMain");
console.log("[Start] EgovMain ------------------------------");
console.log("EgovMain [props] : ", props);
const location = useLocation();
console.log("EgovMain [location] : ", location);
2024-05-29 03:16:11 +00:00
const settings = {
dots: false,
infinite: true,
speed: 500,
slidesToShow: 6,
slidesToScroll: 1,
arrows: false,
autoplay: true,
autoplaySpeed: 3000,
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' },
// 필요한 만큼 배너 이미지를 추가합니다.
];
2023-10-12 04:15:42 +00:00
// 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()");
2024-05-29 03:16:11 +00:00
const retrieveListURL = '/';
2023-10-12 04:15:42 +00:00
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(<li key="0">검색된 결과가 없습니다.</li>); // 게시판 목록 초기값
// 리스트 항목 구성
resp.result.notiList.forEach(function (item, index) {
if (index === 0) mutNotiListTag = []; // 목록 초기화
mutNotiListTag.push(
<li key={item.nttId}>
<Link
to={{pathname: URL.INFORM_NOTICE_DETAIL}}
state={{
nttId: item.nttId,
bbsId: item.bbsId
}}
>
{item.nttSj}
<span>{item.frstRegisterPnttm}</span>
</Link>
</li>
);
});
setNoticeListTag(mutNotiListTag);
let mutGallaryListTag = [];
mutGallaryListTag.push(<li key="0">검색된 결과가 없습니다.</li>); // 게시판 목록 초기값
// 리스트 항목 구성
resp.result.galList.forEach(function (item, index) {
if (index === 0) mutGallaryListTag = []; // 목록 초기화
mutGallaryListTag.push(
<li key={index}>
<Link
to={{pathname: URL.INFORM_GALLERY_DETAIL}}
state={{
nttId: item.nttId,
bbsId: item.bbsId
}}
>
{item.nttSj}
<span>{item.frstRegisterPnttm}</span>
</Link>
</li>
);
});
setGallaryListTag(mutGallaryListTag);
},
function (resp) {
console.log("err response : ", resp);
}
);
console.groupEnd("EgovMain.retrieveList()");
},[]);
useEffect(() => {
retrieveList();
}, [retrieveList]);
console.log("------------------------------EgovMain [End]");
console.groupEnd("EgovMain");
return (
2024-05-28 08:25:17 +00:00
<div className="P_MAIN">{/* container */}
2023-10-12 04:15:42 +00:00
<div className="c_wrap">
2024-05-28 08:25:17 +00:00
<div className="topbox d-flex justify-content-center align-items-center">
<div className="topbox_1"></div>
<div className="topbox_2"></div>
<div className="topbox_3"></div>
2023-10-12 04:15:42 +00:00
</div>
2024-05-28 08:25:17 +00:00
<div className="menubox d-flex justify-content-center align-items-center">
<div className="menubox_n text-center"><Link to={URL.STANDARD_CODE_OLD}><div className="menu_img"><img src="/assets/images/ico-landing5.png" /></div><div className="menu_text">훈령/예규/지침</div></Link></div>
<div className="menubox_n text-center"><Link to={URL.STANDARD_CODE_ENG}><div className="menu_img"><img src="/assets/images/ico-landing6.png" /></div><div className="menu_text">영문건설기준</div></Link></div>
<div className="menubox_n text-center"><Link to={URL.STANDARD_CODE_TERM}><div className="menu_img"><img src="/assets/images/ico-landing8.png" /></div><div className="menu_text">건설기준용어</div></Link></div>
<div className="menubox_n text-center"><Link to={URL.SUPPORT_LIST}><div className="menu_img"><img src="/assets/images/ico-landing7.png" /></div><div className="menu_text">주요행사</div></Link></div>
<div className="menubox_n text-center"><Link to={URL.SUPPORT_LIST}><div className="menu_img"><img src="/assets/images/ico-landing9.png" /></div><div className="menu_text">수요조사</div></Link></div>
<div className="menubox_n text-center"><Link to={URL.SUPPORT_API}><div className="menu_img"><img src="/assets/images/ico-landing10.png" /></div><div className="menu_text">API 서비스</div></Link></div>
<div className="menubox_n text-center"><Link to={URL.SUPPORT_SITE}><div className="menu_img"><img src="/assets/images/ico-landing11.png" /></div><div className="menu_text">관련사이트</div></Link></div>
</div>
<div className="qnabox">
</div>
2024-05-29 03:16:11 +00:00
<div className="numbox d-flex justify-content-center align-items-center">
<div className="numbox_n"><div className="num_text">다운로드 </div><div className="num_count"><CountUp start={0} end={334345} duration={2.5} separator="," /><span className="unit"></span></div></div>
<div className="numbox_n"><div className="num_text">회원가입자 </div><div className="num_count"><CountUp start={0} end={12345} duration={2.5} separator="," /><span className="unit"></span></div></div>
<div className="numbox_n"><div className="num_text"> 편균 방문자</div><div className="num_count"><CountUp start={0} end={56427} duration={2.5} separator="," /><span className="unit"></span></div></div>
<div className="numbox_n"><div className="num_text">개정고시</div><div className="num_count"><CountUp start={0} end={99875} duration={2.5} separator="," /><span className="unit"></span></div></div>
2024-05-28 08:25:17 +00:00
</div>
2024-05-29 03:16:11 +00:00
<div className="bbsbox d-flex justify-content-center align-items-center">
<div className="bbsbox_1">1</div>
<div className="bbsbox_2">2</div>
2024-05-28 08:25:17 +00:00
</div>
<div className="bannerbox">
2024-05-29 03:16:11 +00:00
<Slider {...settings}>
{banners.map((banner, index) => (
<div key={index} className="banner_slide d-flex justify-content-center align-items-center">
<a href={banner.url} target="_blank" rel="noopener noreferrer">
<img src={banner.src} alt={`Banner ${index + 1}`} />
</a>
</div>
))}
</Slider>
2024-05-28 08:25:17 +00:00
</div>
2023-10-12 04:15:42 +00:00
</div>
</div>
);
}
export default EgovMain;