이지우 - 일반사용자 청소년 교육 상세에 필요양식 추가, 사용자 기반강화 상세 작업 중

This commit is contained in:
jiwoo 2023-10-18 12:27:28 +09:00
parent d1308abfd6
commit c2fa56c3cc
14 changed files with 314 additions and 242 deletions

View File

@ -37,6 +37,7 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
// 파일 등록 리턴 메세지 jsp에서 넘겨줌
public String successMsg = "";
public String eduAplctOrd = "";
public String prcsAplctPrdOrd = ""; //기반강화 강의계획서용
// 컨트롤 엘리먼트 ID - 멀티 업로드 jsp에서 사용하는 el
public String controlId = "";
@ -131,6 +132,14 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
this.trgtPrsnlReal = trgtPrsnlReal;
}
public String getPrcsAplctPrdOrd() {
return prcsAplctPrdOrd;
}
public void setPrcsAplctPrdOrd(String prcsAplctPrdOrd) {
this.prcsAplctPrdOrd = prcsAplctPrdOrd;
}

View File

@ -31,4 +31,7 @@ public interface InnorixFileService {
RestResponse updateRprtInnorixFile(AdrInnorixFileVO adrInnorixFileVO);
//기반강화 강의계획서 저장
RestResponse insertInnorixLctrPlanFile(AdrInnorixFileVO adrInnorixFileVO);
}

View File

@ -30,6 +30,8 @@ import kcc.let.utl.fcc.service.EgovStringUtil;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
/**
* @Class Name : EgovCmmUseServiceImpl.java
@ -72,6 +74,10 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I
//교육과정신청
@Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService;
//과정차시 관리
@Resource(name = "vEAPrcsAplctPrdInstrAsgnmService")
private VEAPrcsAplctPrdInstrAsgnmService vEAPrcsAplctPrdInstrAsgnmService;
/**
* @methodName : fileDataUpload
* @author : 이호영
@ -366,4 +372,33 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I
return new RestResponse(HttpStatus.OK, adrInnorixFileVO.getSuccessMsg(), LocalDateTime.now());
}
@Override
public RestResponse insertInnorixLctrPlanFile(AdrInnorixFileVO adrInnorixFileVO) {
List<FileVO> result = null;
try {
// 파일 저장 저장할 file 정보를 받아옴
result = this.insertFileData(adrInnorixFileVO);
// 파일 정보 insert
String atchFileId = fileManageDAO.insertFileInfs(result);
VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO = new VEAPrcsAplctPrdInstrAsgnmVO();
vEAPrcsAplctPrdInstrAsgnmVO.setLctrPlanAtchFileId(atchFileId);
vEAPrcsAplctPrdInstrAsgnmVO.setLastUpdusrId(adrInnorixFileVO.getUniqId());
vEAPrcsAplctPrdInstrAsgnmVO.setPrcsAplctPrdOrd(adrInnorixFileVO.getPrcsAplctPrdOrd());
//저장
vEAPrcsAplctPrdInstrAsgnmService.updatLctrPlanAtchFileId(vEAPrcsAplctPrdInstrAsgnmVO);
} catch (Exception e) {
e.printStackTrace();
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, adrInnorixFileVO.getSuccessMsg(), LocalDateTime.now());
}
}

View File

@ -136,4 +136,27 @@ public class InnorixFileController {
return ResponseEntity.ok(innorixService.updateRprtInnorixFile(adrInnorixFileVO));
}
/**
* @methodName : insertInnorixFile
* @author : 이호영
* @date : 2023.07.20
* @description : 파일 insert 전용
* @param adrInnorixFileVO
* @return
* @throws Exception
*/
@RequestMapping(value = {"/web/common/insertInnorixLctrPlanFileAjax.do"}, method = RequestMethod.POST)
public ResponseEntity<RestResponse> insertInnorixLctrPlanFile(@RequestBody AdrInnorixFileVO adrInnorixFileVO) throws Exception {
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
if(userId.equals("")) {
return ResponseEntity.ok(new RestResponse(HttpStatus.UNAUTHORIZED, "로그인이 필요합니다.", LocalDateTime.now()));
}
adrInnorixFileVO.setUniqId(userId);
return ResponseEntity.ok(innorixService.insertInnorixLctrPlanFile(adrInnorixFileVO));
}
}

View File

@ -113,6 +113,7 @@ public class VEFndtnAsgnmController {
vEPrcsDetailVO.setUserId(loginVO.getUniqId());
vEPrcsDetailVO.setInstrDiv("20");
vEPrcsDetailVO.setAprvlCd("20");
vEPrcsDetailVO.setLctrDivCd("50"); //기반강화50. 기소유예 60
vEPrcsDetailVO.setSearchDiv("ING"); // 강의내역 END 종료내역
try {

View File

@ -148,6 +148,8 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable {
private String eduPlace; //교육장소
private String prcsAplctPrdOrd; //과정신청기간순번
public String getMemoCn() {
return memoCn;
@ -734,6 +736,12 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable {
public String getPnltyOrd() {
return pnltyOrd;
}
public String getPrcsAplctPrdOrd() {
return prcsAplctPrdOrd;
}
public void setPrcsAplctPrdOrd(String prcsAplctPrdOrd) {
this.prcsAplctPrdOrd = prcsAplctPrdOrd;
}
public void setPnltyOrd(String pnltyOrd) {
this.pnltyOrd = pnltyOrd;
}

View File

@ -2,8 +2,6 @@ package kcc.ve.instr.tngrVisitEdu.prcsInfo.service;
import java.util.List;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
public interface VEAPrcsAplctPrdInstrAsgnmService {
void instrInsert(VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO);
@ -19,4 +17,6 @@ public interface VEAPrcsAplctPrdInstrAsgnmService {
void updateAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO);
void updateAplctStateCdListAjax(VEPrcsDetailVO vEPrcsDetailVO);
void updatLctrPlanAtchFileId(VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO);
}

View File

@ -43,4 +43,9 @@ public class VEAPrcsAplctPrdInstrAsgnmDAO extends EgovAbstractDAO {
}
public void updatLctrPlanAtchFileId(VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO) {
update("VEAPrcsAplctPrdInstrAsgnmDAO.updatLctrPlanAtchFileId", vEAPrcsAplctPrdInstrAsgnmVO);
}
}

View File

@ -64,4 +64,10 @@ public class VEAPrcsAplctPrdInstrAsgnmServiceImpl implements VEAPrcsAplctPrdInst
vEAPrcsAplctPrdInstrAsgnmDAO.updateAplctStateCdListAjax(vEPrcsDetailVO);
}
@Override
public void updatLctrPlanAtchFileId(VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO) {
vEAPrcsAplctPrdInstrAsgnmDAO.updatLctrPlanAtchFileId(vEAPrcsAplctPrdInstrAsgnmVO);
}
}

View File

@ -4909,7 +4909,7 @@
AND vid.aprvl_cd = #aprvlCd# /* 강의 승인 20 */
AND vid.instr_div = #instrDiv# /* 성인 20 */
AND vid.use_yn = 'Y'
AND vpap.lctr_div_cd = #lctrDivCd#
/*진행 중 : 진행 예정*/
<isEqual property="searchDiv" compareValue="ING">
AND TO_CHAR(CURRENT_DATE, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(vpap.edu_ddln_pnttm, '.' , '')

View File

@ -158,7 +158,16 @@
AND vid.use_yn ='Y'
</select>
<!-- 강의계획서 update -->
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.updatLctrPlanAtchFileId" parameterClass="vEAPrcsAplctPrdInstrAsgnmVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.updatLctrPlanAtchFileId */
UPDATE VEA_PRCS_APLCT_PRD_INSTR_ASGNM
SET lctr_plan_atch_file_id = #lctrPlanAtchFileId#
, last_updusr_id = #lastUpdusrId#
, last_updt_pnttm = sysdate
WHERE prcs_aplct_prd_ord = #prcsAplctPrdOrd#
</update>

View File

@ -13,6 +13,9 @@
<% pageContext.setAttribute("replaceChar", "\n"); %>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
<style>
input:disabled {
background-color: #f9f9f9 !important;
@ -179,6 +182,16 @@
});
}
function filePopupLayer(type){
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/comm/popup/fileUploadPop.do"
, 650
, 464
, {'eduAplctOrd' : '<c:out value='${info.eduAplctOrd}'/>','fileType' : type}
, "Y"
, "fileUploadPop"
);
}
</script>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO" onsubmit="return false;" method="post">
@ -773,9 +786,65 @@
</c:if>
</tbody>
</table>
<p style="color:gray;font-size:14px;padding-top:30px;">* 확정된 교육에 대한 변경은 위원회를 통해 진행 부탁드립니다.</p>
</div>
<c:set var="instrYn" value="N"/>
<c:forEach items="${chasiList}" var="list">
<c:if test="${not empty list.instrNm}">
<c:set var="instrYn" value="Y" />
</c:if>
</c:forEach>
<c:if test="${instrYn eq 'Y'}">
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>필요양식</p>
</div>
</div>
<div class="btn_wrap"><input type="text" /> <button type="button" class="btnType05 data-tooltip="sub35_pop01" id="OATH" onclick="filePopupLayer('OATH')" title="팝업 열림">필요양식 업로드</button></div>
<div class="tb_type02">
<table>
<%-- <caption>교육차시 정보 교육희망일, 시간, 구분, 대상, 배정강사, 인원 을/를 제공하는 표</caption> --%>
<colgroup>
<col style="width: 18%;">
<col style="width: auto;">
<col style="width: 11%;">
</colgroup>
<thead>
<tr>
<th scope="col">파일</th>
<th scope="col">강사명</th>
<th scope="col">제출여부</th>
</tr>
</thead>
<tbody>
<tr>
<th>
범죄경력조회 동의서
</th>
<td>
청소년강사1
</td>
<td>
동의서.zip
</td>
</tr>
<tr>
<th>
범죄경력조회 동의서
</th>
<td>
청소년강사2
</td>
<td>
미제출
</td>
</tr>
</tbody>
</table>
<p style="color:gray;font-size:14px;padding-top:30px;">* 확정된 교육에 대한 변경은 위원회를 통해 진행 부탁드립니다.</p>
</div>
</c:if>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<c:if test="${info.aprvlCd eq '10'}">

View File

@ -11,8 +11,20 @@
<head>
<title>강사프로필 목록</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
<link rel="stylesheet" href="<c:url value='/innorix/innorix.css'/>" type="text/css">
<style>
#lctrPlan{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
.innorix_basic div.irx_filetree.empty-uploader{background: url(/offeduadvc/visitEdu/usr/publish/images/content/dropzone_file_before.png) no-repeat center; height: 150px !important;}
.irx_filetree,.innorix_basic div.irx_infoBox{height: 150px !important;}
</style>
<script type="text/javaScript" language="javascript">
//강의계획서 업로드
var control1 = new Object();
var urlBase = "<c:url value='/innorix/exam/'/>"
$( document ).ready(function() {
$(".btn_add_file").on('click', function(){
@ -31,6 +43,54 @@
}
});
//강의계획서 컨트롤 생성
control1 = innorix.create({
el : '#lctrPlan', // 컨트롤 출력 객체 ID
installUrl: '<c:url value="/innorix/install/install.html" />', // Agent 설치 페이지
uploadUrl: '<c:url value="/innorix/exam/upload.jsp?el=lctrPlan" />', // 업로드 URL
maxFileCount : 1, // 첨부가능 파일 전체 개수
width : 870, // 컨트롤 출력 너비(pixel)
height : 80, // 컨트롤 출력 높이(pixel)
allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"],
useContextMenu : 'false' //우클릭을 이용한 개별 업로드 방지
});
//파일 추가 이벤트
control1.on('afterAddFiles', function (p) {
$('.lctrPlan_totalfileSize').text(getStrFileSize(p[0].fileSize)) ;
$('.lctrPlan_totalfileCount').text(p.length);
});
//파일 삭제 이벤트
control1.on('removeFiles', function (p) {
$('.lctrPlan_totalfileSize').text('0MB') ;
$('.lctrPlan_totalfileCount').text('0');
if(control1Tmprr == 'Y'){
if(confirm("삭제하시겠습니까?")){
innorixDelRprtAtchFile(p[0].uniqueFileName, 'lctrPlan_rslt_atch_file_id')
control1Tmprr = 'N';
control1Chg = 'Y';
$("#control1DownBtn").css('display', 'none');
}else{
return false;
}
}
});
//첨부파일 업로드 후속조치
control1.on('uploadComplete', function (p) {
/* fn_callBackInnorixInsert(p.files); */
var data = p.files;
var url = "<c:url value='/web/common/insertInnorixLctrPlanFileAjax.do' />";
var sendData = {
"prcsAplctPrdOrd": $('#prcsAplctPrdOrd').val()
, "innorixFileListVO": data
, "successMsg" : "제출 완료되었습니다."
}
if(fn_innorixCmmAjax(sendData, url) == "OK")
{
alert("업로드 완료");
}
});
});
@ -40,49 +100,21 @@
detailForm.submit();
}
function fncSave(){
//첨부파일 등록 처리
$('#file_temp').val(""); //첨부파일 중복 등록 방지를 위해 추가
//var data = new FormData(form);
var data = new FormData(document.getElementById("detailForm"));
function fileSave(){
//첨부파일 등록 처리-step1
//if(!data.get("fileSize")){
if($('#tbody_fiielist tr').length*1<=0){
alert("첨부파일을 등록해 주세요");
if(control1.getFileCount() == 0){
alert("강의계획서를 첨부해주세요.")
return false;
}
//첨부파일 등록 처리-step2
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
if(confirm("강의계획서를 제출 하시겠습니까?")){
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/asgnmInfo/lctrPlanRegAjax.do",
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(status == 'success'){
alert("등록 되었습니다.");
location.reload();
} else if(status== 'fail'){
alert("등록에 실패하였습니다.");
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
//upload.jsp에서 /app/doc/offedu/sht/로 다시 set. context-properties.xml에서 파일 경로도 /app/doc/offedu/sht/
var postObj = new Object();
postObj.innoDirPath = $('#innoDirPath').val();
control1.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
control1.upload();
}
</script>
</head>
<body>
@ -99,6 +131,8 @@
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" value="<c:out value='${info.eduChasiOrd}'/>"/> <!-- 교육차시 순번 -->
<input type="hidden" name="hstryCd" id="hstryCd" value=""/> <!-- 배정내역 코드 -->
<input type="hidden" name="limitcount" id="limitcount" value="1" /><!-- 최대 업로드 파일갯수 -->
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${info.prcsAplctPrdOrd}'/>"/> /><!-- 최대 업로드 파일갯수 -->
<input type="hidden" id="innoDirPath" value="<spring:eval expression="@globalSettings['Globals.Innorix.FilePath']"/>" />
<div class="cont_tit">
<h2>강의내역상세</h2>
<div class="sns_go">
@ -155,7 +189,7 @@
<p>기간</p>
</th>
<td>
<c:out value="${info.strtPnttm}"/>~<c:out value="${info.endPnttm}"/>
<c:out value="${info.eduStrtPnttm}"/>~<c:out value="${info.eduDdlnPnttm}"/>
</td>
</tr>
<tr class="trLength2">
@ -211,13 +245,14 @@
<p>신청자수</p>
</th>
<td>
<c:out value="${info.nosCnt1}"/>
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>신청자수</p>
</th>
<td colspan="3"></td>
<td colspan="3"><c:out value="${info.nosCnt1}"/></td>
</tr>
<tr class="trLength4">
<th scope="row">
@ -233,6 +268,28 @@
</th>
<td colspan="3"><ve:code codeId="VEA004" code="${info.ddlnCd}"/></td>
</tr>
<tr class="trLength4">
<th scope="row"><p>강의계획서</p></th>
<td>
<div class="btn_wrap">
<button type="button" onclick="control1.openFileDialogSingle();" class="btnType01 lctrPlan_btn_add_file">강의계획서 파일찾기</button>
<button type="button" onclick="fileSave();" class="btnType01 lctrPlan_btn_add_file">제출</button>
<%-- <c:if test="${info.lctrPlanRsltAtchFileId != null && info.lctrPlanRsltAtchFileId != ''}">
<button type="button" id="control1DownBtn" onclick="control1.download();" class="btnType01 cpy_btn_add_file">다운로드</button>
</c:if> --%>
</div>
<div id="lctrPlan"></div><br/>
<div class="file_cf">
<div class="cf_left">
<p>최대 <span class="lctrPlan_limitFileCount">1</span>개</p>
</div>
<div class="cf_right">
<p>등록된 파일 <span class="upload_number lctrPlan_totalfileCount">0</span>개</p>
<span class="upload_number lctrPlan_totalfileSize">0MB</span>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
@ -242,118 +299,51 @@
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>강사정보</p>
<p>강사 배치 정보</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr class="trLength4">
<th scope="row">
<p>성명</p>
</th>
<td>
성인강사2
</td>
<th scope="row">
<p>구분</p>
</th>
<td>
성인 강사
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>성명</p>
</th>
<td colspan="3">
성인강사2
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>구분</p>
</th>
<td colspan="3">
성인 강사
</td>
</tr>
<tr>
<th scope="row">
<p>거주지</p>
</th>
<td colspan="3">
광주광역시(동구 계림동)
</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>강사료(a)</p>
</th>
<td>
0
</td>
<th scope="row">
<p>출장비(b)</p>
</th>
<td>
0
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>강사료(a)</p>
</th>
<td colspan="3">0</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>출장비(b)</p>
</th>
<td colspan="3">0</td>
</tr>
<tr class="trLength4">
<th scope="row">
<p>여비(c)</p>
</th>
<td>
0
</td>
<th scope="row">
<p>총액(a)+(b)+(c)</p>
</th>
<td>
0
</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>여비(c)</p>
</th>
<td colspan="3">0</td>
</tr>
<tr class="trLength2">
<th scope="row">
<p>총액(a)+(b)+(c)</p>
</th>
<td colspan="3">0</td>
</tr>
</tbody>
</table>
<div class="t_dashboard_btm">
<div class="tb_list01" style="width:100%;">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
<col style="width: 220px;">
</colgroup>
<thead>
<th>강사명</th>
<th>연락처</th>
<th>확정여부</th>
</thead>
<tbody>
<c:choose>
<c:when test="${!empty instrAsgnmList }">
<c:forEach var="list" items="${instrAsgnmList}" varStatus="status">
<tr>
<td>
<c:out value="${list.instrNm }"/>
</td>
<td>
<c:out value="${list.phone }"/>
</td>
<td>
<ve:code codeId="VE0019" code="${list.asgnmAprvlCd}"/>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="4">강사 배치 정보가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</div>
@ -361,92 +351,6 @@
<dl class="filewrap_div">
<c:if test="${empty fileList}">
<dt><p class="req_text"><span>필수입력 항목</span>*</p>강의계획서</dt>
<dd colspan="3" class="upload_area">
<div class="btn_wrap">
<button type="button" class="btnType01 btn_add_file">강의계획서 업로드</button>
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
</div>
<div class="file_wrap file_upload_box no_img_box">
<table>
<caption>첨부파일 파일 명, 종류, 크기 정보 제공</caption>
<colgroup>
<col style="width: auto;">
<col style="width: 15%;">
<col style="width: 15%;">
</colgroup>
<thead>
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
</thead>
<tbody class="tb_file_before">
<tr>
<td colspan="3">
<p>첨부하실 파일을 <span>마우스끌어서</span> 넣어주세요.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="file_wrap fileAfter file_list_div">
<table>
<caption>첨부파일 파일 명, 종류, 크기, 삭제 정보 제공</caption>
<colgroup>
<col style="width: auto;">
<col style="width: 15%;">
<col style="width: 15%;">
<col style="width: 100px;">
</colgroup>
<thead>
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody id="tbody_fiielist" class="tb_file_after">
<c:forEach var="fileList" items="${fileList}" varStatus="status">
<tr class="item_${fileList.atchFileId}_${fileList.fileSn} uploaded_obj">
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
<td class="td_filename">
<span class="file_name_text">${fileList.orignlFileNm}</span>
</td>
<td class="td_filesort">
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
</td>
<td class="td_filesize">
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
</td>
<td>
<button type="button" class="btn_del" onclick="delAtchFile('${fileList.atchFileId}', '${fileList.fileSn}'); return false;"><i></i></button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
<div class="file_cf">
<div class="cf_left">
<p>최대 <span>1</span>개</p>
<p><span>500MB</span>제한</p>
</div>
<div class="cf_right btn_wrap">
<button type="button" onclick="fncSave(); return false;" class="btnType05" style="height: 40px;">제출</button>
</div>
</div>
</dd>
</c:if>
<c:if test="${not empty fileList}">
<td class="file_download">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.lctrPlanAtchFileId}" />
</c:import>
</td>
</c:if>
</dl>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>

View File

@ -112,7 +112,7 @@
</tr>
</c:forEach>
<c:if test="${empty vEPrcsDetailVOList}">
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
@ -183,7 +183,7 @@
</ul>
</c:forEach>
<c:if test="${empty vEPrcsDetailVOList}">
<ul><li colspan="5"><spring:message code="common.nodata.msg" /></li></ul>
<ul><li colspan="4"><spring:message code="common.nodata.msg" /></li></ul>
</c:if>
</div>