발신번호 첨부파일 뷰어 기능 추가

This commit is contained in:
itn 2023-08-02 16:53:13 +09:00
parent 24523774ca
commit 823e20c930
7 changed files with 566 additions and 39 deletions

View File

@ -465,7 +465,6 @@ public class EgovFileDownloadController {
String fileNm = (String) commandMap.get("fileNm"); String fileNm = (String) commandMap.get("fileNm");
try { try {
File uFile = new File("/usr/local/tomcat/file/sht/pdf/", fileNm); File uFile = new File("/usr/local/tomcat/file/sht/pdf/", fileNm);
//File uFile = new File("C:/TEST/", fileNm); //File uFile = new File("C:/TEST/", fileNm);

View File

@ -5086,5 +5086,153 @@ public class MjonMsgController {
return "/uss/ion/msg/pdfView"; return "/uss/ion/msg/pdfView";
} }
@RequestMapping(value = {"/uss/ion/msg/pdfViewPhone.do"})
public String pdfViewPhone(FileVO fileVO
, ModelMap model
, HttpServletRequest request) throws Exception {
FileVO fvo = fileService.selectFileInf(fileVO);
String path = "";
String fileType = "";
String[] imgExtArray = {"bmp", "gif", "jpeg", "jpg", "png", "tif", "tiff", "psd", "rle"};
List<String> imgExtList = new ArrayList<>(Arrays.asList(imgExtArray));
if(fvo != null) {
if("pdf".equals(fvo.getFileExtsn().toLowerCase())) {
path = "/cmm/fms/FileDown.do?atchFileId="+ fvo.getAtchFileId() + "&fileSn=" + fvo.getFileSn();
fileType = "pdf";
} else if(imgExtList.contains(fvo.getFileExtsn().toLowerCase())) {
String storePath = fvo.getFileStreCours() + fvo.getStreFileNm();
path = "/cmm/fms/FileDowntest.do?fileNm="+ PdfUtil.makeImgPdf(storePath, fvo.getFileExtsn());
fileType = "img";
} else {
String storePath = fvo.getFileStreCours() + fvo.getStreFileNm();
path = "/cmm/fms/FileDowntest.do?fileNm="+ PdfUtil.makeImgPdf(storePath, fvo.getFileExtsn());
fileType = "etc";
}
}
// 첨부파일 목록
List<FileVO> fileList = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", fileList);
String phmId = request.getParameter("phmId");
String phoneNumber = request.getParameter("phoneNumber");
String userName = request.getParameter("userName");
String managerNm = request.getParameter("managerNm");
String dept = request.getParameter("dept");
String nameType = request.getParameter("nameType");
String phmType = request.getParameter("phmType");
String authYnTxt = request.getParameter("authYnTxt");
String phmAuthTypeTxt = request.getParameter("phmAuthTypeTxt");
String ownerName = request.getParameter("ownerName");
// 필수서류
String requiredDocuments = "";
if (dept.equals("c")) {
// 기업
if (nameType.equals("1")) {
// 당사
requiredDocuments = "통신서비스이용증명원";
}
else if (nameType.equals("2")) {
// 대표
if (phmAuthTypeTxt.equals("휴대폰 인증")) {
// 휴대폰
// 인증완료
}
else {
// 서류
requiredDocuments = "통신서비스이용증명원";
}
}
else if (nameType.equals("3")) {
// 직원
if (phmAuthTypeTxt.equals("휴대폰 인증")) {
// 휴대폰
requiredDocuments = "재직증명서류";
}
else {
// 서류
requiredDocuments = "통신서비스이용증명원, 재직증명서류";
}
}
else if (nameType.equals("4")) {
// 타사
requiredDocuments = "거래관계확인서(계약서 등), 발신번호 사업자등록증, 재직증명서류(직원번호인 경우)<br />대리인 신분증 사본, 위임장, 통신서비스이용증명원";
}
else if (nameType.equals("5")) {
// 본인
if (phmAuthTypeTxt.equals("휴대폰 인증")) {
// 휴대폰
// 인증완료
}
else {
// 서류
requiredDocuments = "통신서비스이용증명원";
}
}
else {
// 타인
if (phmAuthTypeTxt.equals("휴대폰 인증")) {
// 휴대폰
}
else {
// 서류
}
}
}
else {
// 개인
if (nameType.equals("5")) {
// 본인
if (phmAuthTypeTxt.equals("휴대폰 인증")) {
// 휴대폰
// 인증완료
}
else {
// 서류
requiredDocuments = "통신서비스이용증명원";
}
}
else {
// 타인
if (phmAuthTypeTxt.equals("휴대폰 인증")) {
// 휴대폰
requiredDocuments = "위임장, 대리인 신분증 사본";
}
else {
// 서류
requiredDocuments = "타인(일반전화) : 통신서비스이용증명원, 위임장, 대리인 신분증 사본<br />회사번호일경우 : 통신서비스이용증명원, 사업자등록증, 재직증명서류";
}
}
}
model.addAttribute("pdfPath", path);
model.addAttribute("fileType", fileType);
model.addAttribute("atchFileId", fileVO.getAtchFileId());
model.addAttribute("fileSn", fileVO.getFileSn());
model.addAttribute("phmId", phmId);
model.addAttribute("phoneNumber", phoneNumber);
model.addAttribute("userName", userName);
model.addAttribute("managerNm", managerNm);
model.addAttribute("dept", dept);
model.addAttribute("nameType", nameType);
model.addAttribute("phmType", phmType);
model.addAttribute("authYnTxt", authYnTxt);
model.addAttribute("phmAuthTypeTxt", phmAuthTypeTxt);
model.addAttribute("ownerName", ownerName);
model.addAttribute("requiredDocuments", requiredDocuments);
return "/uss/ion/msg/pdfViewPhone";
}
} }

View File

@ -152,7 +152,7 @@
<pattern>/uss/ion/msg/weekendCsWork.do</pattern> <pattern>/uss/ion/msg/weekendCsWork.do</pattern>
<pattern>/uss/ion/msg/weekendCsWork2.do</pattern> <pattern>/uss/ion/msg/weekendCsWork2.do</pattern>
<pattern>/uss/ion/msg/pdfView.do</pattern> <pattern>/uss/ion/msg/pdfView.do</pattern>
<pattern>/uss/ion/msg/pdfViewPhone.do</pattern>
</decorator> </decorator>
<!-- 관리자 게시글 작성, 템플릿 미리보기(헤더풋터 없음) --> <!-- 관리자 게시글 작성, 템플릿 미리보기(헤더풋터 없음) -->

View File

@ -24,12 +24,12 @@ $( document ).ready(function() {
// PdfView // PdfView
function pdfViewPop(atchFileId,mberNm,bizNo,ceoNm,hstManagerNm,hstMbtlNum) { function pdfViewPop(atchFileId,mberNm,bizNo,ceoNm,hstManagerNm,hstMbtlNum) {
document.pdfForm.atchFileId.value = atchFileId; document.pdfForm.atchFileId.value = atchFileId;
document.pdfForm.fileSn.value = 0;
document.pdfForm.mberNm.value = mberNm; document.pdfForm.mberNm.value = mberNm;
document.pdfForm.bizNo.value = bizNo; document.pdfForm.bizNo.value = bizNo;
document.pdfForm.ceoNm.value = ceoNm; document.pdfForm.ceoNm.value = ceoNm;
document.pdfForm.hstManagerNm.value = hstManagerNm; document.pdfForm.hstManagerNm.value = hstManagerNm;
document.pdfForm.hstMbtlNum.value = hstMbtlNum; document.pdfForm.hstMbtlNum.value = hstMbtlNum;
document.pdfForm.fileSn.value = 0;
window.open("about:blank", 'pdfPopup', 'width=1020, height=800, top=100, left=0, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=no, location=no, scrollbars=no'); window.open("about:blank", 'pdfPopup', 'width=1020, height=800, top=100, left=0, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=no, location=no, scrollbars=no');
document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfView.do'/>"; document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfView.do'/>";
document.pdfForm.target = "pdfPopup"; document.pdfForm.target = "pdfPopup";

View File

@ -34,11 +34,33 @@ var certType = "${certType}";
$( document ).ready(function() { $( document ).ready(function() {
// 대시보드에 전달받은 파라미터 처리 // 대시보드에 전달받은 파라미터 처리
fromDashboard(); fromDashboard();
//첨부파일 이미지 br태그 삭제 - import로 공통으로 사용해서 jsp에서 따로 처리 //첨부파일 이미지 br태그 삭제 - import로 공통으로 사용해서 jsp에서 따로 처리
$(".brRm").children('br').remove(); $(".brRm").children('br').remove();
}); });
//PdfView
function pdfViewPhonePop(atchFileId,phmId,phoneNumber,userName,managerNm,dept,nameType,phmType,authYnTxt,phmAuthTypeTxt,ownerName) {
document.pdfForm.atchFileId.value = atchFileId;
document.pdfForm.fileSn.value = 0;
document.pdfForm.phmId.value = phmId;
document.pdfForm.phoneNumber.value = phoneNumber;
document.pdfForm.userName.value = userName;
document.pdfForm.managerNm.value = managerNm;
document.pdfForm.dept.value = dept;
document.pdfForm.nameType.value = nameType;
document.pdfForm.phmType.value = phmType;
document.pdfForm.authYnTxt.value = authYnTxt;
document.pdfForm.phmAuthTypeTxt.value = phmAuthTypeTxt;
document.pdfForm.ownerName.value = ownerName;
window.open("about:blank", 'pdfPhonePopup', 'width=1020, height=800, top=100, left=0, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=no, location=no, scrollbars=no');
document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfViewPhone.do'/>";
document.pdfForm.target = "pdfPhonePopup";
document.pdfForm.submit();
}
// 대시보드에 전달받은 파라미터 처리 // 대시보드에 전달받은 파라미터 처리
function fromDashboard() { function fromDashboard() {
if (certType == "H" || certType == "C" || certType == "Y") { if (certType == "H" || certType == "C" || certType == "Y") {
@ -257,17 +279,17 @@ function fnSetCalMonth(val) {
<col style="width: 9%"> <col style="width: 9%">
<col style="width: 9%"> <col style="width: 9%">
<col style="width: 6%"> <col style="width: 6%">
<col style="width: 6%"> <col style="width: 5%">
<col style="width: 3%"> <col style="width: 3%">
<col style="width: 3%"> <col style="width: 3%">
<col style="width: 5%">
<col style="width: 5%">
<col style="width: 7%"> <col style="width: 7%">
<col style="width: 5%">
<col style="width: 5%">
<col style="width: 5%">
<col style="width: 8%">
<col style="width: *%"> <col style="width: *%">
<col style="width: 8%"> <col style="width: 5%">
<%-- <col style="width: 10%"> --%> <col style="width: 10%">
<col style="width: 7%">
<col style="width: 2%">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -278,17 +300,16 @@ function fnSetCalMonth(val) {
<th>전화번호</th> <th>전화번호</th>
<th>대표<input type="button" class="sort sortBtn" id="sort_userName"></th> <th>대표<input type="button" class="sort sortBtn" id="sort_userName"></th>
<th>담당자<input type="button" class="sort sortBtn" id="sort_managerNm"></th> <th>담당자<input type="button" class="sort sortBtn" id="sort_managerNm"></th>
<th>회원<%--<input type="button" class="sort sortBtn" id="sort_dept"> --%></th> <th>회원</th>
<th>구분<%--<input type="button" class="sort sortBtn" id="sort_nameType"> --%></th> <th>구분</th>
<!-- <th>타입(발신/수신/거부)<input type="button" class="sort sortBtn" id="sort_phmType"></th> -->
<th>인증여부<input type="button" class="sort sortBtn" id="sort_authYn"></th>
<th>관리자</th>
<th>인증<input type="button" class="sort sortBtn" id="sort_phmAuthType"></th> <th>인증<input type="button" class="sort sortBtn" id="sort_phmAuthType"></th>
<th>인증자<input type="button" class="sort sortBtn" id="sort_ownerName"></th> <th>인증자<input type="button" class="sort sortBtn" id="sort_ownerName"></th>
<th>인증여부<input type="button" class="sort sortBtn" id="sort_authYn"></th>
<th>첨부파일</th> <th>첨부파일</th>
<th>관리자</th>
<th>관리</th> <th>관리</th>
<th>등록일자<input type="button" class="sort sortBtn" id="sort_frstRegistPnttm"></th> <th>등록일자<input type="button" class="sort sortBtn" id="sort_frstRegistPnttm"></th>
<!-- <th>삭제여부<input type="button" class="sort sortBtn" id="sort_delFlag"></th> --> <th></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -375,19 +396,6 @@ function fnSetCalMonth(val) {
</a> </a>
</td> </td>
<%-- <td><c:out value="${result.phmTypeTxt}"/></td> --%> <%-- <td><c:out value="${result.phmTypeTxt}"/></td> --%>
<td>
<c:choose>
<c:when test="${result.phmType eq '03'}">
발신번호 차단
</c:when>
<c:otherwise>
<c:if test="${result.authYnTxt eq '심사중'}">인증요청</c:if> <!-- 코드에 심사중으로 등록되어 있지만 인증요청으로 화면에 뿌리기 위한 처리-->
<c:if test="${result.authYnTxt ne '심사중'}"><c:out value="${result.authYnTxt}"/></c:if>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${result.admNm}"/></td>
<td title="<c:out value="${result.phmAuthTypeTxt}"/>"> <td title="<c:out value="${result.phmAuthTypeTxt}"/>">
<c:choose> <c:choose>
<c:when test="${result.phmAuthTypeTxt eq '휴대폰 인증'}"> <c:when test="${result.phmAuthTypeTxt eq '휴대폰 인증'}">
@ -411,26 +419,41 @@ function fnSetCalMonth(val) {
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</td> </td>
<td class="brRm"> <td>
<c:import url="/cmm/fms/selectAddrAgencyFileInfs.do" charEncoding="utf-8"> <c:choose>
<c:param name="param_atchFileId" value="${result.atchFileId}" /> <c:when test="${result.phmType eq '03'}">
</c:import> 발신번호 차단
</c:when>
<c:otherwise>
<c:if test="${result.authYnTxt eq '심사중'}">인증요청</c:if> <!-- 코드에 심사중으로 등록되어 있지만 인증요청으로 화면에 뿌리기 위한 처리-->
<c:if test="${result.authYnTxt ne '심사중'}"><c:out value="${result.authYnTxt}"/></c:if>
</c:otherwise>
</c:choose>
</td> </td>
<td class="brRm">
<c:import url="/cmm/fms/selectAddrAgencyFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${result.atchFileId}" />
</c:import>
</td>
<td><c:out value="${result.admNm}"/></td>
<td> <td>
<c:if test="${result.authYn eq 'H'}"> <c:if test="${result.authYn eq 'H'}">
<button class="btnType btnType20" onclick="updateAuthYn('<c:out value='${result.phmId}'/>', 'Y', '<c:out value='${result.userId}'/>'); return false;" >인증완료</button> <button class="btnType btnType20" onclick="updateAuthYn('<c:out value='${result.phmId}'/>', 'Y', '<c:out value='${result.userId}'/>'); return false;" style="padding: 0 5px 0 5px;">인증완료</button><button class="btnType btnType20" onclick="returnPop('<c:out value="${result.phmId}"/>'); return false;" style="padding: 0 5px 0 5px;">반려</button>
<button class="btnType btnType20" onclick="returnPop('<c:out value="${result.phmId}"/>'); return false;">반려</button>
</c:if> </c:if>
<c:if test="${result.authYn eq 'C'}"> <c:if test="${result.authYn eq 'C'}">
<button class="btnType btnType20" onclick="returnPop('<c:out value="${result.phmId}"/>'); return false;">반려사유</button> <button class="btnType btnType20" onclick="returnPop('<c:out value="${result.phmId}"/>'); return false;" style="padding: 0 5px 0 5px;">반려사유</button>
</c:if> </c:if>
</td> </td>
<td title="<c:out value="${result.frstRegistPnttm}"/>"> <td title="<c:out value="${result.frstRegistPnttm}"/>">
<fmt:parseDate value="${result.frstRegistPnttm}" var="frstRegistDateValue" pattern="yyyy-MM-dd HH:mm"/> <fmt:parseDate value="${result.frstRegistPnttm}" var="frstRegistDateValue" pattern="yyyy-MM-dd HH:mm"/>
<fmt:formatDate value="${frstRegistDateValue}" pattern="MM-dd HH:mm"/> <fmt:formatDate value="${frstRegistDateValue}" pattern="MM-dd HH:mm"/>
</td> </td>
<td>
<%-- <td><c:out value="${result.delFlagTxt}"/></td> --%> <c:if test="${result.atchFileId ne '' && result.atchFileId ne null}">
<button class="btnType btnType20" onclick="pdfViewPhonePop('${result.atchFileId}','${result.phmId}','${result.phoneNumber}','${result.userName}','${result.managerNm}','${result.dept}','${result.nameType}','${result.phmType}','${result.authYnTxt}','${result.phmAuthTypeTxt}','${result.ownerName}'); return false;" style="height:20px !important; padding:0 2px !important;">V</button>
</c:if>
</td>
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty resultList}"> <c:if test="${empty resultList}">
@ -459,9 +482,24 @@ function fnSetCalMonth(val) {
<form name="modiForm" id="modiForm" method="post"> <form name="modiForm" id="modiForm" method="post">
<input name="mberId" type="hidden" /> <input name="mberId" type="hidden" />
</form> </form>
<form name="popupForm" id="popupForm" method="post"> <form name="popupForm" id="popupForm" method="post">
<input name="phmId" type="hidden" /> <input name="phmId" type="hidden" />
</form> </form>
<form name="pdfForm" method="post">
<input type="hidden" name="atchFileId"/>
<input type="hidden" name="fileSn"/>
<input type="hidden" name="phmId"/>
<input type="hidden" name="phoneNumber"/>
<input type="hidden" name="userName"/>
<input type="hidden" name="managerNm"/>
<input type="hidden" name="dept"/>
<input type="hidden" name="nameType"/>
<input type="hidden" name="phmType"/>
<input type="hidden" name="authYnTxt"/>
<input type="hidden" name="phmAuthTypeTxt"/>
<input type="hidden" name="ownerName"/>
</form>
</body> </body>
</html> </html>

View File

@ -46,7 +46,7 @@ html {
<div class="pageCont" style="text-align: center; width: 1000px;"> <div class="pageCont" style="text-align: center; width: 1000px;">
<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;"> <div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
<p class="tType5">PDF 뷰어</p> <p class="tType5">기업회원 신청 정보</p>
</div> </div>
<div class="tableWrap"> <div class="tableWrap">
<table class="tbType1"> <table class="tbType1">

View File

@ -0,0 +1,342 @@
<%--
Class Name : weekendCsWork.jsp
Description : 발신번호 리스트 조회 페이지
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2021.03.31 신명섭 최초 생성
Copyright (C) 2009 by ITN All right reserved.
--%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<link rel="stylesheet" href="/pb/css/reset.css">
<link rel="stylesheet" href="/pb/css/common.css">
<link rel="stylesheet" href="/pb/css/content.css?date=202301160001">
<link rel="stylesheet" href="/pb/css/popup.css">
<style>
html {
overflow-x: hidden;
overflow-y: auto;
}
</style>
<script src="/pb/js/jquery-3.5.0.js"></script>
<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
<script src="//mozilla.github.io/pdf.js/build/pdf.js"></script>
<script type="text/javaScript" language="javascript">
//PdfView
function pdfViewPhonePop(atchFileId,fileSn) {
document.pdfForm.atchFileId.value = atchFileId;
document.pdfForm.fileSn.value = fileSn;
document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfViewPhone.do'/>";
document.pdfForm.submit();
}
</script>
</head>
<body>
<div class="pageCont" style="text-align: center; width: 1000px;">
<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
<p class="tType5">발신번호 신청 정보</p>
</div>
<div class="tableWrap">
<table class="tbType1">
<colgroup>
<col style="width: 12%">
<col style="width: *%">
<col style="width: 11%">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 15%">
</colgroup>
<thead>
<tr>
<th>발신번호</th>
<th>대표</th>
<th>담당자</th>
<th>회원</th>
<th>구분</th>
<th>인증방식</th>
<th>인증자</th>
<th>인증여부</th>
<th>다운로드</th>
</tr>
</thead>
<tbody>
<tr>
<td title="${phoneNumber}">${phoneNumber}</td>
<td title="${userName}">${userName}</td>
<td title="${managerNm}">${managerNm}</td>
<td>
<c:choose>
<c:when test="${dept == 'c'}">
기업
</c:when>
<c:otherwise>
개인
</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${not empty nameType}">
<c:choose>
<c:when test="${nameType == '1'}">
당사
</c:when>
<c:when test="${nameType == '2'}">
대표
</c:when>
<c:when test="${nameType == '3'}">
직원
</c:when>
<c:when test="${nameType == '4'}">
타사
</c:when>
<c:when test="${nameType == '5'}">
본인
</c:when>
<c:otherwise>
타인
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
없음
</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${phmAuthTypeTxt eq '휴대폰 인증'}">
휴대폰
</c:when>
<c:when test="${phmAuthTypeTxt eq '서류인증'}">
서류
</c:when>
<c:otherwise>
<c:out value="${phmAuthTypeTxt}"/>
</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${phmAuthTypeTxt eq '서류인증'}">
</c:when>
<c:otherwise>
<c:out value="${ownerName}"/>
</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${phmType eq '03'}">
발신번호 차단
</c:when>
<c:otherwise>
<c:if test="${authYnTxt eq '심사중'}">인증요청</c:if>
<c:if test="${authYnTxt ne '심사중'}"><c:out value="${authYnTxt}"/></c:if>
</c:otherwise>
</c:choose>
</td>
<td>
<c:import url="/cmm/fms/selectMberFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${atchFileId}" />
</c:import>
</td>
</tr>
</tbody>
</table>
</div>
<br /><br />
<!-- 필수서류 체크 -->
<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
<p class="tType5">승인에 필요한 서류</p>
</div>
<div class="tableWrap">
<table class="tbType1">
<colgroup>
<col style="width: *%">
</colgroup>
<thead>
<tr>
<td class="left" style="padding: 10px 0 10px 0; line-height: 1.6em;">${requiredDocuments}</td>
</tr>
</thead>
</tbody>
</table>
</div>
<c:if test="${not empty fileList}">
<div style="width: 100%; text-align: center; margin: 30px 0 30px 0;">
<c:set var="plusCnt" value="0"/>
<c:set var="btnClass" value="btnType1"/>
<c:forEach var="result" items="${fileList}" varStatus="status">
<c:choose>
<c:when test="${result.fileSn eq fileSn}">
<c:set var="btnClass" value="btnType2"/>
</c:when>
<c:otherwise>
<c:set var="btnClass" value="btnType1"/>
</c:otherwise>
</c:choose>
<c:set var="plusCnt" value="${plusCnt + 1}"/>
<button class="<c:out value="${btnClass}"/>" onclick="pdfViewPhonePop('${result.atchFileId}','${result.fileSn}'); return false;"> 첨부파일 <c:out value="${plusCnt}"/> </button>
</c:forEach>
</div>
</c:if>
<c:if test="${fileType eq 'etc'}">
<div style="width: 100%; text-align: center; margin: 30px 0 30px 0; color: red;">
PDF 뷰어에서 지원하지 않는 형식의 파일입니다. 첨부파일 다운로드후 확인해주세요.
</div>
</c:if>
<canvas id="the-canvas" name="the-canvas" style="min-width: 600px; max-width: 1000px; margin-top: 25px; margin-bottom: 25px;"></canvas>
<div>
<button class="btnType" id="prev">Previous</button>
&nbsp;<span>Page: <span id="page_num"></span> / <span id="page_count"></span></span>&nbsp;
<button class="btnType" id="next">Next</button>
<div style="float: right; margin-right: 10px;"><button onclick="javascript:self.close()" class="btnType">CLOSE</button></div>
</div>
</div>
<form name="pdfForm" method="post">
<input type="hidden" name="atchFileId"/>
<input type="hidden" name="fileSn"/>
<input type="hidden" name="phmId" value="${phmId}"/>
<input type="hidden" name="phoneNumber" value="${phoneNumber}"/>
<input type="hidden" name="userName" value="${userName}"/>
<input type="hidden" name="managerNm" value="${managerNm}"/>
<input type="hidden" name="dept" value="${dept}"/>
<input type="hidden" name="nameType" value="${nameType}"/>
<input type="hidden" name="phmType" value="${phmType}"/>
<input type="hidden" name="authYnTxt" value="${authYnTxt}"/>
<input type="hidden" name="phmAuthTypeTxt" value="${phmAuthTypeTxt}"/>
<input type="hidden" name="ownerName" value="${ownerName}"/>
</form>
</body>
</html>
<script type="text/javaScript" language="javascript">
var pdfDoc = null;
var pageNum = 1;
var pageRendering = false;
var pageNumPending = null;
var scale = 1.4;
var canvas = document.getElementById('the-canvas');
var ctx = canvas.getContext('2d');
/* var url = '/cmm/fms/FileDown.do?atchFileId=FILE_000000000019061&fileSn=0'; */
// var url = '/usr/local/tomcat/file/sht/pdf/2ccbb16e-62df-48c0-bbb1-3b6559bd4c36.pdf';
var url = '${pdfPath}';
/**
* Get page info from document, resize canvas accordingly, and render page.
* @param num Page number.
*/
function renderPage(num) {
pageRendering = true;
// Using promise to fetch the page
pdfDoc.getPage(num).then(function(page) {
var viewport = page.getViewport({scale: scale});
canvas.height = viewport.height;
canvas.width = viewport.width;
// Render PDF page into canvas context
var renderContext = {
canvasContext: ctx,
viewport: viewport
};
var renderTask = page.render(renderContext);
// Wait for rendering to finish
renderTask.promise.then(function() {
pageRendering = false;
if (pageNumPending !== null) {
// New page rendering is pending
renderPage(pageNumPending);
pageNumPending = null;
}
});
});
// Update page counters
document.getElementById('page_num').textContent = num;
}
/**
* If another page rendering in progress, waits until the rendering is
* finised. Otherwise, executes rendering immediately.
*/
function queueRenderPage(num) {
if (pageRendering) {
pageNumPending = num;
} else {
renderPage(num);
}
}
/**
* Displays previous page.
*/
function onPrevPage() {
if (pageNum <= 1) {
return;
}
pageNum--;
queueRenderPage(pageNum);
}
document.getElementById('prev').addEventListener('click', onPrevPage);
/**
* Displays next page.
*/
function onNextPage() {
if (pageNum >= pdfDoc.numPages) {
return;
}
pageNum++;
queueRenderPage(pageNum);
}
document.getElementById('next').addEventListener('click', onNextPage);
/**
* Asynchronously downloads PDF.
*/
pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) {
pdfDoc = pdfDoc_;
document.getElementById('page_count').textContent = pdfDoc.numPages;
// Initial/first page rendering
renderPage(pageNum);
});
</script>