Compare commits

...

2 Commits

7 changed files with 170 additions and 160 deletions

View File

@ -84,7 +84,11 @@ public class SecurityConfig{
"/refreshSession", "/refreshSession",
"/publicBoard/**", "/publicBoard/**",
"/affairPlan/**", "/affairPlan/**",
"/affair/**" "/affair/**",
"/affairResult/**",
"/equip/**",
"/target/**",
"/translator/**"
).hasRole(Role.USER.name()) // USER 접근 허용 ).hasRole(Role.USER.name()) // USER 접근 허용
.antMatchers( .antMatchers(
"/authMgt/**", "/authMgt/**",

View File

@ -43,8 +43,9 @@ public class ResultController { // 첩보수집활동 > 외사경찰 견문관
mav.addObject("accessAuth", accessAuth); mav.addObject("accessAuth", accessAuth);
mav.addObject("apprvAuth", apprvAuth); mav.addObject("apprvAuth", apprvAuth);
resultBoard.setQueryInfo(); resultBoard.setQueryInfo();
mav.addObject("resultList", resultService.selectResultBoardList(resultBoard)); // mav.addObject("resultList", resultService.selectResultBoardList(resultBoard));
resultBoard.setContentCnt(resultService.selectResultBoardListCnt(resultBoard)); // resultBoard.setContentCnt(resultService.selectResultBoardListCnt(resultBoard));
resultBoard.setContentCnt(0);
resultBoard.setPaginationInfo(); resultBoard.setPaginationInfo();
mav.addObject("searchParams", resultBoard); mav.addObject("searchParams", resultBoard);
return mav; return mav;

View File

@ -15,27 +15,20 @@
<if test='wrtOrgan != null and wrtOrgan != ""'> <if test='wrtOrgan != null and wrtOrgan != ""'>
and a.wrt_organ = #{wrtOrgan} and a.wrt_organ = #{wrtOrgan}
</if> </if>
<if test='contentTitle != null and contentTitle != ""'> <if test='clearTitle != null and clearTitle != ""'>
and a.content_title like '%'||#{contentTitle}||'%' and a.clear_title like '%'||#{clearTitle}||'%'
</if>
<if test='resultTitle != null and resultTitle != ""'>
and a.result_title like '%'||#{resultTitle}||'%'
</if> </if>
<if test='resultState != null and resultState != ""'> <if test='resultState != null and resultState != ""'>
and a.result_state = #{resultState} and a.result_state = #{resultState}
</if> </if>
<if test='dateSelector == "resultDt"'> <if test='startDate != null and startDate != ""'>
<if test='startDate != null and startDate != ""'> and a.wrt_dt >= #{startDate}::date
and a.result_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and a.result_dt &lt;= #{endDate}::date+1
</if>
</if> </if>
<if test='dateSelector == "wrtDt"'> <if test='endDate != null and endDate != ""'>
<if test='startDate != null and startDate != ""'> and a.wrt_dt &lt;= #{endDate}::date+1
and a.wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and a.wrt_dt &lt;= #{endDate}::date+1
</if>
</if> </if>
<if test="downOrganCdList != null"> <if test="downOrganCdList != null">
and a.wrt_organ in and a.wrt_organ in

View File

@ -7,32 +7,32 @@ $(function(){
}); });
}) })
$(document).on('click', '#planTab', function (){ $(document).on('click', '#resultTab', function (){
location.href = "/affairPlan/planMgt"; location.href = "/affairResult/resultMgt";
}) })
$(document).on('click', '#stayTab', function (){ $(document).on('click', '#stayTab', function (){
location.href = "/affairPlan/stayPage"; location.href = "/affairResult/stayPage";
}) })
$(document).on('click', '#commitTab', function (){ $(document).on('click', '#commitTab', function (){
location.href = "/affairPlan/commitPage"; location.href = "/affairResult/commitPage";
}) })
$(document).on('click', '#addPlanBtn', function (){ $(document).on('click', '#addResultBtn', function (){
getPlanEditModal(null) getResultEditModal(null)
}) })
$(document).on('click', '#editPlanBtn', function (){ $(document).on('click', '#editResultBtn', function (){
$("#planViewModal").modal('hide'); $("#resultViewModal").modal('hide');
getPlanEditModal(Number($("#planViewBody").find("[name='planKey']").val())); getResultEditModal(Number($("#resultViewBody").find("[name='resultKey']").val()));
}) })
$(document).on('click', '#planAddBtn', function (){ $(document).on('click', '#resultAddBtn', function (){
$("#planDiv").append("<input type='text' class='form-control' name='planInfos'>") $("#resultDiv").append("<input type='text' class='form-control' name='resultInfos'>")
}) })
$(document).on('click', '#detailPlanAddBtn', function (){ $(document).on('click', '#detailResultAddBtn', function (){
const detailPlanDiv = $("#detailPlanDiv"); const detailResultDiv = $("#detailResultDiv");
detailPlanDiv.append("<textarea type='text' name='detailPlanInfos'></textarea>"); detailResultDiv.append("<textarea type='text' name='detailResultInfos'></textarea>");
const lastAppendTextarea = detailPlanDiv.children()[detailPlanDiv.children().length-1]; const lastAppendTextarea = detailResultDiv.children()[detailResultDiv.children().length-1];
$(lastAppendTextarea).summernote({ $(lastAppendTextarea).summernote({
lang:'ko-KR', lang:'ko-KR',
height: 120, height: 120,
@ -47,30 +47,30 @@ $(document).on('click', '#detailPlanAddBtn', function (){
}); });
}) })
$(document).on('click', '#savePlanBtn', function (){ $(document).on('click', '#saveResultBtn', function (){
savePlan('DST002') saveResult('DST002')
}) })
$(document).on('click', '#saveTempBtn', function (){ $(document).on('click', '#saveTempBtn', function (){
savePlan('DST001') saveResult('DST001')
}) })
$(document).on('click', '.planTr', function (){ $(document).on('click', '.resultTr', function (){
$(".trChkBox").prop("checked", false); $(".trChkBox").prop("checked", false);
$(this).find(".trChkBox").prop("checked", true); $(this).find(".trChkBox").prop("checked", true);
getPlanViewModal(Number($(this).find(".planKey").val())); getResultViewModal(Number($(this).find(".resultKey").val()));
}) })
$(document).on('click', '.apprvBtn', function (){ $(document).on('click', '.apprvBtn', function (){
$("#apprvFormPlanKey").val($("#viewModalPlanKey").val()); $("#apprvFormResultKey").val($("#viewModalResultKey").val());
$("#viewModalApprvValue").val($(this).attr("data-planstate")); $("#viewModalApprvValue").val($(this).attr("data-resultstate"));
if(confirm($(this).val()+"하시겠습니까?")){ if(confirm($(this).val()+"하시겠습니까?")){
const formData = new FormData($("#apprvForm")[0]); const formData = new FormData($("#apprvForm")[0]);
contentFade("in") contentFade("in")
$.ajax({ $.ajax({
type : 'POST', type : 'POST',
data : formData, data : formData,
url : "/affairPlan/planStateChange", url : "/affairResult/resultStateChange",
processData: false, processData: false,
contentType: false, contentType: false,
beforeSend: function (xhr){ beforeSend: function (xhr){
@ -78,7 +78,7 @@ $(document).on('click', '.apprvBtn', function (){
}, },
success : function(result) { success : function(result) {
alert("저장되었습니다") alert("저장되었습니다")
getPlanViewModal(result); getResultViewModal(result);
contentFade("out"); contentFade("out");
}, },
error : function(xhr, status) { error : function(xhr, status) {
@ -89,15 +89,15 @@ $(document).on('click', '.apprvBtn', function (){
} }
}) })
function getPlanViewModal(planKey){ function getResultViewModal(resultKey){
$.ajax({ $.ajax({
url: '/affairPlan/planViewModal', url: '/affairResult/resultViewModal',
data: {planKey: planKey}, data: {resultKey: resultKey},
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
$("#planViewBody").empty().append(html) $("#resultViewBody").empty().append(html)
$("#planViewModal").modal('show'); $("#resultViewModal").modal('show');
}, },
error:function(){ error:function(){
@ -105,20 +105,20 @@ function getPlanViewModal(planKey){
}); });
} }
function getPlanEditModal(planKey){ function getResultEditModal(resultKey){
$.ajax({ $.ajax({
url: '/affairPlan/planEditModal', url: '/affairResult/resultEditModal',
data: {planKey: planKey}, data: {resultKey: resultKey},
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
$("#planEditModalContent").empty().append(html) $("#resultEditModalContent").empty().append(html)
$("#planEditModal").modal('show'); $("#resultEditModal").modal('show');
$("#planDt").datepicker({ $("#resultDt").datepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
language: "ko" language: "ko"
}); });
$("[name='detailPlanInfos']").summernote({ $("[name='detailResultInfos']").summernote({
lang:'ko-KR', lang:'ko-KR',
height: 120, height: 120,
disableDragAndDrop: true, disableDragAndDrop: true,
@ -137,12 +137,12 @@ function getPlanEditModal(planKey){
} }
}); });
} }
function savePlan(planState){ function saveResult(resultState){
if(contentCheck()){ if(contentCheck()){
if(confirm("저장하시겠습니까?")){ if(confirm("저장하시겠습니까?")){
$("#planState").val(planState); $("#resultState").val(resultState);
contentFade("in"); contentFade("in");
const formData = new FormData($("#planEditForm")[0]); const formData = new FormData($("#resultEditForm")[0]);
for(const file of files) { for(const file of files) {
if(!file.isDelete) if(!file.isDelete)
formData.append('uploadFiles', file, file.name); formData.append('uploadFiles', file, file.name);
@ -153,14 +153,14 @@ function savePlan(planState){
$.ajax({ $.ajax({
type : 'POST', type : 'POST',
data : formData, data : formData,
url : "/affairPlan/savePlan", url : "/affairResult/saveResult",
processData: false, processData: false,
contentType: false, contentType: false,
success : function(result) { success : function(result) {
alert("저장되었습니다."); alert("저장되었습니다.");
contentFade("out"); contentFade("out");
$("#planEditModal").modal('hide'); $("#resultEditModal").modal('hide');
getPlanViewModal(result); getResultViewModal(result);
}, },
error : function(xhr, status) { error : function(xhr, status) {
alert("저장에 실패하였습니다.") alert("저장에 실패하였습니다.")
@ -178,7 +178,7 @@ function contentCheck(){
alert("제목을 입력해주세요.") alert("제목을 입력해주세요.")
flag = false; flag = false;
} }
if(!$("#planDt").val()){ if(!$("#resultDt").val()){
alert("시행일자를 입력해주세요.") alert("시행일자를 입력해주세요.")
flag = false; flag = false;
} }

View File

@ -112,12 +112,9 @@
<td th:text="${plan.wrtUserNm}"></td> <td th:text="${plan.wrtUserNm}"></td>
<td th:text="${#temporals.format(plan.wrtDt, 'yyyy-MM-dd HH:mm')}"></td> <td th:text="${#temporals.format(plan.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<td th:text="${plan.fileCnt eq null?'파일 없음':#strings.concat(plan.fileCnt,' 건')}"></td> <td th:text="${plan.fileCnt eq null?'파일 없음':#strings.concat(plan.fileCnt,' 건')}"></td>
<td th:if="${plan.planState eq 'DST001'}">임시저장</td> <th:block th:each="commonCode:${session.commonCode.get('DST')}">
<td th:if="${plan.planState eq 'DST002'}">결재대기</td> <td th:if="${plan.planState eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
<td th:if="${plan.planState eq 'DST003'}">계장반려</td> </th:block>
<td th:if="${plan.planState eq 'DST004'}">계장결재</td>
<td th:if="${plan.planState eq 'DST005'}">부장반려</td>
<td th:if="${plan.planState eq 'DST006'}">부장결재</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -1,91 +1,111 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org"> <html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title" id="planEditModalLabel" th:text="${plan.planKey eq null?'월간 계획 작성':'월간 계획 수정'}"></h5> <h5 class="modal-title" id="resultEditModalLabel" th:text="${result.resultKey eq null?'청산보고서 작성':'청산보고서 수정'}"></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body" id="planEditBody"> <div class="modal-body" id="resultEditBody">
<form action="#" method="post" id="planEditForm"> <form action="#" method="post" id="resultEditForm">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" name="planKey" th:value="${plan.planKey}"> <input type="hidden" name="resultKey" th:value="${result.resultKey}">
<input type="hidden" name="wrtOrgan" th:value="${plan.wrtOrgan}"> <input type="hidden" name="wrtOrgan" th:value="${result.wrtOrgan}">
<input type="hidden" name="wrtPart" th:value="${plan.wrtPart}"> <input type="hidden" name="wrtPart" th:value="${result.wrtPart}">
<input type="hidden" name="wrtUserSeq" th:value="${plan.wrtUserSeq}"> <input type="hidden" name="wrtUserSeq" th:value="${result.wrtUserSeq}">
<input type="hidden" name="planState" id="planState" th:value="${plan.planState}"> <input type="hidden" name="resultState" id="resultState" th:value="${result.resultState}">
<div class="mb-3 row"> <ul class="nav nav-tabs" id="userTab" role="tablist">
<label for="wrtUserNm" class="col-sm-2 col-form-label text-center">작성자</label> <li class="nav-item" role="presentation">
<div class="col-sm-2"> <button class="nav-link active" id="clearReportTab" data-bs-toggle="tab" data-bs-target="#clearReportTabPanel" type="button" role="tab" aria-controls="clearReportTabPanel" aria-selected="true">청산보고서</button>
<input type="text" class="form-control" id="wrtUserNm" name="wrtUserNm" th:value="${plan.wrtUserNm}" readonly> </li>
</div> <li class="nav-item" role="presentation">
<label for="wrtDt" class="col-sm-2 col-form-label text-center">작성일시</label> <button class="nav-link" id="resultReportTab" data-bs-toggle="tab" data-bs-target="#resultReportTabPanel" type="button" role="tab" aria-controls="resultReportTabPanel" aria-selected="false">결과보고서</button>
<div class="col-sm-2"> </li>
<input type="text" class="form-control" id="wrtDt" name="wrtDt" th:value="${#temporals.format(plan.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly> <li class="nav-item" role="presentation">
</div> <button class="nav-link" id="affairListTab" data-bs-toggle="tab" data-bs-target="#affairListTabPanel" type="button" role="tab" aria-controls="affairListTabPanel" aria-selected="false">견문목록&증빙자료</button>
<label for="planDt" class="col-sm-2 col-form-label text-center">시행일자</label> </li>
<div class="col-sm-2"> </ul>
<input type="text" class="form-control" id="planDt" name="planDt" th:value="${#temporals.format(plan.planDt, 'yyyy-MM-dd')}" autocomplete="off"> <div class="tab-content border border-top-0" id="configInfo">
</div> <div class="tab-pane fade p-2 show active" id="clearReportTabPanel" role="tabpanel" aria-labelledby="clearReportTab" tabindex="0">
</div> <div class="mb-3 row">
<div class="mb-3 row"> <label for="wrtUserNm" class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
<label for="contentTitle" class="col-sm-2 col-form-label text-center">제목</label> <div class="col-sm-2">
<div class="col-sm-10"> <input type="text" class="form-control form-control-sm" id="wrtUserNm" name="wrtUserNm" th:value="${result.wrtUserNm}" readonly>
<input type="text" class="form-control" id="contentTitle" name="contentTitle" th:value="${plan.contentTitle}"> </div>
</div> <label for="wrtDt" class="col-sm-1 col-form-label col-form-label-sm text-center">작성일시</label>
</div> <div class="col-sm-2">
<div class="mb-3 row justify-content-center"> <input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(result.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly>
<label for="planDiv" class="col-sm-2 col-form-label text-center">주요 사업계획</label> </div>
<div class="col-sm-10" id="planDiv"> <label for="wrtDt" class="col-sm-1 col-form-label col-form-label-sm text-center">사용기간</label>
<th:block th:if="${plan.planKey eq null}"> <div class="col-sm-3">
<input type='text' class='form-control' name='planInfos'> <div class="input-group w-auto input-daterange" id="dateSelectorDiv">
</th:block> <input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(result.wrtDt, 'yyyy-MM-dd')}" readonly>
<th:block th:each="infoList:${plan.mainInfoList}"> <input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(result.wrtDt, 'yyyy-MM-dd')}" readonly>
<th:block th:if="${infoList.planType eq 'S'}">
<input type="text" class="form-control" name="planInfos" th:value="${infoList.planInfo}">
</th:block>
</th:block>
</div>
<div class="col-sm-auto">
<button type="button" class="btn btn-sm btn-outline-primary" id="planAddBtn"><i class="bi bi-plus-lg"></i></button>
</div>
</div>
<div class="mb-3 row justify-content-center">
<label for="detailPlanDiv" class="col-sm-2 col-form-label text-center">사업개요 및 추진계획</label>
<div class="col-sm-10" id="detailPlanDiv">
<th:block th:if="${plan.planKey eq null}">
<textarea type='text' name='detailPlanInfos'></textarea>
</th:block>
<th:block th:each="infoList:${plan.mainInfoList}">
<th:block th:if="${infoList.planType eq 'D'}">
<textarea type='text' name='detailPlanInfos' th:utext="${infoList.planInfo}"></textarea>
</th:block>
</th:block>
</div>
<div class="col-sm-auto">
<button type="button" class="btn btn-sm btn-outline-primary" id="detailPlanAddBtn"><i class="bi bi-plus-lg"></i></button>
</div>
</div>
<div class="row mb-3">
<label for="fileInputer" class="col-sm-2 col-form-label text-center">업로드 자료</label>
<div class="col-sm-10" style="min-height: 70px;">
<div class="w-100 h-100 border border-info rounded text-center" id="uploadDiv">
<th:block th:if="${#arrays.isEmpty(plan.fileList)}">
<br>파일을 업로드 해주세요.
</th:block>
<th:block th:unless="${#arrays.isEmpty(plan.fileList)}">
<div class='row-col-6' th:each="planFile:${plan.fileList}">
<span th:data-fileseq="${planFile.fileSeq}" th:text="|${planFile.origNm}.${planFile.fileExtn} ${planFile.fileSize}|"></span>
<a href='#' class='uploadedFileDelete text-danger text-decoration-none'>삭제</a>
</div> </div>
</th:block> </div>
</div>
<div class="mb-3 row">
<label for="contentTitle" class="col-sm-1 col-form-label col-form-label-sm text-center">목적(제목)</label>
<div class="col-sm-11">
<input type="text" class="form-control form-control-sm" id="contentTitle" name="clearTitle" th:value="${result.clearTitle}">
</div>
</div>
<div class="mb-3 row">
<label for="wrtUserNm" class="col-sm-1 col-form-label col-form-label-sm text-center">사업기간</label>
<div class="col-sm-3">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(result.wrtDt, 'yyyy-MM-dd')}" readonly>
<input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(result.wrtDt, 'yyyy-MM-dd')}" readonly>
</div>
</div>
<label for="wrtDt" class="col-sm-1 col-form-label col-form-label-sm text-center">계획금액</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="planPrice" name="wrtDt">
</div>
<label for="wrtDt" class="col-sm-1 col-form-label col-form-label-sm text-center">집행액</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="usePrice" name="wrtDt">
</div>
</div>
<div class="mb-3 row justify-content-center">
<label for="detailResultDiv" class="col-sm-1 col-form-label col-form-label-sm text-center">세부<br>집행내역</label>
<div class="col-sm-11" id="detailResultDiv">
<th:block th:if="${result.resultKey eq null}">
<textarea type='text' name='detailResultInfos'></textarea>
</th:block>
</div>
<div class="col-sm-auto">
<button type="button" class="btn btn-sm btn-outline-primary" id="detailResultAddBtn"><i class="bi bi-plus-lg"></i></button>
</div>
</div>
<div class="row mb-3">
<label for="fileInputer" class="col-sm-1 col-form-label col-form-label-sm text-center">업로드<br>자료</label>
<div class="col-sm-11" style="min-height: 70px;">
<div class="w-100 h-100 border border-info rounded text-center" id="uploadDiv">
<th:block th:if="${#arrays.isEmpty(result.fileList)}">
<br>파일을 업로드 해주세요.
</th:block>
<th:block th:unless="${#arrays.isEmpty(result.fileList)}">
<div class='row-col-6' th:each="resultFile:${result.fileList}">
<span th:data-fileseq="${resultFile.fileSeq}" th:text="|${resultFile.origNm}.${resultFile.fileExtn} ${resultFile.fileSize}|"></span>
<a href='#' class='uploadedFileDelete text-danger text-decoration-none'>삭제</a>
</div>
</th:block>
</div>
</div>
<input type="file" class="d-none" id="fileInputer" multiple>
</div> </div>
</div> </div>
<input type="file" class="d-none" id="fileInputer" multiple> <div class="tab-pane fade p-2" id="resultReportTabPanel" role="tabpanel" aria-labelledby="resultReportTab" tabindex="0">
</div>
<div class="tab-pane fade p-2" id="affairListTabPanel" role="tabpanel" aria-labelledby="affairListTab" tabindex="0">
</div>
</div> </div>
</form> </form>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
<button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button> <button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button>
<button type="button" class="btn btn-primary" id="savePlanBtn">저장</button> <button type="button" class="btn btn-primary" id="saveResultBtn">저장</button>
</div> </div>

View File

@ -3,12 +3,12 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="script"> <th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/plan/planMgt.js}"></script> <script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/result/resultMgt.js}"></script>
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main class="pt-3"> <main class="pt-3">
<p>첩보수집활동 > 외사경찰 견문관리 > 계획수립</p> <p>첩보수집활동 > 외사경찰 견문관리 > 청산보고서</p>
<h4>계획수립</h4> <h4>청산보고서</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0"> <div class="row mx-0">
@ -49,26 +49,21 @@
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="contentTitle" th:value="${searchParams.contentTitle}"> <input type="text" class="form-control form-control-sm" placeholder="청산보고서 제목" name="clearTitle" th:value="${searchParams.clearTitle}">
</div> </div>
<div class="col-auto" th:if="${accessAuth eq 'ACC003'}"> <div class="col-auto" th:if="${accessAuth eq 'ACC003'}">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}"> <input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div> </div>
<div class="col-auto"> <div class="col-auto">
<select class="form-select form-select-sm" name="planState"> <select class="form-select form-select-sm" name="resultState">
<option value="">상태 선택</option> <option value="">상태 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DST')}"> <th:block th:each="commonCode:${session.commonCode.get('DST')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.planState}"></option> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.resultState}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-4"> <div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv"> <div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<select class="form-select form-select-sm" name="dateSelector">
<option value="">조건선택</option>
<option value="planDt" th:selected="${searchParams.dateSelector eq 'planDt'}">시행일</option>
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>
</select>
<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="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}"> <input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div> </div>
@ -98,7 +93,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr class="planTr" th:each="plan:${planList}"> <!--<tr class="planTr" th:each="plan:${planList}">
<input type="hidden" class="planKey" th:value="${plan.planKey}"> <input type="hidden" class="planKey" th:value="${plan.planKey}">
<td><input type="checkbox" class="trChkBox"></td> <td><input type="checkbox" class="trChkBox"></td>
<td th:text="${plan.contentTitle}"></td> <td th:text="${plan.contentTitle}"></td>
@ -118,7 +113,7 @@
<td th:if="${plan.planState eq 'DST004'}">계장결재</td> <td th:if="${plan.planState eq 'DST004'}">계장결재</td>
<td th:if="${plan.planState eq 'DST005'}">부장반려</td> <td th:if="${plan.planState eq 'DST005'}">부장반려</td>
<td th:if="${plan.planState eq 'DST006'}">부장결재</td> <td th:if="${plan.planState eq 'DST006'}">부장결재</td>
</tr> </tr>-->
</tbody> </tbody>
</table> </table>
</div> </div>
@ -150,7 +145,7 @@
</nav> </nav>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<input type="button" class="btn btn-success" value="등록" id="addPlanBtn" th:unless="${accessAuth eq 'ACC001'}"> <input type="button" class="btn btn-success" value="등록" id="addResultBtn" th:unless="${accessAuth eq 'ACC001'}">
</div> </div>
</div> </div>
</div> </div>
@ -163,16 +158,16 @@
</div> </div>
</main> </main>
<div class="modal fade" id="planEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="planEditModalLabel" aria-hidden="true"> <div class="modal fade" id="resultEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="resultEditModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable"> <div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="planEditModalContent"> <div class="modal-content" id="resultEditModalContent">
</div> </div>
</div> </div>
</div> </div>
<div class="modal fade" id="planViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="planViewModalLabel" aria-hidden="true"> <div class="modal fade" id="resultViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="resultViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable"> <div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="planViewBody"> <div class="modal-content" id="resultViewBody">
</div> </div>
</div> </div>