1. 의견제출 수정.

2. 기타 수정.
main
jjh 3 months ago
parent 038da67b5b
commit 04d62deb47

@ -34,7 +34,7 @@
<div class="row g-1"> <div class="row g-1">
<!-- 업무 구분 --> <!-- 업무 구분 -->
<div class="col-12"> <div class="col-12">
<span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span> <span class="form-label form-search-title w-px-120 text-end fw-bold">업무구분</span>
<span class="form-search-linebox"> <span class="form-search-linebox">
<c:forEach items="${taskListForSgg}" var="item"> <c:forEach items="${taskListForSgg}" var="item">
<label> <label>
@ -47,7 +47,7 @@
</div> </div>
<!-- 부과 제외 일자 --> <!-- 부과 제외 일자 -->
<div class="col-6"> <div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end">부과제외일자</label> <label class="form-label form-search-title w-px-120 text-end fw-bold">부과제외일자</label>
<span class="form-search-linebox"> <span class="form-search-linebox">
<input type="text" class="form-control form-date" name="schLevyExclYmdFrom" <input type="text" class="form-control form-date" name="schLevyExclYmdFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" /> data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
@ -58,9 +58,9 @@
<button type="button" class="bx bx-lg bx-calendar bg-white"></button> <button type="button" class="bx bx-lg bx-calendar bg-white"></button>
</span> </span>
</div> </div>
<!-- 부과 제외 구분 --> <!-- 부과 제외 구분 코드 -->
<div class="col-6"> <div class="col-6">
<label is="name-label" class="form-label fw-bold form-search-title w-px-120 text-end" for="schLevyExclSeCd">부과제외구분</label> <label is="name-label" class="form-label form-search-title w-px-120 text-end fw-bold" for="schLevyExclSeCd">부과제외구분</label>
<select is="id-select" class="form-select w-px-120" name="schLevyExclSeCd"> <select is="id-select" class="form-select w-px-120" name="schLevyExclSeCd">
<option value="">전체</option> <option value="">전체</option>
<c:forEach items="${FIM021List}" var="item"> <c:forEach items="${FIM021List}" var="item">
@ -68,9 +68,9 @@
</c:forEach> </c:forEach>
</select> </select>
</div> </div>
<!-- 부과 제외 사유 --> <!-- 부과 제외 사유 코드 -->
<div class="col-6"> <div class="col-6">
<label is="name-label" class="form-label fw-bold form-search-title w-px-120 text-end" for="schLevyExclRsnCd">부과제외사유</label> <label is="name-label" class="form-label form-search-title w-px-120 text-end fw-bold" for="schLevyExclRsnCd">부과제외사유</label>
<select is="id-select" class="form-select w-px-200" name="schLevyExclRsnCd"> <select is="id-select" class="form-select w-px-200" name="schLevyExclRsnCd">
<option value="">전체</option> <option value="">전체</option>
<c:forEach items="${FIM022List}" var="item"> <c:forEach items="${FIM022List}" var="item">
@ -101,7 +101,7 @@
<div class="row g-1"> <div class="row g-1">
<!-- 단속일자 --> <!-- 단속일자 -->
<div class="col-4"> <div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end">단속일자</label> <label class="form-label form-search-title w-px-120 text-end fw-bold">단속일자</label>
<span class="form-search-linebox"> <span class="form-search-linebox">
<input type="text" class="form-control form-date" name="schCrdnYmdFrom" <input type="text" class="form-control form-date" name="schCrdnYmdFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" /> data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
@ -114,17 +114,17 @@
</div> </div>
<!-- 차량번호 --> <!-- 차량번호 -->
<div class="col-4"> <div class="col-4">
<label is="name-label" class="form-label fw-bold form-search-title w-px-120 text-end" for="schVhrno">차량번호</label> <label is="name-label" class="form-label form-search-title w-px-120 text-end fw-bold" for="schVhrno">차량번호</label>
<input is="id-input" type="text" class="form-control w-px-160" name="schVhrno" autocomplete="off" /> <input is="id-input" type="text" class="form-control w-px-160" name="schVhrno" autocomplete="off" />
</div> </div>
<!-- 납부자번호 --> <!-- 납부자번호 -->
<div class="col-4"> <div class="col-4">
<label is="name-label" class="form-label fw-bold form-search-title w-px-120 text-end" for="schRtpyrNm">납부자번호</label> <label is="name-label" class="form-label form-search-title w-px-120 text-end fw-bold" for="schRtpyrNm">납부자번호</label>
<input is="id-input" type="text" class="form-control w-px-160" name="schRtpyrNm" autocomplete="off" /> <input is="id-input" type="text" class="form-control w-px-160" name="schRtpyrNm" autocomplete="off" />
</div> </div>
<!-- 납부자명 --> <!-- 납부자명 -->
<div class="col-4"> <div class="col-4">
<label is="name-label" class="form-label fw-bold form-search-title w-px-120 text-end" for="schRtpyrNo">납부자명</label> <label is="name-label" class="form-label form-search-title w-px-120 text-end fw-bold" for="schRtpyrNo">납부자명</label>
<input is="id-input" type="text" class="form-control w-px-160" name="schRtpyrNo" autocomplete="off" /> <input is="id-input" type="text" class="form-control w-px-160" name="schRtpyrNo" autocomplete="off" />
</div> </div>
<!-- 등록일자, 수정일자 --> <!-- 등록일자, 수정일자 -->
@ -223,6 +223,7 @@
<th class="cmn" style="width: 140px;">수정사용자</th> <th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th> <th class="cmn dummy-th"></th>
</template> </template>
<tbody name="tbodyList"> <tbody name="tbodyList">
</tbody> </tbody>
<template is="curly-brackets" name="tmpltRows"> <template is="curly-brackets" name="tmpltRows">
@ -344,7 +345,7 @@
// datasetPaging // datasetPaging
Apply.fromDataset.paging($P.ctrl.dataset, obj, $P.find("dataPaging"), $P.find("dataPagingInfo")); Apply.fromDataset.paging($P.ctrl.dataset, obj, $P.find("dataPaging"), $P.find("dataPagingInfo"));
}; }
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
$P.ctrl.onCurrentChange = (item) => { $P.ctrl.onCurrentChange = (item) => {
@ -353,13 +354,13 @@
let key = item.data.LEVY_EXCL_ID; let key = item.data.LEVY_EXCL_ID;
$P.$find("tbodyList").setCurrentRow(key); $P.$find("tbodyList").setCurrentRow(key);
}; }
// 선택(체크) 변경 이벤트 // 선택(체크) 변경 이벤트
$P.ctrl.onSelectionChange = (selected) => { $P.ctrl.onSelectionChange = (selected) => {
Apply.fromDataset.gridCheckbox($P.ctrl.dataset, $P.find("tbodyList"), 1, selected); Apply.fromDataset.gridCheckbox($P.ctrl.dataset, $P.find("tbodyList"), 1, selected);
Apply.fromDataset.gridButton($P.ctrl.dataset, $P.find("btnRemove"), selected); // 삭제 버튼 Apply.fromDataset.gridButton($P.ctrl.dataset, $P.find("btnRemove"), selected); // 삭제 버튼
}; }
// 상세정보 dialog // 상세정보 dialog
$P.ctrl.getInfo = (params) => { $P.ctrl.getInfo = (params) => {
@ -424,7 +425,7 @@
$P.renderList = (totalSize, option) => { $P.renderList = (totalSize, option) => {
let dataList = $P.ctrl.dataset; let dataList = $P.ctrl.dataset;
let empty = dataList.empty; let empty = dataList.empty;
let clsForTask = $P.$find("taskSeCd").val().toLowerCase(); // 소문자 let clsForTask = $P.$find("frmSearch").find("[name='taskSeCd']:checked").val().toLowerCase();
// 업무별 DataTables(그리드) tr, td // 업무별 DataTables(그리드) tr, td
let foundContent = $P.find("tmpltRows").content; let foundContent = $P.find("tmpltRows").content;
@ -482,13 +483,13 @@
// 개별총정보 dialog // 개별총정보 dialog
let crdnId = $P.ctrl.getValue("CRDN_ID"); let crdnId = $P.ctrl.getValue("CRDN_ID");
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (!crdnId) return;
let params = { let params = {
callControlName: "pageObject['${pageName}'].ctrl" callControlName: "pageObject['${pageName}'].ctrl"
, sggCd: $P.ctrl.getValue("SGG_CD") , sggCd: $P.ctrl.getValue("SGG_CD")
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") , taskSeCd: $P.ctrl.getValue("TASK_SE_CD")
, crdnId: crdnId , crdnId: $P.ctrl.getValue("CRDN_ID")
} }
ajax.get({ ajax.get({
@ -536,7 +537,7 @@
// 서버에 전송할 data(파라미터) 생성 // 서버에 전송할 data(파라미터) 생성
let params = { let params = {
sggCd: $P.$find("sggCd").val() // 시군구 코드 sggCd: $P.$find("sggCd").val() // 시군구 코드
, taskSeCd: $P.$find("taskSeCd").val() // 업무 구분 코드 , taskSeCd: $P.$find("frmSearch").find("[name='taskSeCd']:checked").val() // 업무 구분 코드
, levyExclIds: selected.join(",") // 부과 제외 IDs , levyExclIds: selected.join(",") // 부과 제외 IDs
, btnTitle: obj.btnTitle // 버튼 title , btnTitle: obj.btnTitle // 버튼 title
, delRsn: obj.reason // 삭제 사유 , delRsn: obj.reason // 삭제 사유
@ -549,13 +550,10 @@
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 초기화 버튼 이벤트 // 초기화 버튼 이벤트
$P.fnReset = () => { $P.fnReset = (taskSeCd) => {
// 화면 초기화 // 화면 초기화
$P.find("frmSearch").reset(); $P.find("frmSearch").reset();
// dataset 초기화
$P.ctrl.dataset.clear();
// input, select 초기화 // input, select 초기화
let searchForm = $P.$find("frmSearch"); let searchForm = $P.$find("frmSearch");
searchForm.find("input[type='radio']").not("[name='taskSeCd']").prop("checked", false); searchForm.find("input[type='radio']").not("[name='taskSeCd']").prop("checked", false);
@ -564,24 +562,39 @@
searchForm.find("input[type='hidden']").val(""); searchForm.find("input[type='hidden']").val("");
searchForm.find("select").each(function(){ $(this).find("option:eq(0)").prop("selected", true); }); searchForm.find("select").each(function(){ $(this).find("option:eq(0)").prop("selected", true); });
// 최고 관리자인지 권한을 확인하여 업무구분을 선택할 수 있도록 하자 -> 수정 필요
$P.$find("frmSearch").find("input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
});
initDatepicker($P.find("frmSearch")); // 달력 초기화
initDetailSearchButton($P.find("frmSearch")); // 상세검색 버튼 화살표
// 기본 데이터 설정 // 기본 데이터 설정
$P.$find("byOutput").val("동적 검색"); // 동적 검색
$P.$find("schRgtrNm").prop("readonly", true); // 사용자 이름
$P.$find("sggCd").val("${sggCd}"); // 시군구 코드 $P.$find("sggCd").val("${sggCd}"); // 시군구 코드
if (taskSeCd) {
$P.$find("frmSearch").find("input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
}
$P.$find("schLevyExclYmdFrom").datepicker('setDate', DateUtil.getDateDay(-7).date); // 부과 제외 일자 시작 $P.$find("schLevyExclYmdFrom").datepicker('setDate', DateUtil.getDateDay(-7).date); // 부과 제외 일자 시작
$P.$find("schLevyExclYmdTo").datepicker('setDate', TODAY()); // 부과 제외 일자 종료 $P.$find("schLevyExclYmdTo").datepicker('setDate', TODAY()); // 부과 제외 일자 종료
$P.$find("byOutput").val("동적 검색"); // 동적 검색
$P.$find("schRgtrNm").prop("readonly", true); // 사용자 이름
// dataset 초기화
$P.ctrl.dataset.clear();
} }
// 업무 구분 변경 이벤트 // 업무 구분 변경 이벤트
$P.fnResetAndChangeBiz = (taskSeCd) => { $P.fnResetAndChangeBiz = (taskSeCd) => {
// 초기화
$P.fnReset();
// 업무 구분 코드 // 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { if (!taskSeCd) {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
} }
$P.$find("frmSearch").find("input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 초기화
$P.fnReset(taskSeCd);
// 업무구분에 따른 URL 설정 // 업무구분에 따른 URL 설정
$P.ctrl.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do"); $P.ctrl.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do");
@ -666,11 +679,11 @@
let levyExclId = $P.ctrl.getValue("LEVY_EXCL_ID"); let levyExclId = $P.ctrl.getValue("LEVY_EXCL_ID");
// 부과제외 ID 가 없다면.. return // 부과제외 ID 가 없다면.. return
if (typeof levyExclId == "undefined" || levyExclId == null || levyExclId == "") return; if (!levyExclId) return;
let params = { let params = {
callPurpose: "update" // 호출용도: 수정 btnTitle: btnTitle // 버튼 title
, btnTitle: btnTitle // 버튼 title , callPurpose: "update" // 호출용도: 수정
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드 , sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, levyExclId: $P.ctrl.getValue("LEVY_EXCL_ID") // 부과제외 ID , levyExclId: $P.ctrl.getValue("LEVY_EXCL_ID") // 부과제외 ID
@ -767,11 +780,8 @@
// 1. 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 2. 초기 설정 // 2. 초기 설정 및 업무 구분 변경
initDatepicker($P.find("frmSearch")); // 달력 초기화 $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
initDetailSearchButton($P.find("frmSearch")); //
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); // 초기 설정 및 업무 구분 변경
// 3. 보안모드 // 3. 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));

@ -20,17 +20,17 @@
<!-- 단속일시 --> <!-- 단속일시 -->
<div class="col-md-12"> <div class="col-md-12">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="crdnYmdTm">단속일시</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="crdnYmdTm">단속일시</label>
<input is="id-input" type="text" class="form-control w-px-160" name="crdnYmdTm" data-map="CRDN_YMD_TM" data-fmt-type="dt" /> <input is="id-input" type="text" class="form-control w-px-160" name="crdnYmdTm" data-map="CRDN_YMD_TM" data-fmt-type="dt" readonly />
</div> </div>
<!-- 차량번호 --> <!-- 차량번호 -->
<div class="col-md-12"> <div class="col-md-12">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="vhrno">차량번호</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="vhrno">차량번호</label>
<input is="id-input" type="text" class="form-control w-px-120" name="vhrno" data-map="VHRNO" autocomplete="off" /> <input is="id-input" type="text" class="form-control w-px-120" name="vhrno" data-map="VHRNO" autocomplete="off" readonly />
</div> </div>
<!-- 부과 제외 구분 --> <!-- 부과 제외 구분 -->
<div class="col-md-12"> <div class="col-md-12">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="levyExclSeNm">부과제외구분</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="levyExclSeNm">부과제외구분</label>
<input is="id-input" type="text" class="form-control w-px-120" name="levyExclSeNm" autocomplete="off" /> <input is="id-input" type="text" class="form-control w-px-120" name="levyExclSeNm" autocomplete="off" readonly />
<input type="hidden" name="levyExclSeCd" data-map="LEVY_EXCL_SE_CD" /> <input type="hidden" name="levyExclSeCd" data-map="LEVY_EXCL_SE_CD" />
</div> </div>
<!-- 부과 제외 일자 --> <!-- 부과 제외 일자 -->
@ -53,7 +53,7 @@
<!-- 기타 내용 --> <!-- 기타 내용 -->
<div class="col-md-12"> <div class="col-md-12">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="etcCn">기타 내용</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="etcCn">기타 내용</label>
<textarea is="id-textarea" type="text" class="form-control w-70" name="etcCn" data-map="ETC_CN" autocomplete="off" rows="3" data-maxlengthb="1000"></textarea> <textarea is="id-textarea" class="form-control w-70" name="etcCn" data-map="ETC_CN" autocomplete="off" rows="3" data-maxlengthb="1000"></textarea>
</div> </div>
</div> </div>
</form> </form>
@ -64,7 +64,7 @@
<span class="container-page-btn"> <span class="container-page-btn">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-80" name="btnSave" title="저장"> <button type="button" class="btn btn-primary w-px-120" name="btnSave" title="저장">
저장 저장
</button> </button>
</span> </span>
@ -239,11 +239,6 @@
initDatepicker($P.find("frmEdit")); initDatepicker($P.find("frmEdit"));
$P.$find("levyExclYmd").datepicker("setDate", TODAY()); $P.$find("levyExclYmd").datepicker("setDate", TODAY());
// 화면 활성화 설정
$P.$find("crdnYmdTm").prop("readonly", true); // 단속 일시
$P.$find("vhrno").prop("readonly", true); // 차량번호
$P.$find("levyExclSeNm").prop("readonly", true); // 부과 제외 구분
// View로 호출되었을때 disabled 셋팅 // View로 호출되었을때 disabled 셋팅
if ($P.callPurpose == "view") { if ($P.callPurpose == "view") {
// input 요소들을 disabled // input 요소들을 disabled

File diff suppressed because it is too large Load Diff

@ -4,50 +4,50 @@
<c:set var="prefixName" scope="request">의견제출 상세 정보</c:set> <c:set var="prefixName" scope="request">의견제출 상세 정보</c:set>
<!-- inner page html --> <!-- inner page html -->
<div class="content-pop"> <div class="content-pop" data-doctx="${pageName}">
<!-- Content --> <!-- Content -->
<div class="container flex-grow-1 px-0"> <div class="container flex-grow-1 px-0">
<div class="card"> <div class="card">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form name="frmEdit">
<!-- hidden --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" /> <input type="hidden" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" /> <input type="hidden" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" /> <input type="hidden" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="opnnId--${pageName}" name="opnnId" data-map="OPNN_ID" /> <input type="hidden" name="opnnId" data-map="OPNN_ID" />
<div class="row g-1"> <div class="row g-1">
<!-- 단속일시 --> <!-- 단속일시 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="crdnYmdTm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속일시</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="crdnYmdTm">단속일시</label>
<input type="text" class="form-control w-50" id="crdnYmdTm--${pageName}" name="crdnYmdTm" data-map="CRDN_YMD_TM" data-fmt-type="dt" /> <input is="id-input" type="text" class="form-control w-50" name="crdnYmdTm" data-map="CRDN_YMD_TM" data-fmt-type="dt" readonly />
</div> </div>
<!-- 차량번호 --> <!-- 차량번호 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="vhrno">차량번호</label>
<input type="text" class="form-control w-40" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" /> <input is="id-input" type="text" class="form-control w-45" name="vhrno" data-map="VHRNO" readonly />
</div> </div>
<!-- 납부자 명 --> <!-- 납부자 명 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="rtpyrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부자</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rtpyrNm">납부자</label>
<input type="text" class="form-control w-55" id="rtpyrNm--${pageName}" name="rtpyrNm" data-map="RTPYR_NM" /> <input is="id-input" type="text" class="form-control w-55" name="rtpyrNm" data-map="RTPYR_NM" readonly />
</div> </div>
<!-- 접수 번호 --> <!-- 접수 번호 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="rcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수번호</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcptNo">접수번호</label>
<input type="text" class="form-control w-40" id="rcptNo--${pageName}" name="rcptNo" data-map="RCPT_NO" /> <input is="id-input" type="text" class="form-control w-40" name="rcptNo" data-map="RCPT_NO" />
</div> </div>
<!-- 접수 일자 --> <!-- 접수 일자 -->
<div class="col-md-4"> <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> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="rcptYmd">접수일자</label>
<input type="text" class="form-control form-date" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD" <input is="id-input" type="text" class="form-control form-date" name="rcptYmd" data-map="RCPT_YMD"
data-fmt-type="day" title="날짜 선택" maxlength="10" required /> data-fmt-type="day" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-lg bx-calendar bg-white" id="btnRcptYmd--${pageName}"></button> <button type="button" class="bx bx-lg bx-calendar bg-white" id="btnRcptYmd--${pageName}"></button>
</div> </div>
<!-- 접수 구분 --> <!-- 접수 구분 -->
<div class="col-md-4"> <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> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="rcptSeCd">접수구분</label>
<select class="form-select" id="rcptSeCd--${pageName}" name="rcptSeCd" data-map="RCPT_SE_CD" required> <select is="id-select" class="form-select" name="rcptSeCd" data-map="RCPT_SE_CD" required>
<option value="">선택하세요</option> <option value="">선택하세요</option>
<c:forEach items="${FIM029List}" var="item"> <c:forEach items="${FIM029List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
@ -56,21 +56,21 @@
</div> </div>
<!-- 진술자 이름 --> <!-- 진술자 이름 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="sttrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">성명</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="sttrNm">성명</label>
<input type="text" class="form-control w-35" id="sttrNm--${pageName}" name="sttrNm" data-map="STTR_NM" required /> <input is="id-input" type="text" class="form-control w-35" name="sttrNm" data-map="STTR_NM" required />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnSearchPayer--${pageName}" title="납부자 정보 적용"> <button type="button" class="btn btn-sm btn-outline-dark" name="btnSearchPayer" title="납부자 정보 적용">
납부자 납부자
</button> </button>
</div> </div>
<!-- 진술자 생년월일 --> <!-- 진술자 생년월일 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="sttrBrdt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">생년월일</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrBrdt">생년월일</label>
<input type="text" class="form-control w-30" id="sttrBrdt--${pageName}" name="sttrBrdt" data-map="STTR_BRDT" placeholder="YYMMDD" /> <input is="id-input" type="text" class="form-control w-30" name="sttrBrdt" data-map="STTR_BRDT" placeholder="YYMMDD" />
</div> </div>
<!-- 소유주 관계 구분 코드 --> <!-- 소유주 관계 구분 코드 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="ownrRelCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">소유주관계</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="ownrRelCd">소유주관계</label>
<select class="form-select" id="ownrRelCd--${pageName}" name="ownrRelCd" data-map="OWNR_REL_CD"> <select is="id-select" class="form-select" name="ownrRelCd" data-map="OWNR_REL_CD" required>
<option value="">선택하세요</option> <option value="">선택하세요</option>
<c:forEach items="${FIM032List}" var="item"> <c:forEach items="${FIM032List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
@ -79,37 +79,37 @@
</div> </div>
<!-- 진술자 주소 --><!-- 진술자 우편번호 --> <!-- 진술자 주소 --><!-- 진술자 우편번호 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="sttrAddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">주소</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrAddr">주소</label>
<input type="text" class="form-control w-70" id="sttrAddr--${pageName}" name="sttrAddr" data-map="STTR_ADDR" /> <input is="id-input" type="text" class="form-control w-70" name="sttrAddr" data-map="STTR_ADDR" />
<input type="text" class="form-control w-px-75" id="sttrZip--${pageName}" name="sttrZip" data-map="STTR_ZIP" /> <input is="id-input" type="text" class="form-control w-px-75" name="sttrZip" data-map="STTR_ZIP" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnSearchAddr--${pageName}" title="주소 검색"> <button type="button" class="btn btn-sm btn-outline-dark" name="btnSearchAddr" title="주소 검색">
검색 검색
</button> </button>
</div> </div>
<!-- 진술자 상세주소 --> <!-- 진술자 상세주소 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="sttrDaddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세주소</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrDaddr">상세주소</label>
<input type="text" class="form-control w-85" id="sttrDaddr--${pageName}" name="sttrDaddr" data-map="STTR_DADDR" /> <input is="id-input" type="text" class="form-control w-85" name="sttrDaddr" data-map="STTR_DADDR" />
</div> </div>
<!-- 진술자 연락처 --> <!-- 진술자 연락처 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="sttrCttpc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">연락처</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrCttpc">연락처</label>
<input type="text" class="form-control w-45" id="sttrCttpc--${pageName}" name="sttrCttpc" data-map="STTR_CTTPC" /> <input is="id-input" type="text" class="form-control w-45" name="sttrCttpc" data-map="STTR_CTTPC" />
</div> </div>
<!-- 진술자 이메일 --> <!-- 진술자 이메일 -->
<div class="col-md-8"> <div class="col-md-8">
<label for="sttrEml--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">이메일</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrEml">이메일</label>
<input type="text" class="form-control w-40" id="sttrEml--${pageName}" name="sttrEml" data-map="STTR_EML" /> <input is="id-input" type="text" class="form-control w-40" name="sttrEml" data-map="STTR_EML" />
</div> </div>
<!-- 의견 제출 내용 --> <!-- 의견 제출 내용 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="opnnSbmsnCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출내용</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="opnnSbmsnCn">의견제출내용</label>
<textarea type="text" class="form-control w-85" id="opnnSbmsnCn--${pageName}" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="5" data-maxlengthb="4000"></textarea> <textarea is="id-textarea" type="text" class="form-control w-85" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="5" data-maxlengthb="4000"></textarea>
</div> </div>
<!-- 의견 제출 구분 코드 --> <!-- 의견 제출 구분 코드 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="opnnSbmsnSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">의견제출구분</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="opnnSbmsnSeCd">의견제출구분</label>
<select class="form-select" id="opnnSbmsnSeCd--${pageName}" name="opnnSbmsnSeCd" data-map="OPNN_SBMSN_SE_CD" required> <select is="id-select" class="form-select" name="opnnSbmsnSeCd" data-map="OPNN_SBMSN_SE_CD" required>
<option value="">선택하세요</option> <option value="">선택하세요</option>
<c:forEach items="${FIM033List}" var="item"> <c:forEach items="${FIM033List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
@ -118,14 +118,13 @@
</div> </div>
<!-- 의견 제출 요지 --> <!-- 의견 제출 요지 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="opnnSbmsnGist--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출요지</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="opnnSbmsnGist">의견제출요지</label>
<input type="text" class="form-control w-85" id="opnnSbmsnGist--${pageName}" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" /> <input is="id-input" type="text" class="form-control w-85" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" />
</div> </div>
<!-- 담당자 검토 의견 --> <!-- 담당자 검토 의견 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="picRvwOpnn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">검토의견</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="picRvwOpnn">검토의견</label>
<textarea class="form-control w-85" id="picRvwOpnn--${pageName}" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="3" data-maxlengthb="1000"> <textarea is="id-textarea" class="form-control w-85" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="2" data-maxlengthb="1000"></textarea>
</textarea>
</div> </div>
</div> </div>
</form> </form>
@ -133,17 +132,17 @@
<!-- 첨부 파일 --> <!-- 첨부 파일 -->
<div class="card"> <div class="card">
<form id="frmFile--${pageName}" method="post" enctype="multipart/form-data" > <form name="frmFile" method="post" enctype="multipart/form-data" >
<input type="file" id="uploadFiles--${pageName}" name="uploadFiles" multiple="multiple" onchange="pageObject['${pageName}'].fnAddFiles(this);" hidden /> <input type="file" name="uploadFiles" multiple="multiple" onchange="pageObject['${pageName}'].fnAddFiles(this);" hidden />
</form> </form>
<div class="row g-1"> <div class="row g-1">
<div class="col-md-12"> <div class="col-md-12">
<button type="button" class="btn btn-blue w-px-120" id="btnAddFile--${pageName}" title="첨부파일 추가">파일추가</button> <button type="button" class="btn btn-blue w-px-120" name="btnAddFile" title="첨부파일 추가">파일추가</button>
</div> </div>
</div> </div>
<!-- 첨부 파일 테이블 --> <!-- 첨부 파일 테이블 -->
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered table-hover table-striped" id="fileList--${pageName}"> <table class="table table-bordered table-hover table-striped" name="fileList">
<thead> <thead>
<th class="text-center" style="width: 24px">No.</th> <th class="text-center" style="width: 24px">No.</th>
<th class="text-center" style="width: 200px">파일번호</th> <th class="text-center" style="width: 200px">파일번호</th>
@ -152,7 +151,7 @@
<th class="text-center" style="width: 120px">다운로드</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> </thead>
<tbody> <tbody name="tbodyFileList">
</tbody> </tbody>
</table> </table>
</div> <!-- 첨부 파일 테이블 <div class="table-responsive"> --> </div> <!-- 첨부 파일 테이블 <div class="table-responsive"> -->
@ -164,7 +163,9 @@
<span class="container-page-btn"> <span class="container-page-btn">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" id="btnSave--${pageName}" title="저장">저장</button> <button type="button" class="btn btn-primary w-px-120" name="btnSave" title="저장">
저장
</button>
</span> </span>
</span> </span>
</div> </div>
@ -179,7 +180,7 @@
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
pageObject["${pageName}"] = {}; pageObject["${pageName}"] = newDoctxFinder("${pageName}");
/************************************************************************** /**************************************************************************
* script 진입 * script 진입
@ -191,43 +192,47 @@
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
$P.callPurpose = "${callPurpose}"; $P.callPurpose = "${callPurpose}";
// FormFields // FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}"); $P.formFields = new FimsFormFields($P.selector("frmEdit"));
// 파일 리스트 // 파일 리스트
$P.fileListArr = new Array(); $P.fileListArr = new Array();
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.ctrl = new DatasetControl({
prefix: "opnn" prefix: "opnn"
, prefixName: "의견제출" , prefixName: "의견제출"
, keymapper: info => info ? info.OPNN_ID : "" , keymapper: info => info ? info.OPNN_ID : ""
, dataGetter: obj => obj.${infoPrefix}Info , dataGetter: obj => obj.info
}); });
/************************************************************************** /**************************************************************************
* DatasetControl 이벤트 * DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = (item) => { $P.ctrl.onCurrentChange = (item) => {
if (!item) return; if (!item) return;
// Dataset 셋팅 // Dataset 셋팅
$P.formFields.set($P.control, item); $P.formFields.set($P.ctrl, item);
// 업무구분에 따른 URL 변경 // 업무구분에 따른 URL 변경
$P.fnSetURL(item.data.TASK_SE_CD); $P.fnSetURL(item.data.TASK_SE_CD);
let key = item.data.OPNN_ID;
// 호출용도가 등록.. // 호출용도가 등록..
if ($P.callPurpose == "create") { if ($P.callPurpose == "create") {
$("#rcptYmd--${pageName}").datepicker("setDate", new Date()); $P.$find("rcptYmd").datepicker("setDate", TODAY());
} else { } else {
$P.fnSearchFileList(item.data.OPNN_ID); // 첨부파일 조회 // 첨부파일 조회
if (key != null) { $P.fnSearchFileList(key); }
} }
} }
// 저장 callback // 저장 callback
$P.control.onSave = (resp) => { $P.ctrl.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog--${openerPageName}").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.selfDlgId()).find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력 // 메시지 출력
@ -235,18 +240,19 @@
content: showMessage content: showMessage
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); , onClose: () => {
if (resp.saved) { if (resp.saved) {
// 폼을 리셋해서 uploadFiles에 출력된 선택 파일을 초기화시킨다. // 폼을 리셋해서 uploadFiles에 출력된 선택 파일을 초기화시킨다.
document.getElementById("frmFile--${pageName}").reset(); $P.find("frmFile").reset();
dialog.close($P.control.prefix + "Dialog--${openerPageName}"); dialog.close($P.selfDlgId());
} }
} }
});
}
// 저장 // 저장
$P.control.save = (info) => { $P.ctrl.save = (info) => {
if (!info) return; if (!info) return;
let create = ($P.callPurpose == "create"); let create = ($P.callPurpose == "create");
@ -262,11 +268,11 @@
} }
ajax.post({ ajax.post({
url: !create ? $P.control.urls.update : $P.control.urls.create url: !create ? $P.ctrl.urls.update : $P.ctrl.urls.create
, data: formData , data: formData
, contentType: false , contentType: false
, processData: false , processData: false
, success: resp => $P.control.onSave(resp) , success: (resp) => { $P.ctrl.onSave(resp); }
}); });
} }
@ -275,45 +281,45 @@
**************************************************************************/ **************************************************************************/
// 업무구분에 따른 url 변경 // 업무구분에 따른 url 변경
$P.fnSetURL = (taskSeCd) => { $P.fnSetURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/create.do"); // 등록 $P.ctrl.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/create.do"); // 등록
$P.control.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/update.do"); // 수정 $P.ctrl.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/update.do"); // 수정
} }
// 주소 검색 결과 callback // 주소 검색 결과 callback
$P.callbackSearchAddr = (obj) => { $P.callbackSearchAddr = (obj) => {
$("#sttrAddr--${pageName}").val(obj.ADDR); // 주소 $P.$find("sttrAddr").val(obj.ADDR); // 주소
$("#sttrZip--${pageName}").val(obj.ZIP); // 우편번호 $P.$find("sttrZip").val(obj.ZIP); // 우편번호
$("#sttrDaddr--${pageName}").val(obj.DTL_ADDR); // 상세 주소 $P.$find("sttrDaddr").val(obj.DTL_ADDR); // 상세 주소
} }
/************************************************************************** /**************************************************************************
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 납부자 정보를 진술자 정보로 입력한다. // 납부자 정보를 진술자 정보로 입력한다.
$P.fnSearchPayer = (title) => { $P.fnSearchPayer = (btnTitle) => {
$("select[name='ownrRelCd'] option:contains('본인')").attr("selected", "selected"); $P.$find("frmEdit").find("[name='ownrRelCd'] option:contains('본인')").prop("selected", true);
$("#sttrNm--${pageName}").val($P.control.getValue("RTPYR_NM")); $P.$find("sttrNm").val($P.ctrl.getValue("RTPYR_NM"));
$("#sttrBrdt--${pageName}").val($P.control.getValue("RTPYR_BRDT")); $P.$find("sttrBrdt").val($P.ctrl.getValue("RTPYR_BRDT"));
$("#sttrAddr--${pageName}").val($P.control.getValue("ADDR")); $P.$find("sttrAddr").val($P.ctrl.getValue("ADDR"));
$("#sttrZip--${pageName}").val($P.control.getValue("ZIP")); $P.$find("sttrZip").val($P.ctrl.getValue("ZIP"));
$("#sttrDaddr--${pageName}").val($P.control.getValue("DTL_ADDR")); $P.$find("sttrDaddr").val($P.ctrl.getValue("DTL_ADDR"));
if ($P.control.getValue("RTPYR_MBL_TELNO") != "") if ($P.ctrl.getValue("RTPYR_MBL_TELNO") != "")
$("#sttrCttpc--${pageName}").val($P.control.getValue("RTPYR_MBL_TELNO")); $P.$find("sttrCttpc").val($P.ctrl.getValue("RTPYR_MBL_TELNO"));
else else
$("#sttrCttpc--${pageName}").val($P.control.getValue("RTPYR_TELNO")); $P.$find("sttrCttpc").val($P.ctrl.getValue("RTPYR_TELNO"));
$("#sttrEml--${pageName}").val($P.control.getValue("RTPYR_EML")); $P.$find("sttrEml").val($P.ctrl.getValue("RTPYR_EML"));
} }
// 주소 검색 // 주소 검색
$P.fnSearchAddr = async(title) => { $P.fnSearchAddr = async(btnTitle) => {
let resp = await fetch(wctx.url("/resources/html/searchAddr.html")); let resp = await fetch(wctx.url("/resources/html/searchAddr.html"));
let template = await resp.text(); let template = await resp.text();
dialog.open({ dialog.open({
id: "searchAddrDialog" id: "searchAddrDialog"
, title: title , title: btnTitle
, size: "lg" , size: "lg"
, content: template , content: template
, init: () => { , init: () => {
@ -326,8 +332,16 @@
// 첨부파일 조회 // 첨부파일 조회
$P.fnSearchFileList = (opnnId) => { $P.fnSearchFileList = (opnnId) => {
let tableFileList = $P.find("fileList"); // table element 찾기
let fileLength = tableFileList.rows.length;
// 기존 table에 자료가 존재하면 tableRow 삭제
for (let iLoop = 1; iLoop < fileLength; iLoop++) {
tableFileList.deleteRow(1); // table 행(Row) 삭제
}
// 의견제출 등록일 경우에는 첨부파일을 조회하지 안는다.. // 의견제출 등록일 경우에는 첨부파일을 조회하지 안는다..
if (opnnId == null || opnnId == "") return; if (!opnnId) return;
// 첨부파일 리스트 // 첨부파일 리스트
ajax.get({ ajax.get({
@ -337,7 +351,7 @@
, infoKeys: opnnId , infoKeys: opnnId
, fetchSize: 0 , fetchSize: 0
} }
, success: resp => { , success: (resp) => {
let fileNo = 0; let fileNo = 0;
let fileList = resp.fileList; let fileList = resp.fileList;
@ -356,7 +370,7 @@
innerHtml += "pageObject['${pageName}'].fnFileRemove(this);" + "><i class='bx bx-trash me-1'></i></button>" + "</td>"; innerHtml += "pageObject['${pageName}'].fnFileRemove(this);" + "><i class='bx bx-trash me-1'></i></button>" + "</td>";
innerHtml += "</tr>"; innerHtml += "</tr>";
$("#fileList--${pageName} > tbody:last").append(innerHtml); $P.$find("tbodyFileList").append(innerHtml);
}); });
} }
}); });
@ -364,10 +378,10 @@
// 첨부파일 등록 // 첨부파일 등록
$P.fnAddFiles = (obj) => { $P.fnAddFiles = (obj) => {
let fileNo = $("#fileList--${pageName} > tbody tr").length; // table의 tr 개수 let tableFileList = $P.find("fileList"); // table element 찾기
let fileNo = tableFileList.rows.length - 1; // table에 있는 파일 갯수 (첫번째 title은 제외하기 위해서 -1 처리)
let maxFileCnt = 3; // 첨부파일 최대 개수 let maxFileCnt = 3; // 의견제출에 등록 할 수 있는 첨부 파일 최대 개수
let attFileCnt = obj.files.length; // 선택한 파일 개수 + 기존 파일 개수 let attFileCnt = obj.files.length; // 선택한 파일의 개수
let fileArr = new Array(); // 파일 배열 let fileArr = new Array(); // 파일 배열
fileArr = $P.fileListArr; fileArr = $P.fileListArr;
@ -376,6 +390,8 @@
if (attFileCnt + fileNo > maxFileCnt) { if (attFileCnt + fileNo > maxFileCnt) {
dialog.alert({ dialog.alert({
content : "첨부파일은 최대 " + maxFileCnt + "개 까지 첨부 가능합니다." content : "첨부파일은 최대 " + maxFileCnt + "개 까지 첨부 가능합니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
}); });
return; return;
} }
@ -397,7 +413,7 @@
innerHtml += "pageObject['${pageName}'].fnFileRemove(this);" + "><i class='bx bx-trash me-1'></i></button>" + "</td>"; innerHtml += "pageObject['${pageName}'].fnFileRemove(this);" + "><i class='bx bx-trash me-1'></i></button>" + "</td>";
innerHtml += "</tr>"; innerHtml += "</tr>";
$("#fileList--${pageName} > tbody:last").append(innerHtml); $P.$find("tbodyFileList").append(innerHtml);
fileArr.push(obj.files[iLoop]); fileArr.push(obj.files[iLoop]);
} }
@ -410,19 +426,21 @@
, onOK: () => { , onOK: () => {
let tr = $(obj).parent().parent(); // 클릭한 버튼이 속한 tr 요소 let tr = $(obj).parent().parent(); // 클릭한 버튼이 속한 tr 요소
let td = tr.children(); let td = tr.children();
let fileNo = td.eq(0).text(); // 삭제할 파일 번호 let fileId = td.eq(1).text(); // 삭제할 파일번호
let fileId = td.eq(1).text(); let fileName = td.eq(2).text(); // 삭제할 파일이름
if (fileId != null && fileId != "") { if (fileId != null && fileId != "") {
ajax.post({ ajax.post({
url: "file/remove.do" url: "file/remove.do"
, data: { fileIDs : fileId } , data: { fileIDs: fileId }
, success: resp => { // 성공 , success: (resp) => { }
}
}); });
} else { } else {
// 배열에서 삭제한다. 배열은 0부터 시작하기 때문에 -1 해준다. let filtered = $P.fileListArr.filter((value, index, arr) => {
$P.fileListArr.splice(fileNo - 1); return (value.name != fileName);
});
$P.fileListArr = filtered;
} }
$(obj).closest("tr").remove(); // table 에서 제거 $(obj).closest("tr").remove(); // table 에서 제거
@ -438,14 +456,12 @@
// 저장 // 저장
$P.fnSave = () => { $P.fnSave = () => {
// validate 확인 // validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($P.$find("frmEdit").find("input,select,textarea"))) return;
dialog.alert({ dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content: "현재 " + $P.ctrl.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => { $P.ctrl.save($P.formFields.get()); } // formFields
$P.control.save($P.formFields.get()); // formFields
}
}); });
} }
@ -455,53 +471,50 @@
// 이벤트 설정 // 이벤트 설정
$P.setEvent = () => { $P.setEvent = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmEdit--${pageName}").find(".form-date").each(function() { $P.$find("frmEdit").find(".form-date").each(function() {
$(this).on("input",function() { $(this).on("input", function() {
let value = this.value.replaceAll("-", ""); let value = this.value.replaceAll("-", "");
if (value.length > 7) { if (value.length > 7) {
this.value = value.substring(0,4) + "-" + value.substring(4,6) + "-" + value.substring(6); this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6);
} else if(value.length > 5) { } else if(value.length > 5) {
this.value = value.substring(0,4) + "-" + value.substring(4); this.value = value.substring(0, 4) + "-" + value.substring(4);
} }
}); });
}); });
// 버튼 이벤트 // 버튼 이벤트
$("#btnSearchPayer--${pageName}").on("click", function() { // 납부자 정보 조회 버튼 이벤트 $P.$find("btnSearchPayer").on("click", function() {
$P.fnSearchPayer($(this).attr("title")); $P.fnSearchPayer($(this).attr("title")); // 납부자 정보 조회 버튼 이벤트
}); });
$("#btnSearchAddr--${pageName}").on("click", function() { // 주소 검색 버튼 이벤트 $P.$find("btnSearchAddr").on("click", function() {
$P.fnSearchAddr($(this).attr("title")); $P.fnSearchAddr($(this).attr("title")); // 주소 검색 버튼 이벤트
}); });
$("#btnAddFile--${pageName}").on('click', () => $("#uploadFiles--${pageName}").trigger("click")); // 파일 등록 버튼 이벤트 $P.$find("btnAddFile").on("click", () => $P.$find("uploadFiles").trigger("click")); // 파일 등록 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장 버튼 이벤트 $P.$find("btnSave").on("click", () => { $P.fnSave() }); // 저장
} }
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = () => {
// 달력 초기화 // 화면 초기화
initDatepicker("frmEdit--${pageName}"); $P.find("frmEdit").reset();
$("#rcptYmd--${pageName}").datepicker("setDate", new Date());
// 화면 활성화 설정 // 달력 초기화
$("#vhrno--${pageName}").prop("readonly", true); // 차량번호 initDatepicker($P.find("frmEdit"));
$("#crdnYmdTm--${pageName}").prop("readonly", true); // 단속 일자 $P.$find("rcptYmd").datepicker("setDate", TODAY());
$("#rtpyrNm--${pageName}").prop("readonly", true); // 납부자 명
// View로 호출 // View로 호출되었을때 disabled 셋팅
if ($P.callPurpose == "view") { if ($P.callPurpose == "view") {
// input 요소들을 disabled // input 요소들을 disabled
$("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); $P.$find("frmEdit").find("input,textarea,select").prop("disabled", true);
// button 요소들을 disabled // button 요소들을 disabled
$("#btnRcptYmd--${pageName}").prop("disabled", true); // 접수 일자 달력 버튼 $P.$find("btnRcptYmd").prop("disabled", true); // 접수 일자 달력 버튼
$("#btnSearchPayer--${pageName}").prop("disabled", true); // 납부자 버튼 $P.$find("btnSearchPayer").prop("disabled", true); // 납부자 버튼
$("#btnSearchAddr--${pageName}").prop("disabled", true); // 우편번호 버튼 $P.$find("btnSearchAddr").prop("disabled", true); // 우편번호 버튼
$("#btnAddFile--${pageName}").prop("disabled", true); // 파일 추가 버튼 $P.$find("btnAddFile").prop("disabled", true); // 파일 추가 버튼
$("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼 $P.$find("btnSave").prop("disabled", true); // 저장 버튼
} else if ($P.callPurpose == "create") { } else if ($P.callPurpose == "create") {
$("#rcptNo--${pageName}").prop("readonly", true); // 접수 번호 $P.$find("rcptNo").prop("readonly", true); // 접수 번호
$("#rcptYmd--${pageName}").datepicker("setDate", new Date()); // 접수 일자
} }
} }
@ -515,7 +528,7 @@
$P.initForm(); $P.initForm();
// 3. Dataset 설정 // 3. Dataset 설정
$P.control.setData([${opnnSbmsnInfo}]); $P.ctrl.setData([${info}]);
}); });
</script> </script>

@ -1,97 +1,97 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">의견제출 심의위원 상세 정보</c:set> <c:set var="prefixName" scope="request">의견제출 심의 위원 정보</c:set>
<!-- inner page html --> <!-- inner page html -->
<div class="content-pop"> <div class="content-pop" data-doctx="${pageName}">
<!-- Content --> <!-- Content -->
<div class="container flex-grow-1 px-0"> <div class="container flex-grow-1 px-0">
<div class="card"> <div class="card">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form name="frmEdit">
<!-- hidden --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" /> <input type="hidden" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" /> <input type="hidden" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="mngId--${pageName}" name="mngId" data-map="MNG_ID" /> <input type="hidden" name="mngId" data-map="MNG_ID" />
<div class="row g-1"> <div class="row g-1">
<!-- 1 직급 --> <!-- 1 직급 -->
<div class="col-md-7"> <div class="col-md-7">
<label for="dlbrMbrJbgd1--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원1</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원1</label>
<label for="dlbrMbrJbgd1--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd1">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd1--${pageName}" name="dlbrMbrJbgd1" data-map="DLBR_MBR_JBGD1" /> <input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd1" data-map="DLBR_MBR_JBGD1" />
</div> </div>
<!-- 1 회원명 --> <!-- 1 회원명 -->
<div class="col-md-5"> <div class="col-md-5">
<label for="dlbrMbrNm1--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm1">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm1--${pageName}" name="dlbrMbrNm1" data-map="DLBR_MBR_NM1" /> <input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm1" data-map="DLBR_MBR_NM1" />
</div> </div>
<!-- 2 직급 --> <!-- 2 직급 -->
<div class="col-md-7"> <div class="col-md-7">
<label for="dlbrMbrJbgd2--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원2</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원2</label>
<label for="dlbrMbrJbgd2--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd2">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd2--${pageName}" name="dlbrMbrJbgd2" data-map="DLBR_MBR_JBGD2" /> <input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd2" data-map="DLBR_MBR_JBGD2" />
</div> </div>
<!-- 2 회원명 --> <!-- 2 회원명 -->
<div class="col-md-5"> <div class="col-md-5">
<label for="dlbrMbrNm2--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm2">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm2--${pageName}" name="dlbrMbrNm2" data-map="DLBR_MBR_NM2" /> <input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm2" data-map="DLBR_MBR_NM2" />
</div> </div>
<!-- 3 직급 --> <!-- 3 직급 -->
<div class="col-md-7"> <div class="col-md-7">
<label for="dlbrMbrJbgd3--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원3</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원3</label>
<label for="dlbrMbrJbgd3--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd3">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd3--${pageName}" name="dlbrMbrJbgd3" data-map="DLBR_MBR_JBGD3" /> <input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd3" data-map="DLBR_MBR_JBGD3" />
</div> </div>
<!-- 3 회원명 --> <!-- 3 회원명 -->
<div class="col-md-5"> <div class="col-md-5">
<label for="dlbrMbrNm3--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm3">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm3--${pageName}" name="dlbrMbrNm3" data-map="DLBR_MBR_NM3" /> <input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm3" data-map="DLBR_MBR_NM3" />
</div> </div>
<!-- 4 직급 --> <!-- 4 직급 -->
<div class="col-md-7"> <div class="col-md-7">
<label for="dlbrMbrJbgd4--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원4</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원4</label>
<label for="dlbrMbrJbgd4--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd4">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd4--${pageName}" name="dlbrMbrJbgd4" data-map="DLBR_MBR_JBGD4" /> <input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd4" data-map="DLBR_MBR_JBGD4" />
</div> </div>
<!-- 4 회원명 --> <!-- 4 회원명 -->
<div class="col-md-5"> <div class="col-md-5">
<label for="dlbrMbrNm4--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm4">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm4--${pageName}" name="dlbrMbrNm4" data-map="DLBR_MBR_NM4" /> <input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm4" data-map="DLBR_MBR_NM4" />
</div> </div>
<!-- 5 직급 --> <!-- 5 직급 -->
<div class="col-md-7"> <div class="col-md-7">
<label for="dlbrMbrJbgd5--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원5</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원5</label>
<label for="dlbrMbrJbgd5--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd5">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd5--${pageName}" name="dlbrMbrJbgd5" data-map="DLBR_MBR_JBGD5" /> <input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd5" data-map="DLBR_MBR_JBGD5" />
</div> </div>
<!-- 5 회원명 --> <!-- 5 회원명 -->
<div class="col-md-5"> <div class="col-md-5">
<label for="dlbrMbrNm5--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm5">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm5--${pageName}" name="dlbrMbrNm5" data-map="DLBR_MBR_NM5" /> <input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm5" data-map="DLBR_MBR_NM5" />
</div> </div>
<!-- 6 직급 --> <!-- 6 직급 -->
<div class="col-md-7"> <div class="col-md-7">
<label for="dlbrMbrJbgd6--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원6</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원6</label>
<label for="dlbrMbrJbgd6--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd6">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd6--${pageName}" name="dlbrMbrJbgd6" data-map="DLBR_MBR_JBGD6" /> <input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd6" data-map="DLBR_MBR_JBGD6" />
</div> </div>
<!-- 6 회원명 --> <!-- 6 회원명 -->
<div class="col-md-5"> <div class="col-md-5">
<label for="dlbrMbrNm6--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm6">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm6--${pageName}" name="dlbrMbrNm6" data-map="DLBR_MBR_NM6" /> <input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm6" data-map="DLBR_MBR_NM6" />
</div> </div>
<!-- 7 직급 --> <!-- 7 직급 -->
<div class="col-md-7"> <div class="col-md-7">
<label for="dlbrMbrJbgd7--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원7</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원7</label>
<label for="dlbrMbrJbgd7--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd7">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd7--${pageName}" name="dlbrMbrJbgd7" data-map="DLBR_MBR_JBGD7" /> <input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd7" data-map="DLBR_MBR_JBGD7" />
</div> </div>
<!-- 7 회원명 --> <!-- 7 회원명 -->
<div class="col-md-5"> <div class="col-md-5">
<label for="dlbrMbrNm7--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm7">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm7--${pageName}" name="dlbrMbrNm7" data-map="DLBR_MBR_NM7" /> <input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm7" data-map="DLBR_MBR_NM7" />
</div> </div>
</div> </div>
</form> </form>
@ -102,7 +102,7 @@
<span class="container-page-btn"> <span class="container-page-btn">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장"> <button type="button" class="btn btn-primary w-px-80" name="btnSave" title="저장">
저장 저장
</button> </button>
</span> </span>
@ -119,7 +119,7 @@
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
pageObject["${pageName}"] = {}; pageObject["${pageName}"] = newDoctxFinder("${pageName}");
/************************************************************************** /**************************************************************************
* script 진입 * script 진입
@ -129,34 +129,35 @@
let $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// FormFields // FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}"); $P.formFields = new FimsFormFields($P.selector("frmEdit"));
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.ctrl = new DatasetControl({
prefix: "opnnDlbrMbr" prefix: "opnnDlbrMbr"
, prefixName: "의견제출 심의위원 관리" , prefixName: "의견제출 심의 위원 관리"
, keymapper: info => info ? info.MNG_ID : "" , keymapper: info => info ? info.MNG_ID : ""
, dataGetter: obj => obj.${infoPrefix}Info , dataGetter: obj => obj.info
}); });
/************************************************************************** /**************************************************************************
* DatasetControl 이벤트 * DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => { $P.ctrl.onCurrentChange = item => {
if (!item) return; if (!item) return;
// Dataset 셋팅 // Dataset 셋팅
$P.formFields.set($P.control, item); $P.formFields.set($P.ctrl, item);
// 업무구분에 따른 URL 변경 // 업무구분에 따른 URL 변경
$P.fnSetURL(item.data.TASK_SE_CD); $P.fnSetURL(item.data.TASK_SE_CD);
} }
// 저장 callback // 저장 callback
$P.control.onSave = (resp) => { $P.ctrl.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog--${openerPageName}").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.selfDlgId()).find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력 // 메시지 출력
@ -164,23 +165,22 @@
content: showMessage content: showMessage
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); , onClose: () => {
if (resp.saved) { dialog.close($P.selfDlgId()); }
if (resp.saved) {
dialog.close($P.control.prefix + "Dialog--${openerPageName}");
} }
});
} }
// 저장 // 저장
$P.control.save = (info) => { $P.ctrl.save = (info) => {
if (!info) return; if (!info) return;
let create = (info.mngId == ""); let create = (info.mngId == "");
ajax.post({ ajax.post({
url: !create ? $P.control.urls.update : $P.control.urls.create url: !create ? $P.ctrl.urls.update : $P.ctrl.urls.create
, data: info || {} , data: info || {}
, success: resp => $P.control.onSave(resp) , success: (resp) => { $P.ctrl.onSave(resp); }
}); });
} }
@ -189,8 +189,8 @@
**************************************************************************/ **************************************************************************/
// 업무구분에 따른 URL 설정 // 업무구분에 따른 URL 설정
$P.fnSetURL = (taskSeCd) => { $P.fnSetURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/create.do"); // 등록 $P.ctrl.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/create.do"); // 등록
$P.control.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/update.do"); // 수정 $P.ctrl.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/update.do"); // 수정
} }
/************************************************************************** /**************************************************************************
@ -199,14 +199,12 @@
// 저장 // 저장
$P.fnSave = () => { $P.fnSave = () => {
// validate 확인 // validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($P.$find("frmEdit").find("input,select,textarea"))) return;
dialog.alert({ dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content: "현재 " + $P.ctrl.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => { $P.ctrl.save($P.formFields.get()); } // formFields
$P.control.save($P.formFields.get()); // formFields
}
}); });
} }
@ -216,12 +214,13 @@
// 이벤트 설정 // 이벤트 설정
$P.setEvent = () => { $P.setEvent = () => {
// 버튼 이벤트 // 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장 $P.$find("btnSave").on("click", () => { $P.fnSave() }); // 저장
} }
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = () => {
// // 화면 초기화
$P.find("frmEdit").reset();
} }
/************************************************************************** /**************************************************************************
@ -234,7 +233,7 @@
$P.initForm(); $P.initForm();
// 3. Dataset 설정 // 3. Dataset 설정
$P.control.setData([${opnnDlbrMbrInfo}]); $P.ctrl.setData([${info}]);
}); });
</script> </script>

@ -414,10 +414,10 @@
, size: "lg" , size: "lg"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });
@ -505,10 +505,10 @@
, size: "xl" , size: "xl"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
}); });
} }
@ -532,10 +532,10 @@
, size: "xl" , size: "xl"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
}); });
} }
@ -593,10 +593,10 @@
, size: "lg" , size: "lg"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });
@ -651,10 +651,10 @@
, size: "lg" , size: "lg"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });

@ -259,10 +259,10 @@
, size: "lg" , size: "lg"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });
@ -356,10 +356,10 @@
, size: "lg" , size: "lg"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });
@ -427,6 +427,7 @@
dialog.alert({ dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다." content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -453,6 +454,7 @@
dialog.alert({ dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다." content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -468,6 +470,7 @@
content: "[" + btnTitle + "]" + " 작업은 심의결과가 '접수', '자진취하' 자료만 삭제 가능합니다." content: "[" + btnTitle + "]" + " 작업은 심의결과가 '접수', '자진취하' 자료만 삭제 가능합니다."
+ "<br>" + "심의결과 : " + opnnSbmsnSttsNm + "<br>" + "심의결과 : " + opnnSbmsnSttsNm
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -508,6 +511,7 @@
dialog.alert({ dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다." content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -533,6 +537,7 @@
dialog.alert({ dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다." content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -548,6 +553,7 @@
content: "[" + btnTitle + "]" + " 작업은 단속상태가 '의견제출수용', '경찰서이첩', '부과 이전' 자료만 처리 가능합니다." content: "[" + btnTitle + "]" + " 작업은 단속상태가 '의견제출수용', '경찰서이첩', '부과 이전' 자료만 처리 가능합니다."
+ "<br>" + "단속상태 : " + crdnSttsNm + "<br>" + "단속상태 : " + crdnSttsNm
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -585,7 +591,7 @@
, infoKeys: opnnId , infoKeys: opnnId
, fetchSize: 0 , fetchSize: 0
} }
, success: resp => { , success: (resp) => {
let fileNo = 0; let fileNo = 0;
let fileList = resp.fileList; let fileList = resp.fileList;
@ -593,7 +599,6 @@
fileNo = index + 1; fileNo = index + 1;
let innerHtml = ""; let innerHtml = "";
innerHtml += "<tr>"; innerHtml += "<tr>";
innerHtml += "<td class='text-center'>" + fileNo + "</td>"; innerHtml += "<td class='text-center'>" + fileNo + "</td>";
innerHtml += "<td class='text-center'>" + item.FILE_ID + "</td>"; innerHtml += "<td class='text-center'>" + item.FILE_ID + "</td>";

@ -301,10 +301,10 @@
, size: "md" , size: "md"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });

@ -346,10 +346,10 @@
, size: "lg" , size: "lg"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });
@ -420,10 +420,10 @@
, size: "md" , size: "md"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });
@ -661,6 +661,7 @@
dialog.alert({ dialog.alert({
content: "조회된 감경 대장 정보가 없습니다." content: "조회된 감경 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -741,6 +742,7 @@
dialog.alert({ dialog.alert({
content: "조회된 부과제외 대장 정보가 없습니다." content: "조회된 부과제외 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -768,6 +770,7 @@
dialog.alert({ dialog.alert({
content: "조회된 부과제외 대장 정보가 없습니다." content: "조회된 부과제외 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;

@ -385,10 +385,10 @@
, size: "md" , size: "md"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });

@ -293,10 +293,10 @@
, size: "lg" , size: "lg"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });
@ -306,7 +306,8 @@
// 수기 수납 취소 callback // 수기 수납 취소 callback
$P.ctrlRcvmt.onSave = (params, resp) => { $P.ctrlRcvmt.onSave = (params, resp) => {
let dialogTitle = $("#" + $P.ctrlRcvmt.prefix + "Dialog--${pageName}").find("h5.modal-title").html(); // let dialogTitle = $("#" + $P.ctrlRcvmt.prefix + "Dialog--${pageName}").find("h5.modal-title").html();
let dialogTitle = $("#" + $P.selfDlgId()).find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력 // 메시지 출력
@ -516,6 +517,7 @@
content: "[" + btnTitle + "]" + " 작업은 rcvmtInptSeNm 구분이 '수기' 자료만 처리 가능합니다." content: "[" + btnTitle + "]" + " 작업은 rcvmtInptSeNm 구분이 '수기' 자료만 처리 가능합니다."
+ "<br>" + "수납입력구분 : " + crdnSttsNm + "<br>" + "수납입력구분 : " + crdnSttsNm
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
return; return;

@ -156,10 +156,10 @@
, size: "lg" , size: "lg"
, content: resp , content: resp
, init: () => { , init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName); $("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}"); $("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
} }
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });

Loading…
Cancel
Save