342 lines
21 KiB
HTML
342 lines
21 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" th:value="${affair.affairKey}">
|
|
<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(affair.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(affair.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">
|
|
<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="${affair.docNo}"></label>
|
|
</div>
|
|
<div class="row">
|
|
<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:block th:each="code:${session.commonCode.get('JT')}">
|
|
<th:block th:if="${code.itemCd eq affair.wrtUserGrd}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
<th:block th:text="${affair.wrtUserNm}"></th:block>
|
|
</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="${#temporals.format(affair.reportDt, 'yyyy-MM-dd')}"></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:block th:each="code:${session.commonCode.get('AVS')}">
|
|
<th:block th:if="${code.itemCd eq affair.viewStatus}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">상태</label>
|
|
<th:block th:each="code:${session.commonCode.get('DST')}">
|
|
<th:block th:if="${code.itemCd eq affair.affairStatus}">
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${code.itemValue}"></label>
|
|
</th:block>
|
|
</th:block>
|
|
</div>
|
|
<hr class="my-1">
|
|
<div class="row">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">제목</label>
|
|
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${affair.title}"></label>
|
|
</div>
|
|
<div class="row">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">분야1</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
|
|
<th:block th:each="code:${session.commonCode.get('DC01')}">
|
|
<th:block th:if="${code.itemCd eq affair.affairType1}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">분야2</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
|
|
<th:block th:each="code:${session.commonCode.get('DC02')}">
|
|
<th:block th:if="${code.itemCd eq affair.affairType2}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">분야3</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
|
|
<th:block th:each="code:${session.commonCode.get('DC03')}">
|
|
<th:block th:if="${code.itemCd eq affair.affairType3}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">분야4</label>
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
|
|
<th:block th:each="code:${session.commonCode.get('DC04')}">
|
|
<th:block th:if="${code.itemCd eq affair.affairType4}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</label>
|
|
</div>
|
|
<hr class="my-1">
|
|
<div class="row">
|
|
<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="${affair.content}"></div>
|
|
</div>
|
|
</div>
|
|
<hr class="my-1">
|
|
<div class="row">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">해시태그</label>
|
|
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${affair.hashTags}"></label>
|
|
</div>
|
|
<div class="row">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">비고</label>
|
|
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${affair.etc}"></label>
|
|
</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(affair.fileList)}">
|
|
<tr>
|
|
<td colspan="2">파일이 없습니다.</td>
|
|
</tr>
|
|
</th:block>
|
|
<th:block th:unless="${#lists.isEmpty(affair.fileList)}">
|
|
<th:block th:each="file:${affair.fileList}">
|
|
<tr class="fileInfoTr">
|
|
<td><a href="#" class="fileDownLink" data-board="affair"
|
|
th:data-parentkey="${file.affairKey}" 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" id="ratingViewDiv">
|
|
<div class="col-12" th:unless="${#lists.isEmpty(affair.rateList)}">
|
|
<div class="px-2">
|
|
<hr class="my-1">
|
|
<th:block th:each="rate:${affair.rateList}">
|
|
<div class="row border-secondary text-center">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">
|
|
<th:block th:each="code:${session.commonCode.get('OG')}">
|
|
<th:block th:if="${code.itemCd eq rate.ratingOrgan}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</label>
|
|
<div class="col-11">
|
|
<div class="row" th:if="${rate.sectionApprv eq null}">
|
|
<label class="col-sm-8 col-form-label col-form-label-sm text-center bg-white">결재정보가 없습니다.</label>
|
|
</div>
|
|
<div class="row border-top-0 border-secondary" th:if="${rate.sectionApprv ne null}">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">결재결과: </label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-start">
|
|
<th:block th:each="code:${session.commonCode.get('DST')}">
|
|
<th:block th:if="${code.itemCd eq rate.sectionApprv}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</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="${rate.sectionNm}"></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="${#temporals.format(rate.sectionApprvDt, 'yyyy-MM-dd HH:mm:ss')}"></label>
|
|
</div>
|
|
<div class="row border-top-0 border-secondary" th:if="${rate.sectionApprv ne null and !#strings.isEmpty(rate.sectionEtc)}">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">기타의견: </label>
|
|
<label class="col-sm-7 col-form-label col-form-label-sm text-start" th:text="${rate.sectionEtc}"></label>
|
|
</div>
|
|
<div class="row border-top-0 border-secondary" th:if="${rate.headApprv ne null}">
|
|
<th:block th:if="${rate.headApprv eq 'DST006'}">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">견문평가: </label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-start">
|
|
<th:block th:each="code:${session.commonCode.get('AAR')}">
|
|
<th:block th:if="${code.itemCd eq rate.affairRate}"
|
|
th:text="|${code.itemValue}${rate.organUp eq 'T'?'(상보)':''}|"></th:block>
|
|
</th:block>
|
|
</label>
|
|
</th:block>
|
|
<th:block th:if="${rate.headApprv eq 'DST005'}">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">결재결과: </label>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-start">
|
|
<th:block th:each="code:${session.commonCode.get('DST')}">
|
|
<th:block th:if="${code.itemCd eq rate.headApprv}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</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="${rate.headNm}"></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="${#temporals.format(rate.headApprvDt, 'yyyy-MM-dd HH:mm:ss')}"></label>
|
|
</div>
|
|
<div class="row border-top-0 border-secondary" th:if="${rate.headApprv ne null and !#strings.isEmpty(rate.headEtc)}">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center ">기타의견: </label>
|
|
<label class="col-sm-7 col-form-label col-form-label-sm text-start" th:text="${rate.headEtc}"></label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</th:block>
|
|
</div>
|
|
</div>
|
|
<div class="col-12" th:if="${apprvAuth ne null}">
|
|
<div class="px-2">
|
|
<form action="#" method="post" id="apprvForm">
|
|
<input type="hidden" name="affairKey" th:value="${affair.affairKey}">
|
|
<th:block th:if="${(#strings.contains(apprvAuth, 'APC003') or #strings.contains(apprvAuth, 'APC004')) and affair.affairStatus eq 'DST002' and affair.rateList.get(0).ratingOrgan eq userOrgan}">
|
|
<input type="hidden" name="sectionApprv" id="sectionApprv">
|
|
<div class="row border-top-0 border-secondary">
|
|
<div class="col-10">
|
|
<input type="text" class="form-control form-control-sm etc" name="sectionEtc" placeholder="추가의견, 반려사유 기입">
|
|
<input type="text" class="d-none" id="submitPrevention">
|
|
</div>
|
|
<div class="col-auto">
|
|
<input type="button" class="btn btn-sm btn-success apprvBtn" data-apprvtype="section" data-affairstate="DST004" value="승인">
|
|
</div>
|
|
<div class="col-auto">
|
|
<input type="button" class="btn btn-sm btn-danger apprvBtn" data-apprvtype="section" data-affairstate="DST003" value="반려">
|
|
</div>
|
|
</div>
|
|
</th:block>
|
|
<th:block th:if="${(#strings.contains(apprvAuth, 'APC001') or #strings.contains(apprvAuth, 'APC002')) and affair.affairStatus eq 'DST004' and affair.rateList.get(0).ratingOrgan eq userOrgan}">
|
|
<input type="hidden" name="headApprv" id="headApprv">
|
|
<div class="row border-top-0 border-secondary">
|
|
<div class="col-8">
|
|
<input type="text" class="form-control form-control-sm etc" name="headEtc" placeholder="추가의견, 반려사유 기입">
|
|
<input type="text" class="d-none" id="submitPrevention">
|
|
</div>
|
|
<div class="col-auto">
|
|
<select class="form-select form-select-sm" name="affairRate" id="affairRate">
|
|
<option value="">견문평가</option>
|
|
<th:block th:each="code:${session.commonCode.get('AAR')}">
|
|
<option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
|
|
</th:block>
|
|
</select>
|
|
</div>
|
|
<div class="col-auto" th:unless="${userOrgan eq 'OG001'}">
|
|
<label for="organUp" class="form-check-label">상보여부</label>
|
|
<input type="checkbox" id="organUp" name="organUp" value="T">
|
|
</div>
|
|
<div class="col-auto">
|
|
<input type="button" class="btn btn-sm btn-success apprvBtn" data-apprvtype="head" data-affairstate="DST006" value="승인">
|
|
</div>
|
|
<div class="col-auto">
|
|
<input type="button" class="btn btn-sm btn-danger apprvBtn" data-apprvtype="head" data-affairstate="DST005" value="반려">
|
|
</div>
|
|
</div>
|
|
</th:block>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<th:block th:if="${userOrgan eq 'OG001' and accessAuth eq 'ACC003'}">
|
|
<!--본청 관리자의 평가 수정 양식-->
|
|
<div class="row justify-content-end px-2" id="modifyRatingDiv" data-state="hide" style="display: none">
|
|
<hr class="my-1">
|
|
<div class="col-12">
|
|
<div class="row affairRatingRow" th:each="rate:${affair.rateList}" th:data-ratingorgan="${rate.ratingOrgan}">
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">
|
|
<th:block th:each="code:${session.commonCode.get('OG')}">
|
|
<th:block th:if="${code.itemCd eq rate.ratingOrgan}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</label>
|
|
<div class="col-11">
|
|
<div class="row">
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-center">
|
|
<th:block th:if="${#strings.isEmpty(rate.sectionNm)}">계장 결재 없음</th:block>
|
|
<th:block th:unless="${#strings.isEmpty(rate.sectionNm)}">
|
|
<th:block th:each="code:${session.commonCode.get('JT')}">
|
|
<th:block th:if="${rate.sectionTitle eq code.itemCd}" th:text="${#strings.concat('계장 ', code.itemValue, ' ', rate.sectionNm)}"></th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</label>
|
|
<div class="col-3">
|
|
<div class="input-group">
|
|
<input type="hidden" class="sectionTitle" th:value="${rate.sectionTitle}">
|
|
<input type="hidden" class="sectionNm" th:value="${rate.sectionNm}">
|
|
<input type="hidden" class="sectionApprvDt" th:value="${#temporals.format(rate.sectionApprvDt, 'yyyy-MM-dd HH:mm:ss')}">
|
|
<select class="form-select form-select-sm sectionApprv w-30">
|
|
<option value="">미결재</option>
|
|
<option value="DST003" th:selected="${rate.sectionApprv eq 'DST003'}">반려</option>
|
|
<option value="DST004" th:selected="${rate.sectionApprv eq 'DST004'}">승인</option>
|
|
</select>
|
|
<div class="w-70"></div>
|
|
</div>
|
|
</div>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">기타의견</label>
|
|
<div class="col-6">
|
|
<input type="text" class="form-control form-control-sm sectionEtc" th:value="${rate.sectionEtc}" th:disabled="${#strings.isEmpty(rate.sectionApprv)}">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<label class="col-sm-2 col-form-label col-form-label-sm text-center">
|
|
<th:block th:if="${#strings.isEmpty(rate.headNm)}">부장 결재 없음</th:block>
|
|
<th:block th:unless="${#strings.isEmpty(rate.headNm)}">
|
|
<th:block th:each="code:${session.commonCode.get('JT')}">
|
|
<th:block th:if="${rate.headTitle eq code.itemCd}" th:text="${#strings.concat('부장 ', code.itemValue, ' ', rate.headNm)}"></th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</label>
|
|
<div class="col-3">
|
|
<div class="input-group">
|
|
<input type="hidden" class="headTitle" th:value="${rate.headTitle}">
|
|
<input type="hidden" class="headNm" th:value="${rate.headNm}">
|
|
<input type="hidden" class="headApprvDt" th:value="${#temporals.format(rate.headApprvDt, 'yyyy-MM-dd HH:mm:ss')}">
|
|
<select class="form-select form-select-sm headApprv w-30">
|
|
<option value="">미결재</option>
|
|
<option value="DST005" th:selected="${rate.headApprv eq 'DST005'}">반려</option>
|
|
<option value="DST006" th:selected="${rate.headApprv eq 'DST006'}">승인</option>
|
|
</select>
|
|
<select class="form-select form-select-sm affairRate w-30" th:disabled="${#strings.isEmpty(rate.headApprv)}">
|
|
<option value="">평가</option>
|
|
<th:block th:each="code:${session.commonCode.get('AAR')}">
|
|
<option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq rate.affairRate}"></option>
|
|
</th:block>
|
|
</select>
|
|
<div class="w-40">
|
|
<th:block th:unless="${rate.ratingOrgan eq 'OG001'}">
|
|
<label for="organUp" class="form-check-label px-1 pt-1">상보여부</label>
|
|
<input type="checkbox" class="organUp" value="T" th:checked="${rate.organUp eq 'T'}" th:disabled="${#strings.isEmpty(rate.headApprv)}">
|
|
</th:block>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center">기타의견</label>
|
|
<div class="col-6">
|
|
<input type="text" class="form-control form-control-sm headEtc" th:value="${rate.headEtc}" th:disabled="${#strings.isEmpty(rate.headApprv)}">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-auto">
|
|
<input type="button" class="btn btn-sm btn-primary" id="modifyRatingBtn" value="저장">
|
|
</div>
|
|
</div>
|
|
</th:block>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer bg-light">
|
|
<button type="button" class="btn btn-secondary" id="printBtn">인쇄</button>
|
|
<th:block th:if="${userOrgan eq 'OG001' and accessAuth eq 'ACC003'}">
|
|
<!--본청 관리자 상시 수정 허용-->
|
|
<button type="button" class="btn btn-warning" id="modifyRatingViewBtn">결재정보수정</button>
|
|
<button type="button" class="btn btn-warning" id="editAffairBtn">본문 수정</button>
|
|
</th:block>
|
|
<th:block th:unless="${userOrgan eq 'OG001' and accessAuth eq 'ACC003'}">
|
|
<!--본청 관리자가 아닌경우-->
|
|
<th:block th:unless="${affair.affairStatus eq 'DST004' or affair.affairStatus eq 'DST006'}">
|
|
<!--승인 상태가 아닐 때-->
|
|
<th:block th:if="${userSeq eq affair.wrtUserSeq or accessAuth eq 'ACC003'}">
|
|
<!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->
|
|
<button type="button" class="btn btn-warning" id="editAffairBtn">본문 수정</button>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</div> |