이범준 10 months ago
commit b6782291eb

@ -13,14 +13,14 @@
<div> <div>
<!-- 상단 버튼 --> <!-- 상단 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnResetAndChangeBiz${pageName}();"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화">
초기화 초기화
</button> </button>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색" onclick="fnSearchList${pageName}();"> <button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색">
검색 검색
</button> </button>
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀" onclick="fnExcel${pageName}();"> <button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">
엑셀 엑셀
</button> </button>
</span> </span>
@ -61,23 +61,6 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span> </span>
</div> </div>
<!-- <div class="col-1 text-end"> -->
<%-- <select class="form-select text-end" id="schDateOpt--${pageName}" name="schDateOpt"> --%>
<!-- <option value="levyExclYmd">부과제외일자</option> -->
<!-- <option value="crdnYmd">단속일자</option> -->
<!-- </select> -->
<!-- </div> -->
<!-- <div class="col-5"> -->
<!-- <span class="form-search-linebox"> -->
<%-- <input type="text" class="form-control form-date" id="schDateFrom--${pageName}" name="schDateFrom" --%>
<!-- data-fmt-type="day" title="시작 날짜 선택" /> -->
<!-- <button type="button" class="bx bx-sm bx-calendar bg-white"></button> -->
<!-- ~ -->
<%-- <input type="text" class="form-control form-date" id="schDateTo--${pageName}" name="schDateTo" --%>
<!-- data-fmt-type="day" title="종료 날짜 선택" /> -->
<!-- <button type="button" class="bx bx-sm bx-calendar bg-white"></button> -->
<!-- </span> -->
<!-- </div> -->
<!-- 부과제외구분 --> <!-- 부과제외구분 -->
<div class="col-6"> <div class="col-6">
<label class="form-label fw-bold form-search-title text-end">부과제외구분</label> <label class="form-label fw-bold form-search-title text-end">부과제외구분</label>
@ -175,10 +158,10 @@
</div> </div>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="부과제외 수정" onclick="fnUpdate${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="부과제외 수정">
수정 수정
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="부과제외 삭제" onclick="fnRemove${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="부과제외 삭제">
삭제 삭제
</button> </button>
</span> </span>
@ -201,7 +184,7 @@
<template id="${infoPrefix}Col--${pageName}"> <template id="${infoPrefix}Col--${pageName}">
<th class="cmn" style="width: 72px;">NO.</th> <th class="cmn" style="width: 72px;">NO.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);"></th> <th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" onchange="pageObject['${pageName}'].control.select(this.checked);" />
<th class="cmn" style="width: 160px;">업무구분</th> <th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_EXCL_YMD', this.innerText, 'ymd', '');">부과제외일자</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_EXCL_YMD', this.innerText, 'ymd', '');">부과제외일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_EXCL_SE_CD', this.innerText, 'codeValue', 'FIM021');">부과제외구분</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_EXCL_SE_CD', this.innerText, 'codeValue', 'FIM021');">부과제외구분</th>
@ -236,7 +219,9 @@
<template id="${infoPrefix}Row--${pageName}"> <template id="${infoPrefix}Row--${pageName}">
<tr data-key="{LEVY_EXCL_ID}"> <tr data-key="{LEVY_EXCL_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" value="{LEVY_EXCL_ID}" onchange="${pageName}Control.select('{LEVY_EXCL_ID}', this.checked);"></td> <td class="cmn text-center">
<input type="checkbox" class="form-check-input" value="{LEVY_EXCL_ID}" onchange="pageObject['${pageName}'].control.select('{LEVY_EXCL_ID}', this.checked);" />
</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_YMD}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_SE_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_SE_NM}</td>
@ -295,8 +280,7 @@
</div> <!-- <div class="wrapper-list"> --> </div> <!-- <div class="wrapper-list"> -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> --> </div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
<!-- Content -->
<div class="content-backdrop fade"></div> <div class="content-backdrop fade"></div>
</div> </div>
@ -306,489 +290,499 @@
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
// URL pageObject["${pageName}"] = {};
var ${pageName}PrefixUrl = "/excl/excl01";
// FormFields
var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}");
/**************************************************************************
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "levyExcl"
, prefixName : "부과제외"
, infoSize : "md"
, keymapper : info => info ? info.LEVY_EXCL_ID : ""
, dataGetter : obj => obj.levyExclList
, appendData : true
, untilPageNum : 0 // 현재 페이지 번호
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, urls : {
load : wctx.url("/" + ${pageName}PrefixUrl + "/010/list.do") // 조회
, remove : wctx.url("/" + ${pageName}PrefixUrl + "/010/remove.do") // 삭제
, getInfo : wctx.url("/" + ${pageName}PrefixUrl + "/020/info.do") // 수정
}
, formats : {
LEVY_EXCL_YMD : dateFormat
, CRDN_YMD_TM : datetimeFormat
, CVLCPT_RCPT_YMD : dateFormat
, FFNLG_CRDN_AMT : numberFormat
, REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat
}
});
/************************************************************************** $(document).ready(function() {
* DatasetControl 이벤트 // pageObject
**************************************************************************/ var $P = pageObject["${pageName}"];
// Dataset 변경 이벤트
${pageName}Control.onDatasetChange = obj => { // URL
renderList${pageName}(obj.${infoPrefix}Total); $P.PrefixUrl = "/excl/excl01";
// FormFields
$("#paging--${pageName}").setPagingInfo({ $P.formFields = new FimsFormFields("#frmSearch--${pageName}");
list : ${pageName}Control.dataset
, prefix : "paging--${pageName}" /**************************************************************************
, start : obj.${infoPrefix}Start * DatasetControl
, totalSize : obj.${infoPrefix}Total **************************************************************************/
, fetchSize : obj.${infoPrefix}Fetch $P.control = new DatasetControl({
, func : "${pageName}Control.load({index})" prefix : "levyExcl"
, prefixName : "부과제외"
, infoSize : "md"
, keymapper : info => info ? info.LEVY_EXCL_ID : ""
, dataGetter : obj => obj.levyExclList
, appendData : true
, urls : {
load : wctx.url("/" + $P.PrefixUrl + "/010/list.do") // 조회
, remove : wctx.url("/" + $P.PrefixUrl + "/010/remove.do") // 삭제
, getInfo : wctx.url("/" + $P.PrefixUrl + "/020/info.do") // 수정
}
, formats : {
LEVY_EXCL_YMD : dateFormat
, CRDN_YMD_TM : datetimeFormat
, CVLCPT_RCPT_YMD : dateFormat
, FFNLG_CRDN_AMT : numberFormat
, REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat
}
}); });
// $P.control 설정
$P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
$P.control.untilPageNum = 0; // 현재 페이지 번호
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
$P.control.beforeCurrent = null;
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// Dataset 변경 이벤트
$P.control.onDatasetChange = obj => {
$P.renderList(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({
list : $P.control.dataset
, prefix : "paging--${pageName}"
, start : obj.${infoPrefix}Start
, totalSize : obj.${infoPrefix}Total
, fetchSize : obj.${infoPrefix}Fetch
, func : "$P.control.load({index})"
});
$P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
};
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 // 현재 선택 자료 변경 이벤트
}; $P.control.onCurrentChange = item => {
if (!item) return;
// 현재 선택 자료 변경 이벤트 let key = item.data.LEVY_EXCL_ID;
${pageName}Control.onCurrentChange = item => {
if (!item) return;
let key = item.data.LEVY_EXCL_ID; $("#tbody--${pageName}").setCurrentRow(key);
};
$("#tbody--${pageName}").setCurrentRow(key); // 선택(체크) 변경 이벤트
}; $P.control.onSelectionChange = selected => {
let ${infoPrefix}List = $P.control.dataset;
let keys = selected.map(e => ${infoPrefix}List.getKey(e));
// 선택(체크) 변경 이벤트 $("#tbody--${pageName} input[type='checkbox']").each(function() {
${pageName}Control.onSelectionChange = selected => { let checkbox = $(this);
let ${infoPrefix}List = ${pageName}Control.dataset;
let keys = selected.map(e => ${infoPrefix}List.getKey(e));
$("#tbody--${pageName} input[type='checkbox']").each(function() { checkbox.prop("checked", keys.includes(checkbox.val()));
let checkbox = $(this); });
checkbox.prop("checked", keys.includes(checkbox.val())); $("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
}); };
$("#btnRemove--${pageName}").prop("disabled", keys.length < 1); // 수정 dialog
}; $P.control.getInfo = (params) => {
if (!params) return;
// 수정 dialog let dialogTitle = "";
${pageName}Control.getInfo = (params) => {
if (!params) return;
let dialogTitle = ""; if (params.callPurpose == "create") {
dialogTitle = $P.control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = $P.control.prefixName + " 수정";
} else {
dialogTitle = $P.control.prefixName + " 정보";
}
if (params.callPurpose == "create") { ajax.get({
dialogTitle = ${pageName}Control.prefixName + " 등록"; url : $P.control.urls.getInfo + "?openerPageName=${pageName}"
} else if (params.callPurpose == "update") { , data : params || {}
dialogTitle = ${pageName}Control.prefixName + " 수정"; , success : resp => {
} else { dialog.open({
dialogTitle = ${pageName}Control.prefixName + " 정보"; id : $P.control.prefixed("Dialog")
, title : dialogTitle
, content : resp
, size : $P.control.infoSize
, init : () => { }
, onClose : () => { $P.refreshList(); } // 자료 재조회
});
}
});
} }
ajax.get({ // 삭제 callback
url : ${pageName}Control.urls.getInfo + "?openerPageName=${pageName}" $P.control.onRemove = (resp) => {
, data : params || {} let btnTitle = $("#btnRemove--${pageName}").attr("title");
, success : resp => { let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
dialog.open({
id : ${pageName}Control.prefixed("Dialog") dialog.alert(showMessage); // 메시지 출력
, title : dialogTitle
, content : resp
, size : ${pageName}Control.infoSize
, init : () => { }
, onClose : () => { refreshList${pageName}(); } // 자료 재조회
});
}
});
}
// 삭제 callback if (resp.saved) {
${pageName}Control.onRemove = (resp) => { $P.refreshList(); // 자료 재조회
let btnTitle = $("#btnRemove--${pageName}").attr("title"); }
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); }
dialog.alert(showMessage); // 메시지 출력 // 삭제
$P.control.remove = (params) => {
if (!params) return;
if (resp.saved) { ajax.post({
refreshList${pageName}(); // 자료 재조회 url : $P.control.urls.remove
, data : params
, success : resp => $P.control.onRemove(resp)
});
} }
}
// 삭제 /**************************************************************************
${pageName}Control.remove = (params) => { * DataTables 이벤트
if (!params) return; **************************************************************************/
// DataTables에 click, dbclick 이벤트
$P.renderList = (totalSize) => {
let ${infoPrefix}List = $P.control.dataset;
let empty = ${infoPrefix}List.empty;
let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val().toLowerCase(); // 소문자
// 업무별 DataTables(그리드) tr, td
let foundContent = document.getElementById("${infoPrefix}Row--${pageName}").content;
let foundTr = $(foundContent).find("tr")[0].cloneNode(false);
let foundTds = $(foundContent).find("." + clsForTask + ",.cmn");
foundTds.each(function() {
foundTr.appendChild(this.cloneNode(true));
});
ajax.post({ //
url : ${pageName}Control.urls.remove let replacer = (str, dataItem) => str
, data : params .replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("LEVY_EXCL_ID") + "');")
, success : resp => ${pageName}Control.onRemove(resp) .replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');");
});
}
/************************************************************************** let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML]
* DataTables 이벤트 : ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer);
**************************************************************************/
// DataTables에 click, dbclick 이벤트
renderList${pageName} = (totalSize) => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val().toLowerCase(); // 소문자
// 업무별 DataTables(그리드) tr, td
let foundContent = document.getElementById("${infoPrefix}Row--${pageName}").content;
let foundTr = $(foundContent).find("tr")[0].cloneNode(false);
let foundTds = $(foundContent).find("." + clsForTask + ",.cmn");
foundTds.each(function() {
foundTr.appendChild(this.cloneNode(true));
});
// let noMore = (totalSize == ${infoPrefix}List.length);
let replacer = (str, dataItem) => str let initScroll = ($P.control.query.pageNum < 2) && ($P.control.untilPageNum == 0);
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("LEVY_EXCL_ID") + "');")
.replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');");
let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore);
: ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer);
let noMore = (totalSize == ${infoPrefix}List.length); if ($P.control.untilPageNum != 0) {
let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0); $P.control.query.fetchSize = $P.control.defaultFetchSize;
$P.control.query.pageNum = $P.control.untilPageNum;
$P.control.untilPageNum = 0;
}
$("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore); // checkbox 체크 해제
$("th input[type='checkbox']").prop("checked", false);
if (${pageName}Control.untilPageNum != 0) { // 보안모드
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; fn_securityModeToggle($("#securityMode--top").is(":checked"));
${pageName}Control.query.pageNum = ${pageName}Control.untilPageNum;
${pageName}Control.untilPageNum = 0;
} }
// checkbox 체크 해제 // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
$("th input[type='checkbox']").prop("checked", false); $P.scrollDataList = () => {
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false
// 보안모드 $P.control.load($P.control.query.pageNum + 1);
fn_securityModeToggle($("#securityMode--top").is(":checked")); }
}
// DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 /**************************************************************************
scrollDataList${pageName} = () => { * 사용자 함수(function)
${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false **************************************************************************/
// callback 사용자 검색
$P.callbackFindUser = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
}
${pageName}Control.load(${pageName}Control.query.pageNum + 1); // 사용자 검색
} $P.getFindUser = () => {
let params = {
callbackFuncName : "$P.callbackFindUser"
}
/************************************************************************** ajax.get({
* 사용자 함수(function) url : wctx.url("/user/user02/010/main.do")
**************************************************************************/ , data : params || {}
// callback 사용자 검색 , success : resp => {
callbackFindUser${pageName} = (userId, userNm) => { dialog.open({
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID id : "userDialog"
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 , title : "사용자 검색"
} , content : resp
, size : "lg"
// 사용자 검색 });
getFindUser${pageName} = () => { }
let params = { });
callbackFuncName : "callbackFindUser${pageName}"
} }
ajax.get({ // 개별총정보 dialog
url : wctx.url("/user/user02/010/main.do") $P.getTotalInfo = (crdnId) => {
, data : params || {} if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
, success : resp => {
dialog.open({ let params = {
id : "userDialog" callControlName : "pageObject['${pageName}'].control"
, title : "사용자 검색" , sggCd : $("#sggCd--${pageName}").val()
, content : resp , taskSeCd : $("input[name=taskSeCd]:checked").val()
, size : "lg" , crdnId : crdnId
});
} }
});
}
// 개별총정보 dialog ajax.get({
getTotalInfo${pageName} = (crdnId) => { url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/010/main.do")
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; , data : params
, success : resp => {
dialog.open({
id : "totalInfoMainDialog"
, title : "개별총정보"
, content : resp
, size : "xxl"
, init : () => { }
, onClose : () => { }
});
}
});
}
// 검색 자료 재조회
$P.refreshList = () => {
$P.control.untilPageNum = $P.control.query.pageNum;
$P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum;
let params = { $P.control.load(1);
callControlName : "${pageName}Control"
, sggCd : $("#sggCd--${pageName}").val()
, taskSeCd : $("input[name=taskSeCd]:checked").val()
, crdnId : crdnId
} }
ajax.get({ // 삭제 callback
url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do") $P.callbackRemove = (obj) => {
, data : params let selected = $P.control.dataset.getKeys("selected");
, success : resp => {
dialog.open({ if (selected.length < 1) return;
id : "totalInfoMainDialog"
, title : "개별총정보" // 서버에 전송할 data(파라미터) 생성
, content : resp let params = {};
, size : "xxl" params[$P.control.prefixed("IDs")] = selected.join(","); // IDs
, init : () => { } params.delRsn = obj.reason; // 삭제 사유
, onClose : () => { }
}); $P.control.remove(params);
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 업무 구분 변경
$P.fnResetAndChangeBiz = (taskSeCd) => {
// 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
} }
});
}
// 삭제 callback // 초기 기본 설정
callbackRemove${pageName} = (obj) => { $P.initForm();
let selected = ${pageName}Control.dataset.getKeys("selected"); // 기본 데이터 설정
$P.initData(taskSeCd);
// 업무 구분별 설정
$P.setTask(taskSeCd);
// dataset 초기화
$P.control.dataset.clear();
}
// 검색 버튼 이벤트
$P.fnSearchList = () => {
// 검색조건
$P.control.query = $P.formFields.get();
$P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수
$P.control.query.delYN = "N"; // 삭제 여부
if (selected.length < 1) return; $P.control.load(1);
}
// 서버에 전송할 data(파라미터) 생성 // 엑셀 버튼 이벤트
let params = {}; $P.fnExcel = () => {
params[${pageName}Control.prefixed("IDs")] = selected.join(","); // IDs if ($P.control.dataset.empty) {
params.delRsn = obj.reason; // 삭제 사유 dialog.alert({
content : "검색된 자료가 없습니다."
, onOK : () => { }
});
${pageName}Control.remove(params); return;
} }
// 검색 자료 재조회 // DataTables(그리드)
refreshList${pageName} = () => { let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)")
${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)"));
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; $P.control.query.cellDefs = cellDefs;
${pageName}Control.load(1); $P.control.download();
} }
/************************************************************************** // 사용자 조회 버튼 이벤트
* 버튼 clickEvent $P.fnFindUser = () => {
**************************************************************************/ $P.getFindUser();
// 업무 구분 변경
fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
} }
// 초기 기본 설정 // 수정 버튼 이벤트
initForm${pageName}(); $P.fnUpdate = () => {
let levyExclId = $P.control.dataset.getValue("LEVY_EXCL_ID");
let levyExclSeCd = $P.control.dataset.getValue("LEVY_EXCL_SE_CD");
// 기본 데이터 설정 // 부과제외 ID 가 없다면.. return
initData${pageName}(taskSeCd); if (typeof levyExclId == "undefined" || levyExclId == null || levyExclId == "") return;
// dataset 초기화 let params = {
${pageName}Control.dataset.clear(); callPurpose : "update"
} , sggCd : $P.control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, levyExclId : levyExclId // 부과제외 ID
, levyExclSeCd : levyExclSeCd // 부과제외 구분 코드
};
// 검색 버튼 이벤트 $P.control.getInfo(params);
fnSearchList${pageName} = () => { }
// 검색조건
${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 // 삭제 버튼 이벤트
${pageName}Control.query.delYN = "N"; // 삭제 여부 $P.fnRemove = () => {
// 선택 자료
let selected = $P.control.dataset.getKeys("selected");
${pageName}Control.load(1); if (selected.length < 1) return;
}
// 엑셀 버튼 이벤트 // 삭제 메세지 확인
fnExcel${pageName} = () => {
if (${pageName}Control.dataset.empty) {
dialog.alert({ dialog.alert({
content : "검색된 자료가 없습니다." content : "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK : () => { } , onOK : () => {
// 삭제 사유 입력
let popupWidth = 640;
let popupHeight = 240;
let popupX = (window.screen.width / 2) - (popupWidth / 2);
let popupY= (window.screen.height / 2) - (popupHeight / 2);
window.open(
encodeURI(wctx.url("/resources/html/inputRsnDialog.html"
+ "?openerPageName=${pageName}"
+ "&usePurpose=" + "remove"
+ "&ttlNm=" + "삭제"
))
, "inputDelRsnDialog"
, 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY
);
}
}); });
return;
} }
// DataTables(그리드) /**************************************************************************
let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)") * 초기 설정
, $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)")); **************************************************************************/
${pageName}Control.query.cellDefs = cellDefs; // 이벤트 설정
$P.setEvent = () => {
${pageName}Control.download(); // 기본 버튼 이벤트
} $("#btnReset--${pageName}").on("click", () => $P.fnResetAndChangeBiz()); // 초기화
$("#btnSearch--${pageName}").on("click", () => $P.fnSearchList()); // 검색
// 사용자 조회 버튼 이벤트 $("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀
fnFindUser${pageName} = () => { $("#btnFindUser--${pageName}").on("click", () => $P.fnFindUser()); // 사용자 검색
getFindUser${pageName}(); // 동적검색에서 엔터(Enter) 키를 누르면 검색한다.
} $("#term--${pageName}").keypress(function(e) {
if (e.keyCode == 13) {
// 수정 버튼 이벤트 fnSearchList${pageName}();   
fnUpdate${pageName} = () => { }    
let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID"); });
let levyExclSeCd = ${pageName}Control.dataset.getValue("LEVY_EXCL_SE_CD"); // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() {
// 부과제외 ID 가 없다면.. return $(this).on("input", function() {
if (typeof levyExclId == "undefined" || levyExclId == null || levyExclId == "") return; let value = this.value.replaceAll("-", "");
let params = { if (value.length > 7) {
callPurpose : "update" this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6);
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 } else if(value.length > 5) {
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 this.value = value.substring(0, 4) + "-" + value.substring(4);
, levyExclId : levyExclId // 부과제외 ID }
, levyExclSeCd : levyExclSeCd });
}; });
${pageName}Control.getInfo(params); // 업무 버튼 이벤트
} $("#btnUpdate--${pageName}").on("click", () => $P.fnUpdate()); // 부과제외 수정
$("#btnRemove--${pageName}").on("click", () => $P.fnRemove()); // 부과제외 삭제
// 삭제 버튼 이벤트
fnRemove${pageName} = () => {
// 선택 자료
let selected = ${pageName}Control.dataset.getKeys("selected");
if (selected.length < 1) return;
// 삭제 메세지 확인
dialog.alert({
content : "선택하신 " + selected.length + "건의 " + ${pageName}Control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK : () => {
// 삭제 사유 입력
let callbackFuncName = "callbackRemove${pageName}";
let popupWidth = 640;
let popupHeight = 240;
let popupX = (window.screen.width / 2) - (popupWidth / 2);
let popupY= (window.screen.height / 2) - (popupHeight / 2);
window.open(
wctx.url("/resources/html/inputRsnDialog.html"
+ "?callbackFuncName=" + callbackFuncName
+ "&USE_PURPOSE=" + "삭제"
)
, "inputDelRsnDialog"
, 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY
);
}
});
}
/************************************************************************** // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
* 초기 설정 $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
**************************************************************************/
// 이벤트
setEvent${pageName} = () => {
// 동적검색에서 엔터(Enter) 키를 누르면 검색한다.
$("#term--${pageName}").keypress(function(e) {
if (e.keyCode == 13) {
fnSearchList${pageName}();   
}    
});
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 // DataTables 스크롤 이벤트 생성
$("#frmSearch--${pageName}").find(".form-date").each(function() { fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList);
$(this).on("input", function() { }
let value = this.value.replaceAll("-", "");
if (value.length > 7) { // 초기 화면 설정
this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6); $P.initForm = () => {
} else if(value.length > 5) { // 화면 초기화
this.value = value.substring(0, 4) + "-" + value.substring(4); $("#frmSearch--${pageName}")[0].reset();
}
}); // input, select 초기화
}); let searchForm = $("#frmSearch--${pageName}");
searchForm.find("input[type='radio']").not("[name='taskSeCd']").prop("checked", false);
searchForm.find("input[type='checkbox']").prop("checked", false);
searchForm.find("input[type='text']").val("");
searchForm.find("input[type='hidden']").val("");
searchForm.find("select").each(function() { $(this).find("option:eq(0)").prop("selected", true); });
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
});
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", new Date());
$("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date());
// 동적 검색
$("#byOutput--${pageName}").val("동적 검색");
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
}
// DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 // 기본 데이터 설정
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); $P.initData = (taskSeCd) => {
// 시군구 코드
// DataTables 스크롤 이벤트 생성 $("#sggCd--${pageName}").val("${sggCd}");
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); // 업무 구분 코드
} $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 일자
// 화면 초기 설정 $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
initForm${pageName} = () => { $("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date());
// 화면 초기화 }
$("#frmSearch--${pageName}")[0].reset();
// input, select 초기화
let searchForm = $("#frmSearch--${pageName}");
searchForm.find("input[type='radio']").not("[name='taskSeCd']").prop("checked", false);
searchForm.find("input[type='checkbox']").prop("checked", false);
searchForm.find("input[type='text']").val("");
searchForm.find("input[type='hidden']").val("");
searchForm.find("select").each(function() { $(this).find("option:eq(0)").prop("selected", true); });
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
});
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", new Date());
$("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date());
// 동적 검색
$("#byOutput--${pageName}").val("동적 검색");
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
}
// 기본 데이터 설정
initData${pageName} = (taskSeCd) => {
// ${pageName}Control 설정
${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
// 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 일자
$("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
$("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date());
// 업무 구분별 설정 // 업무 구분별 설정
setTask${pageName}(taskSeCd); $P.setTask = (taskSeCd) => {
} let clsForTask = taskSeCd.toLowerCase();
// 업무 구분별 설정 // 업무별 조회조건
setTask${pageName} = (taskSeCd) => { renderForTask("frmSearch--${pageName}", clsForTask);
let clsForTask = taskSeCd.toLowerCase();
// 업무별 조회조건 // 업무별 그리드 th
renderForTask("frmSearch--${pageName}", clsForTask); $("#DataTables_Table_0--${pageName}").find("th").resizable( "destroy" );
// 업무별 그리드 th let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
$("#DataTables_Table_0--${pageName}").find("th").resizable( "destroy" ); let cols = $(colContent).find("." + clsForTask + ",.cmn");
let colsOuterHTML = "";
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; cols.each(function() {
let cols = $(colContent).find("." + clsForTask + ",.cmn"); colsOuterHTML += this.outerHTML;
let colsOuterHTML = ""; });
cols.each(function() { $("#theadTr--${pageName}").html(colsOuterHTML);
colsOuterHTML += this.outerHTML; $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
});
$("#theadTr--${pageName}").html(colsOuterHTML); // URL 설정
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); $P.setURL(taskSeCd);
}
// URL 설정 // 업무구분에 따른 URL 설정
setURL${pageName}(taskSeCd); $P.setURL = (taskSeCd) => {
} $P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/list.do"); // 조회
$P.control.urls.remove = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/remove.do"); // 삭제
$P.control.urls.getInfo = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/info.do"); // 수정
}
// URL 설정 /**************************************************************************
setURL${pageName} = (taskSeCd) => { * 최초 실행 함수
${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 **************************************************************************/
${pageName}Control.urls.remove = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/remove.do"); // 삭제 // 1. 이벤트 설정
${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 수정 $P.setEvent();
}
/************************************************************************** // 2. 화면 초기 설정 및 업무 구분 변경
* script 진입 $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
**************************************************************************/
$(document).ready(function() {
// 이벤트 설정
setEvent${pageName}();
// 보안모드 // 3. 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 화면 초기 설정 및 업무 구분 변경
fnResetAndChangeBiz${pageName}($("#layout-navbar input[name='taskSeCd']:checked").val());
}); });
</script> </script>

@ -65,7 +65,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="저장" onclick="fnSave${pageName}()"> <button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장">
저장 저장
</button> </button>
</span> </span>
@ -80,176 +80,199 @@
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
// URL pageObject["${pageName}"] = {};
var ${pageName}PrefixUrl = "/excl/excl01";
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
var ${pageName}CallPurpose = "${callPurpose}"; var ${pageName}CallPurpose = "${callPurpose}";
// FormFields
var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}");
// 공통 코드 // 공통 코드
var FIM021 = new CommonCodes(${FIM021}, true); var FIM021 = new CommonCodes(${FIM021}, true);
var FIM022 = new CommonCodes(${FIM022}, true); var FIM022 = new CommonCodes(${FIM022}, true);
/************************************************************************** /**************************************************************************
* DatasetControl * script 진입
**************************************************************************/ **************************************************************************/
var ${pageName}Control = new DatasetControl({ $(document).ready(function() {
prefix : "levyExcl" // pageObject
, prefixName : "부과제외" var $P = pageObject["${pageName}"];
, keymapper : info => info ? info.LEVY_EXCL_ID : ""
, dataGetter : obj => obj.levyExclInfo // URL
, urls : { $P.PrefixUrl = "/excl/excl01";
create : wctx.url("/" + ${pageName}PrefixUrl + "/020/create.do") // 등록 // FormFields
, update : wctx.url("/" + ${pageName}PrefixUrl + "/020/update.do") // 수정 $P.formFields = new FimsFormFields("#frmEdit--${pageName}");
}
}); /**************************************************************************
* DatasetControl
**************************************************************************/
$P.control = new DatasetControl({
prefix : "levyExcl"
, prefixName : "부과제외"
, keymapper : info => info ? info.LEVY_EXCL_ID : ""
, dataGetter : obj => obj.levyExclInfo
, urls : {
create : wctx.url("/" + $P.PrefixUrl + "/020/create.do") // 등록
, update : wctx.url("/" + $P.PrefixUrl + "/020/update.do") // 수정
}
});
${pageName}Control.onCurrentChange = item => { /**************************************************************************
if (!item) return; * DatasetControl 이벤트
**************************************************************************/
$P.control.onCurrentChange = item => {
if (!item) return;
// Dataset 셋팅 // Dataset 셋팅
${pageName}Fields.set(item); $P.formFields.set(item);
// 업무구분에 따른 url 변경 // 업무구분에 따른 url 변경
setURL${pageName}(item.data.TASK_SE_CD); $P.setURL(item.data.TASK_SE_CD);
// 부과제외구분에 따른 부과제외사유 설정 // 부과제외구분에 따른 부과제외사유 설정
setFim021${pageName}(item.data.LEVY_EXCL_SE_CD, item.data.LEVY_EXCL_RSN_CD); $P.setFim021(item.data.LEVY_EXCL_SE_CD, item.data.LEVY_EXCL_RSN_CD);
// 호출용도가 등록 이라면.. // 호출용도가 등록 이라면..
if (${pageName}CallPurpose = "create") { if (${pageName}CallPurpose = "create") {
$("#levyExclYmd--${pageName}").datepicker("setDate", new Date()); $("#levyExclYmd--${pageName}").datepicker("setDate", new Date());
}
} }
}
/************************************************************************** /**************************************************************************
* DatasetControl 이벤트 * DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
// 저장 callback // 저장 callback
${pageName}Control.onSave = (resp) => { $P.control.onSave = (resp) => {
let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
dialog.alert(showMessage); dialog.alert(showMessage);
if (resp.saved) { if (resp.saved) {
dialog.close(${pageName}Control.prefix + "Dialog"); dialog.close($P.control.prefix + "Dialog");
if ("${savedCallbackFuncName}" != "") { if ("${savedCallbackFuncName}" != "") {
${savedCallbackFuncName}(resp.saved); ${savedCallbackFuncName}(resp.saved);
}
} }
} }
}
// 저장
// 저장 $P.control.save = (info) => {
${pageName}Control.save = (info) => { if (!info) return;
if (!info) return;
let create = isEmpty(info.levyExclId);
let create = isEmpty(info.levyExclId);
// 민원 접수 관리에서 호출했다면..
// 민원 접수 관리에서 호출했다면.. if (create && "${saveCallbackFuncName}" != "") {
if (create && "${saveCallbackFuncName}" != "") { ${saveCallbackFuncName}(info);
${saveCallbackFuncName}(info); } else {
} else { ajax.post({
ajax.post({ url : !create ? $P.control.urls.update : $P.control.urls.create
url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create , data : info
, data : info , success : resp => $P.control.onSave(resp)
, success : resp => ${pageName}Control.onSave(resp) });
}); }
} }
}
/************************************************************************** /**************************************************************************
* 사용자 함수 * 사용자 함수
**************************************************************************/ **************************************************************************/
// 부과제외 구분에 따른 부과제외 사유 코드 설정 // 부과제외 구분에 따른 부과제외 사유 코드 설정
setFim021${pageName} = (seCode, rsnCode) => { $P.setFim021 = (seCode, rsnCode) => {
let cmnCode = FIM021[seCode]; let cmnCode = FIM021[seCode];
$("#levyExclSeCd--${pageName}").val(cmnCode.code); $("#levyExclSeCd--${pageName}").val(cmnCode.code);
$("#levyExclSeNm--${pageName}").val(cmnCode.value); $("#levyExclSeNm--${pageName}").val(cmnCode.value);
let reasons = FIM022.list().filter(reason => "1" == seCode ? reason.code < "200" : reason.code > "200"); let reasons = FIM022.list().filter(reason => "1" == seCode ? reason.code < "200" : reason.code > "200");
$("#levyExclRsnCd--${pageName}").html(reasons.map(reason => "<option value='" + reason.code + "'>" + reason.value + "</option>").join()); $("#levyExclRsnCd--${pageName}").html(reasons.map(reason => "<option value='" + reason.code + "'>" + reason.value + "</option>").join());
if (typeof rsnCode != "undefined" && rsnCode != "") { if (typeof rsnCode != "undefined" && rsnCode != "") {
$("#levyExclRsnCd--${pageName}").val(rsnCode); $("#levyExclRsnCd--${pageName}").val(rsnCode);
}
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 저장 버튼 클릭 이벤트
fnSave${pageName} = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
dialog.alert({
content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?"
, onOK : () => {
${pageName}Control.save(${pageName}Fields.get());
} }
}); }
}
/************************************************************************** /**************************************************************************
* 초기 셋팅 * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 이벤트 설정 // 저장 버튼 클릭 이벤트
setEvent${pageName} = () => { $P.fnSave = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 // validate 확인
$("#frmEdit--${pageName}").find(".form-date").each(function() { if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
$(this).on("input", function() {
let value = this.value.replaceAll("-",""); dialog.alert({
content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
if (value.length > 7) { , onOK : () => {
this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6); $P.control.save($P.formFields.get());
} else if(value.length > 5) {
this.value = value.substring(0, 4) + "-" + value.substring(4);
} }
}); });
});
}
// 기본 데이터 설정
initData${pageName} = () => {
// 달력 초기화
initDatepicker("frmEdit--${pageName}");
$("#levyExclYmd--${pageName}").datepicker("setDate", new Date());
// 화면 활성화 설정
$("#crdnYmdTm--${pageName}").prop("readonly", true); // 단속 일시
$("#vhrno--${pageName}").prop("readonly", true); // 차량번호
$("#levyExclSeNm--${pageName}").prop("readonly", true); // 부과 제외 구분
if (${pageName}CallPurpose == "view") {
// input 요소들을 disabled
$("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true);
// button 요소들을 disabled
$("#btnLevyExclYmd--${pageName}").prop("disabled", true); // 부과제외 일자 달력 버튼
$("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼
} }
}
// 업무구분에 따른 url 변경 /**************************************************************************
setURL${pageName} = (taskSeCd) => { * 초기 셋팅
${pageName}Control.urls.create = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/020/create.do"); // 등록 **************************************************************************/
${pageName}Control.urls.update = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/020/update.do"); // 수정
}
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// 이벤트 설정 // 이벤트 설정
setEvent${pageName}(); $P.setEvent = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmEdit--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() {
let value = this.value.replaceAll("-","");
if (value.length > 7) {
this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6);
} else if(value.length > 5) {
this.value = value.substring(0, 4) + "-" + value.substring(4);
}
});
});
// 업무 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장
}
// 초기 화면 설정
$P.initForm = () => {
// 달력 초기화
initDatepicker("frmEdit--${pageName}");
$("#levyExclYmd--${pageName}").datepicker("setDate", new Date());
// 화면 활성화 설정
$("#crdnYmdTm--${pageName}").prop("readonly", true); // 단속 일시
$("#vhrno--${pageName}").prop("readonly", true); // 차량번호
$("#levyExclSeNm--${pageName}").prop("readonly", true); // 부과 제외 구분
if (${pageName}CallPurpose == "view") {
// input 요소들을 disabled
$("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true);
// button 요소들을 disabled
$("#btnLevyExclYmd--${pageName}").prop("disabled", true); // 부과제외 일자 달력 버튼
$("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼
}
}
// 기본 데이터 설정 // 기본 데이터 설정
initData${pageName}(); $P.initData = () => {
}
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/create.do"); // 등록
$P.control.urls.update = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/update.do"); // 수정
}
/**************************************************************************
* 최초 실행 함수
**************************************************************************/
// 1. 이벤트 설정
$P.setEvent();
// 2. 초기 화면 설정
$P.initForm();
// 3. 기본 데이터 설정
$P.initData();
// Dataset 설정 // 4. Dataset 설정
${pageName}Control.setData([${levyExclInfo}]); $P.control.setData([${levyExclInfo}]);
}); });
</script> </script>

@ -245,8 +245,8 @@
</div> </div>
<!-- / DataTables(그리드) --> <!-- / DataTables(그리드) -->
</div> </div>
</div> <!-- / Wrapper-list --> </div> <!-- <div class="wrapper-list"> -->
</div> <!-- / Card --> </div> <!-- <div class="card"> -->
</div> </div>
<!-- / Content --> <!-- / Content -->
@ -260,17 +260,22 @@
**************************************************************************/ **************************************************************************/
pageObject["${pageName}"] = {}; pageObject["${pageName}"] = {};
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// pageObject // pageObject
var $P = pageObject["${pageName}"]; var $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/excl/excl03";
// FormFields // FormFields
$P.formFields = new FimsFormFields("#frmSearch--${pageName}"); $P.formFields = new FimsFormFields("#frmSearch--${pageName}");
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.crdnReRegControl = new DatasetControl({ $P.control = new DatasetControl({
prefix : "crdnReReg" prefix : "crdnReReg"
, prefixName : "단속 재등록" , prefixName : "단속 재등록"
, keymapper : info => info ? info.RE_REG_ID : "" , keymapper : info => info ? info.RE_REG_ID : ""
@ -285,28 +290,33 @@
, REG_DT : datetimeFormat , REG_DT : datetimeFormat
} }
}); });
// $P.control 설정
$P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
$P.control.untilPageNum = 0; // 현재 페이지 번호
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
$P.control.beforeCurrent = null;
/************************************************************************** /**************************************************************************
* DatasetControl 이벤트 * DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
// Dataset 변경 이벤트 // Dataset 변경 이벤트
$P.crdnReRegControl.onDatasetChange = obj => { $P.control.onDatasetChange = obj => {
$P.renderList(obj.${infoPrefix}Total); $P.renderList(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({ $("#paging--${pageName}").setPagingInfo({
list : $P.crdnReRegControl.dataset list : $P.control.dataset
, prefix : "paging--${pageName}" , prefix : "paging--${pageName}"
, start : obj.${infoPrefix}Start , start : obj.${infoPrefix}Start
, totalSize : obj.${infoPrefix}Total , totalSize : obj.${infoPrefix}Total
, fetchSize : obj.${infoPrefix}Fetch , fetchSize : obj.${infoPrefix}Fetch
, func : "$P.crdnReRegControl.load({index})" , func : "$P.control.load({index})"
}); });
$P.crdnReRegControl.tableRenderComplete = true; // dataTables 에 자료 추가 완료 $P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
}; };
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
$P.crdnReRegControl.onCurrentChange = item => { $P.control.onCurrentChange = item => {
if (!item) return; if (!item) return;
let key = item.data.RE_REG_ID; let key = item.data.RE_REG_ID;
@ -319,7 +329,7 @@
**************************************************************************/ **************************************************************************/
// DataTables에 click, dbclick 이벤트 // DataTables에 click, dbclick 이벤트
$P.renderList = (totalSize) => { $P.renderList = (totalSize) => {
let ${infoPrefix}List = $P.crdnReRegControl.dataset; let ${infoPrefix}List = $P.control.dataset;
let empty = ${infoPrefix}List.empty; let empty = ${infoPrefix}List.empty;
let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val().toLowerCase(); // 소문자 let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val().toLowerCase(); // 소문자
@ -334,21 +344,21 @@
// //
let replacer = (str, dataItem) => str let replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].crdnReRegControl.setCurrent('" + dataItem.getValue("RE_REG_ID") + "');") .replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("RE_REG_ID") + "');")
.replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');"); .replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');");
let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML]
: ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer); : ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer);
let noMore = (totalSize == ${infoPrefix}List.length); let noMore = (totalSize == ${infoPrefix}List.length);
let initScroll = ($P.crdnReRegControl.query.pageNum < 2) && ($P.crdnReRegControl.untilPageNum == 0); let initScroll = ($P.control.query.pageNum < 2) && ($P.control.untilPageNum == 0);
$("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore); $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore);
if ($P.crdnReRegControl.untilPageNum != 0) { if ($P.control.untilPageNum != 0) {
$P.crdnReRegControl.query.fetchSize = $P.crdnReRegControl.defaultFetchSize; $P.control.query.fetchSize = $P.control.defaultFetchSize;
$P.crdnReRegControl.query.pageNum = $P.crdnReRegControl.untilPageNum; $P.control.query.pageNum = $P.control.untilPageNum;
$P.crdnReRegControl.untilPageNum = 0; $P.control.untilPageNum = 0;
} }
// checkbox 체크 해제 // checkbox 체크 해제
@ -360,9 +370,9 @@
// DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
$P.scrollDataList = () => { $P.scrollDataList = () => {
$P.crdnReRegControl.tableRenderComplete = false; // dataTables 에 자료 추가 false $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false
$P.crdnReRegControl.load($P.crdnReRegControl.query.pageNum + 1); $P.control.load($P.control.query.pageNum + 1);
} }
/************************************************************************** /**************************************************************************
@ -400,7 +410,7 @@
let callControlName = ""; let callControlName = "";
if (typeof callSection == "undefined" || callSection == null || callSection == "") { if (typeof callSection == "undefined" || callSection == null || callSection == "") {
callControlName = "pageObject['${pageName}'].crdnReRegControl"; callControlName = "pageObject['${pageName}'].control";
} else { } else {
callControlName = callSection; callControlName = callSection;
} }
@ -428,10 +438,10 @@
// 검색 자료 재조회 // 검색 자료 재조회
$P.refreshList = () => { $P.refreshList = () => {
$P.crdnReRegControl.untilPageNum = $P.crdnReRegControl.query.pageNum; $P.control.untilPageNum = $P.control.query.pageNum;
$P.crdnReRegControl.query.fetchSize = $P.crdnReRegControl.defaultFetchSize * $P.crdnReRegControl.query.pageNum; $P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum;
$P.crdnReRegControl.load(1); $P.control.load(1);
} }
/************************************************************************** /**************************************************************************
@ -446,27 +456,28 @@
// 초기 기본 설정 // 초기 기본 설정
$P.initForm(); $P.initForm();
// 기본 데이터 설정 // 기본 데이터 설정
$P.initData(taskSeCd); $P.initData(taskSeCd);
// 업무 구분별 설정
$P.setTask(taskSeCd);
// dataset 초기화 // dataset 초기화
$P.crdnReRegControl.dataset.clear(); $P.control.dataset.clear();
} }
// 검색 버튼 이벤트 // 검색 버튼 이벤트
$P.fnSearchList = () => { $P.fnSearchList = () => {
// 검색조건 // 검색조건
$P.crdnReRegControl.query = $P.formFields.get(); $P.control.query = $P.formFields.get();
$P.crdnReRegControl.query.fetchSize = $P.crdnReRegControl.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30 $P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30
$P.crdnReRegControl.query.delYN = "N"; // 삭제 여부 $P.control.query.delYN = "N"; // 삭제 여부
$P.crdnReRegControl.load(1); $P.control.load(1);
} }
// 엑셀 버튼 이벤트 // 엑셀 버튼 이벤트
$P.fnExcel = () => { $P.fnExcel = () => {
if ($P.crdnReRegControl.dataset.empty) { if ($P.control.dataset.empty) {
dialog.alert({ dialog.alert({
content : "검색된 자료가 없습니다." content : "검색된 자료가 없습니다."
, onOK : () => { } , onOK : () => { }
@ -478,9 +489,9 @@
// DataTables(그리드) // DataTables(그리드)
let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)") let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)")
, $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)")); , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)"));
$P.crdnReRegControl.query.cellDefs = cellDefs; $P.control.query.cellDefs = cellDefs;
$P.crdnReRegControl.download(); $P.control.download();
} }
// 사용자 조회 버튼 이벤트 // 사용자 조회 버튼 이벤트
@ -490,7 +501,7 @@
// 이전 단속정보 보기 버튼 이벤트 // 이전 단속정보 보기 버튼 이벤트
$P.fnBfrCrdnTotalInfo = () => { $P.fnBfrCrdnTotalInfo = () => {
let bfrCrdnId = $P.crdnReRegControl.dataset.getValue("BFR_CRDN_ID"); let bfrCrdnId = $P.control.dataset.getValue("BFR_CRDN_ID");
// 이전 단속 ID 가 없다면.. return // 이전 단속 ID 가 없다면.. return
if (typeof bfrCrdnId == "undefined" || bfrCrdnId == null || bfrCrdnId == "") return; if (typeof bfrCrdnId == "undefined" || bfrCrdnId == null || bfrCrdnId == "") return;
@ -502,22 +513,19 @@
/************************************************************************** /**************************************************************************
* 초기 설정 * 초기 설정
**************************************************************************/ **************************************************************************/
// 이벤트 // 이벤트 설정
$P.setEvent = () => { $P.setEvent = () => {
// 버튼 이벤트 // 기본 버튼 이벤트
$("#btnReset--${pageName}").on("click", () => $P.fnResetAndChangeBiz()); // 초기화 $("#btnReset--${pageName}").on("click", () => $P.fnResetAndChangeBiz()); // 초기화
$("#btnSearch--${pageName}").on("click", () => $P.fnSearchList()); // 검색 $("#btnSearch--${pageName}").on("click", () => $P.fnSearchList()); // 검색
$("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀 $("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀
$("#btnFindUser--${pageName}").on("click", () => $P.fnFindUser()); // 사용자 검색 $("#btnFindUser--${pageName}").on("click", () => $P.fnFindUser()); // 사용자 검색
$("#btnBfrCrdnTotalInfo--${pageName}").on("click", () => $P.fnBfrCrdnTotalInfo()); // 이전단속정보
// 동적검색에서 엔터(Enter) 키를 누르면 검색한다. // 동적검색에서 엔터(Enter) 키를 누르면 검색한다.
$("#term--${pageName}").keypress(function(e) { $("#term--${pageName}").keypress(function(e) {
if (e.keyCode == 13) { if (e.keyCode == 13) {
fnSearchList${pageName}();    fnSearchList${pageName}();   
}     }    
}); });
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() { $("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() { $(this).on("input", function() {
@ -531,6 +539,9 @@
}); });
}); });
// 업무 버튼 이벤트
$("#btnBfrCrdnTotalInfo--${pageName}").on("click", () => $P.fnBfrCrdnTotalInfo()); // 이전단속정보
// DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
@ -538,8 +549,8 @@
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList); fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList);
} }
// 기본 데이터 설정 // 초기 화면 설정
$P.initForm = (taskSeCd) => { $P.initForm = () => {
// 화면 초기화 // 화면 초기화
$("#frmSearch--${pageName}")[0].reset(); $("#frmSearch--${pageName}")[0].reset();
@ -570,9 +581,6 @@
// 기본 데이터 설정 // 기본 데이터 설정
$P.initData = (taskSeCd) => { $P.initData = (taskSeCd) => {
// $P.crdnReRegControl 설정
$P.crdnReRegControl.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
// 시군구 코드 // 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}"); $("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 코드 // 업무 구분 코드
@ -580,9 +588,6 @@
// 일자 // 일자
$("#schReRegYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); $("#schReRegYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
$("#schReRegYmdTo--${pageName}").datepicker("setDate", new Date()); $("#schReRegYmdTo--${pageName}").datepicker("setDate", new Date());
// 업무 구분별 설정
$P.setTask(taskSeCd);
} }
// 업무 구분별 설정 // 업무 구분별 설정
@ -610,22 +615,22 @@
$P.setURL(taskSeCd); $P.setURL(taskSeCd);
} }
// URL 설정 // 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => { $P.setURL = (taskSeCd) => {
$P.crdnReRegControl.urls.load = wctx.url("/" + taskSeCd + "/excl/excl03/010/list.do"); // 조회 $P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/list.do"); // 조회
$P.crdnReRegControl.urls.create = wctx.url("/" + taskSeCd + "/excl/excl03/010/create.do"); // 등록 $P.control.urls.create = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/create.do"); // 등록
} }
/************************************************************************** /**************************************************************************
* 초기 셋팅 * 최초 실행 함수
**************************************************************************/ **************************************************************************/
// 이벤트 설정 // 1. 이벤트 설정
$P.setEvent(); $P.setEvent();
// 화면 초기 설정 및 업무 구분 변경 // 2. 화면 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 보안모드 // 3. 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
}); });

@ -348,7 +348,7 @@
, title : dialogTitle , title : dialogTitle
, content : resp , content : resp
, size : "lg" , size : "lg"
, onClose : () => { $P.refreshDataInfo$(); } // callback 자료 재조회 , onClose : () => { $P.refreshDataInfo$(); }
}); });
} }
}); });
@ -371,7 +371,7 @@
ajax.post({ ajax.post({
url : wctx.url("/" + params.taskSeCd + "/crdn/crdn06/010/remove.do") url : wctx.url("/" + params.taskSeCd + "/crdn/crdn06/010/remove.do")
, data : params || {} , data : params || {}
, success : resp => $P.crdnPayerControl.onRemove(resp) // 삭제 callback , success : resp => $P.crdnPayerControl.onRemove(resp)
}); });
} }
@ -402,14 +402,12 @@
$P.viewAnswerPreview = (params) => { $P.viewAnswerPreview = (params) => {
if (!params) return; if (!params) return;
let dialogId = "answerPreviewDialog--${pageName}";
ajax.get({ ajax.get({
url : wctx.url("/" + params.taskSeCd + "/cvlc/cvlc02/060/info.do?openerPageName=${pageName}") url : wctx.url("/" + params.taskSeCd + "/cvlc/cvlc02/060/info.do?openerPageName=${pageName}")
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : dialogId id : "answerPreviewDialog--${pageName}"
, title : "답변내용 미리보기" , title : "답변내용 미리보기"
, content : resp , content : resp
, size : "xl" , size : "xl"
@ -442,11 +440,11 @@
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : $P.crdnPayerControl.prefixed("SttsCdDialog") id : "crdnSttsCdDialog"
, title : "단속상태 변경" , title : "단속상태 변경"
, content : resp , content : resp
, size : "lg" , size : "lg"
, onClose : () => { $P.refreshDataInfo$(); } // callback 자료 조회 , onClose : () => { $P.refreshDataInfo$(); }
}); });
} }
}); });
@ -480,7 +478,7 @@
, title : dialogTitle , title : dialogTitle
, content : resp , content : resp
, size : "lg" , size : "lg"
, onClose : () => { $P.refreshDataInfo(); } // callback 자료 조회 , onClose : () => { $P.refreshDataInfo(); }
}); });
} }
}); });
@ -525,8 +523,8 @@
**************************************************************************/ **************************************************************************/
// 민원원본보기 버튼 이벤트 // 민원원본보기 버튼 이벤트
$P.fnViewCvlcptOrgnl = () => { $P.fnViewCvlcptOrgnl = () => {
let crdnId = $P.crdnPayerControl.dataset.getValue("CRDN_ID"); // 단속 ID let crdnId = $P.crdnPayerControl.dataset.getValue("CRDN_ID"); // 단속 ID
let cvlcptLinkId = $P.crdnPayerControl.dataset.getValue("CVLCPT_LINK_ID"); // 민원 연계 ID let cvlcptLinkId = $P.crdnPayerControl.dataset.getValue("CVLCPT_LINK_ID"); // 민원 연계 ID
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -539,9 +537,9 @@
let params = { let params = {
callPurpose : "view" callPurpose : "view"
, crdnId : crdnId // 단속 ID , crdnId : crdnId // 단속 ID
, sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
}; };
$P.viewCvlcptOrgnl(params); $P.viewCvlcptOrgnl(params);
@ -549,8 +547,8 @@
// 민원답변보기 버튼 이벤트 // 민원답변보기 버튼 이벤트
$P.fnViewAnswerPreview = () => { $P.fnViewAnswerPreview = () => {
let crdnId = $P.crdnPayerControl.dataset.getValue("CRDN_ID"); // 단속 ID let crdnId = $P.crdnPayerControl.dataset.getValue("CRDN_ID"); // 단속 ID
let cvlcptLinkId = $P.crdnPayerControl.dataset.getValue("CVLCPT_LINK_ID"); // 민원 연계 ID let cvlcptLinkId = $P.crdnPayerControl.dataset.getValue("CVLCPT_LINK_ID"); // 민원 연계 ID
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -563,9 +561,9 @@
let params = { let params = {
callPurpose : "view" callPurpose : "view"
, crdnId : crdnId // 단속 ID , crdnId : crdnId // 단속 ID
, sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
}; };
$P.viewAnswerPreview(params); $P.viewAnswerPreview(params);
@ -580,9 +578,9 @@
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, crdnId : crdnId // 단속 ID , crdnId : crdnId // 단속 ID
, sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
}; };
$P.crdnPayerControl.getInfo(params); $P.crdnPayerControl.getInfo(params);
@ -597,9 +595,9 @@
let params = { let params = {
callPurpose : "remove" callPurpose : "remove"
, crdnId : crdnId // 단속 ID , crdnId : crdnId // 단속 ID
, sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
}; };
dialog.alert({ dialog.alert({
@ -619,9 +617,9 @@
let params = { let params = {
callPurpose : "create" callPurpose : "create"
, sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, bfrCrdnId : bfrCrdnId // 단속 ID , bfrCrdnId : bfrCrdnId // 단속 ID
}; };
dialog.alert({ dialog.alert({
@ -646,9 +644,9 @@
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, crdnId : crdnId // 단속 ID , crdnId : crdnId // 단속 ID
, sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
}; };
$P.getInfoCrdnSttsCd(params); $P.getInfoCrdnSttsCd(params);
@ -663,10 +661,10 @@
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, crdnId : crdnId // 단속 ID , crdnId : crdnId // 단속 ID
, sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, rtpyrId : $P.crdnPayerControl.dataset.getValue("RTPYR_ID") // 납부자 ID , rtpyrId : $P.crdnPayerControl.dataset.getValue("RTPYR_ID") // 납부자 ID
, delYN : "N" , delYN : "N"
}; };
@ -687,18 +685,24 @@
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, crdnId : crdnId // 단속 ID , crdnId : crdnId // 단속 ID
, sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $P.crdnPayerControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.crdnPayerControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, rtpyrId : $P.crdnPayerControl.dataset.getValue("RTPYR_ID") // 납부자 ID , rtpyrId : $P.crdnPayerControl.dataset.getValue("RTPYR_ID") // 납부자 ID
, vhrno : $P.crdnPayerControl.dataset.getValue("VHRNO") // 차량번호 , vhrno : $P.crdnPayerControl.dataset.getValue("VHRNO") // 차량번호
, rtpyrInptSeCd : "01" // 납부자 입력 구분 코드 , rtpyrInptSeCd : "01" // 납부자 입력 구분 코드
, delYN : "N" , delYN : "N"
}; };
$P.updatePayer(params); $P.updatePayer(params);
} }
// 확인 필요
// 차적조회(단속내역,민원상담내역,차적기본조회,장애인표지조회)
$P.getVehicleTotalInfo = async function(vhrnoEl) {
};
/************************************************************************** /**************************************************************************
* 초기 셋팅 * 초기 셋팅
**************************************************************************/ **************************************************************************/
@ -719,18 +723,18 @@
// 기본 데이터 설정 // 기본 데이터 설정
$P.initData = () => { $P.initData = () => {
// jquery를 이용한 show/hide (style이 유지) // jquery를 이용한 show/hide (style이 유지)
$("#divBlank1--${pageName}").hide(); // 빈 칸1 $("#divBlank1--${pageName}").hide(); // 빈 칸1
$("#divBlank2--${pageName}").hide(); // 빈 칸2 $("#divBlank2--${pageName}").hide(); // 빈 칸2
$("#divCrdnSn--${pageName}").hide(); // 단속 일련번호 $("#divCrdnSn--${pageName}").hide(); // 단속 일련번호
$("#divDtlCrdnPlc--${pageName}").hide(); // 상세 단속 장소 $("#divDtlCrdnPlc--${pageName}").hide(); // 상세 단속 장소
$("#lbDstrbncYn--${pageName}").hide(); // 1면 방해 $("#lbDstrbncYn--${pageName}").hide(); // 1면 방해
$("#divCrdnSpareaNm--${pageName}").hide(); // 단속 특별구역 코드 $("#divCrdnSpareaNm--${pageName}").hide(); // 단속 특별구역 코드
$("#divTowngYnNm--${pageName}").hide(); // 견인 여부 $("#divTowngYnNm--${pageName}").hide(); // 견인 여부
$("#divFfnlgCarmdlNm--${pageName}").hide(); // 과태료 차종 $("#divFfnlgCarmdlNm--${pageName}").hide(); // 과태료 차종
$("#divOvtimeYnNm--${pageName}").hide(); // 시간외 여부 $("#divOvtimeYnNm--${pageName}").hide(); // 시간외 여부
$("#divParkngPsbltyRsltNm--${pageName}").hide(); // 주차 가능 결과 코드 $("#divParkngPsbltyRsltNm--${pageName}").hide(); // 주차 가능 결과 코드
$("#divUseFuelNm--${pageName}").hide(); // 사용 연료 구분 $("#divUseFuelNm--${pageName}").hide(); // 사용 연료 구분
$("#divCrdnBgngTm--${pageName}").hide(); // 단속 시작 시각 ~ 단속 종료 시각 $("#divCrdnBgngTm--${pageName}").hide(); // 단속 시작 시각 ~ 단속 종료 시각
// 업무에 따른 요소들 visible // 업무에 따른 요소들 visible
if (pageObject["${pageNameMain}"].mainControl.dataset.getValue("TASK_SE_CD") == "BPV") { // 전용차로위반 if (pageObject["${pageNameMain}"].mainControl.dataset.getValue("TASK_SE_CD") == "BPV") { // 전용차로위반
@ -785,91 +789,16 @@
$P.crdnPayerControl.setData([${crdnPayer}]); // 단속, 납부자 정보 $P.crdnPayerControl.setData([${crdnPayer}]); // 단속, 납부자 정보
// 4. 사진영역 설정 // 4. 사진영역 설정
settingPhotoMain("${pageName}", "crdnId--${pageName}", settingPhotoMain("${pageName}", "crdnId--${pageName}"
function() { , function() {
return { return {
vhrno : $("#vhrno--${pageName}").val() vhrno : $("#vhrno--${pageName}").val()
, vhclNm : $("#vhclNm--${pageName}").val() , vhclNm : $("#vhclNm--${pageName}").val()
, vhclColor : $("#vhclColor--${pageName}").val() , vhclColor : $("#vhclColor--${pageName}").val()
}; };
} }, async function(vhrnoEl) {
, async function(vhrno) { // 차적조회는 "단속정보 수정" 에서 해라...
// 차적조회는 "단석정보수정" 에서 해라... 소스 삭제 예정. return await $P.getVehicleTotalInfo(vhrnoEl);
// let resp = await getVhclInfo($("#sggCd--${pageName}").val(), vhrno, $("#crdnYmd--${pageName}").val());
// $("#vhrno--${pageName}").val(vhrno);
// if (!resp.found) {
// $("#vin--${pageName}").val(""); // 차대번호
// $("#vhclNm--${pageName}").val(""); // 차량 명
// $("#vhclColor--${pageName}").val(""); // 차량 색상
// $("#ffnlgCarmdlCd--${pageName}").val(""); //
// // ffnlgCarmdlNm
// $("#useFuelCd--${pageName}").val(""); //
// // useFuelNm
// $("#rtpyrId--${pageName}").val(""); //
// $("#rtpyrNm--${pageName}").val(""); // 납부자 명
// $("#rtpyrSeCd--${pageName}").val(""); // 납부자 구분 코드
// // rtpyrSeNm
// $("#rtpyrNo--${pageName}").val(""); // 납부자번호
// $("#zip--${pageName}").val(""); // 우편번호
// $("#wholAddr--${pageName}").val(""); // 전체주소
// // rtpyrInptSeNm // 입력 구분 코드
// return {
// vhrno : ""
// , vhclNm : ""
// , vhclColor : ""
// };
// } else {
// $("#rtpyrId--${pageName}").val(resp.rtpyrId);
// let vehicle = resp.vehicle;
// $("#rtpyrNm--${pageName}").val(vehicle.mber_nm);
// let pyrSeCd = "";
// switch(vehicle.mber_se_code){
// case "11" : pyrSeCd = "01"; break;
// case "12" : pyrSeCd = "02"; break;
// case "13" : pyrSeCd = "03"; break;
// case "14" : pyrSeCd = "04"; break;
// case "15" : pyrSeCd = "05"; break;
// }
// $("#rtpyrSeCd--${pageName}").val(pyrSeCd);
// $("#rtpyrNo--${pageName}").val(vehicle.mber_se_no);
// $("#vin--${pageName}").val(vehicle.vin);
// $("#vhclNm--${pageName}").val(vehicle.cnm);
// $("#vhclColor--${pageName}").val(vehicle.color_nm);
// $("#useFuelCd--${pageName}").val(vehicle.use_fuel_code);
// if (vehicle.vhcty_asort_code == "1"){ //승용
// $("#ffnlgCarmdlCd--${pageName}").val("11");
// } else if (vehicle.vhcty_asort_code == "2"){ //승합
// $("#ffnlgCarmdlCd--${pageName}").val("12");
// } else if (vehicle.vhcty_asort_code == "3"){ //화물
// if(vehicle.mxmm_ldg <= 4000){
// $("#ffnlgCarmdlCd--${pageName}").val("13");
// } else {
// $("#ffnlgCarmdlCd--${pageName}").val("14");
// }
// } else if (vehicle.vhcty_asort_code == "4"){ //특수
// $("#ffnlgCarmdlCd--${pageName}").val("15");
// } else {
// $("#ffnlgCarmdlCd--${pageName}").val("");
// }
// $("#zip--${pageName}").val(vehicle.zip_code); //우편번호
// $("#wholAddr--${pageName}").val(vehicle.road_nm_adres + " " + vehicle.use_strnghld_adres_nm);
// return {
// vhrno : resp.vehicle.vhrno
// , vhclNm : resp.vehicle.cnm
// , vhclColor : resp.vehicle.color_nm
// };
// }
} }
); );

@ -50,7 +50,7 @@
</div> </div>
</div> </div>
<!-- Core JS --> <!-- Core JS -->
<script src="/resources/3rd-party/sneat/js/helpers.js"></script> <script src="/resources/3rd-party/sneat/js/helpers.js"></script>
<script src="/resources/3rd-party/sneat/js/config.js"></script> <script src="/resources/3rd-party/sneat/js/config.js"></script>
@ -61,19 +61,26 @@
<script src="/resources/3rd-party/sneat/js/menu.js"></script> <script src="/resources/3rd-party/sneat/js/menu.js"></script>
<!-- Core JS for base --> <!-- Core JS for base -->
<script src="/resources/lib/fims/framework/jquery-ui/1.13.2/jquery-ui.js"></script> <script src="/resources/lib/fims/framework/jquery-ui/1.13.2/jquery-ui.js"></script>
<script src="/resources/js/fims/framework/cmm/initAfterPageLoad.js"></script> <script src="/resources/js/fims/framework/cmm/initAfterPageLoad.js"></script>
<script language="javascript"> <script language="javascript">
var callbackFuncName = location.search.split("&")[0].split("=")[1]; // parameter
var ttlNm = decodeURI(location.search.split("&")[1].split("=")[1]); var openerPageName = location.search.split("&")[0].split("=")[1];
var usePurpose = location.search.split("&")[1].split("=")[1];
var ttlNm = decodeURI(location.search.split("&")[2].split("=")[1]);
function fnOK() { function fnOK() {
let obj = { let obj = {
reason : $("#reason").val() // 사유 reason : $("#reason").val() // 사유
}; };
window.opener[callbackFuncName](obj); if (usePurpose == "remove") {
window.opener.pageObject[openerPageName].callbackRemove(obj);
} else {
window.opener.pageObject[openerPageName].callback(obj);
}
window.close(); window.close();
} }

Loading…
Cancel
Save