외사대상목표 까지 게시판 레이아웃 수정.

강석 최 2022-11-28 18:17:47 +09:00
parent a3a90f8ba0
commit 27fdb3363b
42 changed files with 2103 additions and 1980 deletions

View File

@ -101,9 +101,6 @@
.pl-23{
padding-left: 23%;
}
.display-none{
display:none
}
#subModalBody{
white-space: nowrap;
}

View File

@ -79,7 +79,7 @@
.container-lg,
.container-xl,
.container-xxl {
--bs-gutter-x: 1.5rem;
--bs-gutter-x: 0.75rem;
--bs-gutter-y: 0;
width: 100%;
padding-right: calc(var(--bs-gutter-x) * .5);
@ -108,7 +108,7 @@
max-width: 1320px; } }
.row {
--bs-gutter-x: 1.5rem;
--bs-gutter-x: 0.75rem;
--bs-gutter-y: 0;
display: flex;
flex-wrap: wrap;

File diff suppressed because one or more lines are too long

View File

@ -510,7 +510,7 @@ progress {
.container-lg,
.container-xl,
.container-xxl {
--bs-gutter-x: 1.5rem;
--bs-gutter-x: 0.75rem;
--bs-gutter-y: 0;
width: 100%;
padding-right: calc(var(--bs-gutter-x) * .5);
@ -539,7 +539,7 @@ progress {
max-width: 1320px; } }
.row {
--bs-gutter-x: 1.5rem;
--bs-gutter-x: 0.75rem;
--bs-gutter-y: 0;
display: flex;
flex-wrap: wrap;
@ -3380,7 +3380,7 @@ textarea.form-control-lg {
--bs-card-color: ;
--bs-card-bg: #fff;
--bs-card-img-overlay-padding: 1rem;
--bs-card-group-margin: 0.75rem;
--bs-card-group-margin: 0.375rem;
position: relative;
display: flex;
flex-direction: column;
@ -4196,7 +4196,7 @@ textarea.form-control-lg {
.toast {
--bs-toast-padding-x: 0.75rem;
--bs-toast-padding-y: 0.5rem;
--bs-toast-spacing: 1.5rem;
--bs-toast-spacing: 0.75rem;
--bs-toast-max-width: 350px;
--bs-toast-font-size: 0.875rem;
--bs-toast-color: ;

File diff suppressed because one or more lines are too long

View File

@ -15,7 +15,7 @@
<div class="card-body">
<form method="get" th:action="@{/authMgt/authMgtPage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -47,7 +47,9 @@
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="userId" placeholder="사용자 아이디" th:value="${searchParams.userId}">
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -15,7 +15,7 @@
<div class="card-body">
<form method="get" th:action="@{/menuMgt/menuMgtPage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -59,7 +59,9 @@
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="menuUrl" placeholder="url" th:value="${searchParams.menuUrl}">
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -20,7 +20,7 @@
<div class="col-12 tab-content bg-white border border-top-0 p-2">
<form method="get" th:action="@{/userMgt/userLog/inoutLog}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">

View File

@ -20,7 +20,7 @@
<div class="col-12 tab-content bg-white border border-top-0 p-2">
<form method="get" th:action="@{/userMgt/userLog/requestLog}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">

View File

@ -23,7 +23,7 @@
<form method="get" th:action="@{/userMgt/userMgtPage}">
<input type="hidden" name="userStatus" id="userStatus" th:value="${searchParams.userStatus}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -63,7 +63,9 @@
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="userId" placeholder="사용자 아이디" th:value="${searchParams.userId}">
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -11,7 +11,9 @@
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="caseNum" placeholder="사건번호" th:value="${searchParams.caseNum}">
</div>
<input type="button" class="btn btn-sm btn-primary col-auto" id="searchModalBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchModalBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -4,7 +4,7 @@
<div class="col-12">
<form method="get" action="#" id="modalSearchForm">
<input type="hidden" name="pageIndex" id="modalPageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -41,7 +41,9 @@
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="menuUrl" placeholder="url" th:value="${searchParams.menuUrl}">
</div>
<input type="button" class="btn btn-sm btn-primary col-auto" id="searchModalBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchModalBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -31,7 +31,9 @@
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="userId" placeholder="사용자 아이디" th:value="${searchParams.userId}">
</div>
<input type="button" class="btn btn-sm btn-primary col-auto" id="searchModalBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchModalBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -16,7 +16,7 @@
<form id="searchFm" method="get" th:action="@{/equip/cellPhoneList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -26,12 +26,12 @@
</div>
<div class="col-auto">
<div class="row justify-content-end">
<input type="submit" class="btn btn-sm btn-primary col-auto display-none" id="searchBtn" value="검색">
<input type="submit" class="btn btn-sm btn-primary col-auto d-none" id="searchBtn" value="검색">
</div>
</div>
</div>
</form>
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<button data-bs-toggle="modal" class="btn btn-success" data-bs-target="#webexModal" >웹엑스 접속방법</button>
</div>

View File

@ -16,7 +16,7 @@
<form method="get" th:action="@{/equip/List}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<input type="hidden" name="detailType" th:value="${searchParams.detailType}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -26,7 +26,7 @@
</div>
<div class="col-auto">
<div class="row justify-content-end">
<input type="submit" class="btn btn-sm btn-primary col-auto display-none" id="searchBtn" value="검색">
<input type="submit" class="btn btn-sm btn-primary col-auto d-none" id="searchBtn" value="검색">
</div>
</div>
</div>

View File

@ -24,7 +24,7 @@
<form method="get" th:action="@{/equip/Log}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<input type="hidden" name="detailType" th:value="${searchParams.detailType}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -34,7 +34,7 @@
</div>
<div class="col-auto">
<div class="row justify-content-end">
<input type="submit" class="btn btn-sm btn-primary col-auto display-none" id="searchBtn" value="검색">
<input type="submit" class="btn btn-sm btn-primary col-auto d-none" id="searchBtn" value="검색">
</div>
</div>
</div>

View File

@ -16,7 +16,7 @@
<form id="searchFm" method="get" th:action="@{/equip/pvreUseList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -61,7 +61,9 @@
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -16,7 +16,7 @@
<form id="searchFm" method="get" th:action="@{/equip/qirUseList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -61,7 +61,9 @@
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -38,7 +38,7 @@
<form method="get" th:action="${searchUrl}">
<input type="hidden" name="activeTab" id="activeTab" th:value="${searchParams.activeTab}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -71,93 +71,89 @@
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class=" col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<table class="table table-sm table-bordered table-hover">
<thead>
<tr class="table-secondary">
<th></th>
<th th:if="${searchParams.status ne 'receive'}">상태</th>
<th>분류</th>
<th>제목</th>
<th>관서</th>
<th>부서</th>
<th>작성자</th>
<th>작성일시</th>
<th>첨부파일</th>
<th>열람수</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="faRptTr" th:each="faRpt:${faRptList}">
<input type="hidden" class="faRptKey" th:value="${faRpt.faRptKey}">
<td><input type="checkbox" class="trChkBox"></td>
<td th:if="${faRpt.status ne 'receive'}">
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<th:text th:if="${commonCode.itemCd eq faRpt.status}" th:text="${commonCode.itemValue}"></th:text>
</th:block>
</td>
<td>
<th:block th:each="commonCode:${session.commonCode.get('FRC')}">
<th:text th:if="${commonCode.itemCd eq faRpt.faRptType}" th:text="${commonCode.itemValue}"></th:text>
</th:block>
</td>
<td th:text="${faRpt.title}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${faRpt.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<td th:if="${faRpt.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${faRpt.wrtUserNm}"></td>
<td th:text="${#temporals.format(faRpt.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${faRpt.fileCnt eq null?'파일 없음':#strings.concat(faRpt.fileCnt,' 건')}"></td>
<td th:text="|${faRpt.readCnt}/${faRpt.userCnt}|"></td>
</tr>
</tbody>
</table>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
<div class="col-auto">
<input type="button" class="btn btn-success" value="등록" id="addFaRptBtn" th:unless="${accessAuth eq 'ACC001'}">
</div>
</div>
</div>
</div>
<table class="table table-sm table-bordered table-hover">
<thead>
<tr class="table-secondary">
<th></th>
<th th:if="${searchParams.status ne 'receive'}">상태</th>
<th>분류</th>
<th>제목</th>
<th>관서</th>
<th>부서</th>
<th>작성자</th>
<th>작성일시</th>
<th>첨부파일</th>
<th>열람수</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="faRptTr" th:each="faRpt:${faRptList}">
<input type="hidden" class="faRptKey" th:value="${faRpt.faRptKey}">
<td><input type="checkbox" class="trChkBox"></td>
<td th:if="${faRpt.status ne 'receive'}">
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<th:text th:if="${commonCode.itemCd eq faRpt.status}" th:text="${commonCode.itemValue}"></th:text>
</th:block>
</td>
<td>
<th:block th:each="commonCode:${session.commonCode.get('FRC')}">
<th:text th:if="${commonCode.itemCd eq faRpt.faRptType}" th:text="${commonCode.itemValue}"></th:text>
</th:block>
</td>
<td th:text="${faRpt.title}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${faRpt.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<td th:if="${faRpt.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${faRpt.wrtUserNm}"></td>
<td th:text="${#temporals.format(faRpt.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${faRpt.fileCnt eq null?'파일 없음':#strings.concat(faRpt.fileCnt,' 건')}"></td>
<td th:text="|${faRpt.readCnt}/${faRpt.userCnt}|"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
<div class="col-auto">
<input type="button" class="btn btn-success" value="등록" id="addFaRptBtn" th:unless="${accessAuth eq 'ACC001'}">
</div>
</div>
</div>

View File

@ -4,271 +4,273 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}">
<th:block layout:fragment="script">
<script th:inline="javascript">
const internationalCrimeArrest = [[${internationalCrimeArrest}]];
const commonCode = [[${session.commonCode}]];
const organConfigList = [[${organConfigList}]];
</script>
<script type="text/javascript" th:src="@{/js/faStatistics/internationalCrimeArrest.js}"></script>
<script th:inline="javascript">
const internationalCrimeArrest = [[${internationalCrimeArrest}]];
const commonCode = [[${session.commonCode}]];
const organConfigList = [[${organConfigList}]];
</script>
<script type="text/javascript" th:src="@{/js/faStatistics/internationalCrimeArrest.js}"></script>
</th:block>
<div layout:fragment="content">
<main>
<h4>국제범죄검거 현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
<div class="col-12 card bg-light">
<div class="card-body">
<form method="get" th:action="@{/faStatistics/internationalCrimeArrest}" id="icaSearchForm">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<input type="hidden" name="dateSelector" value="wrtDt">
<div class="row justify-content-between pe-3 py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="caseNum" th:value="${searchParams.caseNum}">
</div>
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="organ">
<option value="">지방청 선택</option>
<th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan eq 'OG001' && organConfig.organType ne 'OGC001'}">
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.organ}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto" id="departmentDiv">
<select class="form-select form-select-sm" name="department">
<option value="">경찰서 선택</option>
<th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan ne null && organConfig.organType ne 'OGC002'}">
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.department}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="crimeType" id="searchCrimeType">
<option value="">범죄테마 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('CTH')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.crimeType}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="violationType" id="searchViolationType">
<option value="">위반유형 선택</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
<th:block th:each="commonCode:${session.commonCode.get('CTH'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${internationalCrimeArrest.violationType eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="죄명" name="crimeName" th:value="${searchParams.crimeName}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="발생원표" name="occurTable" th:value="${searchParams.occurTable}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="검거원표" name="arrestTable" th:value="${searchParams.arrestTable}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="피의자원표" name="suspectTable" th:value="${searchParams.suspectTable}">
</div>
<div class="col-auto">
<div class="col-auto input-daterange" id="searchCrimeAwarenessDtDiv">
<input type="text" class="form-control form-control-sm" placeholder="범죄인지" name="crimeAwarenessDt" id="crimeAwarenessDt" th:value="${#temporals.format(searchParams.crimeAwarenessDt, 'yyyy-MM-dd')}">
</div>
</div>
<div class="col-auto">
<div class="col-auto input-daterange" id="searchCaseSentDtDiv">
<input type="text" class="form-control form-control-sm" placeholder="사건송치" name="caseSentDt" id="caseSentDt" th:value="${#temporals.format(searchParams.caseSentDt, 'yyyy-MM-dd')}">
</div>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="processResult" id="processResult">
<option value="">신병처리 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PCR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.processResult}"></option>
</th:block>
</select>
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</div>
</form>
<div class="tab-pane fade show active" id="ica" role="tabpanel"
aria-labelledby="arrest-tab">
<table class="table table-sm table-hover table-bordered ws-nowrap" id="ivsgtTable">
<thead class="align-middle text-center">
<tr>
<th rowspan="2">지방청</th>
<th rowspan="2">경찰서</th>
<th rowspan="2">
<div>범죄테마</div>
<div>(대분류)</div>
</th>
<th rowspan="2">
<div>위반유형</div>
<div>(중분류)</div>
</th>
<th rowspan="2">
<div>죄명</div>
<div>(소분류)</div>
</th>
<th rowspan="2">발생원표</th>
<th rowspan="2">검거원표</th>
<th rowspan="2">피의자원표</th>
<th colspan="3">피의자 인적사항</th>
<th rowspan="2">범죄인지</th>
<th rowspan="2">사건송치</th>
<th rowspan="2">신병처리</th>
</tr>
<tr>
<th>성별</th>
<th>나이</th>
<th>국적</th>
</tr>
</thead>
<tbody class="table-group-divider">
<th:block th:each="internationalCrimeArrest:${internationalCrimeArrestList}">
<tr class="tr" th:data-key="${internationalCrimeArrest.icaKey}">
<th:block th:if="${internationalCrimeArrest.organ eq null || internationalCrimeArrest.organ eq ''}">
<td></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${internationalCrimeArrest.organ eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${internationalCrimeArrest.department eq null || internationalCrimeArrest.department eq ''}">
<td></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${internationalCrimeArrest.department eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${internationalCrimeArrest.crimeType eq null || internationalCrimeArrest.crimeType eq ''}">
<td></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('CTH')}">
<td th:if="${internationalCrimeArrest.crimeType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
<th:block th:each="commonCode:${session.commonCode.get('CTH'+num)}">
<td th:if="${internationalCrimeArrest.violationType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
<th:block th:if="${internationalCrimeArrest.violationType eq null || internationalCrimeArrest.violationType eq ''}">
<td></td>
</th:block>
<td th:text="${internationalCrimeArrest.crimeName}"></td>
<td th:text="${internationalCrimeArrest.occurTable}"></td>
<td th:text="${internationalCrimeArrest.arrestTable}"></td>
<td th:text="${internationalCrimeArrest.suspectTable}"></td>
<th:block th:if="${#lists.size(internationalCrimeArrest.suspectPersonInfoList) < 1}">
<td></td>
<td></td>
<td></td>
</th:block>
<td colspan="3" th:if="${#lists.size(internationalCrimeArrest.suspectPersonInfoList) >= 1}">
<table>
<tr class="tr" th:each="suspectPersonInfo:${internationalCrimeArrest.suspectPersonInfoList}">
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
<td th:if="${suspectPersonInfo.sex eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('AGE')}">
<td th:if="${suspectPersonInfo.age eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
<td th:if="${suspectPersonInfo.country eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${suspectPersonInfo.country ne null && !#strings.contains(suspectPersonInfo.country, 'NNY')}">
<td th:text="${suspectPersonInfo.country}"></td>
</th:block>
</tr>
</table>
</td>
<td th:text="${#temporals.format(internationalCrimeArrest.crimeAwarenessDt, 'yyyy-MM-dd')}"></td>
<td th:text="${#temporals.format(internationalCrimeArrest.caseSentDt, 'yyyy-MM-dd')}"></td>
<th:block th:if="${internationalCrimeArrest.processResult eq null}">
<td></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('PCR')}">
<td th:if="${internationalCrimeArrest.processResult eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${internationalCrimeArrest.processResult ne null && !#strings.contains(internationalCrimeArrest.processResult, 'PCR')}">
<td th:text="${internationalCrimeArrest.processResult}"></td>
</th:block>
</tr>
</th:block>
</tbody>
</table>
<button class="btn btn-sm btn-primary col-auto" id="ivsgtAddBtn">관리자마감</button>
<button class="btn btn-sm btn-primary col-auto" id="icaExcelDownBtn">엑셀 다운로드</button>
<button class="btn btn-sm btn-primary col-auto" id="icaAddBtn">등록</button>
<main>
<h4>국제범죄검거 현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
<div class="col-12 card bg-light">
<div class="card-body">
<form method="get" th:action="@{/faStatistics/internationalCrimeArrest}" id="icaSearchForm">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<input type="hidden" name="dateSelector" value="wrtDt">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="caseNum" th:value="${searchParams.caseNum}">
</div>
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="organ">
<option value="">지방청 선택</option>
<th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan eq 'OG001' && organConfig.organType ne 'OGC001'}">
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.organ}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto" id="departmentDiv">
<select class="form-select form-select-sm" name="department">
<option value="">경찰서 선택</option>
<th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan ne null && organConfig.organType ne 'OGC002'}">
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.department}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="crimeType" id="searchCrimeType">
<option value="">범죄테마 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('CTH')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.crimeType}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="violationType" id="searchViolationType">
<option value="">위반유형 선택</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
<th:block th:each="commonCode:${session.commonCode.get('CTH'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${internationalCrimeArrest.violationType eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="죄명" name="crimeName" th:value="${searchParams.crimeName}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="발생원표" name="occurTable" th:value="${searchParams.occurTable}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="검거원표" name="arrestTable" th:value="${searchParams.arrestTable}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="피의자원표" name="suspectTable" th:value="${searchParams.suspectTable}">
</div>
<div class="col-auto">
<div class="col-auto input-daterange" id="searchCrimeAwarenessDtDiv">
<input type="text" class="form-control form-control-sm" placeholder="범죄인지" name="crimeAwarenessDt" id="crimeAwarenessDt" th:value="${#temporals.format(searchParams.crimeAwarenessDt, 'yyyy-MM-dd')}">
</div>
<!-- 페이징 -->
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
</div>
<div class="col-auto">
<div class="col-auto input-daterange" id="searchCaseSentDtDiv">
<input type="text" class="form-control form-control-sm" placeholder="사건송치" name="caseSentDt" id="caseSentDt" th:value="${#temporals.format(searchParams.caseSentDt, 'yyyy-MM-dd')}">
</div>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="processResult" id="processResult">
<option value="">신병처리 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PCR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.processResult}"></option>
</th:block>
</select>
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="icaEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="icaEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="icaEditModalContent">
</div>
</form>
<div class="tab-pane fade show active" id="ica" role="tabpanel"
aria-labelledby="arrest-tab">
<table class="table table-sm table-hover table-bordered ws-nowrap" id="ivsgtTable">
<thead class="align-middle text-center">
<tr>
<th rowspan="2">지방청</th>
<th rowspan="2">경찰서</th>
<th rowspan="2">
<div>범죄테마</div>
<div>(대분류)</div>
</th>
<th rowspan="2">
<div>위반유형</div>
<div>(중분류)</div>
</th>
<th rowspan="2">
<div>죄명</div>
<div>(소분류)</div>
</th>
<th rowspan="2">발생원표</th>
<th rowspan="2">검거원표</th>
<th rowspan="2">피의자원표</th>
<th colspan="3">피의자 인적사항</th>
<th rowspan="2">범죄인지</th>
<th rowspan="2">사건송치</th>
<th rowspan="2">신병처리</th>
</tr>
<tr>
<th>성별</th>
<th>나이</th>
<th>국적</th>
</tr>
</thead>
<tbody class="table-group-divider">
<th:block th:each="internationalCrimeArrest:${internationalCrimeArrestList}">
<tr class="tr" th:data-key="${internationalCrimeArrest.icaKey}">
<th:block th:if="${internationalCrimeArrest.organ eq null || internationalCrimeArrest.organ eq ''}">
<td></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${internationalCrimeArrest.organ eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${internationalCrimeArrest.department eq null || internationalCrimeArrest.department eq ''}">
<td></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${internationalCrimeArrest.department eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${internationalCrimeArrest.crimeType eq null || internationalCrimeArrest.crimeType eq ''}">
<td></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('CTH')}">
<td th:if="${internationalCrimeArrest.crimeType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
<th:block th:each="commonCode:${session.commonCode.get('CTH'+num)}">
<td th:if="${internationalCrimeArrest.violationType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
<th:block th:if="${internationalCrimeArrest.violationType eq null || internationalCrimeArrest.violationType eq ''}">
<td></td>
</th:block>
<td th:text="${internationalCrimeArrest.crimeName}"></td>
<td th:text="${internationalCrimeArrest.occurTable}"></td>
<td th:text="${internationalCrimeArrest.arrestTable}"></td>
<td th:text="${internationalCrimeArrest.suspectTable}"></td>
<th:block th:if="${#lists.size(internationalCrimeArrest.suspectPersonInfoList) < 1}">
<td></td>
<td></td>
<td></td>
</th:block>
<td colspan="3" th:if="${#lists.size(internationalCrimeArrest.suspectPersonInfoList) >= 1}">
<table>
<tr class="tr" th:each="suspectPersonInfo:${internationalCrimeArrest.suspectPersonInfoList}">
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
<td th:if="${suspectPersonInfo.sex eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('AGE')}">
<td th:if="${suspectPersonInfo.age eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
<td th:if="${suspectPersonInfo.country eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${suspectPersonInfo.country ne null && !#strings.contains(suspectPersonInfo.country, 'NNY')}">
<td th:text="${suspectPersonInfo.country}"></td>
</th:block>
</tr>
</table>
</td>
<td th:text="${#temporals.format(internationalCrimeArrest.crimeAwarenessDt, 'yyyy-MM-dd')}"></td>
<td th:text="${#temporals.format(internationalCrimeArrest.caseSentDt, 'yyyy-MM-dd')}"></td>
<th:block th:if="${internationalCrimeArrest.processResult eq null}">
<td></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('PCR')}">
<td th:if="${internationalCrimeArrest.processResult eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${internationalCrimeArrest.processResult ne null && !#strings.contains(internationalCrimeArrest.processResult, 'PCR')}">
<td th:text="${internationalCrimeArrest.processResult}"></td>
</th:block>
</tr>
</th:block>
</tbody>
</table>
<button class="btn btn-sm btn-primary col-auto" id="ivsgtAddBtn">관리자마감</button>
<button class="btn btn-sm btn-primary col-auto" id="icaExcelDownBtn">엑셀 다운로드</button>
<button class="btn btn-sm btn-primary col-auto" id="icaAddBtn">등록</button>
</div>
<!-- 페이징 -->
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
</div>
</div>
<div class="modal fade" id="icaViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="icaViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="icaViewBody">
</div>
</div>
<div class="modal fade" id="icaEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="icaEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="icaEditModalContent">
</div>
</div>
</div>
</main>
</div>
</div>
<div class="modal fade" id="icaViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="icaViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="icaViewBody">
</div>
</div>
</div>
</main>
</div>
</html>

View File

@ -4,196 +4,196 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}">
<th:block layout:fragment="script">
<script th:inline="javascript">
const commonCode = [[${session.commonCode}]];
</script>
<script type="text/javascript" th:src="@{/js/faStatistics/processResult.js}"></script>
<script th:inline="javascript">
const commonCode = [[${session.commonCode}]];
</script>
<script type="text/javascript" th:src="@{/js/faStatistics/processResult.js}"></script>
</th:block>
<div layout:fragment="content">
<main>
<h4>불법조업 외국어선 처리현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
<div class="col-12 card bg-light">
<div class="card-body">
<form method="get" th:action="@{/faStatistics/processResult}" id="processResultSearchForm">
<div class="row justify-content-between pe-3 py-1">
<div class="col-auto">
<div class="col-auto">
<select class="form-select form-select-sm" name="year">
<option value="">연도</option>
<th:block th:each="year : ${#numbers.sequence(2020, 2030)}">
<option th:value="${year + '-01-01'}" th:text="${year}" th:selected="${searchParams.year eq year}"></option>
</th:block>
</select>
</div>
</div>
<div class="col-10">
<div class="row justify-content-end">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="sailorNameKr" th:value="${searchParams.caseNum}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="crackdownPolice" id="crackdownPolice">
<option value="">사건담당경찰서</option>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${searchParams.crackdownPolice eq commonCode.itemCd}"></option>
</th:block>
<option value="etc" th:selected="${searchParams.crackdownPolice ne '' && searchParams.crackdownPolice ne null && !#strings.contains(searchParams.crackdownPolice, 'CPO')}">직접입력</option>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="boatNameKr" id="boatNameKr" placeholder="피의자(선박명)" th:value="${searchParams.boatNameKr}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm violation" name="violation">
<option value="">위반내용</option>
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.violation}"></option>></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="sentencingCourt" id="sentencingCourt" placeholder="선고법원" th:value="${searchParams.sentencingCourt}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="sentencingDetail" id="sentencingDetail" placeholder="선고내용" th:value="${searchParams.sentencingDetail}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="executionDetail" id="executionDetail">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.executionDetail}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="returnDt" id="returnDate" placeholder="환부일" th:value="${#temporals.format(searchParams.returnDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="consignmentStartDt" id="consignmentStartDate" placeholder="위탁시작일" th:value="${#temporals.format(searchParams.consignmentStartDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="consignmentEndDt" id="consignmentEndDate" placeholder="위탁종료일" th:value="${#temporals.format(searchParams.consignmentEndDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationDt" id="confiscationDate" placeholder="몰수확정일" th:value="${#temporals.format(searchParams.confiscationDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="boatDisposalDt" id="boatDisposalDate" placeholder="폐선일" th:value="${#temporals.format(searchParams.boatDisposalDt, 'yyyy-MM-dd')}">
</div>
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="row justify-content-start" style="overflow: hidden; overflow-x: scroll">
<table class="table table-sm table-hover table-bordered ws-nowrap" style="max-width: none; width: auto;" id="prTable">
<thead class="align-middle text-center">
<tr>
<th>연번</th>
<th>사건번호</th>
<th>사건담당경찰서</th>
<th>피의자(선박명)</th>
<th>위반장소 및 내용</th>
<th>선고내용</th>
<th>선고법원</th>
<th>집행내용</th>
<th>환부일</th>
<th>위탁시작일</th>
<th>위탁종료일</th>
<th>몰수확정일</th>
<th>폐선일(인계한 날짜)</th>
<th>최종수정일</th>
</tr>
</thead>
<tbody class="table-group-divider align-middle text-center">
<th:block th:each="processResult:${processResultList}">
<tr class="tr" th:data-key="${processResult.prKey}">
<td th:text="${processResult.prKey}"></td>
<td th:text="${processResult.crackdownStatus.caseNum}"></td>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
<td th:if="${processResult.crackdownStatus.crackdownPolice eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${!#strings.contains(processResult.crackdownStatus.crackdownPolice, 'CPO')}">
<td th:text="${processResult.crackdownStatus.crackdownPolice}"></td>
</th:block>
<td th:text="${processResult.boatNameKr}"></td>
<td>
<span th:text="${processResult.crackdownStatus.napoSeaPointLon}"></span>
<span th:if="${processResult.crackdownStatus.napoSeaPointLon ne null && processResult.crackdownStatus.napoSeaPointLon ne ''}" th:text="${' ~ '}"></span>
<span th:text="${processResult.crackdownStatus.napoSeaPointLat}"></span>
<div th:text="${processResult.crackdownStatus.napoSeaPointDetail}"></div>
<th:block th:if="${#lists.size(processResult.violationList) >= 1}">
<div>
<th:block th:each="violation, i:${processResult.violationList}">
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
<span th:if="${violation.violation eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></span>
</th:block>
<span th:if="${violation.violation ne null && !#strings.contains(violation.violation, 'VT')}" th:text="${violation.violation}"></span>
<th:block th:if="${#lists.size(processResult.violationList) >= 1 && i.index < #lists.size(processResult.violationList)-1}">
<span>, </span>
</th:block>
</th:block>
</div>
</th:block>
</td>
<td th:text="${processResult.sentencingCourt}"></td>
<td th:text="${processResult.sentencingDetail}"></td>
<th:block th:each="commonCode:${session.commonCode.get('PR')}">
<th:block th:if="${processResult.executionDetail ne null && #strings.contains(processResult.executionDetail, 'PR')}">
<td th:if="${processResult.executionDetail eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
<td th:if="${processResult.executionDetail ne null && !#strings.contains(processResult.executionDetail, 'PR')}" th:text="${processResult.executionDetail}"></td>
<th:block th:if="${processResult.executionDetail eq null}">
<td></td>
</th:block>
<td th:text="${processResult.returnDt}"></td>
<td th:text="${processResult.consignmentStartDt}"></td>
<td th:text="${processResult.consignmentEndDt}"></td>
<td th:text="${processResult.confiscationDt}"></td>
<td th:text="${processResult.boatDisposalDt}"></td>
<td th:text="${#temporals.format(processResult.updDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</th:block>
</tbody>
</table>
</div>
<div class="row justify-content">
<button class="btn btn-sm btn-primary col-auto" id="processResultDownExcel">엑셀 다운로드</button>
<button class="btn btn-sm btn-primary col-auto" id="processResultAddBtn">등록</button>
</div>
<main>
<h4>불법조업 외국어선 처리현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
<div class="col-12 card bg-light">
<div class="card-body">
<form method="get" th:action="@{/faStatistics/processResult}" id="processResultSearchForm">
<div class="row justify-content-between py-1">
<div class="col-auto">
<div class="col-auto">
<select class="form-select form-select-sm" name="year">
<option value="">연도</option>
<th:block th:each="year : ${#numbers.sequence(2020, 2030)}">
<option th:value="${year + '-01-01'}" th:text="${year}" th:selected="${searchParams.year eq year}"></option>
</th:block>
</select>
</div>
</div>
<div class="col-10">
<div class="row justify-content-end">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="sailorNameKr" th:value="${searchParams.caseNum}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="crackdownPolice" id="crackdownPolice">
<option value="">사건담당경찰서</option>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${searchParams.crackdownPolice eq commonCode.itemCd}"></option>
</th:block>
<option value="etc" th:selected="${searchParams.crackdownPolice ne '' && searchParams.crackdownPolice ne null && !#strings.contains(searchParams.crackdownPolice, 'CPO')}">직접입력</option>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="boatNameKr" id="boatNameKr" placeholder="피의자(선박명)" th:value="${searchParams.boatNameKr}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm violation" name="violation">
<option value="">위반내용</option>
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.violation}"></option>></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="sentencingCourt" id="sentencingCourt" placeholder="선고법원" th:value="${searchParams.sentencingCourt}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="sentencingDetail" id="sentencingDetail" placeholder="선고내용" th:value="${searchParams.sentencingDetail}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="executionDetail" id="executionDetail">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.executionDetail}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="returnDt" id="returnDate" placeholder="환부일" th:value="${#temporals.format(searchParams.returnDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="consignmentStartDt" id="consignmentStartDate" placeholder="위탁시작일" th:value="${#temporals.format(searchParams.consignmentStartDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="consignmentEndDt" id="consignmentEndDate" placeholder="위탁종료일" th:value="${#temporals.format(searchParams.consignmentEndDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationDt" id="confiscationDate" placeholder="몰수확정일" th:value="${#temporals.format(searchParams.confiscationDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="boatDisposalDt" id="boatDisposalDate" placeholder="폐선일" th:value="${#temporals.format(searchParams.boatDisposalDt, 'yyyy-MM-dd')}">
</div>
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="row justify-content-start" style="overflow: hidden; overflow-x: scroll">
<table class="table table-sm table-hover table-bordered ws-nowrap" style="max-width: none; width: auto;" id="prTable">
<thead class="align-middle text-center">
<tr>
<th>연번</th>
<th>사건번호</th>
<th>사건담당경찰서</th>
<th>피의자(선박명)</th>
<th>위반장소 및 내용</th>
<th>선고내용</th>
<th>선고법원</th>
<th>집행내용</th>
<th>환부일</th>
<th>위탁시작일</th>
<th>위탁종료일</th>
<th>몰수확정일</th>
<th>폐선일(인계한 날짜)</th>
<th>최종수정일</th>
</tr>
</thead>
<tbody class="table-group-divider align-middle text-center">
<th:block th:each="processResult:${processResultList}">
<tr class="tr" th:data-key="${processResult.prKey}">
<td th:text="${processResult.prKey}"></td>
<td th:text="${processResult.crackdownStatus.caseNum}"></td>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
<td th:if="${processResult.crackdownStatus.crackdownPolice eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:if="${!#strings.contains(processResult.crackdownStatus.crackdownPolice, 'CPO')}">
<td th:text="${processResult.crackdownStatus.crackdownPolice}"></td>
</th:block>
<td th:text="${processResult.boatNameKr}"></td>
<td>
<span th:text="${processResult.crackdownStatus.napoSeaPointLon}"></span>
<span th:if="${processResult.crackdownStatus.napoSeaPointLon ne null && processResult.crackdownStatus.napoSeaPointLon ne ''}" th:text="${' ~ '}"></span>
<span th:text="${processResult.crackdownStatus.napoSeaPointLat}"></span>
<div th:text="${processResult.crackdownStatus.napoSeaPointDetail}"></div>
<th:block th:if="${#lists.size(processResult.violationList) >= 1}">
<div>
<th:block th:each="violation, i:${processResult.violationList}">
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
<span th:if="${violation.violation eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></span>
</th:block>
<span th:if="${violation.violation ne null && !#strings.contains(violation.violation, 'VT')}" th:text="${violation.violation}"></span>
<th:block th:if="${#lists.size(processResult.violationList) >= 1 && i.index < #lists.size(processResult.violationList)-1}">
<span>, </span>
</th:block>
</th:block>
</div>
</th:block>
</td>
<td th:text="${processResult.sentencingCourt}"></td>
<td th:text="${processResult.sentencingDetail}"></td>
<th:block th:each="commonCode:${session.commonCode.get('PR')}">
<th:block th:if="${processResult.executionDetail ne null && #strings.contains(processResult.executionDetail, 'PR')}">
<td th:if="${processResult.executionDetail eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
<td th:if="${processResult.executionDetail ne null && !#strings.contains(processResult.executionDetail, 'PR')}" th:text="${processResult.executionDetail}"></td>
<th:block th:if="${processResult.executionDetail eq null}">
<td></td>
</th:block>
<td th:text="${processResult.returnDt}"></td>
<td th:text="${processResult.consignmentStartDt}"></td>
<td th:text="${processResult.consignmentEndDt}"></td>
<td th:text="${processResult.confiscationDt}"></td>
<td th:text="${processResult.boatDisposalDt}"></td>
<td th:text="${#temporals.format(processResult.updDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</th:block>
</tbody>
</table>
</div>
<div class="row justify-content">
<button class="btn btn-sm btn-primary col-auto" id="processResultDownExcel">엑셀 다운로드</button>
<button class="btn btn-sm btn-primary col-auto" id="processResultAddBtn">등록</button>
</div>
</div>
<div class="modal fade" id="processResultAddModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="processResultAddModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="processResultAddModalContent">
</div>
</div>
<div class="modal fade" id="processResultAddModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="processResultAddModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="processResultAddModalContent">
</div>
</div>
</div>
<div class="modal fade" id="processResultEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="processResultEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="processResultEditModalContent">
</div>
</div>
<div class="modal fade" id="processResultEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="processResultEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="processResultEditModalContent">
</div>
</div>
</div>
<div class="modal fade" id="processResultViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="processResultViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="processResultViewBody">
</div>
</div>
<div class="modal fade" id="processResultViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="processResultViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="processResultViewBody">
</div>
</div>
</div>
</main>
</div>
</div>
</main>
</div>
</html>

View File

@ -18,7 +18,7 @@
<div class="col-12 card bg-light">
<div class="card-body">
<form method="get" th:action="@{/faStatistics/sailor}" id="sailorSearchForm">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<div class="col-auto">
<select class="form-select form-select-sm" name="year">
@ -122,7 +122,7 @@
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</form>

View File

@ -7,105 +7,154 @@
</th:block>
<div layout:fragment="content">
<main>
<h4>국제여객선 목록</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto"><h4>국제여객선 목록</h4></div>
<div class="col-auto">
<p th:text="${#strings.concat('외사대상목표 > ', '국제여객선 > ', (searchParams.siType eq 'KRCN'?'한-중':'한-일,러'), ' 국제여객선 현황')}"></p>
</div>
</div>
<div class="row mx-0">
<div class="card text-center">
<div class="card-body">
<ul class="nav nav-tabs" id="userTab" role="tablist">
<div class="card bg-light text-center">
<div class="card-body">
<ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${searchParams.siType eq 'KRCN'?' active':''}" id="krcnTab" data-bs-toggle="tab" type="button" role="tab">한-중 국제여객선 현황</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${searchParams.siType eq 'KRJPRU'?' active':''}" id="krjpruTab" data-bs-toggle="tab" type="button" role="tab">한-일,러 국제여객선 현황</button>
</li>
</ul>
<form id="searchFm" method="get" th:action="@{/target/ipShipList}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<input type="hidden" name="siType" th:value="${searchParams.siType}">
<input type="hidden" name="excel">
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색" style="display:none;">
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
</li>
</ul>
<div class="tab-content bg-white border border-top-0 p-2">
<form id="searchFm" method="get" th:action="@{/target/ipShipList}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<input type="hidden" name="siType" th:value="${searchParams.siType}">
<input type="hidden" name="excel">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-8">
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>항로</th>
<th>사업자<br>(한국대리점)</th>
<th>선명</th>
<th>국제<br>총톤수</th>
<th>수송능력</th>
<th>운항횟수</th>
<th>휴항</th>
<th>최종수정일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="shipInfoTr" th:each="si:${shipInfoList}">
<th:block>
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="출발지">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="도착지">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="거리(해리)">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="거리(km)">
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="사업자">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="선명">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="운항횟수">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>항로</th>
<th>사업자<br>(한국대리점)</th>
<th>선명</th>
<th>국제<br>총톤수</th>
<th>수송능력</th>
<th>운항횟수</th>
<th>휴항</th>
<th>최종수정일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="shipInfoTr" th:each="si:${shipInfoList}">
<th:block>
<input type="hidden" class="siSeq" th:value="${si.siSeq}">
<input type="hidden" class="siType" th:value="${si.siType}">
<input type="hidden" class="verNo" th:value="${si.versionNo}">
</th:block>
<td th:inline="text">
[[${si.startPoint}]]/[[${si.endPoint}]]
<br/>
([[${si.distanceNm}]],[[${si.distanceKm}]])
</td>
<td th:text="${si.ownerNm}"></td>
<td th:text="${si.shipNm}"></td>
<td th:text="${si.weightStr}"></td>
<td th:inline="text">
여객:[[${si.passengerCnt}]]명
<br/>
화물:[[${si.freightCnt}]]TEU
</td>
<td th:text="${si.operationCnt}"></td>
<td th:text="${si.closeYn}"></td>
<td th:text="${#temporals.format(si.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>
</table>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<button class="btn btn-success" id="goExcel">엑셀 다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex==num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
<div class="col-auto">
<input type="button" class="btn btn-primary" value="등록" id="addKRCN" th:if="${accessAuth != 'ACC001'} and ${searchParams.siType eq 'KRCN'}">
<input type="button" class="btn btn-primary" value="등록" id="addKRJPRU" th:if="${accessAuth != 'ACC001'} and ${searchParams.siType eq 'KRJPRU'}">
</div>
</div>
</th:block>
<td th:inline="text">
[[${si.startPoint}]]/[[${si.endPoint}]]
<br/>
([[${si.distanceNm}]],[[${si.distanceKm}]])
</td>
<td th:text="${si.ownerNm}"></td>
<td th:text="${si.shipNm}"></td>
<td th:text="${si.weightStr}"></td>
<td th:inline="text">
여객:[[${si.passengerCnt}]]명
<br/>
화물:[[${si.freightCnt}]]TEU
</td>
<td th:text="${si.operationCnt}"></td>
<td th:text="${si.closeYn}"></td>
<td th:text="${#temporals.format(si.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>
</table>
<div class="row justify-content-between">
<div class="col-auto">
<button class="btn btn-success" id="goExcel">엑셀 다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex==num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
<div class="col-auto">
<input type="button" class="btn btn-primary" value="등록" id="addKRCN" th:if="${accessAuth != 'ACC001'} and ${searchParams.siType eq 'KRCN'}">
<input type="button" class="btn btn-primary" value="등록" id="addKRJPRU" th:if="${accessAuth != 'ACC001'} and ${searchParams.siType eq 'KRJPRU'}">
</div>
</div>
</div>
</div>
@ -115,7 +164,7 @@
</div>
</main>
<div class="modal fade" id="ipShipModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userEditModalLabel" aria-hidden="true">
<div class="modal fade" id="ipShipModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-scrollable">
<div class="modal-content" id="ipShipModalContent">
</div>

View File

@ -7,147 +7,179 @@
</th:block>
<div layout:fragment="content">
<main>
<h4>외사 분실 현황</h4>
<div class="row justify-content-between">
<div class="col-auto"><h4>외사 분실 현황</h4></div>
<div class="col-auto"><p>외사대상목표 > 외사분실 > 외사분실운영현황</p></div>
</div>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form id="searchFm" method="get" th:action="@{/target/partInfoList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row pe-3 py-1">
<div class="col-1">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-10">
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">해경서</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mgtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="landPolice" th:value="${searchParams.landPolice}" placeholder="육경서">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="mpWorkType">
<option value="">해경서 근무방법</option>
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mpWorkType}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="plWorkType">
<option value="">육경서 근무방법</option>
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.plWorkType}"></option>
</th:block>
</select>
</div>
<div class="row justify-content-end">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="terminalNm" th:value="${searchParams.terminalNm}" placeholder="터미널명">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="최종수정일" autocomplete="off" readonly th:value="${searchParams.startDate}">
</div>
</div>
</div>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-lg btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<form id="searchFm" method="get" th:action="@{/target/partInfoList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-8">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">해경서</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mgtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="landPolice" th:value="${searchParams.landPolice}" placeholder="육경서">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="mpWorkType">
<option value="">해경서 근무방법</option>
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mpWorkType}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="plWorkType">
<option value="">육경서 근무방법</option>
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.plWorkType}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="piManagerName" th:value="${searchParams.piManagerName}" placeholder="담당자">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="terminalNm" th:value="${searchParams.terminalNm}" placeholder="터미널명">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<input type="hidden" id="selectedKey">
<input type="hidden" id="selectedVerNo">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th rowspan="3">해경서</th>
<th rowspan="3">육경서</th>
<th rowspan="3">터미널명</th>
<th colspan="3">해경</th>
<th colspan="3">육경</th>
<th rowspan="3">담당자</th>
<th rowspan="3">임차료</th>
<th rowspan="3">공공요금</th>
<th rowspan="3">최종수정일</th>
</tr>
<tr class="table-secondary">
<th:block th:if="${not #strings.isEmpty(total)}">
<th th:text="|상주 ${total.mp_sangju}개소 ${total.mp_sangju_total}명|"></th>
<th th:text="|비상주 ${total.mp_bsangju}개소 ${total.mp_bsangju_total}명|"></th>
<th th:text="|폐쇄 ${total.mp_closure}개소 ${total.mp_closure_total}명|"></th>
<th th:text="|상주 ${total.pl_sangju}개소 ${total.pl_sangju_total}명|"></th>
<th th:text="|비상주 ${total.pl_bsangju}개소 ${total.pl_bsangju_total}명|"></th>
<th th:text="|폐쇄 ${total.pl_closure}개소 ${total.pl_closure_total}명|"></th>
</th:block>
<th:block th:unless="${not #strings.isEmpty(total)}">
<th>상주 0개소 0명</th>
<th>비상주 0개소 0명</th>
<th>폐쇄 0개소 0명</th>
<th>상주 0개소 0명</th>
<th>비상주 0개소 0명</th>
<th>폐쇄 0개소 0명</th>
</th:block>
</tr>
<tr class="table-secondary">
<th>근무방법</th>
<th></th>
<th>비고</th>
<th>근무방법</th>
<th></th>
<th>비고</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="partInfoTr" th:each="pi:${partInfoList}">
<th:block>
<input type="hidden" class="piSeq" th:value="${pi.piSeq}">
<input type="hidden" class="verNo" th:value="${pi.versionNo}">
</th:block>
<td th:text="${pi.mgtOrgan}"></td>
<td th:text="${pi.landPolice}"></td>
<td th:text="${pi.terminalNm}"></td>
<td th:text="${pi.mpWorkType}"></td>
<td th:text="${pi.mpPeopleCnt}"></td>
<td th:text="${pi.mpDescription}"></td>
<td th:text="${pi.plWorkType}"></td>
<td th:text="${pi.plPeopleCnt}"></td>
<td th:text="${pi.plDescription}"></td>
<td th:text="${pi.piManagerName}"></td>
<td th:text="|${pi.rentPrice}만|" th:if="${pi.rentType eq 'Y'}"></td>
<td th:unless="${pi.rentType eq 'Y'}">무상</td>
<td th:text="|${pi.utilityPrice}만|" th:if="${pi.utilityType eq 'Y'}"></td>
<td th:unless="${pi.utilityType eq 'Y'}">무상</td>
<td th:text="${#temporals.format(pi.wrtDt, 'yyyy-MM-dd')}"></td>
</tr>
</tbody>
</table>
<div class="col-12">
<input type="hidden" id="selectedKey">
<input type="hidden" id="selectedVerNo">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th rowspan="2">해경서</th>
<th rowspan="2">육경서</th>
<th rowspan="2">터미널명</th>
<th colspan="3">해경</th>
<th colspan="3">육경</th>
<th rowspan="3">담당자</th>
<th rowspan="2">임차료</th>
<th rowspan="2">공공요금</th>
<th rowspan="2">최종수정일</th>
</tr>
<tr class="table-secondary">
<th>근무방법</th>
<th:block th:if="${not #strings.isEmpty(total)}">
<th th:text="|${total.mp_sangju_total+total.mp_bsangju_total+total.mp_closure_total}명|"></th>
</th:block>
<th:block th:unless="${not #strings.isEmpty(total)}">
<th>0명</th>
</th:block>
<th>비고</th>
<th>근무방법</th>
<th:block th:if="${not #strings.isEmpty(total)}">
<th th:text="|${total.pl_sangju_total+total.pl_bsangju_total+total.pl_closure_total}명|"></th>
</th:block>
<th:block th:unless="${not #strings.isEmpty(total)}">
<th>0명</th>
</th:block>
<th>비고</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="partInfoTr" th:each="pi:${partInfoList}">
<th:block>
<input type="hidden" class="piSeq" th:value="${pi.piSeq}">
<input type="hidden" class="verNo" th:value="${pi.versionNo}">
</th:block>
<td th:text="${pi.mgtOrgan}"></td>
<td th:text="${pi.landPolice}"></td>
<td th:text="${pi.terminalNm}"></td>
<td th:text="${pi.mpWorkType}"></td>
<td th:text="|${pi.mpPeopleCnt eq null?0:pi.mpPeopleCnt}명|"></td>
<td th:text="${pi.mpDescription}"></td>
<td th:text="${pi.plWorkType}"></td>
<td th:text="|${pi.plPeopleCnt eq null?0:pi.plPeopleCnt}명|"></td>
<td th:text="${pi.plDescription}"></td>
<td th:text="${pi.piManagerName}"></td>
<td th:text="|${pi.rentPrice}만|" th:if="${pi.rentType eq 'Y'}"></td>
<td th:unless="${pi.rentType eq 'Y'}">무상</td>
<td th:text="|${pi.utilityPrice}만|" th:if="${pi.utilityType eq 'Y'}"></td>
<td th:unless="${pi.utilityType eq 'Y'}">무상</td>
<td th:text="${#temporals.format(pi.wrtDt, 'yyyy-MM-dd')}"></td>
</tr>
</tbody>
<tfoot class="table-group-divider">
<tr class="table-secondary">
<th></th>
<th></th>
<th></th>
<th:block th:if="${not #strings.isEmpty(total)}">
<th th:text="|상주 ${total.mp_sangju}개소 ${total.mp_sangju_total}명|"></th>
<th th:text="|비상주 ${total.mp_bsangju}개소 ${total.mp_bsangju_total}명|"></th>
<th th:text="|폐쇄 ${total.mp_closure}개소 ${total.mp_closure_total}명|"></th>
<th th:text="|상주 ${total.pl_sangju}개소 ${total.pl_sangju_total}명|"></th>
<th th:text="|비상주 ${total.pl_bsangju}개소 ${total.pl_bsangju_total}명|"></th>
<th th:text="|폐쇄 ${total.pl_closure}개소 ${total.pl_closure_total}명|"></th>
</th:block>
<th:block th:unless="${not #strings.isEmpty(total)}">
<th>상주 0개소 0명</th>
<th>비상주 0개소 0명</th>
<th>폐쇄 0개소 0명</th>
<th>상주 0개소 0명</th>
<th>비상주 0개소 0명</th>
<th>폐쇄 0개소 0명</th>
</th:block>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</tfoot>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<button class="btn btn-success" id="goExcel">엑셀다운</button>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<button class="btn btn-success" id="goExcel">엑셀다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
@ -174,8 +206,8 @@
</nav>
</div>
<div class="col-auto">
<input type="button" class="btn btn-primary" value="등록" id="addPartInfo" th:unless="${accessAuth eq 'ACC001'}">
</div>
<input type="button" class="btn btn-primary" value="등록" id="addPartInfo" th:unless="${accessAuth eq 'ACC001'}">
</div>
</div>
</div>
</div>
@ -185,9 +217,9 @@
</div>
</div>
</main>
<div class="modal fade" id="partInfoEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userEditModalLabel" aria-hidden="true">
<div class="modal fade" id="partInfoEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-scrollable">
<div class="modal-content" id="partInfoEditModalEditModalContent">
<div class="modal-header">

View File

@ -7,103 +7,108 @@
</th:block>
<div layout:fragment="content">
<main>
<h4>외사분실 실적</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto"><h4>외사분실 실적</h4></div>
<div class="col-auto"><p>외사대상목표 > 외사분실 > 외사분실 실적</p></div>
</div>
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form id="searchFm" method="get" th:action="@{/target/partWorkList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto display-none" id="searchBtn" value="검색">
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<form id="searchFm" method="get" th:action="@{/target/partWorkList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto d-none" id="searchBtn" value="검색">
</div>
</form>
<div class="row">
<input type="hidden" id="selectedKey">
<input type="hidden" id="selectedVerNo">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th rowspan="2">외사<br>터미널명</th>
<th rowspan="2">작성자</th>
<th rowspan="2">일시</th>
<th colspan="6">종류</th>
<th rowspan="2">비고</th>
<th rowspan="2">첨부파일</th>
<th rowspan="2">최근수정일</th>
</tr>
<tr class="table-secondary">
<th>사건처리</th>
<th>범죄첩보제공</th>
<th>SRI</th>
<th>합동점검</th>
<th>회의</th>
<th>기타</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="partWorkTr" th:each="pw:${partWorkList}">
<th:block th:if="${pw.saveYn eq 'N'} and ${pw.wrtUserSeq eq uesrSeq}">
<th:block>
<input type="hidden" class="pwSeq" th:value="${pw.pwSeq}">
<input type="hidden" class="piSeq" th:value="${pw.piSeq}">
</th:block>
<td th:text="|[임시]${pw.terminalNm}|"></td>
<td th:text="|${pw.wrtTitle} ${pw.wrtNm}|"></td>
<td th:text="${pw.workDt}"></td>
<td th:text="${pw.workTypeCh}"></td>
<td th:text="${pw.workTypePoci}"></td>
<td th:text="${pw.workTypeSri}"></td>
<td th:text="${pw.workTypeJi}"></td>
<td th:text="${pw.workTypeMt}"></td>
<td th:text="${pw.workTypeEtc}"></td>
<td th:text="${pw.description}"></td>
<td th:if="${pw.fileCnt > 0}"></td>
<td th:unless="${pw.fileCnt > 0}"></td>
<td th:text="${#temporals.format(pw.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</th:block>
<th:block th:unless="${pw.saveYn eq 'N'} and ${pw.wrtNm eq uesrId}">
<th:block th:if="${pw.saveYn eq 'Y'}">
<th:block>
<input type="hidden" class="pwSeq" th:value="${pw.pwSeq}">
<input type="hidden" class="piSeq" th:value="${pw.piSeq}">
</th:block>
<td th:text="${pw.terminalNm}"></td>
<td th:text="|${pw.wrtTitle} ${pw.wrtNm}|"></td>
<td th:text="${pw.workDt}"></td>
<td th:text="${pw.workTypeCh}"></td>
<td th:text="${pw.workTypePoci}"></td>
<td th:text="${pw.workTypeSri}"></td>
<td th:text="${pw.workTypeJi}"></td>
<td th:text="${pw.workTypeMt}"></td>
<td th:text="${pw.workTypeEtc}"></td>
<td th:text="${pw.description}"></td>
<td th:if="${pw.fileCnt > 0}"></td>
<td th:unless="${pw.fileCnt > 0}"></td>
<td th:text="${#temporals.format(pw.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</th:block>
</th:block>
</tr>
</tbody>
</table>
<div class="col-12">
<input type="hidden" id="selectedKey">
<input type="hidden" id="selectedVerNo">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th rowspan="2">외사<br>터미널명</th>
<th rowspan="2">작성자</th>
<th rowspan="2">일시</th>
<th colspan="6">종류</th>
<th rowspan="2">비고</th>
<th rowspan="2">첨부파일</th>
<th rowspan="2">최근수정일</th>
</tr>
<tr class="table-secondary">
<th>사건처리</th>
<th>범죄첩보제공</th>
<th>SRI</th>
<th>합동점검</th>
<th>회의</th>
<th>기타</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="partWorkTr" th:each="pw:${partWorkList}">
<th:block th:if="${pw.saveYn eq 'N'} and ${pw.wrtUserSeq eq uesrSeq}">
<th:block>
<input type="hidden" class="pwSeq" th:value="${pw.pwSeq}">
<input type="hidden" class="piSeq" th:value="${pw.piSeq}">
</th:block>
<td th:text="|[임시]${pw.terminalNm}|"></td>
<td th:text="|${pw.wrtTitle} ${pw.wrtNm}|"></td>
<td th:text="${pw.workDt}"></td>
<td th:text="${pw.workTypeCh}"></td>
<td th:text="${pw.workTypePoci}"></td>
<td th:text="${pw.workTypeSri}"></td>
<td th:text="${pw.workTypeJi}"></td>
<td th:text="${pw.workTypeMt}"></td>
<td th:text="${pw.workTypeEtc}"></td>
<td th:text="${pw.description}"></td>
<td th:if="${pw.fileCnt > 0}"></td>
<td th:unless="${pw.fileCnt > 0}"></td>
<td th:text="${#temporals.format(pw.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</th:block>
<th:block th:unless="${pw.saveYn eq 'N'} and ${pw.wrtNm eq uesrId}">
<th:block th:if="${pw.saveYn eq 'Y'}">
<th:block>
<input type="hidden" class="pwSeq" th:value="${pw.pwSeq}">
<input type="hidden" class="piSeq" th:value="${pw.piSeq}">
</th:block>
<td th:text="${pw.terminalNm}"></td>
<td th:text="|${pw.wrtTitle} ${pw.wrtNm}|"></td>
<td th:text="${pw.workDt}"></td>
<td th:text="${pw.workTypeCh}"></td>
<td th:text="${pw.workTypePoci}"></td>
<td th:text="${pw.workTypeSri}"></td>
<td th:text="${pw.workTypeJi}"></td>
<td th:text="${pw.workTypeMt}"></td>
<td th:text="${pw.workTypeEtc}"></td>
<td th:text="${pw.description}"></td>
<td th:if="${pw.fileCnt > 0}"></td>
<td th:unless="${pw.fileCnt > 0}"></td>
<td th:text="${#temporals.format(pw.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</th:block>
</th:block>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<button class="btn btn-success" id="goExcel">엑셀다운</button>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<button class="btn btn-success" id="goExcel">엑셀다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
@ -130,8 +135,8 @@
</nav>
</div>
<div class="col-auto">
<input type="button" class="btn btn-primary" value="등록" id="addPartWork" th:unless="${accessAuth eq 'ACC001'}">
</div>
<input type="button" class="btn btn-primary" value="등록" id="addPartWork" th:unless="${accessAuth eq 'ACC001'}">
</div>
</div>
</div>
</div>
@ -141,9 +146,9 @@
</div>
</div>
</main>
<div class="modal fade" id="partWorkEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userEditModalLabel" aria-hidden="true">
<div class="modal fade" id="partWorkEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-scrollable">
<div class="modal-content" id="partWorkEditModalEditModalContent">
<div class="modal-header">

View File

@ -7,55 +7,47 @@
</th:block>
<div layout:fragment="content">
<main>
<h4>외사취약지 목록</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto">
<h4>외사취약지 목록</h4>
</div>
<div class="col-auto">
<p>외사대상목표 > 외사취약지 목록</p>
</div>
</div>
<div class="row mx-0">
<div class="col-12 text-center">
<div class="col-12 card bg-light">
<div class="card-body">
<form method="get" th:action="@{/userMgt/userMgtPage}">
<input type="hidden" name="userStatus" id="userStatus" >
<div class="row justify-content-between pe-3 py-1">
<div class="col-auto">
<div class="row justify-content-end">
</div>
</div>
<div class="row justify-content-end">
<div class="col-auto pb-2">
<input type="button" class="btn btn-primary" value="등록" id="addVuln" th:unless="${accessAuth eq 'ACC001'}">
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card-body">
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th rowspan="2">구분</th>
<th rowspan="2">경찰서</th>
<th colspan="3">취약등급</th>
</tr>
<tr class="table-secondary">
<th>A급</th>
<th>B급</th>
<th>C급</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="" th:each="vuln:${vulnerableList}">
<td class="table_id" th:text="${vuln.gubun}"></td>
<td id="infoModal" style="color: blue; cursor:pointer;" th:data-mgtOrgan="${vuln.item_cd}" th:text="${vuln.item_value}"></td>
<td th:text="${vuln.a}"></td>
<td th:text="${vuln.b}"></td>
<td th:text="${vuln.c}"></td>
</tr>
</tbody>
</table>
</div>
<div class="col-auto">
<input type="button" class="btn btn-primary" value="등록" id="addVuln" th:unless="${accessAuth eq 'ACC001'}">
</div>
<div class="row justify-content-center">
</div>
</div>
<table class="table table-sm table-hover table-bordered text-center">
<thead>
<tr class="table-secondary">
<th rowspan="2">구분</th>
<th rowspan="2">경찰서</th>
<th colspan="3">취약등급</th>
</tr>
<tr class="table-secondary">
<th>A급</th>
<th>B급</th>
<th>C급</th>
</tr>
</thead>
<tbody class="table-group-divider bg-white">
<tr class="" th:each="vuln:${vulnerableList}">
<td class="table_id" th:text="${vuln.gubun}"></td>
<td id="infoModal" style="color: blue; cursor:pointer;" th:data-mgtOrgan="${vuln.item_cd}" th:text="${vuln.item_value}"></td>
<td th:text="${vuln.a}"></td>
<td th:text="${vuln.b}"></td>
<td th:text="${vuln.c}"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>

View File

@ -51,7 +51,7 @@
<div class="col-auto my-auto">
<ul class="nav nav-pills" sec:authorize="isAuthenticated()">
<li class="nav-item">
<a href="#" class="nav-link" th:classappend="${#lists.isEmpty(alarmList)?'link-dark':'link-danger'}">
<a href="#" class="nav-link" th:id="${#lists.isEmpty(alarmList)?'':'bellIcon'}" th:classappend="${#lists.isEmpty(alarmList)?'link-dark':'link-danger'}">
<th:block th:if="${!#lists.isEmpty(alarmList)}">
<div class="position-relative">
<div id="alarmCntDiv" class="position-absolute text-center rounded-circle bg-danger text-light fs-11" th:text="${alarmListCnt}"></div>
@ -84,7 +84,7 @@
</div>
</div>
</th:block>
<i class="bi bi-bell-fill" th:id="${#lists.isEmpty(alarmList)?'':'bellIcon'}"></i>
<i class="bi bi-bell-fill"></i>
</a>
</li>
<li class="nav-item dropdown">

View File

@ -7,10 +7,14 @@
</th:block>
<div layout:fragment="content">
<main>
<p th:text="${#strings.concat('첩보수집활동 > ', (searchParams.affairCategory eq 'CAT215'?'외사경찰':'외사첩보망'), ' 견문관리 > 견문관리')}"></p>
<h4>견문관리</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto"><h4>견문관리</h4></div>
<div class="col-auto">
<p th:text="${#strings.concat('첩보수집활동 > ', (searchParams.affairCategory eq 'CAT215'?'외사경찰':'외사첩보망'), ' 견문관리 > 견문관리')}"></p>
</div>
</div>
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
@ -29,87 +33,91 @@
<form method="get" th:action="${searchUrl}">
<input type="hidden" name="affairCategory" id="affairCategory" th:value="${searchParams.affairCategory}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row pe-3 py-1">
<div class="col-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-10">
<div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003'}">
<div class="col-auto">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
</div>
<div class="row justify-content-end pb-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="affairType1">
<option value="">분야1 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC01')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType1}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="affairType2">
<option value="">분야2 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC02')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType2}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="affairType3">
<option value="">분야3 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC03')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType3}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="affairType4">
<option value="">분야4 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC04')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType4}"></option>
</th:block>
</select>
</div>
</div>
<div class="col-6">
<div class="row justify-content-end">
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="affairStatus">
<option value="">상태 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairStatus}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
<div class="col-11">
<div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003'}">
<div class="col-3">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-3">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
</div>
<div class="row justify-content-end pb-1">
<div class="col-3">
<select class="form-select form-select-sm" name="affairType1">
<option value="">분야1 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC01')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType1}"></option>
</th:block>
</select>
</div>
<div class="col-3">
<select class="form-select form-select-sm" name="affairType2">
<option value="">분야2 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC02')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType2}"></option>
</th:block>
</select>
</div>
<div class="col-3">
<select class="form-select form-select-sm" name="affairType3">
<option value="">분야3 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC03')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType3}"></option>
</th:block>
</select>
</div>
<div class="col-3">
<select class="form-select form-select-sm" name="affairType4">
<option value="">분야4 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC04')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType4}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-3">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-3">
<select class="form-select form-select-sm" name="affairStatus">
<option value="">상태 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairStatus}"></option>
</th:block>
</select>
</div>
<div class="col-6">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
</div>
<div class="col-1 d-grid gap-2 px-0">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-lg btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="row justify-content-start">
@ -117,7 +125,7 @@
<div class="card">
<div class="card-body">
<div class="row">
<table class="table table-sm table-bordered table-hover">
<table class="table table-sm table-bordered table-hover mb-2">
<thead>
<tr class="table-secondary">
<th></th>

View File

@ -28,7 +28,7 @@
<div class="tab-content bg-white border border-top-0 p-2" id="planContent">
<form method="get" th:action="${searchUrl}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -73,7 +73,9 @@
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -28,7 +28,7 @@
<div class="tab-content bg-white border border-top-0 p-2">
<form method="get" th:action="${searchUrl}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -68,7 +68,9 @@
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -42,7 +42,7 @@
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<input type="hidden" name="dateSelector" value="wrtDt">
<input type="hidden" name="ivsgtType" th:value="${searchParams.ivsgtType}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -50,50 +50,58 @@
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="arrestCd" id="searchArrestCd">
<option value="">검거유형1 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('AT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${searchParams.arrestCd != null and commonCode.itemCd eq searchParams.arrestCd}"></option>
</th:block>
</select>
</div>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="arrestCd2" id="searchArrestCd2">
<option value="">검거유형2 선택</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('AT')))}">
<th:block th:if="${'AT'+num == searchParams.arrestCd}" th:each="commonCode:${session.commonCode.get('AT'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.arrestCd2 eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="contentTitle" th:value="${searchParams.contentTitle}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtNm" th:value="${searchParams.wrtNm}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
<div class="col-8">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="arrestCd" id="searchArrestCd">
<option value="">검거유형1 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('AT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${searchParams.arrestCd != null and commonCode.itemCd eq searchParams.arrestCd}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="arrestCd2" id="searchArrestCd2">
<option value="">검거유형2 선택</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('AT')))}">
<th:block th:if="${'AT'+num == searchParams.arrestCd}" th:each="commonCode:${session.commonCode.get('AT'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.arrestCd2 eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="contentTitle" th:value="${searchParams.contentTitle}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtNm" th:value="${searchParams.wrtNm}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
@ -102,7 +110,7 @@
</div>
<table class="table table-sm table-hover table-bordered ws-nowrap">
<thead class="align-middle text-center">
<tr>
<tr class="table-secondary">
<th>문서번호</th>
<th>관서</th>
<th>검거유형1</th>
@ -129,7 +137,7 @@
<!-- 페이징 -->
<div class="row justify-content-between">
<div class="col-auto">
<button class="btn btn-sm btn-primary" id="ivsgtAddBtn">등록</button>
<button class="btn btn-primary" id="ivsgtAddBtn">등록</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">

View File

@ -66,7 +66,7 @@
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>

View File

@ -35,7 +35,7 @@
<input type="hidden" name="excel">
<input type="hidden" name="userStatus" th:value="${userStatus}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -68,7 +68,9 @@
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -35,7 +35,7 @@
<input type="hidden" name="excel">
<input type="hidden" name="userStatus" th:value="${userStatus}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -71,7 +71,9 @@
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -15,82 +15,86 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form method="get" th:action="@{/publicBoard/boardPage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<form method="get" th:action="@{/publicBoard/boardPage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th></th>
<th>제목</th>
<th>관서</th>
<th>부서</th>
<th>계급</th>
<th>작성자</th>
<th>작성일시</th>
<th>첨부파일</th>
<th>댓글</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="planTr" th:each="board:${boardList}">
<input type="hidden" class="planKey" th:value="${board.publicKey}">
<td><input type="checkbox" class="trChkBox"></td>
<td th:text="${board.title}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${board.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<td th:if="${board.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<td th:if="${board.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${board.wrtUserNm}"></td>
<td th:text="${#temporals.format(board.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${board.fileCnt eq null?'파일 없음':#strings.concat(board.fileCnt,' 건')}"></td>
<td th:text="${board.commentCnt eq null?'0':board.commentCnt}"></td>
</tr>
</tbody>
</table>
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th></th>
<th>제목</th>
<th>관서</th>
<th>부서</th>
<th>계급</th>
<th>작성자</th>
<th>작성일시</th>
<th>첨부파일</th>
<th>댓글</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="planTr" th:each="board:${boardList}">
<input type="hidden" class="planKey" th:value="${board.publicKey}">
<td><input type="checkbox" class="trChkBox"></td>
<td th:text="${board.title}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${board.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<td th:if="${board.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<td th:if="${board.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${board.wrtUserNm}"></td>
<td th:text="${#temporals.format(board.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${board.fileCnt eq null?'파일 없음':#strings.concat(board.fileCnt,' 건')}"></td>
<td th:text="${board.commentCnt eq null?'0':board.commentCnt}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>

View File

@ -15,85 +15,89 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form method="get" th:action="@{/publicBoard/noticePage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<form method="get" th:action="@{/publicBoard/noticePage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th></th>
<th>제목</th>
<th>관서</th>
<th>부서</th>
<th>계급</th>
<th>작성자</th>
<th>작성일시</th>
<th>첨부파일</th>
<th>댓글</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="noticeTr" th:each="notice:${noticeList}">
<input type="hidden" class="publicKey" th:value="${notice.publicKey}">
<td><input type="checkbox" class="trChkBox"></td>
<td th:text="${notice.title}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${notice.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<td th:if="${notice.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<td th:if="${notice.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${notice.wrtUserNm}"></td>
<td th:text="${#temporals.format(notice.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${notice.fileCnt eq null?'파일 없음':#strings.concat(notice.fileCnt,' 건')}"></td>
<td th:text="${notice.commentCnt eq null?'0':notice.commentCnt}"></td>
</tr>
</tbody>
</table>
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th></th>
<th>제목</th>
<th>관서</th>
<th>부서</th>
<th>계급</th>
<th>작성자</th>
<th>작성일시</th>
<th>첨부파일</th>
<th>댓글</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="noticeTr" th:each="notice:${noticeList}">
<input type="hidden" class="publicKey" th:value="${notice.publicKey}">
<td><input type="checkbox" class="trChkBox"></td>
<td th:text="${notice.title}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${notice.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<td th:if="${notice.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<td th:if="${notice.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${notice.wrtUserNm}"></td>
<td th:text="${#temporals.format(notice.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${notice.fileCnt eq null?'파일 없음':#strings.concat(notice.fileCnt,' 건')}"></td>
<td th:text="${notice.commentCnt eq null?'0':notice.commentCnt}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>

View File

@ -16,82 +16,86 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form method="get" th:action="@{/publicBoard/qnaPage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<form method="get" th:action="@{/publicBoard/qnaPage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th></th>
<th>제목</th>
<th>관서</th>
<th>부서</th>
<th>계급</th>
<th>작성자</th>
<th>작성일시</th>
<th>첨부파일</th>
<th>댓글</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="planTr" th:each="qna:${qnaList}">
<input type="hidden" class="planKey" th:value="${qna.publicKey}">
<td><input type="checkbox" class="trChkBox"></td>
<td th:text="${qna.title}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${qna.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<td th:if="${qna.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<td th:if="${qna.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${qna.wrtUserNm}"></td>
<td th:text="${#temporals.format(qna.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${qna.fileCnt eq null?'파일 없음':#strings.concat(qna.fileCnt,' 건')}"></td>
<td th:text="${qna.commentCnt eq null?'0':qna.commentCnt}"></td>
</tr>
</tbody>
</table>
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th></th>
<th>제목</th>
<th>관서</th>
<th>부서</th>
<th>계급</th>
<th>작성자</th>
<th>작성일시</th>
<th>첨부파일</th>
<th>댓글</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="planTr" th:each="qna:${qnaList}">
<input type="hidden" class="planKey" th:value="${qna.publicKey}">
<td><input type="checkbox" class="trChkBox"></td>
<td th:text="${qna.title}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${qna.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<td th:if="${qna.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<td th:if="${qna.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${qna.wrtUserNm}"></td>
<td th:text="${#temporals.format(qna.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${qna.fileCnt eq null?'파일 없음':#strings.concat(qna.fileCnt,' 건')}"></td>
<td th:text="${qna.commentCnt eq null?'0':qna.commentCnt}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>

View File

@ -26,7 +26,7 @@
<form method="get" th:action="@{/publicBoard/referencePage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<input type="hidden" name="tabStatus" th:value="${searchParams.tabStatus}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -56,85 +56,81 @@
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th></th>
<th>제목</th>
<th>관서</th>
<th>부서</th>
<th>계급</th>
<th>작성자</th>
<th>작성일시</th>
<th>첨부파일</th>
<th>댓글</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="planTr" th:each="reference:${referenceList}">
<input type="hidden" class="planKey" th:value="${reference.publicKey}">
<td><input type="checkbox" class="trChkBox"></td>
<td th:text="${reference.title}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${reference.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<td th:if="${reference.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<td th:if="${reference.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${reference.wrtUserNm}"></td>
<td th:text="${#temporals.format(reference.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${reference.fileCnt eq null?'파일 없음':#strings.concat(reference.fileCnt,' 건')}"></td>
<td th:text="${reference.commentCnt eq null?'0':reference.commentCnt}"></td>
</tr>
</tbody>
</table>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
<div class="col-auto">
<input type="button" class="btn btn-success" value="등록" id="addReferenceBtn">
</div>
</div>
</div>
</div>
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th></th>
<th>제목</th>
<th>관서</th>
<th>부서</th>
<th>계급</th>
<th>작성자</th>
<th>작성일시</th>
<th>첨부파일</th>
<th>댓글</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="planTr" th:each="reference:${referenceList}">
<input type="hidden" class="planKey" th:value="${reference.publicKey}">
<td><input type="checkbox" class="trChkBox"></td>
<td th:text="${reference.title}"></td>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<td th:if="${reference.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<td th:if="${reference.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<td th:if="${reference.wrtUserGrd eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="${reference.wrtUserNm}"></td>
<td th:text="${#temporals.format(reference.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${reference.fileCnt eq null?'파일 없음':#strings.concat(reference.fileCnt,' 건')}"></td>
<td th:text="${reference.commentCnt eq null?'0':reference.commentCnt}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
<div class="col-auto">
<input type="button" class="btn btn-success" value="등록" id="addReferenceBtn">
</div>
</div>
</div>

View File

@ -32,7 +32,7 @@
<form method="get" th:action="${searchUrl}">
<input type="hidden" name="activeTab" id="activeTab" th:value="${searchParams.activeTab}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
@ -62,7 +62,9 @@
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>

View File

@ -21,7 +21,7 @@
<div class="card-body">
<form method="get" th:action="@{/myInfo/myAlarm}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">

View File

@ -257,7 +257,7 @@
<div class="col-12">
<form method="get" action="#" id="modalSearchForm">
<input type="hidden" name="pageIndex" id="modalPageIndex" value="1">
<div class="row justify-content-between pe-3 py-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<input type="hidden" name="rowCnt" value="10">
</div>