feat: 14. 발주기관 홈 화면 검색창을 관리시추정보현황 결과와 연결함

main
thkim 2025-06-10 17:40:02 +09:00
parent d9bf09221f
commit f080b73926
4 changed files with 100 additions and 227 deletions

View File

@ -12,4 +12,6 @@ src\main\webapp\WEB-INF\views\drilling\home\drilling_index.jsp
src\main\webapp\com\css\common.v2.0.css src\main\webapp\com\css\common.v2.0.css
src\main\webapp\com\css\common.v2.0.css.map src\main\webapp\com\css\common.v2.0.css.map
src\main\webapp\com\img\drilling\maps\dokdo_active_alone.svg src\main\webapp\com\img\drilling\maps\dokdo_active_alone.svg
src\main\webapp\com\img\drilling\maps\uleungdo_active_alone.svg src\main\webapp\com\img\drilling\maps\uleungdo_active_alone.svg
src\main\webapp\WEB-INF\views\drilling\inquiry\drilling_inquiry_project.jsp
src\main\webapp\WEB-INF\views\drilling\home\drilling_index.jsp

View File

@ -26,7 +26,7 @@
<!-- header --------------------------------------------> <!-- header -------------------------------------------->
<header class="drilling-wrap-header"> <header class="drilling-wrap-header">
<div id="header_cont"> <div id="header_cont">
<div class="wrap_header_top"> <div class="wrap_header_top">
<!-- 국토지반정보 통합DB센터 logo --> <!-- 국토지반정보 통합DB센터 logo -->
<div id="wrap_global"> <div id="wrap_global">
@ -42,13 +42,14 @@
<fieldset> <fieldset>
<legend>통합검색</legend> <legend>통합검색</legend>
<div> <div>
<label for="search_word" class="focus_tit" style="position: absolute; z-index: 1; display: block; visibility: visible;">프로젝트 명을 입력하세요.</label> <label for="search-word" class="focus_tit" style="position: absolute; z-index: 1; display: block; visibility: visible;">프로젝트 명을 입력하세요.</label>
<input type="text" id="search_word"> <input type="text" id="search-word">
<button type="button">검색</button> <button type="button" id="search-word-button" onclick="onClickSearchWordButton();" >검색</button>
</div> </div>
</fieldset> </fieldset>
</div> </div>
<!-- 지방청 logo --> <!-- 지방청 logo -->
<c:if test="${'025' == masterCompanyCode}"> <c:if test="${'025' == masterCompanyCode}">
<h1 class="logo logo-05"><a href="/drilling/index.do">대전지방국토관리청</a></h1> <h1 class="logo logo-05"><a href="/drilling/index.do">대전지방국토관리청</a></h1>
@ -79,198 +80,14 @@
<li class=""> <li class="">
<a href="/topMenuSelect.do?url=cmuboard&src=drilling"> <a href="/topMenuSelect.do?url=cmuboard&src=drilling">
커뮤니티 커뮤니티
</a> </a>
<div class="depth2_box">
<ul class="depth2 on">
<li class="">
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_15919/LST.jsp">
<i>도로이용불편신고센터</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_15923/DTL.jsp" class="has_sub">
<i>인허가민원센터</i>
</a>
<ul class="depth3">
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_16381/DTL.jsp">
<i>도로점용허가</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/BORD0201/m_15926/BRD.jsp">
<i>도로점용·연결개선의견</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_15927/DTL.jsp">
<i>운행제한차량 운행허가</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_15928/DTL.jsp">
<i>도로 등의 연결허가</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_15929/DTL.jsp">
<i>비관리청도로공사시행허가</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_22726/DTL.jsp">
<i>인허가불편신고센터</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_37214/DTL.jsp">
<i>국유재산 사용허가</i>
</a>
</li>
</ul>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_21911/DTL.jsp" class="has_sub">
<i>e-클린센터</i>
</a>
<ul class="depth3">
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_15931/DTL.jsp">
<i>부조리신고</i>
</a>
</li>
<li>
<a href="http://www.molit.go.kr/USR/epeople/m_24239/lst.jsp?peti_cat_code_c=0020000000" target="_blank" title="새창">
<i>부실공사신고안내</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_15933/DTL.jsp">
<i>공정건설지원센터</i>
</a>
</li>
</ul>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/BORD0201/m_15935/BRD.jsp" class="has_sub">
<i>국민여론</i>
</a>
<ul class="depth3">
<li>
<a href="https://www.molit.go.kr/wrocm/USR/BORD0201/m_15935/BRD.jsp">
<i>여론광장</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/BORD0201/m_15936/BRD.jsp">
<i>칭찬합시다</i>
</a>
</li>
</ul>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/BORD0201/m_15938/BRD.jsp">
<i>청렴홍보방</i>
</a>
</li>
<li>
<a href="https://www.safetyreport.go.kr/api?apiKey=1613000UBTBXNLH6HJMK5ERK8QE" target="_blank" title="새창">
<i>안전신고</i>
</a>
</li>
<li>
<a href="https://docu.gdoc.go.kr/" target="_blank" title="새창">
<i>문서24</i>
</a>
</li>
</ul>
</div>
</li> </li>
<li class=""> <li class="">
<a href="/topMenuSelect.do?url=pds&src=drilling"> <a href="/topMenuSelect.do?url=pds&src=drilling">
자료실 자료실
</a> </a>
<div class="depth2_box" style="display: none;">
<ul class="depth2">
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_22735/DTL.jsp">
<i>보상정보</i>
</a>
</li>
<li>
<a href="https://www.calspia.go.kr/portal/stat/selectMolitRoadProjStat.do?siteOwnerCd=W" target="_blank" title="새창">
<i>도로공사정보</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_15942/DTL.jsp">
<i>도로정보</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_15951/DTL.jsp">
<i>품질관리정보</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_37083/DTL.jsp">
<i>안전관리정보</i>
</a>
</li>
<li>
<a href="https://www.molit.go.kr/wrocm/USR/WPGE0201/m_15956/DTL.jsp">
<i>관련사이트</i>
</a>
</li>
</ul>
</div>
</li> </li>
<li class="" style="display: none;"> <li class="" style="display: none;">
@ -293,4 +110,72 @@
</div> </div>
</header> </header>
<!-- //header -----------------------------------------------------------> <!-- //header ----------------------------------------------------------->
<!-- javascript start-->
<script type="text/javascript">
// GNB 상단 검색창
function onClickSearchWordButton() {
const searchWordEle = document.getElementById('search-word');
if( searchWordEle ) {
const searchWordValue = String(searchWordEle.value).trim();
if( 0 < searchWordValue.length ) {
window.location.href = '/drilling/inquiry-project.do?query=' + searchWordValue;
}
}
}
function initLabelBehavior() {
const focusTitles = document.querySelectorAll('.focus_tit');
focusTitles.forEach(title => {
const infoBox = title.nextElementSibling; // Use nextElementSibling for adjacent element
if (infoBox && (infoBox.tagName === 'INPUT' || infoBox.tagName === 'TEXTAREA')) {
title.style.position = 'absolute';
title.style.zIndex = '1';
title.style.display = 'block';
infoBox.addEventListener('focus', () => {
title.style.visibility = 'hidden';
});
infoBox.addEventListener('blur', () => {
title.style.visibility = infoBox.value === '' ? 'visible' : 'hidden';
});
infoBox.addEventListener('input', () => { // Use 'input' event for changes
title.style.visibility = infoBox.value === '' ? 'visible' : 'hidden';
});
// Trigger initial blur to set initial visibility
infoBox.dispatchEvent(new Event('blur')); // Dispatch blur event
}
});
}
document.addEventListener('DOMContentLoaded', function() {
initLabelBehavior();
// 1. id가 'search-word'인 input 요소를 가져옵니다.
const searchInput = document.getElementById('search-word');
// 2. input 요소에 'keydown' 이벤트 리스너를 추가합니다.
// 'keydown'은 키가 눌릴 때 발생합니다.
searchInput.addEventListener('keydown', function(event) {
// 3. 눌린 키가 Enter 키인지 확인합니다.
// event.key === 'Enter'는 최신 브라우저에서 권장되는 방법입니다.
// 구형 브라우저 호환성을 위해서는 event.keyCode === 13 도 함께 사용할 수 있습니다.
if (event.key === 'Enter') {
// 4. Enter 키가 눌렸다면 alert 창을 띄웁니다.
onClickSearchWordButton();
event.preventDefault();
}
});
});
</script>
<!-- javascript end-->
</c:if> </c:if>

View File

@ -274,42 +274,7 @@
</div> </div>
<!-- //wrap_container --> <!-- //wrap_container -->
<!-- AceCounter Log Gathering Script V.70.20080707 -->
<script type="text/javascript" language="javascript">
//<![CDATA[
function initLabelBehavior() {
const focusTitles = document.querySelectorAll('.focus_tit');
focusTitles.forEach(title => {
const infoBox = title.nextElementSibling; // Use nextElementSibling for adjacent element
if (infoBox && (infoBox.tagName === 'INPUT' || infoBox.tagName === 'TEXTAREA')) {
title.style.position = 'absolute';
title.style.zIndex = '1';
title.style.display = 'block';
infoBox.addEventListener('focus', () => {
title.style.visibility = 'hidden';
});
infoBox.addEventListener('blur', () => {
title.style.visibility = infoBox.value === '' ? 'visible' : 'hidden';
});
infoBox.addEventListener('input', () => { // Use 'input' event for changes
title.style.visibility = infoBox.value === '' ? 'visible' : 'hidden';
});
// Trigger initial blur to set initial visibility
infoBox.dispatchEvent(new Event('blur')); // Dispatch blur event
}
});
}
// Call the function when the DOM is loaded. This is equivalent to $(document).ready() in jQuery
document.addEventListener('DOMContentLoaded', initLabelBehavior);
//]]>
</script>
<noscript><img src='http://mltm.loginside.co.kr:80/?uid=41&amp;je=n&amp;' border="0" width="0" height="0" alt="loginside" /></noscript> <noscript><img src='http://mltm.loginside.co.kr:80/?uid=41&amp;je=n&amp;' border="0" width="0" height="0" alt="loginside" /></noscript>
<!-- AceCounter Log Gathering Script End --> <!-- AceCounter Log Gathering Script End -->

View File

@ -37,7 +37,8 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
<!-- javascript start--> <!-- javascript start-->
<script type="text/javascript"> <script type="text/javascript">
function onClickBtnSearch() { function onClickBtnSearch() {
const pagingEle = document.getElementById('paging'); const pagingEle = document.getElementById('paging');
const activeLinks = pagingEle.querySelectorAll('li.is-active a'); const activeLinks = pagingEle.querySelectorAll('li.is-active a');
@ -170,6 +171,26 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
// 1. 현재 URL 가져오기
const currentUrl = window.location.href;
console.log("현재 URL:", currentUrl);
// 2. URL에서 쿼리 스트링 부분 파싱하기
const urlParams = new URLSearchParams(window.location.search);
// 3. 'query'라는 이름의 쿼리 스트링 값 읽기
const queryParamValue = urlParams.get('query');
if (queryParamValue !== null) {
document.getElementById('const-name').value = queryParamValue;
const searchWordEle = document.getElementById('search-word');
if( searchWordEle ) {
if( 0 < String(queryParamValue).trim().length ) {
searchWordEle.value = String(queryParamValue).trim();
initLabelBehavior();
}
}
}
document.getElementById('btn-search').addEventListener('click', function() { document.getElementById('btn-search').addEventListener('click', function() {
onClickBtnSearch(); onClickBtnSearch();
}); });