168 lines
9.3 KiB
HTML
168 lines
9.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
|
<div class="modal-header bg-dark">
|
|
<h5 class="modal-title text-white" id="affairViewModalLabel">운영 계획서 열람</h5>
|
|
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" name="affairKey" id="viewModalAffairKey">
|
|
<ul class="nav nav-tabs" id="userTab" role="tablist">
|
|
<li class="nav-item" role="presentation">
|
|
<button class="nav-link active" id="boardTab" data-bs-toggle="tab" data-bs-target="#boardTabPanel" type="button" role="tab" aria-controls="boardTabPanel" aria-selected="true">본문</button>
|
|
</li>
|
|
<li class="nav-item" role="presentation" th:if="${#lists.size(op.fileList)>0}">
|
|
<button class="nav-link" id="fileTab" data-bs-toggle="tab" data-bs-target="#fileTabPanel" type="button" role="tab" aria-controls="fileTabPanel" aria-selected="false" th:text="${#strings.concat('첨부파일(', #lists.size(op.fileList), ')')}"></button>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content bg-white border border-top-0 p-2">
|
|
<div class="tab-pane fade p-2 show active" id="boardTabPanel" role="tabpanel" tabindex="0">
|
|
<div class="row mb-1">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">운용시작일</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${op.opSdate}"></label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
|
|
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq op.wrtUserGrd}" th:text="|${commonCode.itemValue} ${op.wrtUserNm}|"></label>
|
|
</th:block>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">작성일</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(op.wrtDt, 'yyyy-MM-dd HH:mm')}"></label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">상태</label>
|
|
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:if="${commonCode.itemCd eq op.opState}" th:text="${commonCode.itemValue}"></label>
|
|
</th:block>
|
|
</div>
|
|
<hr>
|
|
<div class="row mb-1"><h6 class="text-center">정보협력자<br>구성</h6></div>
|
|
<br>
|
|
<div class="row">
|
|
<div class="col-sm-1"></div>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">성명:</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${op.opName}"></label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">생년월일:</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${op.opBirth}"></label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">근무처(소속):</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${op.opPosition}"></label>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-1"></div>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">직업(직위):</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${op.opJob}"></label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">경력:</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${op.opCareer}"></label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">연락처:</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${op.opPhone}"></label>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-1"></div>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">주소:</label>
|
|
<label class="col-sm-5 col-form-label col-form-label-sm text-start" th:text="${op.opAddress}"></label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">등급:</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${op.opRank}"></label>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-1"></div>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">기타 참고:</label>
|
|
<label class="col-sm-8 col-form-label col-form-label-sm text-start" th:text="${op.opEtc}"></label>
|
|
</div>
|
|
<hr>
|
|
<div class="row">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">대상목표<br>및<br>위지</label>
|
|
<div class="col-sm-11 form-control-sm" id="contentDiv">
|
|
<div th:utext="${#strings.replace(op.targetLocation, lineSeparator, '<br>')}"></div>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">취약성 분석</label>
|
|
<div class="col-sm-11 form-control-sm" id="contentDiv">
|
|
<div th:utext="${#strings.replace(op.vulnerabilityAnalyze, lineSeparator, '<br>')}"></div>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">적격성 분석</label>
|
|
<div class="col-sm-11 form-control-sm" id="contentDiv">
|
|
<div th:utext="${#strings.replace(op.eligibilityAnalyze, lineSeparator, '<br>')}"></div>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">중점 수집사항</label>
|
|
<div class="col-sm-11 form-control-sm" id="contentDiv">
|
|
<div th:utext="${#strings.replace(op.focusCollection, lineSeparator, '<br>')}"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="tab-pane fade p-2" id="fileTabPanel" role="tabpanel" tabindex="0">
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>파일명</th>
|
|
<th>사이즈</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<th:block th:if="${#lists.isEmpty(op.fileList)}">
|
|
<tr>
|
|
<td colspan="2">파일이 없습니다.</td>
|
|
</tr>
|
|
</th:block>
|
|
<th:block th:unless="${#lists.isEmpty(op.fileList)}">
|
|
<th:block th:each="file:${op.fileList}">
|
|
<tr class="fileInfoTr">
|
|
<td><a href="#" class="fileDownLink" data-board="operationPlan"
|
|
th:data-parentkey="${file.opKey}" th:data-fileseq="${file.fileSeq}" th:text="|${file.origNm}.${file.fileExtn}|"></a></td>
|
|
<td th:text="${file.fileSize}"></td>
|
|
</tr>
|
|
</th:block>
|
|
</th:block>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12" th:unless="${#lists.isEmpty(op.apprvList)}">
|
|
<hr>
|
|
<th:block th:each="apprv:${op.apprvList}">
|
|
<div class="row">
|
|
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-center" th:if="${commonCode.itemCd eq apprv.state}" th:text="|결재결과: ${commonCode.itemValue}|"></label>
|
|
</th:block>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-center">
|
|
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
|
|
<th:block th:if="${commonCode.itemCd eq apprv.userGrd}" th:text="|결제자: ${commonCode.itemValue} ${apprv.userNm}|"></th:block>
|
|
</th:block>
|
|
</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-center">
|
|
<th:block th:text="|결제일시: ${#temporals.format(apprv.saveDt, 'yyyy-MM-dd HH:mm:ss')}|"></th:block>
|
|
</label>
|
|
|
|
</div>
|
|
</th:block>
|
|
</div>
|
|
</div>
|
|
<form action="#" method="post" id="apprvForm">
|
|
<div class="row">
|
|
<div class="col-10">
|
|
<input type="hidden" name="opKey" th:value="${op.opKey}">
|
|
<input type="hidden" name="state" id="viewModalApprvValue">
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer justify-content-between bg-light">
|
|
<div class="col-auto">
|
|
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>-->
|
|
</div>
|
|
<div class="col-auto">
|
|
<th:block th:if="${(apprvAuth eq 'APC001' or apprvAuth eq 'APC002') and op.opState eq 'DST002'}">
|
|
<button type="button" class="btn btn-danger apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST003':'DST005'}" th:value="반려">반려</button>
|
|
<button type="button" class="btn btn-success apprvBtn" th:data-planstate="${apprvAuth eq 'APC004'||apprvAuth eq 'APC003'?'DST004':'DST006'}" th:value="승인">승인</button>
|
|
</th:block>
|
|
<th:block th:unless="${op.opState eq 'DST004' or op.opState eq 'DST006'}"><!--승인 상태일때는 수정 불가 -->
|
|
<th:block th:if="${userSeq eq op.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
|
|
<button type="button" class="btn btn-warning" th:data-opkey="${op.opKey}" id="editBtn">수정</button>
|
|
</th:block>
|
|
</th:block>
|
|
</div>
|
|
|
|
</div> |