Compare commits

..

No commits in common. "4a04cab8ce041c21bca6fda68959b030674b0983" and "6be91489cffabe43db90888e191df105ebc2d6c0" have entirely different histories.

34 changed files with 19926 additions and 1099 deletions

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 B

View File

@ -72,10 +72,6 @@ function EgovHeader({ loginUser, onChangeLogin }) {
navigate(URL.JOIN); navigate(URL.JOIN);
} }
const SearchHandler = () => {
navigate(URL.STANDARD_CODE_SEARCH);
}
function allMenuControl(){ function allMenuControl(){
setMenuDiv(!menuDiv); setMenuDiv(!menuDiv);
} }
@ -119,7 +115,7 @@ function EgovHeader({ loginUser, onChangeLogin }) {
<div className="col-10 d-flex justify-content-between"> <div className="col-10 d-flex justify-content-between">
<div className="col-11"><input type="text" className="form-control shadow-none" placeholder="검색어를 입력하세요." lang="ko" /></div> <div className="col-11"><input type="text" className="form-control shadow-none" placeholder="검색어를 입력하세요." lang="ko" /></div>
<div className="col-1 text-center"> <div className="col-1 text-center">
<button type="button" className="topsearch" onClick={SearchHandler}></button> <button type="button" className="topsearch"></button>
</div> </div>
</div> </div>
</form> </form>

View File

@ -60,7 +60,6 @@ const URL = {
STANDARD_CODE_DETAIL : "/standardCode/detail", //건설기준코드/리스트 STANDARD_CODE_DETAIL : "/standardCode/detail", //건설기준코드/리스트
STANDARD_CODE_VIEWER : "/standardCode/viewer", //건설기준코드/뷰어 STANDARD_CODE_VIEWER : "/standardCode/viewer", //건설기준코드/뷰어
STANDARD_CODE_VIEWER_LINK : "/standardCode/viewer/:linkedDocCode", //건설기준코드/뷰어/새 창 링크 STANDARD_CODE_VIEWER_LINK : "/standardCode/viewer/:linkedDocCode", //건설기준코드/뷰어/새 창 링크
STANDARD_CODE_SEARCH : "/standardCode/search", // 통합검색
//INFORM //INFORM
// INFORM : "/inform", // 알림마당 // INFORM : "/inform", // 알림마당

View File

@ -86,7 +86,6 @@ button {cursor: pointer;}
.h_30 {height: 30px;} .h_30 {height: 30px;}
.h_50 {height: 50px;} .h_50 {height: 50px;}
.h_100 {height: 100px;} .h_100 {height: 100px;}
.h_300 {height: 300px;}
.h-100 {height: 100%;} .h-100 {height: 100%;}
.f_11 {font-size: 11px;} .f_11 {font-size: 11px;}

View File

@ -22,19 +22,19 @@
.btn_red_h46 {height: 46px; border-radius: 5px; color: darkred; font-size: 15px; line-height: 46px; text-align: center; background: #ed898b; padding: 0 1rem 0 1rem !important;} .btn_red_h46 {height: 46px; border-radius: 5px; color: darkred; font-size: 15px; line-height: 46px; text-align: center; background: #ed898b; padding: 0 1rem 0 1rem !important;}
.btn_red_h46:hover {height: 46px; border-radius: 5px; color: darkred; font-size: 15px; line-height: 46px; text-align: center; border: 1px solid #ed898b; padding: 0 1rem 0 1rem !important;} .btn_red_h46:hover {height: 46px; border-radius: 5px; color: darkred; font-size: 15px; line-height: 46px; text-align: center; border: 1px solid #ed898b; padding: 0 1rem 0 1rem !important;}
.btn_blue_h32 {height: 32px; border-radius: 5px; color: #fff; font-size: 15px; line-height: 32px; text-align: center; background: #22498E; padding: 0 1rem 0 1rem !important;} .btn_blue_h32 {height: 32px; border-radius: 5px; color: #fff; font-size: 15px; line-height: 32px; text-align: center; background: #169bd5; padding: 0 1rem 0 1rem !important;}
.btn_blue_h32:hover {height: 32px; border-radius: 5px; color: #22498E; font-size: 15px; line-height: 32px; text-align: center; border: 1px solid #169bd5; padding: 0 1rem 0 1rem !important;} .btn_blue_h32:hover {height: 32px; border-radius: 5px; color: #169bd5; font-size: 15px; line-height: 32px; text-align: center; border: 1px solid #169bd5; padding: 0 1rem 0 1rem !important;}
.btn_skyblue_h32 {height: 32px; border-radius: 5px; color: #fff; font-size: 15px; line-height: 32px; text-align: center; background: #4476D2; padding: 0 1rem 0 1rem !important;} .btn_skyblue_h32 {height: 32px; border-radius: 5px; color: #005b82; font-size: 15px; line-height: 32px; text-align: center; background: #daedf5; padding: 0 1rem 0 1rem !important;}
.btn_skyblue_h32:hover {height: 32px; border-radius: 5px; color: #005b82; font-size: 15px; line-height: 32px; text-align: center; border: 1px solid #4476D2; padding: 0 1rem 0 1rem !important;} .btn_skyblue_h32:hover {height: 32px; border-radius: 5px; color: #005b82; font-size: 15px; line-height: 32px; text-align: center; border: 1px solid #daedf5; padding: 0 1rem 0 1rem !important;}
.btn_red_h32 {height: 32px; border-radius: 5px; color: #fff; font-size: 15px; line-height: 32px; text-align: center; background: #B92B2E; padding: 0 1rem 0 1rem !important;} .btn_red_h32 {height: 32px; border-radius: 5px; color: darkred; font-size: 15px; line-height: 32px; text-align: center; background: #ed898b; padding: 0 1rem 0 1rem !important;}
.btn_red_h32:hover {height: 32px; border-radius: 5px; color: darkred; font-size: 15px; line-height: 32px; text-align: center; border: 1px solid #B92B2E; padding: 0 1rem 0 1rem !important;} .btn_red_h32:hover {height: 32px; border-radius: 5px; color: darkred; font-size: 15px; line-height: 32px; text-align: center; border: 1px solid #ed898b; padding: 0 1rem 0 1rem !important;}
.btn_blue_h31 {height: 31px; border-radius: 5px; color: #fff; font-size: 15px; line-height: 31px; text-align: center; background: #22498E; padding: 0 1rem 0 1rem !important;} .btn_blue_h31 {height: 31px; border-radius: 5px; color: #fff; font-size: 15px; line-height: 31px; text-align: center; background: #169bd5; padding: 0 1rem 0 1rem !important;}
.btn_blue_h31:hover {height: 31px; border-radius: 5px; color: #22498E; font-size: 15px; line-height: 31px; text-align: center; border: 1px solid #169bd5; padding: 0 1rem 0 1rem !important;} .btn_blue_h31:hover {height: 31px; border-radius: 5px; color: #169bd5; font-size: 15px; line-height: 31px; text-align: center; border: 1px solid #169bd5; padding: 0 1rem 0 1rem !important;}
.btn_skyblue_h31 {height: 31px; border-radius: 5px; color: #fff; font-size: 15px; line-height: 31px; text-align: center; background: #4476D2; padding: 0 1rem 0 1rem !important;} .btn_skyblue_h31 {height: 31px; border-radius: 5px; color: #005b82; font-size: 15px; line-height: 31px; text-align: center; background: #daedf5; padding: 0 1rem 0 1rem !important;}
.btn_skyblue_h31:hover {height: 31px; border-radius: 5px; color: #005b82; font-size: 15px; line-height: 31px; text-align: center; border: 1px solid #4476D2; padding: 0 1rem 0 1rem !important;} .btn_skyblue_h31:hover {height: 31px; border-radius: 5px; color: #005b82; font-size: 15px; line-height: 31px; text-align: center; border: 1px solid #daedf5; padding: 0 1rem 0 1rem !important;}
.btn_red_h31 {height: 31px; border-radius: 5px; color: #fff; font-size: 15px; line-height: 31px; text-align: center; background: #B92B2E; padding: 0 1rem 0 1rem !important;} .btn_red_h31 {height: 31px; border-radius: 5px; color: darkred; font-size: 15px; line-height: 31px; text-align: center; background: #ed898b; padding: 0 1rem 0 1rem !important;}
.btn_red_h31:hover {height: 31px; border-radius: 5px; color: darkred; font-size: 15px; line-height: 31px; text-align: center; border: 1px solid #B92B2E; padding: 0 1rem 0 1rem !important;} .btn_red_h31:hover {height: 31px; border-radius: 5px; color: darkred; font-size: 15px; line-height: 31px; text-align: center; border: 1px solid #ed898b; padding: 0 1rem 0 1rem !important;}
.btn_upload {position: relative; width: 180px; height: 46px; border-radius: 5px; color: #fff; font-size: 16px; line-height: 46px; text-align: center; background: #169bd5;} .btn_upload {position: relative; width: 180px; height: 46px; border-radius: 5px; color: #fff; font-size: 16px; line-height: 46px; text-align: center; background: #169bd5;}
.btn_upload span {display: inline-block; height: 46px; line-height: 46px;} .btn_upload span {display: inline-block; height: 46px; line-height: 46px;}

View File

@ -49,29 +49,28 @@
/* 메인 */ /* 메인 */
/*.P_MAIN {position: relative; background: #f5f5f5;}*/ /*.P_MAIN {position: relative; background: #f5f5f5;}*/
/*.P_MAIN::before {content: ""; display: block; position: absolute; left: 0; top: 0; width: 100%; height: 360px; background: #fff;}*/ /*.P_MAIN::before {content: ""; display: block; position: absolute; left: 0; top: 0; width: 100%; height: 360px; background: #fff;}*/
.P_MAIN .c_wrap .topbox {width: 100%; height:390px; background: #F8F8F8; margin: 0 auto;} .P_MAIN .c_wrap .topbox {width: 100%; height:490px; background: #F8F8F8; margin: 0 auto;}
.P_MAIN .c_wrap .topbox .topbox_1 {width: 360px; height: 340px; border: 1px solid #dde2e5; border-radius: 25px; box-shadow: 0 4px 5px #ccc; background: #fff; padding: 30px;} .P_MAIN .c_wrap .topbox .topbox_1 {width: 360px; height: 390px; border: 1px solid #dde2e5; border-radius: 25px; box-shadow: 0 4px 5px #ccc; background: #fff; padding: 30px;}
.P_MAIN .c_wrap .topbox .topbox_1 .topbox_11{font-size: 22px; font-weight: 700; padding-bottom: 15px;} .P_MAIN .c_wrap .topbox .topbox_1 .topbox_11{font-size: 22px; font-weight: 700; padding-bottom: 20px;}
.P_MAIN .c_wrap .topbox .topbox_1 .topbox_12{font-size: 14px; } .P_MAIN .c_wrap .topbox .topbox_1 .topbox_12{font-size: 14px; }
.P_MAIN .c_wrap .topbox .topbox_1 .topbox_13{font-size: 12px; font-weight: 700; color: #22498E; padding-bottom: 5px;} .P_MAIN .c_wrap .topbox .topbox_1 .topbox_13{font-size: 12px; font-weight: 700; color: #22498E; padding-bottom: 30px;}
.P_MAIN .c_wrap .topbox .topbox_1 .topbox_14{font-size: 17px; font-weight: 600; line-height: 42px; white-space: nowrap;} .P_MAIN .c_wrap .topbox .topbox_1 .topbox_14{font-size: 17px; font-weight: 600; line-height: 42px; white-space: nowrap;}
.P_MAIN .c_wrap .topbox .topbox_2 {width: 630px; height: 340px; border: 1px solid #dde2e5; border-radius: 25px; box-shadow: 0 4px 5px #ccc; background: #fff; margin: 0 25px; padding: 30px;} .P_MAIN .c_wrap .topbox .topbox_2 {width: 630px; height: 390px; border: 1px solid #dde2e5; border-radius: 25px; box-shadow: 0 4px 5px #ccc; background: #fff; margin: 0 25px; padding: 30px;}
.P_MAIN .c_wrap .topbox .topbox_2 .topbox_11{font-size: 22px; font-weight: 700; padding-bottom: 10px;} .P_MAIN .c_wrap .topbox .topbox_2 .topbox_11{font-size: 22px; font-weight: 700; padding-bottom: 20px;}
.P_MAIN .c_wrap .topbox .topbox_2 .topbox_12{font-size: 19px; padding-bottom: 70px;} .P_MAIN .c_wrap .topbox .topbox_2 .topbox_12{font-size: 19px; padding-bottom: 70px;}
.P_MAIN .c_wrap .topbox .topbox_2 .topbox_13 {width: 80px; height: 80px; border-radius: 50%; background: #E2E9F6; display: flex; justify-content: center; align-items: center; margin-left: 1.2rem;} .P_MAIN .c_wrap .topbox .topbox_2 .topbox_13 {width: 80px; height: 80px; border-radius: 50%; background: #E2E9F6; display: flex; justify-content: center; align-items: center; margin-left: 1.2rem;}
.P_MAIN .c_wrap .topbox .topbox_2 .topbox_14{font-size: 16px; font-weight: 600; text-align: center; line-height: 40px; color: #222;} .P_MAIN .c_wrap .topbox .topbox_2 .topbox_14{font-size: 16px; font-weight: 600; text-align: center; line-height: 40px; color: #222; padding: 10px 0;}
.P_MAIN .c_wrap .topbox .topbox_2 .topbox_15{text-align: center; line-height: 40px;} .P_MAIN .c_wrap .topbox .topbox_2 .topbox_15{text-align: center; line-height: 40px;}
.P_MAIN .c_wrap .topbox .topbox_3 {width: 360px; height: 340px; border: 1px solid #dde2e5; border-radius: 25px; box-shadow: 0 4px 5px #ccc; background: #fff; padding: 30px;} .P_MAIN .c_wrap .topbox .topbox_3 {width: 360px; height: 390px; border: 1px solid #dde2e5; border-radius: 25px; box-shadow: 0 4px 5px #ccc; background: #fff; padding: 30px;}
.P_MAIN .c_wrap .topbox .topbox_3 .topbox_11{font-size: 22px; font-weight: 700; padding-bottom: 20px;} .P_MAIN .c_wrap .topbox .topbox_3 .topbox_11{font-size: 22px; font-weight: 700; padding-bottom: 20px;}
.P_MAIN .c_wrap .login_search {border: 1px solid #6F6F6F; border-radius: 10px; overflow: hidden;} .P_MAIN .c_wrap .login_search {border: 1px solid #6F6F6F; border-radius: 10px; overflow: hidden;}
.P_MAIN .c_wrap .login_border {border: 1px solid #6F6F6F; margin-top: 5px;}
.P_MAIN .c_wrap .login_search_word {max-height: 125px; padding: 5px; overflow-x: auto; overflow-y: auto;} .P_MAIN .c_wrap .login_search_word {max-height: 125px; padding: 5px; overflow-x: auto; overflow-y: auto;}
.P_MAIN .c_wrap .menubox {width: 100%; height:200px;} .P_MAIN .c_wrap .menubox {width: 100%; height:200px;}
.P_MAIN .c_wrap .menubox .menubox_n {padding: 0 50px;} .P_MAIN .c_wrap .menubox .menubox_n {padding: 0 50px;}
.P_MAIN .c_wrap .menubox .menu_img {width: 100px; height: 100px; border-radius: 50%; background: #E2E9F6; display: flex; justify-content: center; align-items: center;} .P_MAIN .c_wrap .menubox .menu_img {width: 100px; height: 100px; border-radius: 50%; background: #E2E9F6; display: flex; justify-content: center; align-items: center;}
.P_MAIN .c_wrap .menubox .menu_text {font-size: 16px; font-weight: 700; padding-top: 10px; justify-content: center; color: #222;} .P_MAIN .c_wrap .menubox .menu_text {font-size: 16px; font-weight: 700; padding-top: 10px; justify-content: center; color: #222;}
.P_MAIN .c_wrap .qnabox {width: 100%; height:340px; background: #F8FAFC;} .P_MAIN .c_wrap .qnabox {width: 100%; height:390px; background: #F8FAFC;}
.P_MAIN .c_wrap .qnabox .qnabox_1 {width: 1400px; height: 80px; margin:0 auto; padding: 0 10px; font-size: 35px; font-weight: 700; color: #004994;} .P_MAIN .c_wrap .qnabox .qnabox_1 {width: 1400px; height: 100px; margin:0 auto; padding: 0 10px; font-size: 35px; font-weight: 700; color: #004994;}
.P_MAIN .c_wrap .qnabox .qnabox_11 {width: 50%; font-size: 35px; font-weight: 700; color: #004994;} .P_MAIN .c_wrap .qnabox .qnabox_11 {width: 50%; font-size: 35px; font-weight: 700; color: #004994;}
.P_MAIN .c_wrap .qnabox .qnabox_12 {width: 50%; font-size: 20px; font-weight: 500; color: #6C6C6C;} .P_MAIN .c_wrap .qnabox .qnabox_12 {width: 50%; font-size: 20px; font-weight: 500; color: #6C6C6C;}
.P_MAIN .c_wrap .qnabox .qnabox_12 .rounded_circle_qna {width: 32px; height: 32px; border-radius: 50%; background: #FFF; box-shadow: 0 4px 5px #ccc; align-items: center; text-align: center; display: flex; } .P_MAIN .c_wrap .qnabox .qnabox_12 .rounded_circle_qna {width: 32px; height: 32px; border-radius: 50%; background: #FFF; box-shadow: 0 4px 5px #ccc; align-items: center; text-align: center; display: flex; }
@ -80,15 +79,13 @@
.P_MAIN .c_wrap .qnabox .qnabox_n .qnabox_n_file {background: #EBF1FF; border-radius: 10px; color: #22498E; font-size: 12px;} .P_MAIN .c_wrap .qnabox .qnabox_n .qnabox_n_file {background: #EBF1FF; border-radius: 10px; color: #22498E; font-size: 12px;}
.P_MAIN .c_wrap .qnabox .qnabox_n .qnabox_n_title {height: 100px; font-size: 18px; overflow: hidden; text-overflow: ellipsis; font-weight: 600;} .P_MAIN .c_wrap .qnabox .qnabox_n .qnabox_n_title {height: 100px; font-size: 18px; overflow: hidden; text-overflow: ellipsis; font-weight: 600;}
.P_MAIN .c_wrap .qnabox .qnabox_n .qnabox_n_date {font-size: 13px; } .P_MAIN .c_wrap .qnabox .qnabox_n .qnabox_n_date {font-size: 13px; }
.P_MAIN .c_wrap .numbox {width: 100%; height:100px; background: #4C6C84;} .P_MAIN .c_wrap .numbox {width: 100%; height:200px; background: #4C6C84;}
.P_MAIN .c_wrap .numbox .numbox_n {width: 300px; color: #fff; text-align: center;} .P_MAIN .c_wrap .numbox .numbox_n {width: 300px; color: #fff; text-align: center;}
.P_MAIN .c_wrap .numbox .num_text {font-size: 16px; font-weight: 600;} .P_MAIN .c_wrap .numbox .num_text {font-size: 22px; font-weight: 700;}
.P_MAIN .c_wrap .numbox .num_count {font-size: 25px; font-weight: 700;} .P_MAIN .c_wrap .numbox .num_count {font-size: 40px; font-weight: 700; padding-top: 10px;}
.P_MAIN .c_wrap .numbox .num_count span.unit {font-size: 20px;} .P_MAIN .c_wrap .numbox .num_count span.unit {font-size: 22px;}
.P_MAIN .c_wrap .bbsbox {width: 100%; height:350px; border-bottom: 1px solid #E6E6E6; margin: 0 auto; padding-top: 25px;} .P_MAIN .c_wrap .bbsbox {width: 100%; height:430px; border-bottom: 1px solid #E6E6E6; margin: 0 auto; padding-top: 85px;}
.P_MAIN .c_wrap .bbsbox .bbsbox_1 {width: 980px; } .P_MAIN .c_wrap .bbsbox .bbsbox_1 {width: 980px; }
.P_MAIN .c_wrap .bbsbox .bbsbox_1 .bbsbox_11 {border-bottom: 1px solid #D3D3D3; padding: 14px 0;}
.P_MAIN .c_wrap .bbsbox .bbsbox_1 .bbsbox_11 .bbsbox_11_title {font-size: 15px; color: #222;}
.P_MAIN .c_wrap .bbsbox .bbsbox_2 {width: 370px; margin-left: 50px;} .P_MAIN .c_wrap .bbsbox .bbsbox_2 {width: 370px; margin-left: 50px;}
.P_MAIN .c_wrap .bbsbox .bbsbox_2 img {max-width: 370px; border-radius: 20px; } .P_MAIN .c_wrap .bbsbox .bbsbox_2 img {max-width: 370px; border-radius: 20px; }
@ -104,8 +101,7 @@
/*.P_MAIN .colbox .left_col img {max-width: 100%; border-radius: 38px; box-shadow: 8px 8px 13px #ccc;}*/ /*.P_MAIN .colbox .left_col img {max-width: 100%; border-radius: 38px; box-shadow: 8px 8px 13px #ccc;}*/
/*.P_MAIN .colbox .right_col {width: 620px; padding-top: 25px;}*/ /*.P_MAIN .colbox .right_col {width: 620px; padding-top: 25px;}*/
/*.P_MAIN .mini_board {position: relative;}*/t /*.P_MAIN .mini_board {position: relative;}*/
/*.P_MAIN .mini_board .tab::after {content: ""; display: block; clear: both;}*/ /*.P_MAIN .mini_board .tab::after {content: ""; display: block; clear: both;}*/
/*.P_MAIN .mini_board .tab li {float: left;}*/ /*.P_MAIN .mini_board .tab li {float: left;}*/
/*.P_MAIN .mini_board .tab li + li {margin-left: 40px;}*/ /*.P_MAIN .mini_board .tab li + li {margin-left: 40px;}*/

View File

@ -37,7 +37,7 @@ function SchedulesDetail(props) {
const deleteBoardURL = `/admin/committee/progress-status/${drftSeq}`; const deleteBoardURL = `/admin/committee/progress-status/${drftSeq}`;
const requestOptions = { const requestOptions = {
method: "POST", method: "DELETE",
headers: { headers: {
'Content-type': 'application/json', 'Content-type': 'application/json',
} }

View File

@ -72,7 +72,7 @@ function SchedulesDetail(props) {
const deleteBoardURL = `/schedule/${schdulId}`; const deleteBoardURL = `/schedule/${schdulId}`;
const requestOptions = { const requestOptions = {
method: "POST", method: "DELETE",
headers: { headers: {
'Content-type': 'application/json', 'Content-type': 'application/json',
} }

View File

@ -293,7 +293,7 @@ function SchedulesEdit(props) {
const deleteBoardURL = `/schedule/${schdulId}`; const deleteBoardURL = `/schedule/${schdulId}`;
const requestOptions = { const requestOptions = {
method: "POST", method: "DELETE",
headers: { headers: {
'Content-type': 'application/json', 'Content-type': 'application/json',
} }

View File

@ -155,7 +155,7 @@ function CommitteeCodeMgt(props) {
} }
const requestOptions = { const requestOptions = {
method: "POST", method: "DELETE",
headers: { headers: {
'Content-type': 'application/json', 'Content-type': 'application/json',
} }

View File

@ -68,7 +68,7 @@ function MenuAuthMgt(props) {
<div>{item.menuTitle}</div> <div>{item.menuTitle}</div>
{checkboxs} {checkboxs}
<div className={"saveBtnDiv"}> <div className={"saveBtnDiv"}>
<button className={"btn btn_skyblue_h31 px-1"} onClick={()=>{editMenu(item)}}>저장</button> <button className={"btn btn_blue_h31 px-1"} onClick={()=>{editMenu(item)}}>저장</button>
</div> </div>
</div> </div>
); );

View File

@ -35,10 +35,10 @@ function MenuMgt({}) {
<div className={"list_item"} key={"userListDiv_"+index}> <div className={"list_item"} key={"userListDiv_"+index}>
<div>{item.menuGroup?'└ ':''}{item.menuId}</div> <div>{item.menuGroup?'└ ':''}{item.menuId}</div>
<div>{item.menuTitle}</div> <div>{item.menuTitle}</div>
<div className={"text-start ps-5"}>{item.menuUrl}</div> <div>{item.menuUrl}</div>
<div>{item.menuTypeValue}</div> <div>{item.menuTypeValue}</div>
<div> <div>
<button className={"btn btn_skyblue_h31 px-1"} onClick={()=>{editMenu(item)}}>수정</button> <button className={"btn btn_blue_h31 px-1"} onClick={()=>{editMenu(item)}}>수정</button>
</div> </div>
</div> </div>
); );

View File

@ -1,14 +1,11 @@
import React, {useState, useEffect, useRef} from 'react'; import React, {useState, useEffect, useRef} from 'react';
import {Link, useNavigate, useLocation, useParams} from 'react-router-dom'; import {Link, useNavigate, useLocation, useParams} from 'react-router-dom';
import Modal from "react-bootstrap/Modal"; import Modal from "react-bootstrap/Modal";
import Row from 'react-bootstrap/Row';
import Col from 'react-bootstrap/Col';
import * as EgovNet from 'api/egovFetch'; import * as EgovNet from 'api/egovFetch';
import URL from 'constants/url'; import URL from 'constants/url';
import CODE from 'constants/code'; import CODE from 'constants/code';
import {default as EgovLeftNav} from 'components/leftmenu/EgovLeftNavAdmin'; import {default as EgovLeftNav} from 'components/leftmenu/EgovLeftNavAdmin';
import EgovRadioButtonGroup from 'components/EgovRadioButtonGroup'; import EgovRadioButtonGroup from 'components/EgovRadioButtonGroup';
import {Form} from "react-bootstrap"; import {Form} from "react-bootstrap";
@ -262,18 +259,19 @@ function AboutSiteModal({props, reloadFunction}) {
</dl> </dl>
{/* <!-- 버튼영역 --> */} {/* <!-- 버튼영역 --> */}
<Row className="board_btn_area"> <div className="board_btn_area">
<Col> <div className="left_col btn1">
<button type={"button"} className="btn btn_blue_h32" onClick={()=>{reloadFunction()}}>목록</button> <button type="submit" className="btn btn_skyblue_h46 w_100">저장
</Col>
<Col className="text-end">
<button type="submit" className="btn btn_skyblue_h32">저장
</button> </button>
{modeInfo.mode === CODE.MODE_MODIFY && {modeInfo.mode === CODE.MODE_MODIFY &&
<button type={"button"} className="btn btn_red_h32" onClick={()=>{deletePartnerSite(props)}}>삭제</button> <button type={"button"} className="btn btn_skyblue_h46 w_100" onClick={()=>{deletePartnerSite(props)}}>삭제</button>
} }
</Col> </div>
</Row>
<div className="right_col btn1">
<button type={"button"} className="btn btn_blue_h46 w_100" onClick={()=>{reloadFunction()}}>목록</button>
</div>
</div>
{/* <!--// 버튼영역 --> */} {/* <!--// 버튼영역 --> */}
</Form> </Form>
</div> </div>

View File

@ -138,7 +138,7 @@ function MenuModal({savedInfo, reloadFunction}){
{savedInfo !== undefined?<Col xs={2}><button type={"button"} className={"btn btn_red_h31 px-3"} onClick={()=>{deleteMenu(savedInfo.menuId)}}>삭제</button></Col>:''} {savedInfo !== undefined?<Col xs={2}><button type={"button"} className={"btn btn_red_h31 px-3"} onClick={()=>{deleteMenu(savedInfo.menuId)}}>삭제</button></Col>:''}
<Col xs={{span: savedInfo!==undefined?8:10}}></Col> <Col xs={{span: savedInfo!==undefined?8:10}}></Col>
<Col xs={2}> <Col xs={2}>
<button type="submit" className={"btn btn_skyblue_h31 px-3"}>저장</button> <button type="submit" className={"btn btn_blue_h31 px-3"}>저장</button>
</Col> </Col>
</Row> </Row>
</Form> </Form>

View File

@ -218,7 +218,7 @@ function PopupEditor(props) {
const deleteBoardURL = `/contents/api/popup-manage/${popupId}`; const deleteBoardURL = `/contents/api/popup-manage/${popupId}`;
const requestOptions = { const requestOptions = {
method: "POST", method: "DELETE",
headers: { headers: {
'Content-type': 'application/json', 'Content-type': 'application/json',
} }
@ -247,7 +247,7 @@ function PopupEditor(props) {
const deleteFileURL = `/contents/api/popup-manage/file/${fileSeq}`; const deleteFileURL = `/contents/api/popup-manage/file/${fileSeq}`;
const requestOptions = { const requestOptions = {
method: "POST", method: "DELETE",
headers: { headers: {
'Content-type': 'application/json', 'Content-type': 'application/json',
} }

View File

@ -223,7 +223,7 @@ function StandardResearchEditor(props) {
const deleteBoardURL = `/contents/standard-research/${rsId}`; const deleteBoardURL = `/contents/standard-research/${rsId}`;
const requestOptions = { const requestOptions = {
method: "POST", method: "DELETE",
headers: { headers: {
'Content-type': 'application/json', 'Content-type': 'application/json',
} }

View File

@ -137,16 +137,20 @@ function EgovLoginContent(props) {
<div className={"text-truncate"}>검색어</div> <div className={"text-truncate"}>검색어</div>
</div> </div>
</div> </div>
<div className="pt-2"></div> <div className="line_t"></div>
<Row className={"h_30 d-flex align-items-end"}> <div className="line_b"></div>
<Col xs={6} className={"fw-bold f_15"}>Q&A 접수현황</Col> <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> <Col xs={6} className={"text-end"}><span className={"fs-5 text-224"}>0</span> </Col>
</Row> </Row>
<div className="login_border"></div> <div className="line_t"></div>
<Row className={"h_30 d-flex align-items-end"}> <div className="line_b"></div>
<Col xs={6} className={"fw-bold f_15"}>즐겨찾기</Col> <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> <Col xs={6} className={"text-end text-224"}><Link to={URL.MY}><span className={"f_12"}>바로가기</span> ></Link></Col>
</Row> </Row>
<div className="line_t"></div>
<div className="line_b"></div>
</div> </div>
) : ( ) : (
<> <>
@ -162,7 +166,7 @@ function EgovLoginContent(props) {
<input type="password" className="form-control shadow-none py-3" title="비밀번호" placeholder="비밀번호" <input type="password" className="form-control shadow-none py-3" title="비밀번호" placeholder="비밀번호"
onChange={e => setUserInfo({ ...userInfo, password: e.target.value })} /> onChange={e => setUserInfo({ ...userInfo, password: e.target.value })} />
</div> </div>
<Row className="chk justify-content-between f_12 pt-2"> <Row className="chk justify-content-between f_12 py-2">
<Col xs={5}> <Col xs={5}>
<Form.Check inline label={"아이디 저장"} id={"saveid"} name={""} checked={saveIDFlag} onChange={handleSaveIDFlag}/> <Form.Check inline label={"아이디 저장"} id={"saveid"} name={""} checked={saveIDFlag} onChange={handleSaveIDFlag}/>
</Col> </Col>
@ -172,12 +176,10 @@ function EgovLoginContent(props) {
<em className="clickable" onClick={pwFindModal}>비밀번호 찾기</em> <em className="clickable" onClick={pwFindModal}>비밀번호 찾기</em>
</Col> </Col>
</Row> </Row>
<Row> <button type="button" onClick={submitFormHandler} className="btn btn-22498E w-100 f_13 py-2"> </button>
<Col xs={6} className={"pe-1"}><Link to={URL.JOIN} className="btn btn-outline-secondary w-100 f_14 py-3">회원가입</Link></Col> <div className="line_t"></div>
<Col xs={6} className={"ps-1"}><button type="button" onClick={submitFormHandler} className="btn btn-22498E w-100 f_14 py-3"> </button></Col> <div className="line_b"></div>
</Row> <Link to={URL.JOIN} className="btn btn-outline-secondary w-100 f_13">회원가입</Link>
</fieldset> </fieldset>
<Modal show={findModalState} onHide={handleClose}> <Modal show={findModalState} onHide={handleClose}>

View File

@ -12,12 +12,12 @@ import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css"; import "slick-carousel/slick/slick-theme.css";
import * as EgovNet from 'api/egovFetch'; import * as EgovNet from 'api/egovFetch';
import URL from 'constants/url';
import EgovLogin from "../main/EgovLogin"; import EgovLogin from "../main/EgovLogin";
import {parseJwt} from "../../utils/parseJwt"; import {parseJwt} from "../../utils/parseJwt";
import {getLocalItem, setLocalItem} from "utils/storage"; import {getLocalItem, setLocalItem} from "utils/storage";
import URL from 'constants/url'; import CODE from "../../constants/code";
import CODE from "constants/code";
function a11yProps(index) { function a11yProps(index) {
@ -41,9 +41,9 @@ function EgovMain(props) {
const handlePlusClick = () => { const handlePlusClick = () => {
const urls = [ const urls = [
URL.SUPPORT_LIST_NOCODE+'/KCSC-NOT',
URL.SUPPORT_LIST_NOCODE+'/KCSC-NTC', URL.SUPPORT_LIST_NOCODE+'/KCSC-NTC',
URL.COMMITTEE_PROGRESS, URL.COMMITTEE_PROGRESS,
URL.SUPPORT_LIST_NOCODE+'/KCSC-NOT',
URL.SUPPORT_RESEARCH, URL.SUPPORT_RESEARCH,
URL.SUPPORT_LIST_NOCODE+'/KCSC-TEC', URL.SUPPORT_LIST_NOCODE+'/KCSC-TEC',
URL.SUPPORT_LIST_NOCODE+'/KCSC-NWS' URL.SUPPORT_LIST_NOCODE+'/KCSC-NWS'
@ -220,7 +220,7 @@ function EgovMain(props) {
<div className="topbox d-flex justify-content-center align-items-center"> <div className="topbox d-flex justify-content-center align-items-center">
<div className="topbox_1"> <div className="topbox_1">
<div className="topbox_11">실시간 인기키워드</div> <div className="topbox_11">실시간 인기키워드</div>
{/*<div className="topbox_12">현재 기준 사용자가 가장 많이 검색하는 키워드입니다.</div>*/} <div className="topbox_12">현재 기준 사용자가 가장 많이 검색하는 키워드입니다.</div>
<div className="topbox_13">2024 5 9 목요일 오전 11:45</div> <div className="topbox_13">2024 5 9 목요일 오전 11:45</div>
<Row className="topbox_14"> <Row className="topbox_14">
<Col xs={6}> <Col xs={6}>
@ -241,64 +241,34 @@ function EgovMain(props) {
</div> </div>
<div className="topbox_2"> <div className="topbox_2">
<div className={"topbox_11"}>자주찾는 서비스</div> <div className={"topbox_11"}>자주찾는 서비스</div>
{/*<div className={"topbox_12"}>버튼을 선택하시면 해당 서비스로 이동합니다.</div>*/} <div className={"topbox_12"}>버튼을 선택하시면 해당 서비스로 이동합니다.</div>
<Row> <Row>
<Col> <Col>
<Link to={URL.STANDARD_CODE_LIST} className="link-wrapper"> <Link to={URL.STANDARD_CODE_LIST} className="link-wrapper">
<div className={"topbox_13"}><img src="/assets/images/ico-landing1.png" /></div> <div className={"topbox_13"}><img src="/assets/images/ico-landing1.png" /></div>
<div className={"topbox_14"}>코드검색</div> <div className={"topbox_14"}>코드검색</div>
{/*<div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>*/} <div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>
</Link> </Link>
</Col> </Col>
<Col> <Col>
<Link to={URL.STANDARD_CODE_INFO} className="link-wrapper"> <Link to={URL.STANDARD_CODE_INFO} className="link-wrapper">
<div className={"topbox_13"}><img src="/assets/images/ico-landing2.png" /></div> <div className={"topbox_13"}><img src="/assets/images/ico-landing2.png" /></div>
<div className={"topbox_14"}>코드안내</div> <div className={"topbox_14"}>코드안내</div>
{/*<div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>*/} <div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>
</Link> </Link>
</Col> </Col>
<Col> <Col>
<Link to={URL.COMMITTEE_SCHEDULE} className="link-wrapper"> <Link to={URL.COMMITTEE_SCHEDULE} className="link-wrapper">
<div className={"topbox_13"}><img src="/assets/images/ico-landing3.png" /></div> <div className={"topbox_13"}><img src="/assets/images/ico-landing3.png" /></div>
<div className={"topbox_14"}>위원회일정</div> <div className={"topbox_14"}>위원회일정</div>
{/*<div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>*/} <div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>
</Link> </Link>
</Col> </Col>
<Col> <Col>
<Link to={URL.STANDARD_CODE_LIST + '/5000'} className="link-wrapper"> <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_13"}><img src="/assets/images/ico-landing4.png" /></div>
<div className={"topbox_14"}>전문시방서</div> <div className={"topbox_14"}>전문시방서</div>
{/*<div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>*/} <div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>
</Link>
</Col>
</Row>
<Row>
<Col>
<Link to={URL.STANDARD_CODE_LIST} className="link-wrapper">
<div className={"topbox_13"}><img src="/assets/images/ico-landing5.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-landing6.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-landing8.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-landing10.png" /></div>
<div className={"topbox_14"}>API 서비스</div>
{/*<div className={"topbox_15"}><Button type={"button"} className={"btn btn-22498E px-3"}>바로가기</Button> </div>*/}
</Link> </Link>
</Col> </Col>
</Row> </Row>
@ -318,97 +288,15 @@ function EgovMain(props) {
</div> </div>
</div> </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>
<div className="numbox d-flex justify-content-center align-items-center"> <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="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="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="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="menubox_n text-center"><Link to={URL.SUPPORT_LIST_NOCODE+'/KCSC-EVT'}><div className="menu_img"><img src="/assets/images/ico-landing7.png" /></div><div className="menu_text">주요행사</div></Link></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="menubox_n text-center"><Link to={URL.SUPPORT_LIST_NOCODE+'/KCSC-INV'}><div className="menu_img"><img src="/assets/images/ico-landing9.png" /></div><div className="menu_text">수요조사</div></Link></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> <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>
{/*<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_NOCODE+'/KCSC-EVT'}><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_NOCODE+'/KCSC-INV'}><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="bbsbox d-flex justify-content-center align-items-start">
<div className="bbsbox_1">
<Box sx={{ borderBottom: 2, borderColor: 'divider' }}>
<Tabs
value={value}
onChange={handleChange}
indicatorColor="secondary"
textColor="secondary"
>
<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}>
<Row className={"bbsbox_11"}>
<Col xs={9} className={"text-truncate"}><Link to={URL.SUPPORT_DETAIL} className={"bbsbox_11_title"}>국토교통부고시_제2024-147(내진설계일반(KDS_17_10_00))_정정_고시</Link></Col>
<Col xs={2} className={"text-end"}>2024.01.23.</Col>
<Col xs={1} className={"text-end"}><img src={"/assets/images/file.png"} /></Col>
</Row>
<Row className={"bbsbox_11"}>
<Col xs={9} className={"text-truncate"}><Link to={URL.SUPPORT_DETAIL} className={"bbsbox_11_title"}>국토교통부고시_제2024-147(내진설계일반(KDS_17_10_00))_정정_고시</Link></Col>
<Col xs={2} className={"text-end"}>2024.01.23.</Col>
<Col xs={1} className={"text-end"}><img src={"/assets/images/file.png"} /></Col>
</Row>
<Row className={"bbsbox_11"}>
<Col xs={9} className={"text-truncate"}><Link to={URL.SUPPORT_DETAIL} className={"bbsbox_11_title"}>국토교통부고시_제2024-147(내진설계일반(KDS_17_10_00))_정정_고시</Link></Col>
<Col xs={2} className={"text-end"}>2024.01.23.</Col>
<Col xs={1} className={"text-end"}><img src={"/assets/images/file.png"} /></Col>
</Row>
<Row className={"bbsbox_11"}>
<Col xs={9} className={"text-truncate"}><Link to={URL.SUPPORT_DETAIL} className={"bbsbox_11_title"}>국토교통부고시_제2024-147(내진설계일반(KDS_17_10_00))_정정_고시_정정_고시_정정_고시_정정_고시_정정_고시_정정_고시_정정_고시</Link></Col>
<Col xs={2} className={"text-end"}>2024.01.23.</Col>
<Col xs={1} className={"text-end"}><img src={"/assets/images/file.png"} /></Col>
</Row>
</TabPanel>
<TabPanel value={value} index={1}>
<Row className={"bbsbox_11"}>
<Col xs={9} className={"text-truncate"}>2024 제7차 건설기준위원회</Col>
<Col xs={2} className={"text-end"}>2024.01.23.</Col>
<Col xs={1} className={"text-end"}><img src={"/assets/images/file.png"} /></Col>
</Row>
<Row className={"bbsbox_11"}>
<Col xs={9} className={"text-truncate"}>2024 제7차 건설기준위원회</Col>
<Col xs={2} className={"text-end"}>2024.01.23.</Col>
<Col xs={1} className={"text-end"}><img src={"/assets/images/file.png"} /></Col>
</Row>
<Row className={"bbsbox_11"}>
<Col xs={9} className={"text-truncate"}>2024 제7차 건설기준위원회</Col>
<Col xs={2} className={"text-end"}>2024.01.23.</Col>
<Col xs={1} className={"text-end"}><img src={"/assets/images/file.png"} /></Col>
</Row>
<Row className={"bbsbox_11"}>
<Col xs={9} className={"text-truncate"}>2024 제7차 건설기준위원회</Col>
<Col xs={2} className={"text-end"}>2024.01.23.</Col>
<Col xs={1} className={"text-end"}><img src={"/assets/images/file.png"} /></Col>
</Row></TabPanel>
<TabPanel value={value} index={2}>건설기준고시 리스트 출력</TabPanel>
<TabPanel value={value} index={3}>건설기준연구 리스트 출력</TabPanel>
<TabPanel value={value} index={4}>기술자료 리스트 출력</TabPanel>
<TabPanel value={value} index={5}>보도자료 리스트 출력</TabPanel>
</div>
<div className="bbsbox_2"><Link to={URL.ABOUT_PROMOTE}><img src="/assets/images/narae.jpg" /></Link></div>
</div>
<div className="qnabox"> <div className="qnabox">
<div className="qnabox_1 d-flex justify-content-center"> <div className="qnabox_1 d-flex justify-content-center">
<div className="qnabox_11 d-flex justify-content-start align-items-end">Q&A</div> <div className="qnabox_11 d-flex justify-content-start align-items-end">Q&A</div>
@ -425,7 +313,7 @@ function EgovMain(props) {
<Col xs={10} className={"qnabox_n_file py-1"}>00.jpg</Col> <Col xs={10} className={"qnabox_n_file py-1"}>00.jpg</Col>
<Col xs={2} className={"text-end p-0"}><img src={"/assets/images/file.png"} /></Col> <Col xs={2} className={"text-end p-0"}><img src={"/assets/images/file.png"} /></Col>
</Row> </Row>
<Row className={"qnabox_n_title pt-2"}><Link to={URL.SUPPORT_DETAIL} className={"text-secondary p-0"}>콘크리트 내구성 설계 평가 문의요.. 정말 되나요? 콘크리트 내구성 설계 평가 문의요.. 정말 되나요?</Link></Row> <Row className={"qnabox_n_title pt-2"}>콘크리트 내구성 설계 평가 문의요.. 정말 되나요? 콘크리트 내구성 설계 평가 문의요.. 정말 되나요?</Row>
<Row className={"qnabox_n_date justify-content-end"}>2024.01.23</Row> <Row className={"qnabox_n_date justify-content-end"}>2024.01.23</Row>
</div> </div>
<div className="qnabox_n"> <div className="qnabox_n">
@ -433,29 +321,57 @@ function EgovMain(props) {
<Col xs={10} className={"qnabox_n_file py-1"}>00.jpg</Col> <Col xs={10} className={"qnabox_n_file py-1"}>00.jpg</Col>
<Col xs={2} className={"text-end p-0"}><img src={"/assets/images/file.png"} /></Col> <Col xs={2} className={"text-end p-0"}><img src={"/assets/images/file.png"} /></Col>
</Row> </Row>
<Row className={"qnabox_n_title pt-2"}><Link to={URL.SUPPORT_DETAIL} className={"text-secondary p-0"}>콘크리트 내구성 설계 평가 문의요.. 정말 되나요? 콘크리트 내구성 설계 평가 문의요.. 정말 되나요?</Link></Row> <Row className={"qnabox_n_title pt-2"}>콘크리트 내구성 설계 평가 문의요.. 정말 되나요? 콘크리트 내구성 설계 평가 문의요.. 정말 되나요?</Row>
<Row className={"qnabox_n_date justify-content-end"}>2024.01.23</Row> <Row className={"qnabox_n_date justify-content-end"}>2024.01.23</Row></div>
</div>
<div className="qnabox_n"> <div className="qnabox_n">
<Row> <Row>
<Col xs={10} className={"qnabox_n_file py-1"}>00.jpg</Col> <Col xs={10} className={"qnabox_n_file py-1"}>00.jpg</Col>
<Col xs={2} className={"text-end p-0"}><img src={"/assets/images/file.png"} /></Col> <Col xs={2} className={"text-end p-0"}><img src={"/assets/images/file.png"} /></Col>
</Row> </Row>
<Row className={"qnabox_n_title pt-2"}><Link to={URL.SUPPORT_DETAIL} className={"text-secondary p-0"}>콘크리트 내구성 설계 평가 문의요.. 정말 되나요? 콘크리트 내구성 설계 평가 문의요.. 정말 되나요?</Link></Row> <Row className={"qnabox_n_title pt-2"}>콘크리트 내구성 설계 평가 문의요.. 정말 되나요? 콘크리트 내구성 설계 평가 문의요.. 정말 되나요?</Row>
<Row className={"qnabox_n_date justify-content-end"}>2024.01.23</Row> <Row className={"qnabox_n_date justify-content-end"}>2024.01.23</Row></div>
</div>
<div className="qnabox_n"> <div className="qnabox_n">
<Row> <Row>
<Col xs={10} className={"qnabox_n_file py-1"}>00.jpg</Col> <Col xs={10} className={"qnabox_n_file py-1"}>00.jpg</Col>
<Col xs={2} className={"text-end p-0"}><img src={"/assets/images/file.png"} /></Col> <Col xs={2} className={"text-end p-0"}><img src={"/assets/images/file.png"} /></Col>
</Row> </Row>
<Row className={"qnabox_n_title pt-2"}><Link to={URL.SUPPORT_DETAIL} className={"text-secondary p-0"}>콘크리트 내구성 설계 평가 문의요.. 정말 되나요? 콘크리트 내구성 설계 평가 문의요.. 정말 되나요?</Link></Row> <Row className={"qnabox_n_title pt-2"}>콘크리트 내구성 설계 평가 문의요.. 정말 되나요? 콘크리트 내구성 설계 평가 문의요.. 정말 되나요?</Row>
<Row className={"qnabox_n_date justify-content-end"}>2024.01.23</Row> <Row className={"qnabox_n_date justify-content-end"}>2024.01.23</Row></div>
</div> </div>
</div> </div>
<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>
</div>
<div className="bbsbox d-flex justify-content-center align-items-start">
<div className="bbsbox_1">
<Box sx={{ borderBottom: 2, borderColor: 'divider' }}>
<Tabs
value={value}
onChange={handleChange}
indicatorColor="secondary"
textColor="secondary"
>
<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>
<TabPanel value={value} index={1}>Item 1</TabPanel>
<TabPanel value={value} index={2}>Item 2</TabPanel>
<TabPanel value={value} index={3}>Item 3</TabPanel>
<TabPanel value={value} index={4}>Item 4</TabPanel>
<TabPanel value={value} index={5}>Item 5</TabPanel>
</div>
<div className="bbsbox_2"><Link to={URL.ABOUT_PROMOTE}><img src="/assets/images/narae.jpg" /></Link></div>
</div> </div>
<div className="bannerbox"> <div className="bannerbox">
<Slider {...settings}> <Slider {...settings}>
{banners.map((banner, index) => ( {banners.map((banner, index) => (

View File

@ -1,14 +0,0 @@
import React, { useState } from 'react';
import {Link, useLocation, useNavigate} from 'react-router-dom';
import * as EgovNet from 'api/egovFetch';
function StandardCodeSeearch(){
return (
<div>통합검색 페이지</div>
);
}
export default StandardCodeSeearch;

View File

@ -59,7 +59,7 @@ import StandardCodeInfo from "../pages/standardCode/info/StandardCodeInfo";
import StandardCodeTerm from "pages/standardCode/StandardCodeTerm"; import StandardCodeTerm from "pages/standardCode/StandardCodeTerm";
import StandardCodeEng from "pages/standardCode/StandardCodeEng"; import StandardCodeEng from "pages/standardCode/StandardCodeEng";
import StandardCodeOld from "pages/standardCode/StandardCodeOld"; import StandardCodeOld from "pages/standardCode/StandardCodeOld";
import StandardCodeSearch from "pages/standardCode/StandardCodeSearch";
//INFORM //INFORM
// import EgovDailyList from 'pages/inform/daily/EgovDailyList'; // import EgovDailyList from 'pages/inform/daily/EgovDailyList';
@ -303,7 +303,6 @@ const SecondRoutes = () => {
<Route path={URL.STANDARD_CODE_TERM} element={<StandardCodeTerm />} /> <Route path={URL.STANDARD_CODE_TERM} element={<StandardCodeTerm />} />
<Route path={URL.STANDARD_CODE_ENG} element={<StandardCodeEng />} /> <Route path={URL.STANDARD_CODE_ENG} element={<StandardCodeEng />} />
<Route path={URL.STANDARD_CODE_OLD} element={<StandardCodeOld />} /> <Route path={URL.STANDARD_CODE_OLD} element={<StandardCodeOld />} />
<Route path={URL.STANDARD_CODE_SEARCH} element={<StandardCodeSearch />} />
{/*기준코드리스트*/} {/*기준코드리스트*/}

View File

@ -146,7 +146,7 @@ public class SchedulesApiController {
@ApiResponse(responseCode = "200", description = "등록 성공"), @ApiResponse(responseCode = "200", description = "등록 성공"),
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@PostMapping(value = "/schedule/{scheduleId}") @DeleteMapping(value = "/schedule/{scheduleId}")
public ResultVO deleteSchedule public ResultVO deleteSchedule
( (
@AuthenticationPrincipal LoginVO user, @AuthenticationPrincipal LoginVO user,

View File

@ -44,7 +44,7 @@ import java.util.Map;
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@RequestMapping("/admin/config") @RequestMapping("/admin/config")
@Tag(name = "AdminConfigController", description = "사이트관리 환결설정 메뉴 컨트롤러") @Tag(name="AdminConfigController", description = "사이트관리 환결설정 메뉴 컨트롤러")
public class AdminConfigController extends BaseController { public class AdminConfigController extends BaseController {
private final ConfigService configService; private final ConfigService configService;
@ -64,7 +64,7 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@RequestMapping(method = RequestMethod.GET, value = "/base-code-mgt/code-grp") @RequestMapping(method = RequestMethod.GET, value = "/base-code-mgt/code-grp")
public ResultVO getCodeGrp() throws Exception { public ResultVO getCodeGrp() throws Exception{
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
resultMap.put("codeGrpList", configService.selectCodeGrpList()); resultMap.put("codeGrpList", configService.selectCodeGrpList());
@ -83,26 +83,26 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@RequestMapping(method = RequestMethod.POST, value = "/base-code-mgt/code-grp", consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(method = RequestMethod.POST, value = "/base-code-mgt/code-grp", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResultVO addCodeGrp(@RequestBody TcCodeGrp codeGrp, @AuthenticationPrincipal LoginVO user) throws Exception { public ResultVO addCodeGrp(@RequestBody TcCodeGrp codeGrp, @AuthenticationPrincipal LoginVO user) throws Exception{
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
if (user == null) { if(user == null){
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
} else { }else{
if (!user.getUserSe().equals("ACC_TP01")) { if(!user.getUserSe().equals("ACC_TP01")){
resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode()); resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode());
resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage()); resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage());
} else if (codeGrp.getGrpCd().isEmpty()) { }else if(codeGrp.getGrpCd().isEmpty()){
resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode()); resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode());
resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage()); resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage());
} else { }else{
codeGrp.setFrstCrtDt(LocalDateTime.now()); codeGrp.setFrstCrtDt(LocalDateTime.now());
codeGrp.setFrstCrtId(user.getId()); codeGrp.setFrstCrtId(user.getId());
codeGrp.setUseYn("Y"); codeGrp.setUseYn("Y");
String result = configService.addCodeGrp(codeGrp); String result = configService.addCodeGrp(codeGrp);
if (result.equals("isSaved")) { if(result.equals("isSaved")){
resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode()); resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode());
resultVO.setResultMessage("중복되는 코드그룹이 있습니다."); resultVO.setResultMessage("중복되는 코드그룹이 있습니다.");
} else { }else{
resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
} }
} }
@ -121,24 +121,24 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@RequestMapping(method = RequestMethod.PUT, value = "/base-code-mgt/code-grp", consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(method = RequestMethod.PUT, value = "/base-code-mgt/code-grp", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResultVO modifyCodeGrp(@RequestBody TcCodeGrp codeGrp, @AuthenticationPrincipal LoginVO user) throws Exception { public ResultVO modifyCodeGrp(@RequestBody TcCodeGrp codeGrp, @AuthenticationPrincipal LoginVO user) throws Exception{
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
if (user == null) { if(user == null){
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
} else { }else{
if (!user.getUserSe().equals("ACC_TP01")) { if(!user.getUserSe().equals("ACC_TP01")){
resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode()); resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode());
resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage()); resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage());
} else if (codeGrp.getGrpCd().isEmpty()) { }else if(codeGrp.getGrpCd().isEmpty()){
resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode()); resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode());
resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage()); resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage());
} else { }else{
codeGrp.setLastChgDt(LocalDateTime.now()); codeGrp.setLastChgDt(LocalDateTime.now());
codeGrp.setLastChgId(user.getId()); codeGrp.setLastChgId(user.getId());
String result = configService.modifyCodeGrp(codeGrp); String result = configService.modifyCodeGrp(codeGrp);
if (result.equals("modified")) { if(result.equals("modified")){
resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
} else { }else{
resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode()); resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode());
} }
} }
@ -156,7 +156,7 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@RequestMapping(method = RequestMethod.GET, value = "/base-code-mgt/code-item") @RequestMapping(method = RequestMethod.GET, value = "/base-code-mgt/code-item")
public ResultVO getCodeItem(String grpCd) throws Exception { public ResultVO getCodeItem(String grpCd) throws Exception{
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
resultMap.put("codeItemList", configService.selectCodeItemList(grpCd)); resultMap.put("codeItemList", configService.selectCodeItemList(grpCd));
@ -175,26 +175,26 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@RequestMapping(method = RequestMethod.POST, value = "/base-code-mgt/code-item", consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(method = RequestMethod.POST, value = "/base-code-mgt/code-item", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResultVO addCodeItem(@RequestBody TcCodeItem codeItem, @AuthenticationPrincipal LoginVO user) throws Exception { public ResultVO addCodeItem(@RequestBody TcCodeItem codeItem, @AuthenticationPrincipal LoginVO user) throws Exception{
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
if (user == null) { if(user == null){
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
} else { }else{
if (!user.getUserSe().equals("ACC_TP01")) { if(!user.getUserSe().equals("ACC_TP01")){
resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode()); resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode());
resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage()); resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage());
} else if (codeItem.getGrpCd() == null || codeItem.getGrpCd().isEmpty()) { }else if(codeItem.getGrpCd()==null || codeItem.getGrpCd().isEmpty()){
resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode()); resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode());
resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage()); resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage());
} else { }else{
codeItem.setFrstCrtDt(LocalDateTime.now()); codeItem.setFrstCrtDt(LocalDateTime.now());
codeItem.setFrstCrtId(user.getId()); codeItem.setFrstCrtId(user.getId());
codeItem.setUseYn("Y"); codeItem.setUseYn("Y");
String result = configService.addCodeItem(codeItem); String result = configService.addCodeItem(codeItem);
if (result.equals("isSaved")) { if(result.equals("isSaved")){
resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode()); resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode());
resultVO.setResultMessage("중복되는 코드가 있습니다."); resultVO.setResultMessage("중복되는 코드가 있습니다.");
} else { }else{
resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
} }
} }
@ -213,24 +213,24 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@RequestMapping(method = RequestMethod.PUT, value = "/base-code-mgt/code-item", consumes = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(method = RequestMethod.PUT, value = "/base-code-mgt/code-item", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResultVO modifyCodeItem(@RequestBody TcCodeItem codeItem, @AuthenticationPrincipal LoginVO user) throws Exception { public ResultVO modifyCodeItem(@RequestBody TcCodeItem codeItem, @AuthenticationPrincipal LoginVO user) throws Exception{
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
if (user == null) { if(user == null){
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
} else { }else{
if (!user.getUserSe().equals("ACC_TP01")) { if(!user.getUserSe().equals("ACC_TP01")){
resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode()); resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode());
resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage()); resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage());
} else if (codeItem.getGrpCd().isEmpty()) { }else if(codeItem.getGrpCd().isEmpty()){
resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode()); resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode());
resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage()); resultVO.setResultMessage(ResponseCode.INPUT_CHECK_ERROR.getMessage());
} else { }else{
codeItem.setLastChgDt(LocalDateTime.now()); codeItem.setLastChgDt(LocalDateTime.now());
codeItem.setLastChgId(user.getId()); codeItem.setLastChgId(user.getId());
String result = configService.modifyCodeItem(codeItem); String result = configService.modifyCodeItem(codeItem);
if (result.equals("modified")) { if(result.equals("modified")){
resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
} else { }else{
resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode()); resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode());
} }
} }
@ -248,7 +248,7 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@RequestMapping(method = RequestMethod.GET, value = "/menu-mgt") @RequestMapping(method = RequestMethod.GET, value = "/menu-mgt")
public ResultVO getMenuMgt() { public ResultVO getMenuMgt(){
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
resultMap.put("menuList", configService.selectMenuList()); resultMap.put("menuList", configService.selectMenuList());
@ -266,21 +266,21 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@RequestMapping(method = RequestMethod.PUT, value = "/menu-mgt") @RequestMapping(method = RequestMethod.PUT, value = "/menu-mgt")
public ResultVO saveMenuMgt(@RequestBody @Valid TcMenu menu, Errors errors, @AuthenticationPrincipal LoginVO user) { public ResultVO saveMenuMgt(@RequestBody @Valid TcMenu menu, Errors errors, @AuthenticationPrincipal LoginVO user){
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
if (user == null) { if(user == null){
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
} else { }else {
menu.setRoleGrpId(menu.getMenuTypeCd().equals("MNU_0000") ? "ADMIN_USER" : "ALL_USER"); menu.setRoleGrpId(menu.getMenuTypeCd().equals("MNU_0000")?"ADMIN_USER":"ALL_USER");
if (errors.hasErrors()) { if(errors.hasErrors()){
StringBuilder msg = new StringBuilder(); StringBuilder msg = new StringBuilder();
for (FieldError error : errors.getFieldErrors()) { for(FieldError error: errors.getFieldErrors()){
msg.append(error.getDefaultMessage()); msg.append(error.getDefaultMessage());
msg.append("\n"); msg.append("\n");
} }
resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode()); resultVO.setResultCode(ResponseCode.INPUT_CHECK_ERROR.getCode());
resultVO.setResultMessage(msg.toString()); resultVO.setResultMessage(msg.toString());
} else if (!user.getUserSe().equals("ACC_TP01")) { }else if (!user.getUserSe().equals("ACC_TP01")) {
resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode()); resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode());
resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage()); resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage());
} else { } else {
@ -301,19 +301,19 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@RequestMapping(method = RequestMethod.DELETE, value = "/menu-mgt") @RequestMapping(method = RequestMethod.DELETE, value = "/menu-mgt")
public ResultVO removeMenuMgt(@RequestBody TcMenu menu, @AuthenticationPrincipal LoginVO user) { public ResultVO removeMenuMgt(@RequestBody TcMenu menu, @AuthenticationPrincipal LoginVO user){
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
if (user == null) { if(user == null){
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
} else { }else {
if (!user.getUserSe().equals("ACC_TP01")) { if (!user.getUserSe().equals("ACC_TP01")) {
resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode()); resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode());
resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage()); resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage());
} else { } else {
String result = configService.deleteMenu(menu.getMenuId(), user.getId()); String result = configService.deleteMenu(menu.getMenuId(), user.getId());
if (result == null) { if(result==null){
resultVO.setResultCode(ResponseCode.SUCCESS.getCode()); resultVO.setResultCode(ResponseCode.SUCCESS.getCode());
} else if (result.equals("notFind")) { }else if(result.equals("notFind")){
resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode()); resultVO.setResultCode(ResponseCode.SAVE_ERROR.getCode());
resultVO.setResultMessage("대상이 존재하지 않습니다."); resultVO.setResultMessage("대상이 존재하지 않습니다.");
} }
@ -332,7 +332,7 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@RequestMapping(method = RequestMethod.GET, value = "/menu-auth-mgt") @RequestMapping(method = RequestMethod.GET, value = "/menu-auth-mgt")
public ResultVO getMenuAuthMgt() { public ResultVO getMenuAuthMgt(){
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
resultMap.put("menuList", configService.selectMenuAuthList()); resultMap.put("menuList", configService.selectMenuAuthList());
@ -351,11 +351,11 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@RequestMapping(method = RequestMethod.PUT, value = "/menu-auth-mgt") @RequestMapping(method = RequestMethod.PUT, value = "/menu-auth-mgt")
public ResultVO editMenuAuthMgt(@RequestBody TcMenu menu, @AuthenticationPrincipal LoginVO user) { public ResultVO editMenuAuthMgt(@RequestBody TcMenu menu, @AuthenticationPrincipal LoginVO user){
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
if (user == null) { if(user == null){
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
} else { }else {
if (!user.getUserSe().equals("ACC_TP01")) { if (!user.getUserSe().equals("ACC_TP01")) {
resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode()); resultVO.setResultCode(ResponseCode.AUTH_ERROR.getCode());
resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage()); resultVO.setResultMessage(ResponseCode.AUTH_ERROR.getMessage());
@ -381,12 +381,12 @@ public class AdminConfigController extends BaseController {
public ResultVO getCommitteeCodeManagement( public ResultVO getCommitteeCodeManagement(
@AuthenticationPrincipal LoginVO user, @AuthenticationPrincipal LoginVO user,
HttpServletRequest request, HttpServletRequest request,
@ApiParam(value = "상위 code") @RequestParam(required = true) String paramCodeGroup, @ApiParam(value="상위 code") @RequestParam(required=true) String paramCodeGroup,
@ApiParam(value = "code level") @RequestParam(required = true) String paramCodeLevel @ApiParam(value="code level") @RequestParam(required=true) String paramCodeLevel
) throws Exception { ) throws Exception {
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
if (user == null) { if(user == null) {
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
} else { } else {
try { try {
@ -432,7 +432,7 @@ public class AdminConfigController extends BaseController {
) throws Exception { ) throws Exception {
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
if (user == null) { if(user == null) {
resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode()); resultVO.setResultCode(ResponseCode.TOKEN_EXPIRED.getCode());
} else { } else {
try { try {
@ -464,7 +464,7 @@ public class AdminConfigController extends BaseController {
@ApiResponse(responseCode = "200", description = "등록 성공"), @ApiResponse(responseCode = "200", description = "등록 성공"),
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님") @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
}) })
@PostMapping(value = "/committee-code-mgt/{orgId}") @DeleteMapping(value = "/committee-code-mgt/{orgId}")
public ResultVO deleteSchedule public ResultVO deleteSchedule
( (
@AuthenticationPrincipal LoginVO user, @AuthenticationPrincipal LoginVO user,
@ -511,17 +511,11 @@ public class AdminConfigController extends BaseController {
ResultVO resultVO = new ResultVO(); ResultVO resultVO = new ResultVO();
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
List<TnPartnerSite> tnPartnerSite = configService.selectPartnerSiteList(); List<TnPartnerSite> tnPartnerSite = configService.selectPartnerSiteList();
/*for (TnPartnerSite partnerSite : tnPartnerSite) { for (TnPartnerSite partnerSite : tnPartnerSite) {
String fileGrpId = partnerSite.getFileGrpId(); String fileGrpId = partnerSite.getFileGrpId();
List<TnAttachFile> files = fileService.findByFileGrpId(fileGrpId); String filePath = fileService.findByFileGrpId(fileGrpId).get(0).getFilePath();
if (!files.isEmpty()) {
String filePath = files.get(0).getFilePath();
partnerSite.setFilePath(filePath); partnerSite.setFilePath(filePath);
} }
else {
partnerSite.setFilePath(null);
}
}*/
resultMap.put("partnerSiteList", tnPartnerSite); resultMap.put("partnerSiteList", tnPartnerSite);
resultVO.setResult(resultMap); resultVO.setResult(resultMap);
return resultVO; return resultVO;
@ -539,12 +533,8 @@ public class AdminConfigController extends BaseController {
@RequestMapping(method = RequestMethod.GET, value = "/about-site-mgt/get-site-image") @RequestMapping(method = RequestMethod.GET, value = "/about-site-mgt/get-site-image")
public void getSiteImage(HttpServletResponse response, @RequestParam String fileGrpId) throws Exception { public void getSiteImage(HttpServletResponse response, @RequestParam String fileGrpId) throws Exception {
List<TnAttachFile> dbImgList = fileService.findByFileGrpId(fileGrpId); List<TnAttachFile> dbImgList = fileService.findByFileGrpId(fileGrpId);
String realFile = ""; String realFile = dbImgList.get(0).getFilePath();
String fileNm = ""; String fileNm = dbImgList.get(0).getFileNewName();
if (!dbImgList.isEmpty()) {
realFile = dbImgList.get(0).getFilePath();
fileNm = dbImgList.get(0).getFileNewName();
}
BufferedOutputStream out = null; BufferedOutputStream out = null;
InputStream in = null; InputStream in = null;

View File

@ -167,7 +167,7 @@ public class PopUpApiController {
@ApiResponse(responseCode = "200", description = "등록 성공"), @ApiResponse(responseCode = "200", description = "등록 성공"),
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"), @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"),
}) })
@PostMapping(value = "/contents/api/popup-manage/{popupId}") @DeleteMapping(value = "/contents/api/popup-manage/{popupId}")
public ResultVO contentsApiPopUpManageDelete public ResultVO contentsApiPopUpManageDelete
( (
@AuthenticationPrincipal LoginVO user, @AuthenticationPrincipal LoginVO user,
@ -282,7 +282,7 @@ public class PopUpApiController {
@ApiResponse(responseCode = "200", description = "등록 성공"), @ApiResponse(responseCode = "200", description = "등록 성공"),
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"), @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"),
}) })
@PostMapping(value = "/contents/api/popup-manage/file/{fileSeq}") @DeleteMapping(value = "/contents/api/popup-manage/file/{fileSeq}")
public ResultVO deleteFileContentsApiPopUpManage public ResultVO deleteFileContentsApiPopUpManage
( (
@AuthenticationPrincipal LoginVO user, @AuthenticationPrincipal LoginVO user,

View File

@ -164,7 +164,7 @@ public class AdminStandardResearchController {
@ApiResponse(responseCode = "200", description = "등록 성공"), @ApiResponse(responseCode = "200", description = "등록 성공"),
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"), @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"),
}) })
@PostMapping(value = "/contents/standard-research/{rsId}") @DeleteMapping(value = "/contents/standard-research/{rsId}")
public ResultVO contentsStandardResearchDelete public ResultVO contentsStandardResearchDelete
( (
@AuthenticationPrincipal LoginVO user, @AuthenticationPrincipal LoginVO user,

View File

@ -93,7 +93,7 @@ public class SecurityConfig {
"/search/doc", "/search/doc",
/* 관련사이트 이미지 조회 */ /* 관련사이트 이미지 조회 */
"/admin/config/about-site-mgt/get-site-image/**", "/admin/config/get-site-image/**",
/*권한별 메뉴 호출*/ /*권한별 메뉴 호출*/
"/leftNav/menu" "/leftNav/menu"

View File

@ -30,8 +30,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
registry.addInterceptor(authCheckInterceptor) registry.addInterceptor(authCheckInterceptor)
.addPathPatterns("/admin/**") .addPathPatterns("/admin/**")
.excludePathPatterns( .excludePathPatterns(
"/admin/dashboard/**", "/admin/dashboard/**"
"/admin/config/about-site-mgt/get-site-image/**"
); );
} }
@Override @Override