개별총정보 수정.

main
jjh 3 months ago
parent 2e952e60b4
commit a30bd41dfe

@ -157,7 +157,7 @@
<!-- 기타 내용 --> <!-- 기타 내용 -->
<div class="col-md-8"> <div class="col-md-8">
<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-input" type="text" class="form-control w-80" name="etcCn" data-map="ETC_CN" cols="100%" rows="3" readonly></textarea> <textarea is="id-textarea" type="text" class="form-control w-80" name="etcCn" data-map="ETC_CN" cols="100%" rows="3" readonly></textarea>
</div> </div>
<!-- 과태료 단속원금 --> <!-- 과태료 단속원금 -->
<div class="col-md-3"> <div class="col-md-3">
@ -263,10 +263,10 @@
<label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">납부자 정보</label> <label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">납부자 정보</label>
<!-- 버튼 우측 정렬 --> <!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary" name="btnDeleteCrdnPayer" title="납부자 초기화"> <button type="button" class="btn btn-primary w-px-120" name="btnDeleteCrdnPayer" title="납부자 초기화">
납부자 초기화 납부자 초기화
</button> </button>
<button type="button" class="btn btn-primary" name="btnUpdatePayer" title="납부자 수정"> <button type="button" class="btn btn-primary w-px-120" name="btnUpdatePayer" title="납부자 수정">
납부자 수정 납부자 수정
</button> </button>
</span> </span>
@ -362,7 +362,7 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.ctrl = new DatasetControl({ $P.ctrl = new DatasetControl({
prefix: "crdnPayer" prefix: "crdn"
, prefixName: "단속" , prefixName: "단속"
, keymapper: info => info ? info.CRDN_ID : "" , keymapper: info => info ? info.CRDN_ID : ""
, dataGetter: obj => obj.crdnPayerInfo , dataGetter: obj => obj.crdnPayerInfo
@ -405,14 +405,14 @@
url: wctx.url("/" + params.taskSeCd + "/crdn/crdn06/020/info.do") url: wctx.url("/" + params.taskSeCd + "/crdn/crdn06/020/info.do")
, data: params || {} , data: params || {}
, success: (resp) => { , success: (resp) => {
let dialogName = "crdnDialog"; let dialogName = $P.ctrl.prefixed("Dialog");
let dialogId = dialogName + "-" + uuid(); let dialogId = dialogName + "-" + uuid();
dialog.open({ dialog.open({
id: dialogId id: dialogId
, title: params.title , title: params.btnTitle
, content: resp
, size: "lg" , size: "lg"
, content: resp
, init: () => { , init: () => {
setDialogZindex(); setDialogZindex();
@ -433,11 +433,10 @@
content: showMessage content: showMessage
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); , onClose: () => {
if (resp.saved) { pageObject["${mainPageName}"].fnClose(true); }
if (resp.saved) {
pageObject["${mainPageName}"].fnClose(true);
} }
});
} }
// 삭제 // 삭제
@ -458,8 +457,8 @@
**************************************************************************/ **************************************************************************/
// 자료 재조회 // 자료 재조회
$P.fnRefreshDataInfo = () => { $P.fnRefreshDataInfo = () => {
// 단속 ID let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID");
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -478,6 +477,7 @@
, success: (resp) => { , success: (resp) => {
// 초기화 // 초기화
$P.find("frmEdit").reset(); // 화면 초기화 $P.find("frmEdit").reset(); // 화면 초기화
$P.ctrl.dataset.clear(); // Dataset 초기화 $P.ctrl.dataset.clear(); // Dataset 초기화
// sprt02010-main 단속 정보 // sprt02010-main 단속 정보
@ -502,7 +502,7 @@
dialog.open({ dialog.open({
id: dialogId id: dialogId
, title: params.title , title: params.btnTitle
, size: "xl" , size: "xl"
, content: resp , content: resp
, init: () => { , init: () => {
@ -529,7 +529,7 @@
dialog.open({ dialog.open({
id: dialogId id: dialogId
, title: params.title , title: params.btnTitle
, size: "xl" , size: "xl"
, content: resp , content: resp
, init: () => { , init: () => {
@ -547,10 +547,11 @@
$P.callbackRsn = (obj) => { $P.callbackRsn = (obj) => {
// 서버에 전송할 data(파라미터) 생성 // 서버에 전송할 data(파라미터) 생성
let params = { let params = {
sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드 callPurpose: "remove"
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID , crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
, btnTitle: obj.reason // 버튼 title , btnTitle: obj.btnTitle // 버튼 title
, delRsn: obj.reason // 삭제 사유 , delRsn: obj.reason // 삭제 사유
}; };
@ -589,7 +590,7 @@
dialog.open({ dialog.open({
id: dialogId id: dialogId
, title: params.title , title: params.btnTitle
, size: "lg" , size: "lg"
, content: resp , content: resp
, init: () => { , init: () => {
@ -612,18 +613,19 @@
url: wctx.url("/" + params.taskSeCd + "/crdn/crdn06/010/removeCrdnPayer.do") url: wctx.url("/" + params.taskSeCd + "/crdn/crdn06/010/removeCrdnPayer.do")
, data: params || {} , data: params || {}
, success: (resp) => { , success: (resp) => {
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.title); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
dialog.alert({ dialog.alert({
content: showMessage content: showMessage
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); , onClose: () => {
if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회 if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회
} }
}); });
} }
});
}
// 납부자 정보 수정 // 납부자 정보 수정
$P.updatePayer = (params) => { $P.updatePayer = (params) => {
@ -674,8 +676,8 @@
// 민원 연계 ID가 없다면.. return // 민원 연계 ID가 없다면.. return
if (typeof cvlcptLinkId == "undefined" || cvlcptLinkId == null || cvlcptLinkId == "") { if (typeof cvlcptLinkId == "undefined" || cvlcptLinkId == null || cvlcptLinkId == "") {
dialog.alert({ dialog.alert({
content: "조회된 단속 민원 대장 정보가 없습니다." content: "조회된 민원 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
@ -684,7 +686,7 @@
let params = { let params = {
callPurpose: "view" callPurpose: "view"
, title: btnTitle , btnTitle: btnTitle
, 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: $P.ctrl.getValue("CRDN_ID") // 단속 ID , crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -703,8 +705,8 @@
// 민원 연계 ID가 없다면.. return // 민원 연계 ID가 없다면.. return
if (typeof cvlcptLinkId == "undefined" || cvlcptLinkId == null || cvlcptLinkId == "") { if (typeof cvlcptLinkId == "undefined" || cvlcptLinkId == null || cvlcptLinkId == "") {
dialog.alert({ dialog.alert({
content: "조회된 단속 민원 대장 정보가 없습니다." content: "조회된 민원 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
@ -713,7 +715,7 @@
let params = { let params = {
callPurpose : "view" callPurpose : "view"
, title: btnTitle , btnTitle: btnTitle
, 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: $P.ctrl.getValue("CRDN_ID") // 단속 ID , crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -731,7 +733,7 @@
let params = { let params = {
callPurpose: "update" callPurpose: "update"
, title: btnTitle , btnTitle: btnTitle
, 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: $P.ctrl.getValue("CRDN_ID") // 단속 ID , crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -748,8 +750,8 @@
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 단속 상태 코드 // 단속 상태 코드
let crdnSttsCd = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_STTS_CD"); let crdnSttsCd = $P.ctrl.getValue("CRDN_STTS_CD");
let crdnSttsNm = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_STTS_NM"); let crdnSttsNm = $P.ctrl.getValue("CRDN_STTS_NM");
// 단속 상태 코드 확인 // 단속 상태 코드 확인
if (Number(crdnSttsCd) > 51) { if (Number(crdnSttsCd) > 51) {
@ -797,15 +799,15 @@
if (typeof bfrCrdnId == "undefined" || bfrCrdnId == null || bfrCrdnId == "") return; if (typeof bfrCrdnId == "undefined" || bfrCrdnId == null || bfrCrdnId == "") return;
// 단속 상태 코드 // 단속 상태 코드
let crdnSttsCd = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_STTS_CD"); let crdnSttsCd = $P.ctrl.getValue("CRDN_STTS_CD");
let crdnSttsNm = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_STTS_NM"); let crdnSttsNm = $P.ctrl.getValue("CRDN_STTS_NM");
// 단속 상태 코드 확인 // 단속 상태 코드 확인
if (Number(crdnSttsCd) < 80 || Number(crdnSttsCd) > 88) { if (Number(crdnSttsCd) < 80 || Number(crdnSttsCd) > 88) {
dialog.alert({ dialog.alert({
content: "[" + title + "]" + " 작업은 단속상태가 '비부과', '계고', '부과취소' 자료만 처리 가능합니다." content: "[" + btnTitle + "]" + " 작업은 단속상태가 '비부과', '계고', '부과취소' 자료만 처리 가능합니다."
+ "<br>" + "단속상태 : " + crdnSttsNm + "<br>" + "단속상태 : " + crdnSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
@ -818,7 +820,7 @@
, onOK: () => { , onOK: () => {
let params = { let params = {
callPurpose: "create" callPurpose: "create"
, title: btnTitle , btnTitle: btnTitle
, 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") // 업무 구분 코드
, bfrCrdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID , bfrCrdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -831,6 +833,9 @@
// 고지서출력 // 고지서출력
$P.fnMakeFileNht = (title, fileType, paper) => { $P.fnMakeFileNht = (title, fileType, paper) => {
let url = "";
let fileTypeName = "";
if (fileType == "pdf") { if (fileType == "pdf") {
url = wctx.url("/sprt/sprt01/150/makeNhtPdf.do"); url = wctx.url("/sprt/sprt01/150/makeNhtPdf.do");
fileTypeName = "PDF 파일"; fileTypeName = "PDF 파일";
@ -886,7 +891,7 @@
} }
// 단속 상태 변경 // 단속 상태 변경
$P.fnUpdateCrdnSttsCd = (title) => { $P.fnUpdateCrdnSttsCd = (btnTitle) => {
let crdnId = $P.ctrl.getValue("CRDN_ID"); // 단속 ID let crdnId = $P.ctrl.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
@ -894,7 +899,7 @@
let params = { let params = {
callPurpose: "update" callPurpose: "update"
, title: title , btnTitle: btnTitle
, 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: $P.ctrl.getValue("CRDN_ID") // 단속 ID , crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -904,7 +909,7 @@
} }
// 납부자 초기화 // 납부자 초기화
$P.fnDeleteCrdnPayer = (title) => { $P.fnDeleteCrdnPayer = (btnTitle) => {
let crdnId = $P.ctrl.getValue("CRDN_ID"); // 단속 ID let crdnId = $P.ctrl.getValue("CRDN_ID"); // 단속 ID
let rtpyrId = $P.ctrl.getValue("RTPYR_ID"); // 납부자 ID let rtpyrId = $P.ctrl.getValue("RTPYR_ID"); // 납부자 ID
@ -914,7 +919,7 @@
if (rtpyrId == null || rtpyrId == "") { if (rtpyrId == null || rtpyrId == "") {
dialog.alert({ dialog.alert({
content: "조회된 납부자 대장 정보가 없습니다." content: "조회된 납부자 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
@ -926,7 +931,8 @@
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => {
let params = { let params = {
title: title callPurpose: "initialize"
, btnTitle: btnTitle
, 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: $P.ctrl.getValue("CRDN_ID") // 단속 ID , crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -940,7 +946,7 @@
} }
// 납부자 수정 // 납부자 수정
$P.fnUpdatePayer = (title) => { $P.fnUpdatePayer = (btnTitle) => {
let crdnId = $P.ctrl.getValue("CRDN_ID"); // 단속 ID let crdnId = $P.ctrl.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
@ -948,7 +954,7 @@
let params = { let params = {
callPurpose: "update" callPurpose: "update"
, title: title , btnTitle: btnTitle
, 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: $P.ctrl.getValue("CRDN_ID") // 단속 ID , crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -988,10 +994,10 @@
$P.fnCreateCrdnReReg($P.$find("btnCreateCrdnReReg").attr("title")); // 단속 재등록 $P.fnCreateCrdnReReg($P.$find("btnCreateCrdnReReg").attr("title")); // 단속 재등록
}); });
$P.$find("btnPrintNhtPdf01").on("click", () => { $P.$find("btnPrintNhtPdf01").on("click", () => {
$P.fnMakeFileNht($P.$find("btnPrintNhtPdf01").attr("title")); // 고지서 출력 $P.fnMakeFileNht($P.$find("btnPrintNhtPdf01").attr("title"), "pdf", "01"); // 고지서 출력
}); });
$P.$find("btnPrintNhtPdf02").on("click", () => { $P.$find("btnPrintNhtPdf02").on("click", () => {
$P.fnMakeFileNht($P.$find("btnPrintNhtPdf02").attr("title")); // 고지서 출력 $P.fnMakeFileNht($P.$find("btnPrintNhtPdf02").attr("title"), "pdf", "02"); // 고지서 출력
}); });
$P.$find("btnUpdateCrdnSttsCd").on("click", () => { $P.$find("btnUpdateCrdnSttsCd").on("click", () => {
$P.fnUpdateCrdnSttsCd($P.$find("btnUpdateCrdnSttsCd").attr("title")); // 단속 상태 변경 $P.fnUpdateCrdnSttsCd($P.$find("btnUpdateCrdnSttsCd").attr("title")); // 단속 상태 변경

@ -2,10 +2,10 @@
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- Page Body --> <!-- Page Body -->
<div class="content-pop"> <div class="content-pop" data-doctx="${pageName}">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form name="frmEdit">
<input type="text" id="opnnId--${pageName}" name="opnnId" data-map="OPNN_ID" hidden /> <input type="hidden" name="opnnId" data-map="OPNN_ID" />
<div class="d-flex flex-row justify-content-evenly"> <div class="d-flex flex-row justify-content-evenly">
<!-- 의견제출 정보 --> <!-- 의견제출 정보 -->
@ -13,19 +13,19 @@
<div class="card"> <div class="card">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">의견제출 정보</label> <label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">의견제출 정보</label>
<!-- 버튼 우측 정렬 --> <!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnCreateOpnnSbmsn--${pageName}" title="의견제출 등록"> <button type="button" class="btn btn-primary w-px-120" name="btnCreateOpnnSbmsn" title="의견제출 등록">
의견제출 등록 의견제출 등록
</button> </button>
<button type="button" class="btn btn-primary" id="btnUpdateOpnnSbmsn--${pageName}" title="의견제출 수정"> <button type="button" class="btn btn-primary w-px-120" name="btnUpdateOpnnSbmsn" title="의견제출 수정">
의견제출 수정 의견제출 수정
</button> </button>
<button type="button" class="btn btn-primary" id="btnRemoveOpnnSbmsn--${pageName}" title="의견제출 삭제"> <button type="button" class="btn btn-primary w-px-120" name="btnRemoveOpnnSbmsn" title="의견제출 삭제">
의견제출 삭제 의견제출 삭제
</button> </button>
<button type="button" class="btn btn-primary" id="btnPrintDlbrDecsn--${pageName}" title="심의의결서 출력"> <button type="button" class="btn btn-primary w-px-120" name="btnPrintDlbrDecsn" title="심의의결서 출력">
심의의결서 출력 심의의결서 출력
</button> </button>
</span> </span>
@ -34,91 +34,90 @@
<div class="row g-1"> <div class="row g-1">
<!-- 접수 번호 --> <!-- 접수 번호 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="rcptNoMask--${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="rcptNoMask">접수번호</label>
<input type="text" class="form-control w-30" id="rcptNoMask--${pageName}" name="rcptNoMask" data-map="RCPT_NO_MASK" readonly /> <input is="id-input" type="text" class="form-control w-30" name="rcptNoMask" data-map="RCPT_NO_MASK" readonly />
</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">접수일자</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcptYmd">접수일자</label>
<input type="text" class="form-control w-30" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD" readonly /> <input is="id-input" type="text" class="form-control w-30" name="rcptYmd" data-map="RCPT_YMD" readonly />
</div> </div>
<!-- 접수 구분 --> <!-- 접수 구분 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="rcptSeNm--${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="rcptSeNm">접수구분</label>
<input type="text" class="form-control w-30" id="rcptSeNm--${pageName}" name="rcptSeNm" data-map="RCPT_SE_NM" readonly /> <input is="id-input" type="text" class="form-control w-30" name="rcptSeNm" data-map="RCPT_SE_NM" readonly />
</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">성명</label> <label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrNm">성명</label>
<input type="text" class="form-control w-40" id="sttrNm--${pageName}" name="sttrNm" data-map="STTR_NM" readonly /> <input is="id-input" type="text" class="form-control w-40" name="sttrNm" data-map="STTR_NM" readonly />
</div> </div>
<!-- 진술자 생년월일 --> <!-- 진술자 생년월일 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="sttrBrdtMask--${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="sttrBrdtMask">생년월일</label>
<input type="text" class="form-control w-30" id="sttrBrdtMask--${pageName}" name="sttrBrdtMask" data-map="STTR_BRDT_MASK" readonly /> <input is="id-input" type="text" class="form-control w-30" name="sttrBrdtMask" data-map="STTR_BRDT_MASK" readonly />
</div> </div>
<!-- 소유주 관계 구분 명 --> <!-- 소유주 관계 구분 명 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="ownrRelNm--${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="ownrRelNm">소유주관계</label>
<input type="text" class="form-control w-40" id="ownrRelNm--${pageName}" name="ownrRelNm" data-map="OWNR_REL_NM" readonly /> <input is="id-input" type="text" class="form-control w-40" name="ownrRelNm" data-map="OWNR_REL_NM" readonly />
</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-80" id="sttrAddr--${pageName}" name="sttrAddr" data-map="STTR_ADDR" readonly /> <input is="id-input" type="text" class="form-control w-80" name="sttrAddr" data-map="STTR_ADDR" readonly />
<input type="text" class="form-control w-px-75" id="sttrZip--${pageName}" name="sttrZip" data-map="STTR_ZIP" readonly /> <input is="id-input" type="text" class="form-control w-px-75" name="sttrZip" data-map="STTR_ZIP" readonly />
</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-87" id="sttrDaddr--${pageName}" name="sttrDaddr" data-map="STTR_DADDR" readonly /> <input is="id-input" type="text" class="form-control w-87" name="sttrDaddr" data-map="STTR_DADDR" readonly />
</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-35" id="sttrCttpc--${pageName}" name="sttrCttpc" data-map="STTR_CTTPC" readonly /> <input is="id-input" type="text" class="form-control w-35" name="sttrCttpc" data-map="STTR_CTTPC" readonly />
</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-35" id="sttrEml--${pageName}" name="sttrEml" data-map="STTR_EML" readonly /> <input is="id-input" type="text" class="form-control w-35" name="sttrEml" data-map="STTR_EML" readonly />
</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-87" id="opnnSbmsnCn--${pageName}" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="4" data-maxlengthb="4000" readonly></textarea> <textarea is="id-textarea" type="text" class="form-control w-87" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="4" data-maxlengthb="4000" readonly></textarea>
</div> </div>
<!-- 의견 제출 구분 명 --> <!-- 의견 제출 구분 명 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="opnnSbmsnSeNm--${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="opnnSbmsnSeNm">의견제출구분</label>
<input type="text" class="form-control w-50" id="opnnSbmsnSeNm--${pageName}" name="opnnSbmsnSeNm" data-map="OPNN_SBMSN_SE_NM" readonly /> <input is="id-input" type="text" class="form-control w-50" name="opnnSbmsnSeNm" data-map="OPNN_SBMSN_SE_NM" readonly />
</div> </div>
<!-- 의견 제출 요지 --> <!-- 의견 제출 요지 -->
<div class="col-md-8"> <div class="col-md-8">
<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-80" id="opnnSbmsnGist--${pageName}" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" readonly /> <input is="id-input" type="text" class="form-control w-80" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" readonly />
</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-87" id="picRvwOpnn--${pageName}" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="3" data-maxlengthb="1000" readonly> <textarea is="id-textarea" type="text" class="form-control w-87" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="2" data-maxlengthb="1000" readonly></textarea>
</textarea>
</div> </div>
<!-- 등록 일시 / 등록자 --> <!-- 등록 일시 / 등록자 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="regDt--${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="regDt">등록일시</label>
<input type="text" class="form-control w-30" id="regDt--${pageName}" name="regDt" data-map="REG_DT" readonly /> <input is="id-input" type="text" class="form-control w-30" name="regDt" data-map="REG_DT" readonly />
<input type="text" class="form-control w-25" id="rgtrNm--${pageName}" name="rgtrNm" data-map="RGTR_NM" readonly /> <input is="id-input" type="text" class="form-control w-25" name="rgtrNm" data-map="RGTR_NM" readonly />
</div> </div>
<!-- 수정 일시 / 수정자 --> <!-- 수정 일시 / 수정자 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="mdfcnDt--${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="mdfcnDt">수정일시</label>
<input type="text" class="form-control w-30" id="mdfcnDt--${pageName}" name="mdfcnDt" data-map="MDFCN_DT" readonly /> <input is="id-input" type="text" class="form-control w-30" name="mdfcnDt" data-map="MDFCN_DT" readonly />
<input type="text" class="form-control w-25" id="mdfrNm--${pageName}" name="mdfrNm" data-map="MDFR_NM" readonly /> <input is="id-input" type="text" class="form-control w-25" name="mdfrNm" data-map="MDFR_NM" readonly />
</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>
@ -126,7 +125,8 @@
<th class="text-center" style="width: 200px">파일크기</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>
</thead> </thead>
<tbody></tbody> <tbody name="tbodyFileList">
</tbody>
</table> </table>
</div> <!-- 첨부 파일 테이블 <div class="table-responsive"> --> </div> <!-- 첨부 파일 테이블 <div class="table-responsive"> -->
</div> <!-- <div class="row g-1"> --> </div> <!-- <div class="row g-1"> -->
@ -142,7 +142,7 @@
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">심의 정보</label> <label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">심의 정보</label>
<!-- 버튼 우측 정렬 --> <!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnUpdateOpnnSbmsnDlbrt--${pageName}" title="의견제출 심의"> <button type="button" class="btn btn-primary w-px-120" name="btnUpdateOpnnSbmsnDlbrt" title="의견제출 심의">
의견제출 심의 의견제출 심의
</button> </button>
</span> </span>
@ -151,39 +151,37 @@
<div class="row g-1"> <div class="row g-1">
<!-- 문서 번호 --> <!-- 문서 번호 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="docNo--${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="docNo">문서번호</label>
<input type="text" class="form-control w-45" id="docNo--${pageName}" name="docNo" data-map="DOC_NO" readonly /> <input is="id-input" type="text" class="form-control w-45" name="docNo" data-map="DOC_NO" readonly />
</div> </div>
<!-- 통보 구분 --> <!-- 통보 구분 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="ntfctnSeNm--${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="ntfctnSeNm">통보구분</label>
<input type="text" class="form-control w-30" id="ntfctnSeNm--${pageName}" name="ntfctnSeNm" data-map="NTFCTN_SE_NM" readonly /> <input is="id-input" type="text" class="form-control w-30" name="ntfctnSeNm" data-map="NTFCTN_SE_NM" readonly />
</div> </div>
<!-- 의견 제출 상태 코드 --> <!-- 의견 제출 상태 코드 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="opnnSbmsnSttsNm--${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="opnnSbmsnSttsNm">심의결과</label>
<input type="text" class="form-control w-30" id="opnnSbmsnSttsNm--${pageName}" name="opnnSbmsnSttsNm" data-map="OPNN_SBMSN_STTS_NM" readonly /> <input is="id-input" type="text" class="form-control w-30" name="opnnSbmsnSttsNm" data-map="OPNN_SBMSN_STTS_NM" readonly />
<input type="hidden" id="opnnSbmsnSttsCd--${pageName}" name="opnnSbmsnSttsCd" data-map="OPNN_SBMSN_STTS_CD" /> <input is="id-input" type="hidden" name="opnnSbmsnSttsCd" data-map="OPNN_SBMSN_STTS_CD" />
</div> </div>
<!-- 답변일시 --> <!-- 답변 일시 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="ansYmdTm--${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="ansYmdTm">심의일시</label>
<input type="text" class="form-control w-45" id="ansYmdTm--${pageName}" name="ansYmdTm" data-map="ANS_YMD_TM" readonly /> <input is="id-input" type="text" class="form-control w-45" name="ansYmdTm" data-map="ANS_YMD_TM" readonly />
</div> </div>
<!-- 답변 내용 --> <!-- 심의 내용 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="ansCn--${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="ansCn">심의내용</label>
</div> </div>
<div class="col-md-12"> <div class="col-md-12">
<textarea type="text" class="form-control w-100" id="ansCn--${pageName}" name="ansCn" data-map="ANS_CN" rows="14" data-maxlengthb="4000"></textarea> <textarea is="id-textarea" type="text" class="form-control w-100" name="ansCn" data-map="ANS_CN" rows="14" data-maxlengthb="4000"></textarea>
</div> </div>
</div> </div>
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
</div> <!-- <div class="col-xl-3 mx-0"> --> </div> <!-- <div class="col-xl-3 mx-0"> -->
<!-- 심의 정보 --> <!-- 심의 정보 -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> --> </div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
<span id="tempArea--${pageName}" hidden></span>
</form> </form>
<!-- 입력 영역 --> <!-- 입력 영역 -->
</div> <!-- <div class="content-pop"> --> </div> <!-- <div class="content-pop"> -->
@ -192,7 +190,7 @@
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
pageObject["${pageName}"] = {}; pageObject["${pageName}"] = newDoctxFinder("${pageName}");
/************************************************************************** /**************************************************************************
* script 진입 * script 진입
@ -202,18 +200,18 @@
let $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// 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.opnnSbmsnInfo , dataGetter: obj => obj.opnnInfo
, formats: { , formats: {
RCPT_YMD: dateFormat RCPT_YMD: dateFormat
, ANS_YMD_TM: datetimeFormat , ANS_YMD_TM: datetimeFormat
@ -226,38 +224,45 @@
* DatasetControl 이벤트 * DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => { $P.ctrl.onCurrentChange = (item) => {
if (!item) return; if (!item) return;
$P.formFields.set($P.control, item); $P.formFields.set($P.ctrl, item);
let key = item.data.OPNN_ID; let key = item.data.OPNN_ID;
// 첨부파일 조회 // 첨부파일 조회
if (key != null) { if (key != null) { $P.fnSearchFileList(key); }
$P.fnSearchFileList(item.data.OPNN_ID);
}
} }
// 의견제출 dialog // 의견제출 정보 dialog
$P.control.getInfo = (params) => { $P.ctrl.getInfo = (params) => {
if (!params) return; if (!params) return;
ajax.get({ ajax.get({
url: wctx.url("/" + params.taskSeCd + "/excl/excl02/020/info.do") + "?openerPageName=${pageName}" url: wctx.url("/" + params.taskSeCd + "/excl/excl02/020/info.do")
, data: params || {} , data: params || {}
, success: resp => { , success: (resp) => {
if ((typeof resp) != "string") { if ((typeof resp) != "string") {
if (resp.rtnMsg != "") { if (resp.rtnMsg != "") {
dialog.alert(resp.rtnMsg); dialog.alert(resp.rtnMsg);
} }
return; return;
} else { } else {
let dialogName = $P.ctrl.prefixed("Dialog");
let dialogId = dialogName + "-" + uuid();
dialog.open({ dialog.open({
id: $P.control.prefixed("Dialog--${pageName}") id: dialogId
, title: params.title , title: params.btnTitle
, content: resp
, size: "lg" , size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });
} }
@ -266,26 +271,32 @@
} }
// 삭제 callback // 삭제 callback
$P.control.onRemove = (resp) => { $P.ctrl.onRemove = (params, resp) => {
let btnTitle = $("#btnRemoveOpnnSbmsn--${pageName}").attr("title"); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
dialog.alert({ dialog.alert({
content: showMessage content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
, onClose: () => {
if (resp.saved) {
$P.fnSearchFileList(); // 첨부파일 조회
$P.fnRefreshDataInfo(); // 자료 재조회
}
}
}); });
if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회
} }
// 삭제 // 삭제
$P.control.remove = (params) => { $P.ctrl.remove = (params) => {
if (!params) return; if (!params) return;
ajax.post({ ajax.post({
url: wctx.url("/" + params.taskSeCd + "/excl/excl02/010/remove.do") url: wctx.url("/" + params.taskSeCd + "/excl/excl02/010/remove.do")
, data: params || {} , data: params || {}
, success: resp => $P.control.onRemove(resp) , success: (resp) => {
$P.ctrl.onRemove(params, resp);
}
}); });
} }
@ -294,16 +305,16 @@
**************************************************************************/ **************************************************************************/
// 자료 재조회 // 자료 재조회
$P.fnRefreshDataInfo = () => { $P.fnRefreshDataInfo = () => {
// 단속 ID let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (!crdnId) return;
let params = { let params = {
callPurpose: "refresh" callPurpose: "refresh"
, crdnId: crdnId , sggCd: pageObject["${mainPageName}"].mainCtrl.getValue("SGG_CD")
, sggCd: $("#sggCd--${pageNameMain}").val() , taskSeCd: pageObject["${mainPageName}"].mainCtrl.getValue("TASK_SE_CD")
, taskSeCd: $("#taskSeCd--${pageNameMain}").val() , crdnId: pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID")
, delYn: "N" , delYn: "N"
}; };
@ -311,16 +322,19 @@
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/030/info.do") url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/030/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json , headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {} , data: params || {}
, success: resp => { , success: (resp) => {
// 초기화 // 초기화
$("#frmEdit--${pageName}")[0].reset(); // 화면 초기화 $P.find("frmEdit").reset(); // 화면 초기화
$P.control.dataset.clear(); // Dataset 초기화
$P.ctrl.dataset.clear(); // Dataset 초기화
// sprt02010-main 단속 정보 // sprt02010-main 단속 정보
pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]); pageObject["${mainPageName}"].mainCtrl.setData([resp.totalInfo]);
// 의견제출 정보 // Dataset 셋팅
if (resp.opnnSbmsnInfo) { $P.control.setData([resp.opnnSbmsnInfo]); } if (resp.opnnInfo) {
$P.ctrl.setData([resp.opnnInfo]); // 의견제출 정보
}
} }
}); });
} }
@ -330,32 +344,42 @@
if (!params) return; if (!params) return;
ajax.get({ ajax.get({
url: wctx.url("/" + params.taskSeCd + "/excl/excl02/030/info.do") + "?openerPageName=${pageName}" url: wctx.url("/" + params.taskSeCd + "/excl/excl02/030/info.do")
, data: params || {} , data: params || {}
, success: resp => { , success: (resp) => {
let dialogName = "opnnDlbrDialog";
let dialogId = dialogName + "-" + uuid();
dialog.open({ dialog.open({
id: "opnnDlbrDialog--${pageName}" id: dialogId
, title: params.title , title: params.btnTitle
, content: resp
, size: "lg" , size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });
} }
}); });
} }
// 사유 callback // 삭제 사유 callback
$P.callbackRsn = (obj) => { $P.callbackRsn = (obj) => {
// 서버에 전송할 data(파라미터) 생성 // 서버에 전송할 data(파라미터) 생성
let params = { let params = {
callPurpose: "remove" callPurpose: "remove"
, sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId: $P.control.dataset.getValue("OPNN_ID") // 의견제출 ID , opnnId: $P.ctrl.getValue("OPNN_ID") // 의견제출 ID
, btnTitle: obj.btnTitle // 버튼 title
, delRsn: obj.reason // 삭제 사유 , delRsn: obj.reason // 삭제 사유
}; };
$P.control.remove(params); $P.ctrl.remove(params);
} }
// 심의의결서 출력 // 심의의결서 출력
@ -376,46 +400,33 @@
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 의견제출 등록 버튼 이벤트 // 의견제출 등록 버튼 이벤트
$P.fnCreateOpnnSbmsn = (title) => { $P.fnCreateOpnnSbmsn = (btnTitle) => {
// 단속 ID let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 단속 상태 코드 // 단속 ID 가 없다면.. return
let crdnSttsCd = $("#crdnSttsCd--${pageNameMain}").val(); if (!crdnId) return;
let crdnSttsNm = $("#crdnSttsNm--${pageNameMain}").val();
// 단속 상태 코드 확인
if (Number(crdnSttsCd) < 01 || Number(crdnSttsCd) > 45) {
dialog.alert({
content: "[" + title + "]" + " 작업은 단속상태가 '부과 이전' 자료만 처리 가능합니다."
+ "<br>" + "단속상태 : " + crdnSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
, onOK: () => { }
});
return;
}
let params = { let params = {
callPurpose: "create" callPurpose: "create"
, title: title , btnTitle: btnTitle
, sggCd: $("#sggCd--${pageNameMain}").val() // 시군구 코드 , sggCd: pageObject["${mainPageName}"].mainCtrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $("#taskSeCd--${pageNameMain}").val() // 업무 구분 코드 , taskSeCd: pageObject["${mainPageName}"].mainCtrl.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: crdnId // 단속 ID , crdnId: pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID") // 단속 ID
, delYn: "N"
}; };
$P.control.getInfo(params); $P.ctrl.getInfo(params);
} }
// 의견제출 수정 버튼 이벤트 // 의견제출 수정 버튼 이벤트
$P.fnUpdateOpnnSbmsn = (title) => { $P.fnUpdateOpnnSbmsn = (btnTitle) => {
// 의견제출 ID let opnnId = $P.ctrl.getValue("OPNN_ID"); // 의견제출 ID
let opnnId = $P.control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return // 의견제출 ID 가 없다면.. return
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") { if (!opnnId) {
dialog.alert({ dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다." content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -423,38 +434,40 @@
let params = { let params = {
callPurpose: "update" callPurpose: "update"
, title: title , btnTitle: btnTitle
, sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId: opnnId // 의견제출 ID , crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
, opnnId: $P.ctrl.getValue("OPNN_ID") // 의견제출 ID
}; };
$P.control.getInfo(params); $P.ctrl.getInfo(params);
} }
// 의견제출 삭제 버튼 이벤트 // 의견제출 삭제 버튼 이벤트
$P.fnRemoveOpnnSbmsn = (title) => { $P.fnRemoveOpnnSbmsn = (btnTitle) => {
// 의견제출 ID let opnnId = $P.ctrl.getValue("OPNN_ID"); // 의견제출 ID
let opnnId = $P.control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return // 의견제출 ID 가 없다면.. return
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") { if (!opnnId) {
dialog.alert({ dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다." content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { } , onOK: () => { }
}); });
return; return;
} }
// 의견제출 상태 코드 // 의견제출 상태 코드
let opnnSbmsnSttsCd = $("#opnnSbmsnSttsCd--${pageName}").val(); let opnnSbmsnSttsCd = $P.ctrl.getValue("OPNN_SBMSN_STTS_CD");
let opnnSbmsnSttsNm = $("#opnnSbmsnSttsNm--${pageName}").val(); let opnnSbmsnSttsNm = $P.ctrl.getValue("OPNN_SBMSN_STTS_NM");
// 의견제출 상태 코드 확인 // 의견제출 상태 코드 확인
if (opnnSbmsnSttsCd != '00' && opnnSbmsnSttsCd != '03') { if (opnnSbmsnSttsCd != '00' && opnnSbmsnSttsCd != '03') {
dialog.alert({ dialog.alert({
content: "[" + title + "]" + " 작업은 심의결과가 '접수', '자진취하' 자료만 삭제 가능합니다." content: "[" + btnTitle + "]" + " 작업은 심의결과가 '접수', '자진취하' 자료만 삭제 가능합니다."
+ "<br>" + "심의결과 : " + opnnSbmsnSttsNm + "<br>" + "심의결과 : " + opnnSbmsnSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -462,7 +475,7 @@
// 삭제 메세지 확인 // 삭제 메세지 확인
dialog.alert({ dialog.alert({
content: "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?" content: "선택하신 " + $P.ctrl.prefixName + " 정보를 삭제하시겠습니까?"
, onOK: () => { , onOK: () => {
// 삭제 사유 입력 // 삭제 사유 입력
fetch(wctx.url("/resources/html/inputRsnDialog.html")) fetch(wctx.url("/resources/html/inputRsnDialog.html"))
@ -470,12 +483,15 @@
.then(function(template) { .then(function(template) {
dialog.open({ dialog.open({
id: "inputDelRsnDialog" id: "inputDelRsnDialog"
, title: title , title: btnTitle
, size: "lg" , size: "lg"
, content: template , content: template
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => {
$P.callbackRsn({ reason: $("#reason").val() }); $P.callbackRsn({
btnTitle: btnTitle // 버튼 title
, reason: $("#reason").val() // 삭제 사유
});
} }
}); });
}); });
@ -484,14 +500,14 @@
} }
// 심의의결서 출력 버튼 이벤트 // 심의의결서 출력 버튼 이벤트
$P.fnPrintDlbrDecsn = (title) => { $P.fnPrintDlbrDecsn = (btnTitle) => {
// 의견제출 ID let opnnId = $P.ctrl.getValue("OPNN_ID"); // 의견제출 ID
let opnnId = $P.control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return // 의견제출 ID 가 없다면.. return
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") { if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") {
dialog.alert({ dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다." content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -499,38 +515,39 @@
let params = { let params = {
callPurpose: "download" callPurpose: "download"
, title: title , btnTitle: btnTitle
, sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnIds: opnnId // 의견제출 ID , opnnIds: $P.ctrl.getValue("OPNN_ID") // 의견제출 ID
}; };
$P.makeHwpFileDlbrDecsn(params); $P.makeHwpFileDlbrDecsn(params);
} }
// 의견제출 심의 버튼 이벤트 // 의견제출 심의 버튼 이벤트
$P.fnUpdateOpnnSbmsnDlbrt = (title) => { $P.fnUpdateOpnnSbmsnDlbrt = (btnTitle) => {
// 의견제출 ID let opnnId = $P.ctrl.getValue("OPNN_ID"); // 의견제출 ID
let opnnId = $P.control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return // 의견제출 ID 가 없다면.. return
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") { if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") {
dialog.alert({ dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다." content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { } , onOK: () => { }
}); });
return; return;
} }
// 단속 상태 코드 // 단속 상태 코드
let crdnSttsCd = $("#crdnSttsCd--${pageNameMain}").val(); let crdnSttsCd = $P.ctrl.getValue("CRDN_STTS_CD");
let crdnSttsNm = $("#crdnSttsNm--${pageNameMain}").val(); let crdnSttsNm = $P.ctrl.getValue("CRDN_STTS_NM");
// 단속 상태 코드 확인 // 단속 상태 코드 확인
if ( (Number(crdnSttsCd) != 82 && Number(crdnSttsCd) != 87) && (Number(crdnSttsCd) < 21 || Number(crdnSttsCd) > 45) ) { if ( (Number(crdnSttsCd) != 82 && Number(crdnSttsCd) != 87) && (Number(crdnSttsCd) < 21 || Number(crdnSttsCd) > 45) ) {
dialog.alert({ dialog.alert({
content: "[" + title + "]" + " 작업은 단속상태가 '의견제출수용', '경찰서이첩', '부과 이전' 자료만 처리 가능합니다." content: "[" + btnTitle + "]" + " 작업은 단속상태가 '의견제출수용', '경찰서이첩', '부과 이전' 자료만 처리 가능합니다."
+ "<br>" + "단속상태 : " + crdnSttsNm + "<br>" + "단속상태 : " + crdnSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { } , onOK: () => { }
}); });
return; return;
@ -538,10 +555,10 @@
let params = { let params = {
callPurpose: "update" callPurpose: "update"
, title: title , btnTitle: btnTitle
, sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId: opnnId // 의견제출 ID , opnnId: $P.ctrl.getValue("OPNN_ID") // 의견제출 ID
}; };
$P.getOpnnSbmsnDlbrtInfo(params); $P.getOpnnSbmsnDlbrtInfo(params);
@ -549,29 +566,26 @@
// 첨부파일 조회 // 첨부파일 조회
$P.fnSearchFileList = (opnnId) => { $P.fnSearchFileList = (opnnId) => {
// 의견제출 등록일 경우에는 첨부파일을 조회하지 안는다.. let tableFileList = $P.find("fileList"); // table element 찾기
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return; let fileLength = tableFileList.rows.length;
let iLoop = 0;
// 기존 table에 자료가 존재하면 table 삭제
let fileListTable = document.getElementById("fileList--${pageName}"); // table element 찾기
if (fileListTable.rows.length == 1) { iLoop = 2; } // 기존 table에 자료가 존재하면 tableRow 삭제
else { iLoop = 1; } for (let iLoop = 1; iLoop < fileLength; iLoop++) {
tableFileList.deleteRow(1); // table 행(Row) 삭제
for (iLoop; iLoop <= fileListTable.rows.length; iLoop++) {
let newRow = fileListTable.deleteRow(fileListTable.rows.length-1); // table 행(Row) 삭제
} }
// 의견제출 ID 가 없다면 첨부파일을 조회하지 않는다..
if (!opnnId) return;
// 첨부파일 리스트 // 첨부파일 리스트
ajax.get({ ajax.get({
url : "file/list.do" url: "file/list.do"
, data : { , data: {
infoType : "110" infoType: "110"
, 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;
@ -589,7 +603,7 @@
innerHtml += "pageObject['${pageName}'].fnFileDownload(" + item.FILE_ID + ");" + "><i class='bx bx-download me-1'></i></button>" + "</td>"; innerHtml += "pageObject['${pageName}'].fnFileDownload(" + item.FILE_ID + ");" + "><i class='bx bx-download me-1'></i></button>" + "</td>";
innerHtml += "</tr>"; innerHtml += "</tr>";
$("#fileList--${pageName} > tbody:last").append(innerHtml); $P.$find("tbodyFileList").append(innerHtml);
}); });
} }
}); });
@ -597,7 +611,7 @@
// 첨부파일 다운로드 버튼 이벤트 // 첨부파일 다운로드 버튼 이벤트
$P.fnFileDownload = (fileID) => { $P.fnFileDownload = (fileID) => {
if (pageObject['${pageNameMain}'].callPurpose == "view") { return; } if (pageObject['${mainPageName}'].callPurpose == "view") { return; }
top.location.href = "/file/download.do?fileID=" + fileID; top.location.href = "/file/download.do?fileID=" + fileID;
} }
@ -607,42 +621,37 @@
**************************************************************************/ **************************************************************************/
// 이벤트 설정 // 이벤트 설정
$P.setEvent = () => { $P.setEvent = () => {
// 의견제출 등록 버튼 이벤트 // 업무 버튼 이벤트
$("#btnCreateOpnnSbmsn--${pageName}").on("click", function() { $P.$find("btnCreateOpnnSbmsn").on("click", function() {
$P.fnCreateOpnnSbmsn($(this).attr("title")); $P.fnCreateOpnnSbmsn($P.$find("btnCreateOpnnSbmsn").attr("title")); // 의견제출 등록
}); });
// 의견제출 수정 버튼 이벤트 $P.$find("btnUpdateOpnnSbmsn").on("click", function() {
$("#btnUpdateOpnnSbmsn--${pageName}").on("click", function() { $P.fnUpdateOpnnSbmsn($P.$find("btnUpdateOpnnSbmsn").attr("title")); // 의견제출 수정
$P.fnUpdateOpnnSbmsn($(this).attr("title"));
}); });
// 의견제출 삭제 버튼 이벤트 $P.$find("btnRemoveOpnnSbmsn").on("click", function() {
$("#btnRemoveOpnnSbmsn--${pageName}").on("click", function() { $P.fnRemoveOpnnSbmsn($P.$find("btnRemoveOpnnSbmsn").attr("title")); // 의견제출 삭제
$P.fnRemoveOpnnSbmsn($(this).attr("title"));
}); });
// 심의의결서 출력 버튼 이벤트 $P.$find("btnPrintDlbrDecsn").on("click", function() {
$("#btnPrintDlbrDecsn--${pageName}").on("click", function() { $P.fnPrintDlbrDecsn($P.$find("btnPrintDlbrDecsn").attr("title")); // 심의의결서 출력
$P.fnPrintDlbrDecsn($(this).attr("title"));
}); });
// 의견제출 심의 버튼 이벤트 $P.$find("btnUpdateOpnnSbmsnDlbrt").on("click", function() {
$("#btnUpdateOpnnSbmsnDlbrt--${pageName}").on("click", function() { $P.fnUpdateOpnnSbmsnDlbrt($P.$find("btnUpdateOpnnSbmsnDlbrt").attr("title")); // 의견제출 심의
$P.fnUpdateOpnnSbmsnDlbrt($(this).attr("title"));
}); });
} }
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = () => {
// button 요소들을 disabled = true // 화면 호출(callPurpose)이 view라면 버튼 비활성화 disabled = true
$("#btnCreateOpnnSbmsn--${pageName}").prop("disabled", true); if (pageObject['${mainPageName}'].callPurpose == "view") {
$("#btnUpdateOpnnSbmsn--${pageName}").prop("disabled", true); $P.$find("btnCreateOpnnSbmsn").prop("disabled", true);
$("#btnRemoveOpnnSbmsn--${pageName}").prop("disabled", true); $P.$find("btnUpdateOpnnSbmsn").prop("disabled", true);
$("#btnUpdateOpnnSbmsnDlbrt--${pageName}").prop("disabled", true); $P.$find("btnRemoveOpnnSbmsn").prop("disabled", true);
$P.$find("btnUpdateOpnnSbmsnDlbrt").prop("disabled", true);
// 화면 호출(callPurpose)이 view가 아니라면 버튼 비활성화 disabled = false } else {
if (pageObject['${pageNameMain}'].callPurpose != "view") { $P.$find("btnCreateOpnnSbmsn").prop("disabled", false);
$("#btnCreateOpnnSbmsn--${pageName}").prop("disabled", false); $P.$find("btnUpdateOpnnSbmsn").prop("disabled", false);
$("#btnUpdateOpnnSbmsn--${pageName}").prop("disabled", false); $P.$find("btnRemoveOpnnSbmsn").prop("disabled", false);
$("#btnRemoveOpnnSbmsn--${pageName}").prop("disabled", false); $P.$find("btnUpdateOpnnSbmsnDlbrt").prop("disabled", false);
$("#btnUpdateOpnnSbmsnDlbrt--${pageName}").prop("disabled", false);
} }
} }
@ -656,10 +665,8 @@
$P.initForm(); $P.initForm();
// 3. Dataset 설정 // 3. Dataset 설정
let opnnSbmsnInfo = ${opnnSbmsnInfo}; // 의견제출 정보 let opnnInfo = ${opnnInfo}; // 의견제출 정보
if (opnnSbmsnInfo) { if (opnnInfo) { $P.ctrl.setData([opnnInfo]); }
$P.control.setData([opnnSbmsnInfo]);
}
}); });
</script> </script>

@ -2,26 +2,26 @@
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- Page Body --> <!-- Page Body -->
<div class="content-pop"> <div class="content-pop" data-doctx="${pageName}">
<div class="d-flex flex-row justify-content-evenly"> <div class="d-flex flex-row justify-content-evenly">
<!-- 발송 정보 --> <!-- 발송 정보 -->
<div class="col-xl-12 mx-1"> <div class="col-xl-12 mx-1">
<div class="card"> <div class="card">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">발송 이력</label> <label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">발송 이력</label>
<!-- 버튼 우측 정렬 --> <!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnCreateSndbk--${pageName}" title="개별 반송 등록"> <button type="button" class="btn btn-primary w-px-120" name="btnCreateSndbk" title="개별 반송 등록">
개별 반송 등록 반송 등록
</button> </button>
<button type="button" class="btn btn-primary" id="btnUpdateSndbk--${pageName}" title="개별 반송 수정"> <button type="button" class="btn btn-primary w-px-120" name="btnUpdateSndbk" title="개별 반송 수정">
개별 반송 수정 반송 수정
</button> </button>
<button type="button" class="btn btn-primary" id="btnRemoveSndbk--${pageName}" title="개별 반송 삭제"> <button type="button" class="btn btn-primary w-px-120" name="btnRemoveSndbk" title="개별 반송 삭제">
개별 반송 삭제 반송 삭제
</button> </button>
<button type="button" class="btn btn-primary" id="btnViewPostTrace--${pageName}" title="우편 종적 보기"> <button type="button" class="btn btn-primary w-px-120" name="btnViewPostTrace" title="우편 종적 보기">
우편 종적 보기 우편 종적 보기
</button> </button>
</span> </span>
@ -30,12 +30,11 @@
<div class="row g-1"> <div class="row g-1">
<!-- DataTables(그리드) --> <!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap"> <div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}"> <div class="dataTables_wrapper dt-bootstrap5 no-footer">
<div class="table-responsive ox-scroll oy-scroll h-px-300" id="table-responsive-sndngDtl--${pageName}"> <div class="table-responsive ox-scroll oy-scroll h-px-300" name="tableRspnsSndngDtl">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" <table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" aria-describedby="DataTables_Table_0_info">
id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead"> <thead class="sticky-thead">
<tr id="theadTrSndngDtl--${pageName}"> <tr name="theadTrSndngDtl">
<th class="cmn" style="width: 120px">발송상태</th> <th class="cmn" style="width: 120px">발송상태</th>
<th class="cmn" style="width: 100px">수납</th> <th class="cmn" style="width: 100px">수납</th>
<th class="cmn" style="width: 100px">취급구분</th> <th class="cmn" style="width: 100px">취급구분</th>
@ -55,6 +54,7 @@
<th class="cmn" style="width: 160px">미배달사유</th> <th class="cmn" style="width: 160px">미배달사유</th>
<th class="cmn" style="width: 120px">수령인</th> <th class="cmn" style="width: 120px">수령인</th>
<th class="cmn" style="width: 160px">수령인관계</th> <th class="cmn" style="width: 160px">수령인관계</th>
<th class="cmn" style="width: 200px">발송상세ID</th>
<th class="cmn" style="width: 180px">등록일시</th> <th class="cmn" style="width: 180px">등록일시</th>
<th class="cmn" style="width: 140px">등록사용자</th> <th class="cmn" style="width: 140px">등록사용자</th>
<th class="cmn" style="width: 180px">수정일시</th> <th class="cmn" style="width: 180px">수정일시</th>
@ -62,10 +62,10 @@
<th class="cmn dummy-th"></th> <th class="cmn dummy-th"></th>
</tr> </tr>
</thead> </thead>
<tbody id="tbodySndngDtl--${pageName}"> <tbody name="tableTbodySndngDtl">
</tbody> </tbody>
<template id="sndngDtlRow--${pageName}"> <template is="curly-brackets" name="tableRowsSndngDtl">
<tr data-key="{SNDNG_DTL_ID}"> <tr data-key="SNDNG_DTL_ID">
<td class="text-center" onclick="{onclick}">{SNDNG_DTL_STTS_NM}</td> <td class="text-center" onclick="{onclick}">{SNDNG_DTL_STTS_NM}</td>
<td class="text-center" onclick="{onclick}">{SNDNG_RCVMT_NM}</td> <td class="text-center" onclick="{onclick}">{SNDNG_RCVMT_NM}</td>
<td class="text-center" onclick="{onclick}">{DIV_KB_NM}</td> <td class="text-center" onclick="{onclick}">{DIV_KB_NM}</td>
@ -85,6 +85,7 @@
<td class="text-start" onclick="{onclick}">{UNDLVR_RSN_NM}</td> <td class="text-start" onclick="{onclick}">{UNDLVR_RSN_NM}</td>
<td class="text-start" onclick="{onclick}">{ACTL_RCPN_NM}</td> <td class="text-start" onclick="{onclick}">{ACTL_RCPN_NM}</td>
<td class="text-center" onclick="{onclick}">{RCPN_REL_NM}</td> <td class="text-center" onclick="{onclick}">{RCPN_REL_NM}</td>
<td class="text-center" onclick="{onclick}">{SNDNG_DTL_ID}</td>
<td class="text-center" onclick="{onclick}">{REG_DT}</td> <td class="text-center" onclick="{onclick}">{REG_DT}</td>
<td class="text-center" onclick="{onclick}">{RGTR_NM}</td> <td class="text-center" onclick="{onclick}">{RGTR_NM}</td>
<td class="text-center" onclick="{onclick}">{MDFCN_DT}</td> <td class="text-center" onclick="{onclick}">{MDFCN_DT}</td>
@ -92,9 +93,9 @@
<td class="cmn dummy-td"></td> <td class="cmn dummy-td"></td>
</tr> </tr>
</template> </template>
<template id="sndngDtlNotFound--${pageName}"> <template name="notFoundSndngDtl">
<tr class="odd"> <tr class="odd">
<td valign="top" colspan="23" class="dataTables_empty text-center">발송 정보를 찾지 못했습니다.</td> <td valign="top" colspan="25" class="dataTables_empty text-center">발송 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
@ -111,25 +112,25 @@
<!-- 가상계좌 정보 --> <!-- 가상계좌 정보 -->
<div class="col-xl-3 mx-1"> <div class="col-xl-3 mx-1">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form name="frmEdit">
<!-- hidden --> <!-- hidden -->
<input type="hidden" id="sndngDtlId--${pageName}" name="sndngDtlId" data-map="SNDNG_DTL_ID" /> <input type="hidden" name="sndngDtlId" data-map="SNDNG_DTL_ID" />
<input type="hidden" id="sndngId--${pageName}" name="sndngId" data-map="SNDNG_ID" /> <input type="hidden" name="sndngId" data-map="SNDNG_ID" />
<div class="card"> <div class="card">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">가상계좌 정보</label> <label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">가상계좌 정보</label>
</div> <!-- <div class="container-page-btn"> --> </div> <!-- <div class="container-page-btn"> -->
<div class="row g-1"> <div class="row g-1">
<!-- 가상계좌 --> <!-- 가상계좌 -->
<div class="col-md-12"> <div class="col-md-12">
<textarea type="text" class="form-control w-100" id="vrActno--${pageName}" name="vrActno" cols="100%" rows="10" readonly></textarea> <textarea is="id-textarea" type="text" class="form-control w-100" name="vrActno" cols="100%" rows="10" readonly></textarea>
</div> </div>
<!-- 전자납부번호 --> <!-- 전자납부번호 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="epayno--${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="epayno">전자납부번호</label>
<input type="text" class="form-control w-65" id="epayno--${pageName}" name="epayno" data-map="EPAYNO" readonly /> <input is="id-input" type="text" class="form-control w-65" name="epayno" data-map="EPAYNO" readonly />
</div> </div>
</div> </div>
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
@ -142,42 +143,47 @@
<div class="card"> <div class="card">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">공시송달 이력</label> <label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">공시송달 이력</label>
</div> </div>
<div class="row g-1"> <div class="row g-1">
<!-- DataTables(그리드) --> <!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap"> <div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_1_wrapper--${pageName}"> <div class="dataTables_wrapper dt-bootstrap5 no-footer">
<div class="table-responsive ox-scroll oy-scroll h-px-250" id="table-responsive-1--${pageName}"> <div class="table-responsive ox-scroll oy-scroll h-px-250" name="tableRspnsSvbtc">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" <table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" aria-describedby="DataTables_Table_0_info">
id="DataTables_Table_1--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead"> <thead class="sticky-thead">
<tr id="theadTrSvbtc--${pageName}"> <tr name="theadTrSvbtc">
<th class="cmn" style="width: 120px">공시송달일자</th> <th class="cmn sorting" style="width: 140px" data-field="SNDNG_SE_NM">발송구분</th>
<th class="cmn" style="width: 180px">문서번호</th> <th class="cmn sorting" style="width: 120px" data-field="SNDNG_YMD">발송일자</th>
<th class="cmn" style="width: 280px">제목</th> <th class="cmn sorting" style="width: 120px" data-field="SVBTC_YMD">공시송달일자</th>
<th class="cmn" style="width: 280px">기타내용</th> <th class="cmn sorting" style="width: 180px" data-field="DOC_NO">문서번호</th>
<th class="cmn" style="width: 180px">등록일시</th> <th class="cmn sorting" style="width: 300px" data-field="TTL_NM">제목</th>
<th class="cmn" style="width: 140px">등록사용자</th> <th class="cmn sorting" style="width: 300px" data-field="ETC_CN">기타내용</th>
<th class="cmn sorting" style="width: 200px" data-field="SNDNG_DTL_ID">발송상세ID</th>
<th class="cmn sorting" style="width: 180px" data-field="REG_DT">등록일시</th>
<th class="cmn sorting" style="width: 140px" data-field="RGTR_NM">등록사용자</th>
<th class="cmn dummy-th"></th> <th class="cmn dummy-th"></th>
</tr> </tr>
</thead> </thead>
<tbody id="tbodySvbtc--${pageName}"> <tbody name="tableTbodySvbtc">
</tbody> </tbody>
<template id="svbtcRow--${pageName}"> <template is="curly-brackets" name="tableRowsSvbtc">
<tr data-key="{SVBTC_ID}"> <tr data-key="SNDNG_DTL_ID">
<td class="text-center" onclick="{onclick}">{SVBTC_YMD}</td> <td class="text-center" onclick>{SNDNG_SE_NM}</td>
<td class="text-start" onclick="{onclick}">{DOC_NO}</td> <td class="text-center" onclick>{SNDNG_YMD}</td>
<td class="text-start" onclick="{onclick}">{TTL_NM}</td> <td class="text-center" onclick>{SVBTC_YMD}</td>
<td class="text-start" onclick="{onclick}">{ETC_CN}</td> <td class="text-start" onclick>{DOC_NO}</td>
<td class="text-center" onclick="{onclick}">{REG_DT}</td> <td class="text-start" onclick>{TTL_NM}</td>
<td class="text-center" onclick="{onclick}">{RGTR_NM}</td> <td class="text-start" onclick>{ETC_CN}</td>
<td class="text-center" onclick>{SNDNG_DTL_ID}</td>
<td class="text-center" onclick>{REG_DT}</td>
<td class="text-center" onclick>{RGTR_NM}</td>
<td class="cmn dummy-td"></td> <td class="cmn dummy-td"></td>
</tr> </tr>
</template> </template>
<template id="svbtcNotFound--${pageName}"> <template name="notFoundSvbtc">
<tr class="odd"> <tr class="odd">
<td valign="top" colspan="7" class="dataTables_empty text-center">공시송달 정보를 찾지 못했습니다.</td> <td valign="top" colspan="9" class="dataTables_empty text-center">공시송달 정보를 찾지 못했습니다.</td>
</tr> </tr>
</template> </template>
</table> </table>
@ -195,7 +201,7 @@
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
pageObject["${pageName}"] = {}; pageObject["${pageName}"] = newDoctxFinder("${pageName}");
/************************************************************************** /**************************************************************************
* script 진입 * script 진입
@ -205,15 +211,15 @@
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
**************************************************************************/ **************************************************************************/
// 발송 상세 정보 DatasetControl // 발송 상세 정보 DatasetControl
$P.sndngDtlControl = new DatasetControl({ $P.ctrlSndngDtl = new DatasetControl({
prefix: "sndng" prefix: "sndng"
, prefixName: "발송 반송" , prefixName: "발송반송"
, keymapper: info => info ? info.SNDNG_DTL_ID : "" , keymapper: info => info ? info.SNDNG_DTL_ID : ""
, dataGetter: obj => obj.sndngDtls , dataGetter: obj => obj.sndngDtls
, appendData: true , appendData: true
@ -229,14 +235,15 @@
}); });
// 공시송달 정보 DatasetControl // 공시송달 정보 DatasetControl
$P.svbtcDtlControl = new DatasetControl({ $P.ctrlSvbtc = new DatasetControl({
prefix: "svbtc" prefix: "svbtc"
, prefixName: "공시송달" , prefixName: "공시송달"
, keymapper: info => info ? info.SVBTC_ID : "" , keymapper: info => info ? info.SNDNG_DTL_ID : ""
, dataGetter: obj => obj.svbtcDtls , dataGetter: obj => obj.svbtcDtls
, appendData: true , appendData: true
, formats: { , formats: {
SVBTC_YMD: dateFormat SNDNG_YMD: dateFormat
, SVBTC_YMD: dateFormat
, REG_DT: datetimeFormat , REG_DT: datetimeFormat
} }
}); });
@ -244,61 +251,62 @@
/************************************************************************** /**************************************************************************
* 발송 상세 DatasetControl 이벤트 * 발송 상세 DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
// Dataset 변경 // Dataset 변경 이벤트
$P.sndngDtlControl.onDatasetChange = (obj, option) => { $P.ctrlSndngDtl.onDatasetChange = (obj, option) => {
$P.renderSndngList(); $P.renderSndngDtlList();
}; };
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
$P.sndngDtlControl.onCurrentChange = (item) => { $P.ctrlSndngDtl.onCurrentChange = (item) => {
if (!item) return; if (!item) return;
let key = item.data.SNDNG_DTL_ID; let key = item.data.SNDNG_DTL_ID;
$("#tbodySndngDtl--${pageName}").setCurrentRow(key); $P.$find("tableTbodySndngDtl").setCurrentRow(key);
// 가상계좌번호 // 가상계좌번호
let vrActno = ""; let vrActno = Array.from({length: 20}, (x, i) => {
let no = i + 1
if (item.data.BANK_NM != null && item.data.BANK_NM != "") vrActno += item.data.BANK_NM + " " + item.data.VR_ACTNO + "\n"; // 가상 계좌번호 , bank = "BANK_NM" + (no > 1 ? no : "")
if (item.data.BANK_NM2 != null && item.data.BANK_NM2 != "") vrActno += item.data.BANK_NM2 + " " + item.data.VR_ACTNO2 + "\n"; // 가상 계좌번호2 , account = "VR_ACTNO" + (no > 1 ? no : "");
if (item.data.BANK_NM3 != null && item.data.BANK_NM3 != "") vrActno += item.data.BANK_NM3 + " " + item.data.VR_ACTNO3 + "\n"; // 가상 계좌번호3
if (item.data.BANK_NM4 != null && item.data.BANK_NM4 != "") vrActno += item.data.BANK_NM4 + " " + item.data.VR_ACTNO4 + "\n"; // 가상 계좌번호4 return [bank, account]
if (item.data.BANK_NM5 != null && item.data.BANK_NM5 != "") vrActno += item.data.BANK_NM5 + " " + item.data.VR_ACTNO5 + "\n"; // 가상 계좌번호5 })
if (item.data.BANK_NM6 != null && item.data.BANK_NM6 != "") vrActno += item.data.BANK_NM6 + " " + item.data.VR_ACTNO6 + "\n"; // 가상 계좌번호6 .map(entry => {
if (item.data.BANK_NM7 != null && item.data.BANK_NM7 != "") vrActno += item.data.BANK_NM7 + " " + item.data.VR_ACTNO7 + "\n"; // 가상 계좌번호7 let bank = item.data[entry[0]]
if (item.data.BANK_NM8 != null && item.data.BANK_NM8 != "") vrActno += item.data.BANK_NM8 + " " + item.data.VR_ACTNO8 + "\n"; // 가상 계좌번호8 , account = item.data[entry[1]];
if (item.data.BANK_NM9 != null && item.data.BANK_NM9 != "") vrActno += item.data.BANK_NM9 + " " + item.data.VR_ACTNO9 + "\n"; // 가상 계좌번호9
if (item.data.BANK_NM10 != null && item.data.BANK_NM10 != "") vrActno += item.data.BANK_NM10 + " " + item.data.VR_ACTNO10 + "\n"; // 가상 계좌번호10 return bank ? bank + " " + account : null;
if (item.data.BANK_NM11 != null && item.data.BANK_NM11 != "") vrActno += item.data.BANK_NM11 + " " + item.data.VR_ACTNO11 + "\n"; // 가상 계좌번호11 })
if (item.data.BANK_NM12 != null && item.data.BANK_NM12 != "") vrActno += item.data.BANK_NM12 + " " + item.data.VR_ACTNO12 + "\n"; // 가상 계좌번호12 .filter(txt => txt != null)
if (item.data.BANK_NM13 != null && item.data.BANK_NM13 != "") vrActno += item.data.BANK_NM13 + " " + item.data.VR_ACTNO13 + "\n"; // 가상 계좌번호13 .join("\n");
if (item.data.BANK_NM14 != null && item.data.BANK_NM14 != "") vrActno += item.data.BANK_NM14 + " " + item.data.VR_ACTNO14 + "\n"; // 가상 계좌번호14
if (item.data.BANK_NM15 != null && item.data.BANK_NM15 != "") vrActno += item.data.BANK_NM15 + " " + item.data.VR_ACTNO15 + "\n"; // 가상 계좌번호15 $P.$find("vrActno").val(vrActno); // 가상 계좌번호
if (item.data.BANK_NM16 != null && item.data.BANK_NM16 != "") vrActno += item.data.BANK_NM16 + " " + item.data.VR_ACTNO16 + "\n"; // 가상 계좌번호16 $P.$find("epayno").val(item.data.EPAYNO_MASK); // 전자납부번호
if (item.data.BANK_NM17 != null && item.data.BANK_NM17 != "") vrActno += item.data.BANK_NM17 + " " + item.data.VR_ACTNO17 + "\n"; // 가상 계좌번호17
if (item.data.BANK_NM18 != null && item.data.BANK_NM18 != "") vrActno += item.data.BANK_NM18 + " " + item.data.VR_ACTNO18 + "\n"; // 가상 계좌번호18
if (item.data.BANK_NM19 != null && item.data.BANK_NM19 != "") vrActno += item.data.BANK_NM19 + " " + item.data.VR_ACTNO19 + "\n"; // 가상 계좌번호19
if (item.data.BANK_NM20 != null && item.data.BANK_NM20 != "") vrActno += item.data.BANK_NM20 + " " + item.data.VR_ACTNO20 + "\n"; // 가상 계좌번호20
$("#vrActno--${pageName}").val(vrActno); // 가상 계좌번호
$("#epayno--${pageName}").val(item.data.EPAYNO_MASK); // 전자납부번호
} }
// 개별 반송 dialog // 개별 반송 dialog
$P.sndngDtlControl.getInfo = (params) => { $P.ctrlSndngDtl.getInfo = (params) => {
if (!params) return; if (!params) return;
ajax.get({ ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sndb/sndb01/230/info.do") + "?openerPageName=${pageName}" url: wctx.url("/" + params.taskSeCd + "/sndb/sndb01/230/info.do")
, data: params || {} , data: params || {}
, success: resp => { , success: (resp) => {
let dialogName = "sndbkDialog";
let dialogId = dialogName + "-" + uuid();
dialog.open({ dialog.open({
id: "sndbkDialog--${pageName}" id: dialogId
, title: params.title , title: params.title
, content: resp
, size: "md" , size: "md"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회 , onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
}); });
} }
@ -306,27 +314,29 @@
} }
// 개별 반송 삭제 callback // 개별 반송 삭제 callback
$P.sndngDtlControl.onRemove = (resp) => { $P.ctrlSndngDtl.onRemove = (params, resp) => {
let btnTitle = $("#btnRemoveSndbk--${pageName}").attr("title"); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
dialog.alert({ dialog.alert({
content: showMessage content: showMessage
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); , onClose: () => {
if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회 if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회
} }
});
}
// 개별 반송 삭제 // 개별 반송 삭제
$P.sndngDtlControl.remove = (params) => { $P.ctrlSndngDtl.remove = (params) => {
if (!params) return; if (!params) return;
ajax.post({ ajax.post({
url: wctx.url("/" + params.taskSeCd + "/sndb/sndb01/220/remove.do") url: wctx.url("/" + params.taskSeCd + "/sndb/sndb01/220/remove.do")
, data: params || {} , data: params || {}
, success: resp => $P.sndngDtlControl.onRemove(resp) , success: (resp) => {
$P.ctrlSndngDtl.onRemove(params, resp);
}
}); });
} }
@ -334,52 +344,48 @@
* 공시송달 DatasetControl 이벤트 * 공시송달 DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
// Dataset 변경 // Dataset 변경
$P.svbtcDtlControl.onDatasetChange = (obj, option) => { $P.ctrlSvbtc.onDatasetChange = (obj, option) => {
$P.renderSvbtcList(); $P.renderSvbtcList();
} }
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
$P.svbtcDtlControl.onCurrentChange = (item) => { $P.ctrlSvbtc.onCurrentChange = (item) => {
if (!item) return; if (!item) return;
let key = item.data.SVBTC_ID; let key = item.data.SNDNG_DTL_ID;
$("#tbodySvbtc--${pageName}").setCurrentRow(key); $P.$find("tableTbodySvbtc").setCurrentRow(key);
} }
/************************************************************************** /**************************************************************************
* DataTables 이벤트 * DataTables 이벤트
**************************************************************************/ **************************************************************************/
// DataTables에 click, dbclick 이벤트 // DataTables에 click, dbclick 이벤트
$P.renderSndngList = () => { $P.renderSndngDtlList = () => {
let sndngDtlList = $P.sndngDtlControl.dataset; let sndngDtlList = $P.ctrlSndngDtl.dataset;
let empty = sndngDtlList.empty; let empty = sndngDtlList.empty;
let trs = empty ? let trs = empty ? [$P.find("notFoundSndngDtl").innerHTML] :
[document.getElementById("sndngDtlNotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%> sndngDtlList.inStrings($P.find("tableRowsSndngDtl").innerHTML
sndngDtlList.inStrings( , (str, dataItem) => str
document.getElementById("sndngDtlRow--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%> .replace(/{onclick}/gi, "pageObject['${pageName}'].ctrlSndngDtl.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');")
(str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].sndngDtlControl.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');")
); );
$("#tbodySndngDtl--${pageName}").html(trs.join()); $P.$find("tableTbodySndngDtl").html(trs.join());
} }
// 공시송달 정보 DataTables에 click 이벤트 // 공시송달 정보 DataTables에 click 이벤트
$P.renderSvbtcList = () => { $P.renderSvbtcList = () => {
let svbtcDtlList = $P.svbtcDtlControl.dataset; let svbtcList = $P.ctrlSvbtc.dataset;
let empty = svbtcDtlList.empty; let empty = svbtcList.empty;
let trs = empty ? let trs = empty ? [$P.find("notFoundSvbtc").innerHTML] :
[document.getElementById("svbtcNotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%> svbtcList.inStrings($P.find("tableRowsSvbtc").innerHTML
svbtcDtlList.inStrings( , (str, dataItem) => str
document.getElementById("svbtcRow--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%> .replace(/{onclick}/gi, "pageObject['${pageName}'].ctrlSvbtc.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');")
(str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].svbtcDtlControl.setCurrent('" + dataItem.getValue("SVBTC_ID") + "');")
); );
$("#tbodySvbtc--${pageName}").html(trs.join()); $P.$find("tableTbodySvbtc").html(trs.join());
} }
/************************************************************************** /**************************************************************************
@ -387,16 +393,16 @@
**************************************************************************/ **************************************************************************/
// 자료 재조회 // 자료 재조회
$P.fnRefreshDataInfo = () => { $P.fnRefreshDataInfo = () => {
// 단속 ID let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = { let params = {
callPurpose: "refresh" callPurpose: "refresh"
, sggCd: $("#sggCd--${pageNameMain}").val() , sggCd: pageObject["${mainPageName}"].mainCtrl.getValue("SGG_CD")
, taskSeCd: $("#taskSeCd--${pageNameMain}").val() , taskSeCd: pageObject["${mainPageName}"].mainCtrl.getValue("TASK_SE_CD")
, crdnId: crdnId , crdnId: pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID")
, delYn: "N" , delYn: "N"
}; };
@ -406,16 +412,17 @@
, data: params || {} , data: params || {}
, success: resp => { , success: resp => {
// 초기화 // 초기화
$("#frmEdit--${pageName}")[0].reset(); // 화면 초기화 $P.find("frmEdit").reset(); // 화면 초기화
$P.sndngDtlControl.dataset.clear(); // 발송 상세 Dataset 초기화
$P.svbtcDtlControl.dataset.clear(); // 공시송달 Dataset 초기화 $P.ctrlSndngDtl.dataset.clear(); // 발송상세 Dataset 초기화
$P.ctrlSvbtc.dataset.clear(); // 공시송달 Dataset 초기화
// sprt02010-main 단속 정보 // sprt02010-main 단속 정보
pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]); pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]);
// Dataset 셋팅 // Dataset 셋팅
$P.sndngDtlControl.setData(resp.sndngDtls); // 발송 이력 정보 $P.ctrlSndngDtl.setData(resp.sndngDtls); // 발송 이력 정보
$P.svbtcDtlControl.setData(resp.svbtcDtls); // 공시송달 이력 정보 $P.ctrlSvbtc.setData(resp.svbtcDtls); // 공시송달 이력 정보
} }
}); });
} }
@ -424,19 +431,17 @@
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 개별 반송 등록 // 개별 반송 등록
$P.fnCreateSndbk = (title) => { $P.fnCreateSndbk = (btnTitle) => {
// 발송 상세 ID let sndngDtlId = $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID"); // 발송 상세 ID
let sndngDtlId = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_ID"); let undlvrRsnNm = $P.ctrlSndngDtl.getValue("UNDLVR_RSN_NM"); // 미배달 사유 명
// 발송상세ID 가 없다면.. return // 발송상세ID 가 없다면.. return
if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return; if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return;
// 미배달 사유 명
let undlvrRsnNm = $P.sndngDtlControl.dataset.getValue("UNDLVR_RSN_NM");
// 미배달 사유 확인 // 미배달 사유 확인
if (undlvrRsnNm != "" ) { if (undlvrRsnNm != "" ) {
dialog.alert({ dialog.alert({
content: "미배달 사유가 " + undlvrRsnNm + " (으)로 반송 등록 되어 있습니다." content: "미배달 사유가 " + undlvrRsnNm + " (으)로 반송 등록 되어 있습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
@ -444,14 +449,15 @@
} }
// 발송 상세 상태 코드 // 발송 상세 상태 코드
let sndngDtlSttsCd = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_STTS_CD"); let sndngDtlSttsCd = $P.ctrlSndngDtl.getValue("SNDNG_DTL_STTS_CD");
let sndngDtlSttsNm = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_STTS_NM"); let sndngDtlSttsNm = $P.ctrlSndngDtl.getValue("SNDNG_DTL_STTS_NM");
// 발송상세 상태코드 확인 (FIM050 - 03:발송 04:발송확인) // 발송상세 상태코드 확인 (FIM050 - 03:발송 04:발송확인)
if (sndngDtlSttsCd != "03" && sndngDtlSttsCd != "04") { if (sndngDtlSttsCd != "03" && sndngDtlSttsCd != "04") {
dialog.alert({ dialog.alert({
content: "[" + title + "]" + " 작업은 발송상세 상태가 '발송' 또는 '발송확인' 자료만 처리 가능합니다." content: "[" + btnTitle + "]" + " 작업은 발송상세 상태가 '발송' 또는 '발송확인' 자료만 처리 가능합니다."
+ "<br>" + "발송상세상태 : " + sndngDtlSttsNm + "<br>" + "발송상세상태 : " + sndngDtlSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
@ -460,32 +466,32 @@
let params = { let params = {
callPurpose: "create" callPurpose: "create"
, title: title , btnTitle: btnTitle
, sggCd: $P.sndngDtlControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd: $P.ctrlSndngDtl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.sndngDtlControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.ctrlSndngDtl.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId: sndngDtlId // 발송 상세 ID , sndngDtlId: $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID") // 발송 상세 ID
, delYn: "N" , delYn: "N"
}; };
$P.sndngDtlControl.getInfo(params); $P.ctrlSndngDtl.getInfo(params);
} }
// 개별 반송 수정 // 개별 반송 수정
$P.fnUpdateSndbk = (title) => { $P.fnUpdateSndbk = (btnTitle) => {
// 발송 상세 ID let sndngDtlId = $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID"); // 발송 상세 ID
let sndngDtlId = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_ID");
// 발송상세ID 가 없다면.. return // 발송상세ID 가 없다면.. return
if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return; if (!sndngDtlId) return;
// 미배달 사유 코드 // 미배달 사유 코드
let undlvrRsnCd = $P.sndngDtlControl.dataset.getValue("UNDLVR_RSN_CD"); let undlvrRsnCd = $P.ctrlSndngDtl.getValue("UNDLVR_RSN_CD");
let undlvrRsnNm = $P.sndngDtlControl.dataset.getValue("UNDLVR_RSN_NM"); let undlvrRsnNm = $P.ctrlSndngDtl.getValue("UNDLVR_RSN_NM");
// 발송상세 상태코드 확인 (FIM050 - 05:반송) // 발송상세 상태코드 확인 (FIM050 - 05:반송)
if (undlvrRsnNm == null || undlvrRsnNm == "") { if (!undlvrRsnNm) {
dialog.alert({ dialog.alert({
content: "조회된 반송(미배달) 사유가 없습니다." content: "조회된 반송(미배달) 사유가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
@ -494,34 +500,32 @@
let params = { let params = {
callPurpose: "update" callPurpose: "update"
, title: title , title: btnTitle
, sggCd: $P.sndngDtlControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd: $P.ctrlSndngDtl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.sndngDtlControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.ctrlSndngDtl.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId: sndngDtlId // 발송 상세 ID , sndngDtlId: $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID") // 발송 상세 ID
, sndngDtlSttsCd: $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_STTS_CD") // 발송 상세 상태 코드 , sndngDtlSttsCd: $P.ctrlSndngDtl.getValue("SNDNG_DTL_STTS_CD") // 발송 상세 상태 코드
, undlvrRsnNm: $P.sndngDtlControl.dataset.getValue("UNDLVR_RSN_NM") // 미배달 사유 명 , undlvrRsnNm: $P.ctrlSndngDtl.getValue("UNDLVR_RSN_NM") // 미배달 사유 명
, delYn : "N" , delYn : "N"
}; };
$P.sndngDtlControl.getInfo(params); $P.ctrlSndngDtl.getInfo(params);
} }
// 개별 반송 삭제 // 개별 반송 삭제
$P.fnRemoveSndbk = (title) => { $P.fnRemoveSndbk = (btnTitle) => {
// 발송 상세 ID let sndngDtlId = $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID"); // 발송 상세 ID
let sndngDtlId = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_ID"); let sndngDtlSttsCd = $P.ctrlSndngDtl.getValue("SNDNG_DTL_STTS_CD"); // 발송 상세 상태 코드
let sndngDtlSttsNm = $P.ctrlSndngDtl.getValue("SNDNG_DTL_STTS_NM"); // 발송 상세 상태 명
// 발송상세ID 가 없다면.. return // 발송상세ID 가 없다면.. return
if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return; if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return;
// 발송 상세 상태 코드
let sndngDtlSttsCd = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_STTS_CD");
let sndngDtlSttsNm = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_STTS_NM");
// 발송상세 상태코드 확인 (FIM050 - 05:반송) // 발송상세 상태코드 확인 (FIM050 - 05:반송)
if (sndngDtlSttsCd != "05") { if (sndngDtlSttsCd != "05") {
dialog.alert({ dialog.alert({
content: "[" + title + "]" + " 작업은 발송상세 상태가 '반송' 자료만 처리 가능합니다." content: "[" + btnTitle + "]" + " 작업은 발송상세 상태가 '반송' 자료만 처리 가능합니다."
+ "<br>" + "발송상세상태 : " + sndngDtlSttsNm + "<br>" + "발송상세상태 : " + sndngDtlSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
@ -530,10 +534,10 @@
let params = { let params = {
callPurpose: "delete" callPurpose: "delete"
, title: title , btnTitle: btnTitle
, sggCd: $P.sndngDtlControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd: $P.ctrlSndngDtl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.sndngDtlControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.ctrlSndngDtl.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId: sndngDtlId // 발송 상세 ID , sndngDtlId: $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID") // 발송 상세 ID
, sndngDtlSttsCd: "03" // 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) FIM050 - 03 발송 , sndngDtlSttsCd: "03" // 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) FIM050 - 03 발송
}; };
@ -541,20 +545,18 @@
content: "선택한 반송 정보를 삭제하시겠습니까?" content: "선택한 반송 정보를 삭제하시겠습니까?"
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => {
$P.sndngDtlControl.remove(params); $P.ctrlSndngDtl.remove(params);
} }
}); });
} }
// 우편 종적 보기 // 우편 종적 보기
$P.fnViewPostTrace = () => { $P.fnViewPostTrace = () => {
// 취급 구분 let divKb = $P.ctrlSndngDtl.getValue("DIV_KB"); // 취급 구분
let divKb = $P.sndngDtlControl.dataset.getValue("DIV_KB"); let rgNo = $P.ctrlSndngDtl.getValue("RG_NO"); // 등기번호
// 취급 구분이 일반이라면.. // 취급 구분이 일반이라면..
if (typeof divKb == "undefined" || divKb == null || divKb == "" || divKb == "000") return; if (typeof divKb == "undefined" || divKb == null || divKb == "" || divKb == "000") return;
// 등기번호
let rgNo = $P.sndngDtlControl.dataset.getValue("RG_NO");
// 등기번호가 없다면.. // 등기번호가 없다면..
if (typeof rgNo == "undefined" || rgNo == null || rgNo == "") return; if (typeof rgNo == "undefined" || rgNo == null || rgNo == "") return;
@ -567,36 +569,35 @@
// 이벤트 설정 // 이벤트 설정
$P.setEvent = () => { $P.setEvent = () => {
// 업무 버튼 이벤트 // 업무 버튼 이벤트
$("#btnCreateSndbk--${pageName}").on("click", function() { $P.$find("btnCreateSndbk").on("click", function() {
$P.fnCreateSndbk($(this).attr("title")); // 개별 반송 등록 $P.fnCreateSndbk($P.$find("btnCreateSndbk").attr("title")); // 개별 반송 등록
}); });
$("#btnUpdateSndbk--${pageName}").on("click", function() { $P.$find("btnUpdateSndbk").on("click", function() {
$P.fnUpdateSndbk($(this).attr("title")); // 개별 반송 수정 $P.fnUpdateSndbk($P.$find("btnUpdateSndbk").attr("title")); // 개별 반송 수정
}); });
$("#btnRemoveSndbk--${pageName}").on("click", function() { $P.$find("btnRemoveSndbk").on("click", function() {
$P.fnRemoveSndbk($(this).attr("title")); // 개별 반송 삭제 $P.fnRemoveSndbk($P.$find("btnRemoveSndbk").attr("title")); // 개별 반송 삭제
}); });
$("#btnViewPostTrace--${pageName}").on("click", function() { $P.$find("btnViewPostTrace").on("click", function() {
$P.fnViewPostTrace($(this).attr("title")); // 우편 종적 보기 $P.fnViewPostTrace($P.$find("btnViewPostTrace").attr("title")); // 개별 반송 등록
}); });
// DataTables width 변경 조정 // DataTables width 변경 조정
fnMakeResizableTable($("#table-responsive-sndngDtl--${pageName}")[0]); fnMakeResizableTable($P.find("tableRspnsSndngDtl"));
fnMakeResizableTable($("#table-responsive-1--${pageName}")[0]); fnMakeResizableTable($P.find("tableRspnsSvbtc"));
} }
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = () => {
// button 요소들을 disabled = true // 화면 호출(callPurpose)이 view라면 버튼 비활성화 disabled = true
$("#btnCreateSndbk--${pageName}").prop("disabled", true); if (pageObject['${mainPageName}'].callPurpose == "view") {
$("#btnUpdateSndbk--${pageName}").prop("disabled", true); $P.$find("btnCreateSndbk").prop("disabled", true);
$("#btnRemoveSndbk--${pageName}").prop("disabled", true); $P.$find("btnUpdateSndbk").prop("disabled", true);
$P.$find("btnRemoveSndbk").prop("disabled", true);
// 화면 호출(callPurpose)이 view가 아니라면 버튼 비활성화 disabled = false } else {
if (pageObject['${pageNameMain}'].callPurpose != "view") { $P.$find("btnCreateSndbk").prop("disabled", false);
$("#btnCreateSndbk--${pageName}").prop("disabled", false); $P.$find("btnUpdateSndbk").prop("disabled", false);
$("#btnUpdateSndbk--${pageName}").prop("disabled", false); $P.$find("btnRemoveSndbk").prop("disabled", false);
$("#btnRemoveSndbk--${pageName}").prop("disabled", false);
} }
} }
@ -609,9 +610,12 @@
// 2. 초기 화면 설정 // 2. 초기 화면 설정
$P.initForm(); $P.initForm();
// 정렬
// tableSorter($P.ctrlSndngDtl, "th[data-field]");
// 3. Dataset 설정 // 3. Dataset 설정
$P.sndngDtlControl.setData(${sndngDtls}); // 발송 이력 $P.ctrlSndngDtl.setData(${sndngDtls}); // 발송 이력
$P.svbtcDtlControl.setData(${svbtcDtls}); // 공시송달 이력 $P.ctrlSvbtc.setData(${svbtcDtls}); // 공시송달 이력
}); });
</script> </script>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save