퍼블 업뎃
parent
c778f4173a
commit
833eca5b3a
Binary file not shown.
|
After Width: | Height: | Size: 587 KiB |
|
|
@ -104,9 +104,11 @@ button {cursor: pointer;}
|
|||
.ml10 {margin-left: 10px !important;}
|
||||
.pb10 {padding-bottom: 10px !important;}
|
||||
|
||||
.bg-fa {background: #FAFAFA;}
|
||||
.bg-fa {background: #FAFAFA !important;}
|
||||
|
||||
.text-4c6 {color: #4C6C84;}
|
||||
.text-224 {color: #22498E;}
|
||||
.text-4c6 {color: #4C6C84 !important;}
|
||||
.text-224 {color: #22498E !important;}
|
||||
|
||||
.clickable{cursor: pointer;}
|
||||
.clickable{cursor: pointer;}
|
||||
|
||||
.MuiTab-root.Mui-selected { color: #22498E; }
|
||||
|
|
|
|||
|
|
@ -0,0 +1,197 @@
|
|||
import React, {useCallback, useEffect, useRef, useState} from "react";
|
||||
import {getLocalItem, setLocalItem} from "utils/storage";
|
||||
import * as EgovNet from "api/egovFetch";
|
||||
import CODE from "constants/code";
|
||||
import {parseJwt} from "../../utils/parseJwt";
|
||||
import URL from "constants/url";
|
||||
import IdFindForm from "../login/IdFindForm";
|
||||
import PwFindForm from "../login/PwFindForm";
|
||||
import Row from "react-bootstrap/Row";
|
||||
import Col from "react-bootstrap/Col";
|
||||
import Form from "react-bootstrap/Form";
|
||||
import {Link, useLocation, useNavigate} from "react-router-dom";
|
||||
import Modal from "react-bootstrap/Modal";
|
||||
|
||||
|
||||
function EgovLoginContent(props) {
|
||||
const navigate = useNavigate();
|
||||
const location = useLocation();
|
||||
|
||||
const sessionUser = parseJwt(getLocalItem('accessToken'));
|
||||
|
||||
const [userInfo, setUserInfo] = useState({ username: '', password: 'default', email: '', userSe: 'ACC_TP02'});
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
|
||||
const [saveIDFlag, setSaveIDFlag] = useState(false);
|
||||
|
||||
const [findModalState, setFindModalState] = useState(false);
|
||||
const [modalTitle, setModalTitle] = useState();
|
||||
const [modalBody, setModalBody] = useState();
|
||||
const handleClose = () => setFindModalState(false);
|
||||
const handleShow = () => setFindModalState(true);
|
||||
|
||||
const checkRef = useRef();
|
||||
|
||||
const KEY_ID = "KEY_ID";
|
||||
const KEY_SAVE_ID_FLAG = "KEY_SAVE_ID_FLAG";
|
||||
|
||||
const handleSaveIDFlag = () => {
|
||||
setLocalItem(KEY_SAVE_ID_FLAG, !saveIDFlag)
|
||||
setSaveIDFlag(!saveIDFlag);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
let idFlag = getLocalItem(KEY_SAVE_ID_FLAG);
|
||||
if (idFlag === null) {
|
||||
setSaveIDFlag(false);
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
idFlag = false;
|
||||
} else {
|
||||
setSaveIDFlag(idFlag);
|
||||
}
|
||||
|
||||
if (idFlag === false) {
|
||||
setLocalItem(KEY_ID, "");
|
||||
} else {
|
||||
}
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
let data = getLocalItem(KEY_ID);
|
||||
if (data !== null) {
|
||||
setUserInfo({ username: data, password: 'default', email: '', userSe: 'ACC_TP02' });
|
||||
}
|
||||
}, []);
|
||||
|
||||
const submitFormHandler = (e) => {
|
||||
console.log("EgovLoginContent submitFormHandler()");
|
||||
|
||||
const loginUrl = "/auth/login"
|
||||
const requestOptions = {
|
||||
method: "POST",
|
||||
headers: {
|
||||
'Content-type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(userInfo)
|
||||
}
|
||||
|
||||
EgovNet.requestFetch(loginUrl,
|
||||
requestOptions,
|
||||
(resp) => {
|
||||
if(resp !== undefined){
|
||||
if (Number(resp.resultCode) === Number(CODE.RCV_SUCCESS)) {
|
||||
let accessToken = resp?.accessToken || null;
|
||||
let resultVO = parseJwt(accessToken);
|
||||
let refreshToken = resp?.refreshToken || null;
|
||||
|
||||
// setSessionItem('accessToken', accessToken);
|
||||
setLocalItem('accessToken', accessToken);
|
||||
setLocalItem('refreshToken', refreshToken);
|
||||
// setSessionItem('loginUser', resultVO);
|
||||
props.onChangeLogin(resultVO);
|
||||
if (saveIDFlag) {
|
||||
setLocalItem(KEY_ID, resultVO?.id);
|
||||
}
|
||||
// PC와 Mobile 열린메뉴 닫기
|
||||
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');
|
||||
} else {
|
||||
alert(resp.resultMessage)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const idFindModal = useCallback(
|
||||
()=> {
|
||||
setModalTitle("아이디 찾기")
|
||||
setModalBody(IdFindForm)
|
||||
handleShow();
|
||||
}
|
||||
)
|
||||
const pwFindModal = () => {
|
||||
setModalTitle("비밀번호 찾기")
|
||||
setModalBody(PwFindForm)
|
||||
handleShow();
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
<>
|
||||
{sessionUser != null ? (
|
||||
<div>
|
||||
<Row>
|
||||
<Col xs={6} className={"fw-bold"}>최근검색어</Col>
|
||||
<Col xs={6} className={"text-end f_11"}>전체삭제</Col>
|
||||
</Row>
|
||||
<div className={"login_search"}>
|
||||
<div className={"login_search_word"}>
|
||||
{/*<div className={"text-224 f_12 py-5 text-center"}>최근 검색한 내용이 없습니다.</div>*/}
|
||||
<div className={"text-truncate"}>검색어</div>
|
||||
<div className={"text-truncate"}>검색어</div>
|
||||
<div className={"text-truncate"}>검색어검색어검색어검색어검색어검색어검색어검색어</div>
|
||||
<div className={"text-truncate"}>검색어</div>
|
||||
<div className={"text-truncate"}>검색어</div>
|
||||
<div className={"text-truncate"}>검색어</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="line_t"></div>
|
||||
<div className="line_b"></div>
|
||||
<Row>
|
||||
<Col xs={6} className={"fw-bold f_15 d-flex align-items-center"}>Q&A 접수현황</Col>
|
||||
<Col xs={6} className={"text-end"}><span className={"fs-5 text-224"}>0</span> 개</Col>
|
||||
</Row>
|
||||
<div className="line_t"></div>
|
||||
<div className="line_b"></div>
|
||||
<Row>
|
||||
<Col xs={6} className={"fw-bold f_15 d-flex align-items-center"}>즐겨찾기</Col>
|
||||
<Col xs={6} className={"text-end text-224"}><Link to={URL.MY}><span className={"f_12"}>바로가기</span> ></Link></Col>
|
||||
</Row>
|
||||
<div className="line_t"></div>
|
||||
<div className="line_b"></div>
|
||||
</div>
|
||||
) : (
|
||||
<>
|
||||
<fieldset>
|
||||
<legend>로그인</legend>
|
||||
<div className="input-group">
|
||||
<span className="input-group-text"><img src="/assets/images/icon_id.png" /></span>
|
||||
<input type="text" className="form-control shadow-none py-3" title="아이디" placeholder="아이디" value={userInfo?.username}
|
||||
onChange={e => setUserInfo({ ...userInfo, username: e.target.value })} />
|
||||
</div>
|
||||
<div className="input-group mt-3">
|
||||
<span className="input-group-text"><img src="/assets/images/icon_pw.png" /></span>
|
||||
<input type="password" className="form-control shadow-none py-3" title="비밀번호" placeholder="비밀번호"
|
||||
onChange={e => setUserInfo({ ...userInfo, password: e.target.value })} />
|
||||
</div>
|
||||
<Row className="chk justify-content-between f_12 py-2">
|
||||
<Col xs={5}>
|
||||
<Form.Check inline label={"아이디 저장"} id={"saveid"} name={""} checked={saveIDFlag} onChange={handleSaveIDFlag}/>
|
||||
</Col>
|
||||
<Col xs={"auto"}>
|
||||
<em className="clickable" onClick={idFindModal}>아이디 찾기</em>
|
||||
<em> | </em>
|
||||
<em className="clickable" onClick={pwFindModal}>비밀번호 찾기</em>
|
||||
</Col>
|
||||
</Row>
|
||||
<button type="button" onClick={submitFormHandler} className="btn btn-22498E w-100 f_13 py-2">로 그 인</button>
|
||||
<div className="line_t"></div>
|
||||
<div className="line_b"></div>
|
||||
<Link to={URL.JOIN} className="btn btn-outline-secondary w-100 f_13">회원가입</Link>
|
||||
</fieldset>
|
||||
|
||||
<Modal show={findModalState} onHide={handleClose}>
|
||||
<Modal.Header closeButton>
|
||||
<Modal.Title>{modalTitle}</Modal.Title>
|
||||
</Modal.Header>
|
||||
<Modal.Body>{modalBody}</Modal.Body>
|
||||
</Modal>
|
||||
</>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export default EgovLoginContent;
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import React, { useState, useEffect, useCallback } from 'react';
|
||||
import { Link, useLocation } from 'react-router-dom';
|
||||
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';
|
||||
|
|
@ -14,6 +14,18 @@ import "slick-carousel/slick/slick-theme.css";
|
|||
import * as EgovNet from 'api/egovFetch';
|
||||
import URL from 'constants/url';
|
||||
|
||||
import EgovLogin from "../main/EgovLogin";
|
||||
import {parseJwt} from "../../utils/parseJwt";
|
||||
import {getLocalItem, setLocalItem} from "utils/storage";
|
||||
import CODE from "../../constants/code";
|
||||
|
||||
|
||||
function a11yProps(index) {
|
||||
return {
|
||||
id: `wrapped-tab-${index}`,
|
||||
'aria-controls': `wrapped-tabpanel-${index}`,
|
||||
};
|
||||
}
|
||||
|
||||
function EgovMain(props) {
|
||||
console.group("EgovMain");
|
||||
|
|
@ -21,8 +33,26 @@ function EgovMain(props) {
|
|||
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 handlePlusClick = () => {
|
||||
const urls = [
|
||||
URL.SUPPORT_LIST_NOCODE+'/KCSC-NTC',
|
||||
URL.COMMITTEE_PROGRESS,
|
||||
URL.SUPPORT_LIST_NOCODE+'/KCSC-NOT',
|
||||
URL.SUPPORT_RESEARCH,
|
||||
URL.SUPPORT_LIST_NOCODE+'/KCSC-TEC',
|
||||
URL.SUPPORT_LIST_NOCODE+'/KCSC-NWS'
|
||||
];
|
||||
if (value >= 0 && value < urls.length) {
|
||||
navigate(urls[value]);
|
||||
}
|
||||
};
|
||||
|
||||
const settings = {
|
||||
dots: false,
|
||||
infinite: true,
|
||||
|
|
@ -55,7 +85,6 @@ function EgovMain(props) {
|
|||
// 필요한 만큼 배너 이미지를 추가합니다.
|
||||
];
|
||||
|
||||
|
||||
// TAB 상태를 정의합니다.
|
||||
const [value, setValue] = useState(0);
|
||||
const handleChange = (event, newValue) => {
|
||||
|
|
@ -63,87 +92,124 @@ function EgovMain(props) {
|
|||
};
|
||||
|
||||
// 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 [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(<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]);
|
||||
|
||||
const retrieveList = useCallback(() => {
|
||||
console.groupCollapsed("EgovMain.retrieveList()");
|
||||
|
||||
const retrieveListURL = '/';
|
||||
const onChangeLogin = (user) => {
|
||||
setUser(user);
|
||||
// props.onChangeLogin(user);
|
||||
}
|
||||
|
||||
const logOutHandler = () => {// 로그인 정보 존재할 때
|
||||
const logOutUrl = '/auth/logout';
|
||||
const requestOptions = {
|
||||
method: "POST",
|
||||
headers: {
|
||||
'Content-type': 'application/json'
|
||||
'Content-type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify()
|
||||
credentials: 'include',
|
||||
}
|
||||
|
||||
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);
|
||||
},
|
||||
EgovNet.requestFetch(logOutUrl, requestOptions,
|
||||
function (resp) {
|
||||
console.log("err response : ", 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.groupEnd("EgovMain.retrieveList()");
|
||||
},[]);
|
||||
|
||||
useEffect(() => {
|
||||
retrieveList();
|
||||
}, [retrieveList]);
|
||||
}
|
||||
|
||||
console.log("------------------------------EgovMain [End]");
|
||||
console.groupEnd("EgovMain");
|
||||
|
|
@ -152,9 +218,75 @@ function EgovMain(props) {
|
|||
<div className="P_MAIN">{/* container */}
|
||||
<div className="c_wrap">
|
||||
<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>
|
||||
<div className="topbox_1">
|
||||
<div className="topbox_11">실시간 인기키워드</div>
|
||||
<div className="topbox_12">현재 기준 사용자가 가장 많이 검색하는 키워드입니다.</div>
|
||||
<div className="topbox_13">2024년 5월 9일 목요일 오전 11:45</div>
|
||||
<Row className="topbox_14">
|
||||
<Col xs={6}>
|
||||
<div className={"text-truncate"}>1 가설공사</div>
|
||||
<div className={"text-truncate"}>2 가설공사</div>
|
||||
<div className={"text-truncate"}>3 가설공사</div>
|
||||
<div className={"text-truncate"}>4 가설공사가설공사</div>
|
||||
<div className={"text-truncate"}>5 가설공사</div>
|
||||
</Col>
|
||||
<Col xs={6}>
|
||||
<div className={"text-truncate"}> 6 가설공사</div>
|
||||
<div className={"text-truncate"}> 7 가설공사가설공사가설공사가설공사</div>
|
||||
<div className={"text-truncate"}> 8 가설공사</div>
|
||||
<div className={"text-truncate"}> 9 가설공사</div>
|
||||
<div className={"text-truncate"}>10 가설공사</div>
|
||||
</Col>
|
||||
</Row>
|
||||
</div>
|
||||
<div className="topbox_2">
|
||||
<div className={"topbox_11"}>자주찾는 서비스</div>
|
||||
<div className={"topbox_12"}>버튼을 선택하시면 해당 서비스로 이동합니다.</div>
|
||||
<Row>
|
||||
<Col>
|
||||
<Link to={URL.STANDARD_CODE_LIST} className="link-wrapper">
|
||||
<div className={"topbox_13"}><img src="/assets/images/ico-landing1.png" /></div>
|
||||
<div className={"topbox_14"}>코드검색</div>
|
||||
<div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>
|
||||
</Link>
|
||||
</Col>
|
||||
<Col>
|
||||
<Link to={URL.STANDARD_CODE_INFO} className="link-wrapper">
|
||||
<div className={"topbox_13"}><img src="/assets/images/ico-landing2.png" /></div>
|
||||
<div className={"topbox_14"}>코드안내</div>
|
||||
<div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>
|
||||
</Link>
|
||||
</Col>
|
||||
<Col>
|
||||
<Link to={URL.COMMITTEE_SCHEDULE} className="link-wrapper">
|
||||
<div className={"topbox_13"}><img src="/assets/images/ico-landing3.png" /></div>
|
||||
<div className={"topbox_14"}>위원회일정</div>
|
||||
<div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>
|
||||
</Link>
|
||||
</Col>
|
||||
<Col>
|
||||
<Link to={URL.STANDARD_CODE_LIST + '/5000'} className="link-wrapper">
|
||||
<div className={"topbox_13"}><img src="/assets/images/ico-landing4.png" /></div>
|
||||
<div className={"topbox_14"}>전문시방서</div>
|
||||
<div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>
|
||||
</Link>
|
||||
</Col>
|
||||
</Row>
|
||||
</div>
|
||||
<div className="topbox_3">
|
||||
<div className={"topbox_11"}>{user ? (
|
||||
<>
|
||||
<Row>
|
||||
<Col xs={6}>{user.id} 님.</Col>
|
||||
<Col xs={6} className={"text-end"}><Button type={"button"} className={"btn btn-22498E btn-sm"} onClick={logOutHandler}>로그아웃</Button> </Col>
|
||||
</Row>
|
||||
</>
|
||||
) : ('로그인')}
|
||||
</div>
|
||||
<div>
|
||||
<EgovLogin onChangeLogin={onChangeLogin}></EgovLogin>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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>
|
||||
|
|
@ -189,14 +321,16 @@ function EgovMain(props) {
|
|||
<Tabs
|
||||
value={value}
|
||||
onChange={handleChange}
|
||||
aria-label="wrapped label tabs example"
|
||||
indicatorColor="secondary"
|
||||
textColor="secondary"
|
||||
>
|
||||
<Tab value={0} label="공지사항" wrapped />
|
||||
<Tab value={1} label="위원회 진행현황" />
|
||||
<Tab value={2} label="건설기준고시" />
|
||||
<Tab value={3} label="건설기준연구" />
|
||||
<Tab value={4} label="기술자료" />
|
||||
<Tab value={5} label="보도자료" />
|
||||
<Tab value={0} {...a11yProps(0)} sx={{ fontSize: value === 0 ? '1.5rem' : '1rem', fontWeight: 700}} label="공지사항" wrapped />
|
||||
<Tab value={1} {...a11yProps(1)} sx={{ fontSize: value === 1 ? '1.5rem' : '1rem', fontWeight: 700}} label="위원회 진행현황" />
|
||||
<Tab value={2} {...a11yProps(2)} sx={{ fontSize: value === 2 ? '1.5rem' : '1rem', fontWeight: 700}} label="건설기준고시" />
|
||||
<Tab value={3} {...a11yProps(3)} sx={{ fontSize: value === 3 ? '1.5rem' : '1rem', fontWeight: 700}} label="건설기준연구" />
|
||||
<Tab value={4} {...a11yProps(4)} sx={{ fontSize: value === 4 ? '1.5rem' : '1rem', fontWeight: 700}} label="기술자료" />
|
||||
<Tab value={5} {...a11yProps(5)} sx={{ fontSize: value === 5 ? '1.5rem' : '1rem', fontWeight: 700}} label="보도자료" />
|
||||
<Tab value="" label="+" sx={{ fontSize: '1.75rem', ml: 'auto' }} onClick={handlePlusClick} />
|
||||
</Tabs>
|
||||
</Box>
|
||||
<TabPanel value={value} index={0}>Item 0</TabPanel>
|
||||
|
|
@ -206,7 +340,7 @@ function EgovMain(props) {
|
|||
<TabPanel value={value} index={4}>Item 4</TabPanel>
|
||||
<TabPanel value={value} index={5}>Item 5</TabPanel>
|
||||
</div>
|
||||
<div className="bbsbox_2">2</div>
|
||||
<div className="bbsbox_2"><Link to={URL.ABOUT_PROMOTE}><img src="/assets/images/narae.jpg" /></Link></div>
|
||||
</div>
|
||||
<div className="bannerbox">
|
||||
<Slider {...settings}>
|
||||
|
|
|
|||
Loading…
Reference in New Issue