|
|
|
@ -29,18 +29,6 @@
|
|
|
|
|
<label for="rtpyrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부자</label>
|
|
|
|
|
<input type="text" class="form-control w-60" id="rtpyrNm--${pageName}" name="rtpyrNm" data-map="RTPYR_NM" readonly />
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 접수 번호 -->
|
|
|
|
|
<div class="col-md-4">
|
|
|
|
|
<label for="rcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">접수 번호</label>
|
|
|
|
|
<input type="text" class="form-control w-30" id="rcptNo--${pageName}" name="rcptNo" data-map="RCPT_NO" required />
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 접수 일자 -->
|
|
|
|
|
<div class="col-md-4">
|
|
|
|
|
<label for="rcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">접수 일자</label>
|
|
|
|
|
<input type="text" class="form-control form-date" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD"
|
|
|
|
|
data-fmt-type="day" title="날짜 선택" maxlength="10" required />
|
|
|
|
|
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 접수 구분 -->
|
|
|
|
|
<div class="col-md-4">
|
|
|
|
|
<label for="rcptSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">접수 구분</label>
|
|
|
|
@ -51,15 +39,17 @@
|
|
|
|
|
</c:forEach>
|
|
|
|
|
</select>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 소유주 관계 구분 코드 -->
|
|
|
|
|
<!-- 접수 번호 -->
|
|
|
|
|
<div class="col-md-4">
|
|
|
|
|
<label for="ownrRelCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">소유주 관계 구분</label>
|
|
|
|
|
<select class="form-select" id="ownrRelCd--${pageName}" name="ownrRelCd" data-map="OWNR_REL_CD">
|
|
|
|
|
<option value="">선택하세요</option>
|
|
|
|
|
<c:forEach items="${FIM032List}" var="item">
|
|
|
|
|
<option value="${item.code}">${item.value}</option>
|
|
|
|
|
</c:forEach>
|
|
|
|
|
</select>
|
|
|
|
|
<label for="rcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">접수 번호</label>
|
|
|
|
|
<input type="text" class="form-control w-30" id="rcptNo--${pageName}" name="rcptNo" data-map="RCPT_NO" required />
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 접수 일자 -->
|
|
|
|
|
<div class="col-md-4">
|
|
|
|
|
<label for="rcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">접수 일자</label>
|
|
|
|
|
<input type="text" class="form-control form-date" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD"
|
|
|
|
|
data-fmt-type="day" title="날짜 선택" maxlength="10" required />
|
|
|
|
|
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 진술자 이름 -->
|
|
|
|
|
<div class="col-md-4">
|
|
|
|
@ -74,6 +64,16 @@
|
|
|
|
|
<label for="sttrBrdt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">생년월일</label>
|
|
|
|
|
<input type="text" class="form-control w-25" id="sttrBrdt--${pageName}" name="sttrBrdt" data-map="STTR_BRDT" placeholder="YY-MM-DD" />
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 소유주 관계 구분 코드 -->
|
|
|
|
|
<div class="col-md-4">
|
|
|
|
|
<label for="ownrRelCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">소유주 관계 구분</label>
|
|
|
|
|
<select class="form-select" id="ownrRelCd--${pageName}" name="ownrRelCd" data-map="OWNR_REL_CD">
|
|
|
|
|
<option value="">선택하세요</option>
|
|
|
|
|
<c:forEach items="${FIM032List}" var="item">
|
|
|
|
|
<option value="${item.code}">${item.value}</option>
|
|
|
|
|
</c:forEach>
|
|
|
|
|
</select>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 진술자 주소 --><!-- 진술자 우편번호 -->
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<label for="sttrAddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">주소</label>
|
|
|
|
@ -106,8 +106,8 @@
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 의견 제출 구분 코드 -->
|
|
|
|
|
<div class="col-md-4">
|
|
|
|
|
<label for="opnnSbmsnSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">의견제출 구분</label>
|
|
|
|
|
<select class="form-select" id="opnnSbmsnSeCd--${pageName}" name="opnnSbmsnSeCd" data-map="OPNN_SBMSN_SE_CD" required>
|
|
|
|
|
<label for="opnnSbmsnSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출 구분</label>
|
|
|
|
|
<select class="form-select" id="opnnSbmsnSeCd--${pageName}" name="opnnSbmsnSeCd" data-map="OPNN_SBMSN_SE_CD">
|
|
|
|
|
<option value="">선택하세요</option>
|
|
|
|
|
<c:forEach items="${FIM033List}" var="item">
|
|
|
|
|
<option value="${item.code}">${item.value}</option>
|
|
|
|
@ -131,14 +131,12 @@
|
|
|
|
|
|
|
|
|
|
<!-- 첨부 파일 -->
|
|
|
|
|
<div class="card">
|
|
|
|
|
<form id="frmFile--${pageName}" method="post" enctype="multipart/form-data">
|
|
|
|
|
<input type="file" id="uploadFiles--${pageName}" name="uploadFiles" multiple="multiple" />
|
|
|
|
|
<form id="frmFile--${pageName}" method="post" enctype="multipart/form-data" >
|
|
|
|
|
<input type="file" id="uploadFiles--${pageName}" name="uploadFiles" multiple="multiple" onchange="fnAddFiles(this);" hidden />
|
|
|
|
|
</form>
|
|
|
|
|
<div class="row g-1">
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<button class="btn btn-blue" id="btnAddFile--${pageName}" title="첨부파일 추가">파일 추가</button>
|
|
|
|
|
<button class="btn btn-blue" id="btnDelFile--${pageName}" title="첨부파일 삭제">파일 삭제</button>
|
|
|
|
|
<button class="btn btn-blue" id="btnFileDownload--${pageName}" title="첨부파일 다운로드" onclick="fnBtnFileDownload${pageName}()">다운로드</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
@ -150,7 +148,8 @@
|
|
|
|
|
<th class="text-center" style="width: 200px">파일 번호</th>
|
|
|
|
|
<th class="text-center">파일 이름</th>
|
|
|
|
|
<th class="text-center" style="width: 200px">파일 크기</th>
|
|
|
|
|
<th class="text-center" style="width: 120px">파일 삭제</th>
|
|
|
|
|
<th class="text-center" style="width: 120px">다운로드</th>
|
|
|
|
|
<th class="text-center" style="width: 120px">삭제</th>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody></tbody>
|
|
|
|
|
</table>
|
|
|
|
@ -179,10 +178,10 @@
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
// URL
|
|
|
|
|
var prefixUrl = "/excl/excl02";
|
|
|
|
|
//
|
|
|
|
|
// FormFields
|
|
|
|
|
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}");
|
|
|
|
|
// 파일 업로드
|
|
|
|
|
var ${pageName}UploadFiles = uploadSupport("#uploadFiles--${pageName}");
|
|
|
|
|
// 파일 리스트
|
|
|
|
|
var $fileListArr = new Array();
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
* DatasetControl
|
|
|
|
@ -232,20 +231,24 @@
|
|
|
|
|
let create = isEmpty(info.opnnId);
|
|
|
|
|
|
|
|
|
|
// 첨부파일
|
|
|
|
|
let formData = new FormData(document.getElementById("frmFile--${pageName}"));
|
|
|
|
|
// let formData = new FormData(document.getElementById("frmFile--${pageName}"));
|
|
|
|
|
let formData = new FormData();
|
|
|
|
|
debugger;
|
|
|
|
|
for (let iLoop = 0; iLoop < $fileListArr.length; iLoop++) {
|
|
|
|
|
formData.append("uploadFiles" , $fileListArr[iLoop]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for(let key in info) {
|
|
|
|
|
let value = info[key];
|
|
|
|
|
|
|
|
|
|
formData.append(key, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (formData.get("uploadFiles").size == 0) {
|
|
|
|
|
formData.delete("uploadFiles");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ajax.post({
|
|
|
|
|
url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create
|
|
|
|
|
, data : formData, contentType : false, processData : false
|
|
|
|
|
, data : formData
|
|
|
|
|
, contentType : false
|
|
|
|
|
, processData : false
|
|
|
|
|
, success : resp => ${pageName}Control.onSave(resp)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -326,6 +329,11 @@
|
|
|
|
|
|
|
|
|
|
// 첨부파일 조회
|
|
|
|
|
function fnSearchFileList${pageName}(opnnId) {
|
|
|
|
|
// 의견제출 등록일 경우에는 첨부파일을 조회하지 안는다..
|
|
|
|
|
if (opnnId == null || opnnId == "") {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 첨부파일 리스트
|
|
|
|
|
ajax.get({
|
|
|
|
|
url : "file/list.do"
|
|
|
|
@ -338,28 +346,103 @@
|
|
|
|
|
let fileList = resp.fileList;
|
|
|
|
|
|
|
|
|
|
fileList.forEach(function (item, index, array) {
|
|
|
|
|
let itemNo = index + 1;
|
|
|
|
|
|
|
|
|
|
$("#fileList--${pageName} > tbody:last").append("<tr>");
|
|
|
|
|
$("#fileList--${pageName} > tbody:last").append("<td class='text-center'>" + itemNo + "</td>");
|
|
|
|
|
$("#fileList--${pageName} > tbody:last").append("<td class='text-center'>" + item.FILE_ID + "</td>");
|
|
|
|
|
$("#fileList--${pageName} > tbody:last").append("<td class='text-center'>" + item.FILE_NM + "</td>");
|
|
|
|
|
$("#fileList--${pageName} > tbody:last").append("<td class='text-center'>" + item.FILE_SIZE + " byte</td>");
|
|
|
|
|
$("#fileList--${pageName} > tbody:last").append("<td class='text-center'>" + "<button class='btn' onclick='fnBtnFileRemove${pageName}(" + item.FILE_ID + ");'><i class='bx bx-trash me-1'></i>삭제</button>" + "</td>");
|
|
|
|
|
$("#fileList--${pageName} > tbody:last").append("</tr>");
|
|
|
|
|
fileNo = index + 1;
|
|
|
|
|
|
|
|
|
|
let innerHtml = "";
|
|
|
|
|
|
|
|
|
|
innerHtml += "<tr>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + fileNo + "</td>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + item.FILE_ID + "</td>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + item.FILE_NM + "</td>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + item.FILE_SIZE + " byte</td>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + "<button class='btn' onclick='fnBtnFileDownload${pageName}(" + item.FILE_ID + ");'><i class='bx bx-download me-1'></i></button>" + "</td>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + "<button class='btn' onclick='fnBtnFileRemove${pageName}(this);'><i class='bx bx-trash me-1'></i></button>" + "</td>";
|
|
|
|
|
innerHtml += "</tr>";
|
|
|
|
|
|
|
|
|
|
$("#fileList--${pageName} > tbody:last").append(innerHtml);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 첨부파일 다운로드
|
|
|
|
|
function fnBtnFileDownload${pageName}() {
|
|
|
|
|
// 첨부파일 등록
|
|
|
|
|
function fnAddFiles(obj) {
|
|
|
|
|
let fileNo = $("#fileList--${pageName} > tbody tr").length; // table의 tr 개수
|
|
|
|
|
|
|
|
|
|
let maxFileCnt = 3; // 첨부파일 최대 개수
|
|
|
|
|
let attFileCnt = obj.files.length; // 선택한 파일 개수 + 기존 파일 개수
|
|
|
|
|
let fileArr = new Array(); // 파일 배열
|
|
|
|
|
|
|
|
|
|
fileArr = $fileListArr;
|
|
|
|
|
|
|
|
|
|
// 등록할 파일 개수 확인
|
|
|
|
|
if (attFileCnt + fileNo > maxFileCnt) {
|
|
|
|
|
dialog.alert({
|
|
|
|
|
content : "첨부파일은 최대 " + maxFileCnt + "개 까지 첨부 가능합니다."
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 첨부파일을 table에 추가.
|
|
|
|
|
for (let iLoop = 0; iLoop < attFileCnt; iLoop++) {
|
|
|
|
|
let selectedFile = obj.files[iLoop];
|
|
|
|
|
let innerHtml = "";
|
|
|
|
|
|
|
|
|
|
fileNo += 1;
|
|
|
|
|
|
|
|
|
|
innerHtml += "<tr>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + fileNo + "</td>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + "</td>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + selectedFile.name + "</td>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + selectedFile.size + " byte</td>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + "</td>";
|
|
|
|
|
innerHtml += "<td class='text-center'>" + "<button class='btn' onclick='fnBtnFileRemove${pageName}(this);'><i class='bx bx-trash me-1'></i></button>" + "</td>";
|
|
|
|
|
innerHtml += "</tr>";
|
|
|
|
|
|
|
|
|
|
$("#fileList--${pageName} > tbody:last").append(innerHtml);
|
|
|
|
|
|
|
|
|
|
fileArr.push(obj.files[iLoop]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 파일 삭제
|
|
|
|
|
function fnFileRemove${pageName}(obj) {
|
|
|
|
|
let tr = $(obj).parent().parent(); // 클릭한 버튼이 속한 tr 요소
|
|
|
|
|
let td = tr.children();
|
|
|
|
|
|
|
|
|
|
let fileNo = td.eq(0).text(); // 삭제할 파일 번호
|
|
|
|
|
let fileId = td.eq(1).text();
|
|
|
|
|
|
|
|
|
|
if (fileId != null && fileId != "") {
|
|
|
|
|
ajax.post({
|
|
|
|
|
url : "file/remove.do"
|
|
|
|
|
, data : { fileIDs : fileId }
|
|
|
|
|
, success : resp => {
|
|
|
|
|
// 성공
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
// 배열에서 삭제한다. 배열은 0부터 시작하기 때문에 -1 해준다.
|
|
|
|
|
$fileListArr.splice(fileNo - 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 첨부파일 삭제
|
|
|
|
|
function fnBtnFileRemove${pageName}(fileId) {
|
|
|
|
|
$(obj).closest("tr").remove(); // table 에서 제거
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 첨부파일 삭제 버튼 클릭
|
|
|
|
|
function fnBtnFileRemove${pageName}(obj) {
|
|
|
|
|
dialog.alert({
|
|
|
|
|
content : "선택한 파일을 삭제하시겠습니까?"
|
|
|
|
|
, onOK : () => {
|
|
|
|
|
fnFileRemove${pageName}(obj);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 첨부파일 다운로드
|
|
|
|
|
function fnBtnFileDownload${pageName}(fileId) {
|
|
|
|
|
top.location.href = "/file/download.do?fileID=" + fileId;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
|