From 79c52b7c83c7f39967010d8069767f53ee68d5e9 Mon Sep 17 00:00:00 2001 From: jjh Date: Mon, 5 Feb 2024 13:56:40 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=85=EB=AC=B4=EC=A7=80=EC=9B=90=20-=20?= =?UTF-8?q?=EB=AF=BC=EC=9B=90=EC=83=81=EB=8B=B4=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/rcvm/web/Rcvm01Controller.java | 9 +- .../WEB-INF/jsp/fims/excl/excl01020-info.jsp | 4 +- .../WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp | 728 ++++++++++-------- .../WEB-INF/jsp/fims/sprt/sprt04010-main.jsp | 720 ++++++++--------- .../WEB-INF/jsp/fims/sprt/sprt04020-info.jsp | 240 +++--- 5 files changed, 911 insertions(+), 790 deletions(-) diff --git a/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java b/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java index 9a21a4fe..6627dfd5 100644 --- a/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java +++ b/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java @@ -124,8 +124,8 @@ public class Rcvm01Controller extends ApplicationController { , Map.entry("세목명", "TXITM_NM") , Map.entry("부과번호", xlsx.style("LEVY_NO", center)) , Map.entry("수납일련번호", xlsx.style("RCVMT_SN", center)) - , Map.entry("소인일자", xlsx.format(o -> xlsx.str2date(o.get("PSTMRK_YMD"))).style(dateYMD)) , Map.entry("회계일자", xlsx.format(o -> xlsx.str2date(o.get("ACNTG_YMD"))).style(dateYMD)) + , Map.entry("소인일자", xlsx.format(o -> xlsx.str2date(o.get("PSTMRK_YMD"))).style(dateYMD)) , Map.entry("수납일자", xlsx.format(o -> xlsx.str2date(o.get("RCVMT_YMD"))).style(dateYMD)) , Map.entry("수납금액", xlsx.style("RCVMT_AMT", numeric)) , Map.entry("수납본세", xlsx.style("RCVMT_PCPTAX", numeric)) @@ -147,11 +147,12 @@ public class Rcvm01Controller extends ApplicationController { , Map.entry("압류해제일자", xlsx.format(o -> xlsx.str2date(o.get("SZR_RMV_YMD"))).style(dateYMD)) , Map.entry("단속일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT)) , Map.entry("차량번호", "VHRNO") - , Map.entry("법정동", "CRDN_STDG_NM") + , Map.entry("납부자구분", xlsx.style("RTPYR_SE_NM", center)) + , Map.entry("납부자번호", xlsx.style("RTPYR_NO", center)) + , Map.entry("납부자명", "RTPYR_NM") + , Map.entry("단속법정동", "CRDN_STDG_NM") , Map.entry("단속장소", "CRDN_PLC") , Map.entry("처리상태", "CRDN_STTS_NM") - , Map.entry("납부자명", "RTPYR_NM") - , Map.entry("납부자생일", xlsx.style("RTPYR_BRDT_MASK", center)) , Map.entry("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT)) , Map.entry("등록사용자", xlsx.style("RGTR_NM", center)) , Map.entry("수정일시", xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT)) diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp index d0e639ed..c4b29cf1 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp @@ -227,7 +227,7 @@ }); // 업무 버튼 이벤트 - $("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장 + $("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장 } // 초기 화면 설정 @@ -241,7 +241,7 @@ $("#vhrno--${pageName}").prop("readonly", true); // 차량번호 $("#levyExclSeNm--${pageName}").prop("readonly", true); // 부과 제외 구분 - if ($P.callPurpose == "view") { + if ($P.callPurpose == "view") { // view // input 요소들을 disabled $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); // button 요소들을 disabled diff --git a/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp index f8ef62e0..b9c40207 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp @@ -13,14 +13,14 @@
- - - @@ -141,7 +141,7 @@ -
@@ -175,58 +175,62 @@ - NO. - - 업무구분 - 수납입력구분 - 수납취소 - 회계연도 - 회계구분 - 세목코드 - 세목명 - 부과번호 - 수납일련번호 - 회계일자 - 소인일자 - 수납일자 - 수납금액 - 수납본세 - 수납가산금 - 수납이자 - 수납은행 - 납부방법 - 수납구분 - 수납상태 - 부과일자 - 최초납기일자 - 납기일자 - 부과본세 - 부과가산금 - 분납이자 - 압류일자 - 압류물건 - 대체압류차량 - 압류해제일자 - 단속일시 - 차량번호 - 법정동 - 단속장소 - 처리상태 - 납부자명 - 납부자생일 - 등록일시 - 등록사용자 - 수정일시 - 수정사용자 - + + @@ -286,8 +303,6 @@
- -
@@ -296,335 +311,388 @@ /************************************************************************** * Global Variable **************************************************************************/ - // URL - var ${pageName}PrefixUrl = "/rcvm/rcvm01"; - // FormFields - var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); - - /************************************************************************** - * DatasetControl - **************************************************************************/ - var ${pageName}Control = new DatasetControl({ - prefix : "rcvmt" - , prefixName : "수납" - , infoSize : "lg" - , keymapper : info => info ? info.RCVMT_ID : "" - , dataGetter : obj => obj.rcvmtList - , appendData : true - , untilPageNum : 0 // 현재 페이지 번호 - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 - , formats : { - RCVMT_YMD : dateFormat - , ACNTG_YMD : dateFormat - , PSTMRK_YMD : dateFormat - , RCVMT_AMT : numberFormat - , RCVMT_PCPTAX : numberFormat - , RCVMT_ADAMT : numberFormat - , RCVMT_INT : numberFormat - , LEVY_YMD : dateFormat - , FRST_DUDT_YMD : dateFormat - , DUDT_YMD : dateFormat - , FFNLG_AMT : numberFormat - , LEVY_PCPTAX : numberFormat - , LEVY_ADAMT : numberFormat - , SZR_YMD : dateFormat - , CRDN_YMD_TM : datetimeFormat - , REG_DT : datetimeFormat - , MDFCN_DT : datetimeFormat - } - }); + pageObject["${pageName}"] = {}; /************************************************************************** - * DatasetControl 이벤트 + * script 진입 **************************************************************************/ - // Dataset 변경 이벤트 - ${pageName}Control.onDatasetChange = obj => { - renderList${pageName}(obj.${infoPrefix}Total); - - $("#paging--${pageName}").setPagingInfo({ - list : ${pageName}Control.dataset - , prefix : "paging--${pageName}" - , start : obj.${infoPrefix}Start - , totalSize : obj.${infoPrefix}Total - , fetchSize : obj.${infoPrefix}Fetch - , func : "${pageName}Control.load({index})" + $(document).ready(function() { + // pageObject + var $P = pageObject["${pageName}"]; + + // URL + $P.PrefixUrl = "/rcvm/rcvm01"; + // FormFields + $P.formFields = new FimsFormFields("#frmSearch--${pageName}"); + + /************************************************************************** + * DatasetControl + **************************************************************************/ + $P.control = new DatasetControl({ + prefix : "rcvmt" + , prefixName : "수납" + , infoSize : "lg" + , keymapper : info => info ? info.RCVMT_ID : "" + , dataGetter : obj => obj.rcvmtList + , appendData : true + , formats : { + RCVMT_YMD : dateFormat + , ACNTG_YMD : dateFormat + , PSTMRK_YMD : dateFormat + , RCVMT_AMT : numberFormat + , RCVMT_PCPTAX : numberFormat + , RCVMT_ADAMT : numberFormat + , RCVMT_INT : numberFormat + , LEVY_YMD : dateFormat + , FRST_DUDT_YMD : dateFormat + , DUDT_YMD : dateFormat + , FFNLG_AMT : numberFormat + , LEVY_PCPTAX : numberFormat + , LEVY_ADAMT : numberFormat + , SZR_YMD : dateFormat + , CRDN_YMD_TM : datetimeFormat + , 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})" + }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 - }; + $P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + }; - // 현재 선택 자료 변경 이벤트 - ${pageName}Control.onCurrentChange = item => { - if (!item) return; + // 현재 선택 자료 변경 이벤트 + $P.control.onCurrentChange = item => { + if (!item) return; - let key = item.data.RCVMT_ID; + let key = item.data.RCVMT_ID; - $("#tbody--${pageName}").setCurrentRow(key); - }; + $("#tbody--${pageName}").setCurrentRow(key); + }; - // 선택(체크) 변경 이벤트 - ${pageName}Control.onSelectionChange = selected => { - let ${infoPrefix}List = ${pageName}Control.dataset; - let keys = selected.map(e => ${infoPrefix}List.getKey(e)); + // 선택(체크) 변경 이벤트 + $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() { - let checkbox = $(this); + $("#tbody--${pageName} input[type='checkbox']").each(function() { + let checkbox = $(this); - checkbox.prop("checked", keys.includes(checkbox.val())); - }); + checkbox.prop("checked", keys.includes(checkbox.val())); + }); - $("#btnRemove--${pageName}").prop("disabled", keys.length < 1); - }; + $("#btnRemove--${pageName}").prop("disabled", keys.length < 1); + }; + + /************************************************************************** + * DataTables 이벤트 + **************************************************************************/ + // 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)); + }); - /************************************************************************** - * DataTables 이벤트 - **************************************************************************/ - // DataTables에 click, dbclick 이벤트 - renderList${pageName} = (totalSize) => { - let ${infoPrefix}List = ${pageName}Control.dataset; - let empty = ${infoPrefix}List.empty; - - let trs = empty ? - [document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%> - ${infoPrefix}List.inStrings( - document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%> - (str, dataItem) => str - .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("RCVMT_ID") + "');") - .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');") - ); - - let noMore = (totalSize == ${infoPrefix}List.length); - let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0); - - $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore); - - if (${pageName}Control.untilPageNum != 0) { - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; - ${pageName}Control.query.pageNum = ${pageName}Control.untilPageNum; - ${pageName}Control.untilPageNum = 0; + // + let replacer = (str, dataItem) => str + .replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("LEVY_EXCL_ID") + "');") + .replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');"); + + let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] + : ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer); + + let noMore = (totalSize == ${infoPrefix}List.length); + let initScroll = ($P.control.query.pageNum < 2) && ($P.control.untilPageNum == 0); + + $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore); + + if ($P.control.untilPageNum != 0) { + $P.control.query.fetchSize = $P.control.defaultFetchSize; + $P.control.query.pageNum = $P.control.untilPageNum; + $P.control.untilPageNum = 0; + } + + // checkbox 체크 해제 + $("th input[type='checkbox']").prop("checked", false); + + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); } - // checkbox 체크 해제 - $("th input[type='checkbox']").prop("checked", false); + // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 + $P.scrollDataList = () => { + $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false - // 보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - } + $P.control.load($P.control.query.pageNum + 1); + } - // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 - scrollDataList${pageName} = () => { - ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ + // 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 = { + openerPageName : "${pageName}" + , callbackFuncName : "pageObject['${pageName}']['callbackFindUser']" + } - /************************************************************************** - * 사용자 함수(function) - **************************************************************************/ - // callback 사용자 검색 - callbackFindUser${pageName} = (userId, userNm) => { - $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID - $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 - } - - // 사용자 검색 - getFindUser${pageName} = () => { - let params = { - callbackFuncName : "callbackFindUser${pageName}" + ajax.get({ + url : wctx.url("/user/user02/010/main.do") + , data : params || {} + , success : resp => { + dialog.open({ + id : "userDialog" + , title : "사용자 검색" + , content : resp + , size : "lg" + }); + } + }); } - ajax.get({ - url : wctx.url("/user/user02/010/main.do") - , data : params || {} - , success : resp => { - dialog.open({ - id : "userDialog" - , title : "사용자 검색" - , content : resp - , size : "lg" - }); + // 개별총정보 dialog + $P.getTotalInfo = (crdnId) => { + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; + + let params = { + callControlName : "pageObject['${pageName}'].control" + , sggCd : $("#sggCd--${pageName}").val() + , taskSeCd : $("input[name=taskSeCd]:checked").val() + , crdnId : crdnId } - }); - } - // 개별총정보 dialog - getTotalInfo${pageName} = (crdnId) => { - if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; + ajax.get({ + url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/010/main.do") + , data : params + , success : resp => { + dialog.open({ + id : "totalInfoMainDialog" + , title : "개별총정보" + , content : resp + , size : "xxl" + }); + } + }); + } + + // 검색 자료 재조회 + $P.refreshList = () => { + $P.control.untilPageNum = $P.control.query.pageNum; + $P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum; + + $P.control.load(1); + } + + /************************************************************************** + * 버튼 clickEvent + **************************************************************************/ + // 업무 구분 변경 이벤트 + $P.fnResetAndChangeBiz = (taskSeCd) => { + // 업무 구분 코드 + if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { + taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); + } + + // 초기 기본 설정 + $P.initForm(); + // 기본 데이터 설정 + $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"; // 삭제 여부 - let params = { - callControlName : "${pageName}Control" - , sggCd : $("#sggCd--${pageName}").val() - , taskSeCd : $("input[name=taskSeCd]:checked").val() - , crdnId : crdnId + $P.control.load(1); } - ajax.get({ - url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do") - , data : params - , success : resp => { - dialog.open({ - id : "totalInfoMainDialog" - , title : "개별총정보" - , content : resp - , size : "xxl" + // 엑셀 버튼 이벤트 + $P.fnExcel = () => { + if ($P.control.dataset.empty) { + dialog.alert({ + content : "검색된 자료가 없습니다." + , onOK : () => { } }); + + return; } - }); - } - // 검색 자료 재조회 - refreshList${pageName} = () => { - ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; + // 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)")); + $P.control.query.cellDefs = cellDefs; - ${pageName}Control.load(1); - } + $P.control.download(); + } - /************************************************************************** - * 버튼 clickEvent - **************************************************************************/ - // 업무 구분 변경 - fnResetAndChangeBiz${pageName} = (taskSeCd) => { - // 업무 구분 코드 - if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { - taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); + // 사용자 조회 버튼 이벤트 + $P.fnFindUser = () => { + $P.getFindUser(); } - // 초기 기본 설정 - initForm${pageName}(taskSeCd); + /************************************************************************** + * 초기 설정 + **************************************************************************/ + // 이벤트 설정 + $P.setEvent = () => { + // 기본 버튼 이벤트 + $("#btnReset--${pageName}").on("click", () => $P.fnResetAndChangeBiz()); // 초기화 + $("#btnSearch--${pageName}").on("click", () => $P.fnSearchList()); // 검색 + $("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀 + $("#btnFindUser--${pageName}").on("click", () => $P.fnFindUser()); // 사용자 검색 + + // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. + $("#term--${pageName}").keypress(function(e) { + if (e.keyCode == 13) { + fnSearchList${pageName}();    + }     + }); - // 기본 데이터 설정 - setFormData${pageName}(taskSeCd); - } - - // 검색 버튼 이벤트 - fnSearchList${pageName} = () => { - // 검색조건 - ${pageName}Control.query = ${pageName}Fields.get(); - - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 1 페이지당 조회되는 자료 건수 - ${pageName}Control.query.delYN = "N"; // 삭제 여부 - - // 검색 - ${pageName}Control.load(1); - } - - // 엑셀 버튼 이벤트 - fnExcel${pageName} = () => { - if (${pageName}Control.dataset.empty) { - dialog.alert({ - content : "검색된 자료가 없습니다." - , onOK : () => { } + // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 + $("#frmSearch--${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); + } + }); }); - return; + // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); + + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList); } - // 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.initForm = () => { + // 화면 초기화 + $("#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"); + }); - ${pageName}Control.download(); - } + // 달력 초기화 + initDatepicker("frmSearch--${pageName}"); + $("#schPstmrkYmdFrom--${pageName}").datepicker("setDate", new Date()); + $("#schPstmrkYmdTo--${pageName}").datepicker("setDate", new Date()); - // 사용자 검색 버튼 이벤트 - fnFindUser${pageName} = () => { - getFindUser${pageName}(); - } + // 동적 검색 + $("#byOutput--${pageName}").val("동적 검색"); - /************************************************************************** - * 초기 설정 - **************************************************************************/ - // 이벤트 - setEvent${pageName} = () => { - // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. - $("#term--${pageName}").keypress(function(e) { - if (e.keyCode == 13) { - fnSearchList${pageName}();    - }     - }); + // 사용자 이름 + $("#schRgtrNm--${pageName}").prop("readonly", true); + } - // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 - $("#frmSearch--${pageName}").find(".form-date").each(function() { - $(this).on("input", function() { - let value = this.value.replaceAll("-", ""); + // 기본 데이터 설정 + $P.initData = (taskSeCd) => { + // 시군구 코드 + $("#sggCd--${pageName}").val("${sggCd}"); + // 업무 구분 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); + + // 일자 + $("#schPstmrkYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); + $("#schPstmrkYmdTo--${pageName}").datepicker("setDate", new Date()); + } - 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); - } - }); - }); + // 업무 구분별 설정 + $P.setTask = (taskSeCd) => { + let clsForTask = taskSeCd.toLowerCase(); - // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 - $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - - // DataTables 스크롤 이벤트 생성 - fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); - } - - // 화면 초기 설정 - initForm${pageName} = (taskSeCd) => { - // 화면 초기화 - $("#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"); - }); + // 업무별 조회조건 + renderForTask("frmSearch--${pageName}", clsForTask); - // 달력 초기화 - initDatepicker("frmSearch--${pageName}"); - $("#schPstmrkYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); - $("#schPstmrkYmdTo--${pageName}").datepicker("setDate", new Date()); + // 업무별 그리드 th + $("#DataTables_Table_0--${pageName}").find("th").resizable( "destroy" ); - // 동적 검색 - $("#byOutput--${pageName}").val("동적 검색"); + let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; + let cols = $(colContent).find("." + clsForTask + ",.cmn"); + let colsOuterHTML = ""; - // 사용자 이름 - $("#schRgtrNm--${pageName}").prop("readonly", true); - } + cols.each(function() { + colsOuterHTML += this.outerHTML; + }); - // 기본 데이터 설정 - setFormData${pageName} = (taskSeCd) => { - // ${pageName}Control 설정 - ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + $("#theadTr--${pageName}").html(colsOuterHTML); + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - // 화면 데이터 설정 - $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + // URL 설정 + $P.setURL(taskSeCd); + } - // URL 설정 - setURL${pageName}(taskSeCd); - } + // 업무구분에 따른 URL 설정 + $P.setURL = (taskSeCd) => { + $P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/list.do"); // 조회 + } - // URL 설정 - setURL${pageName} = (taskSeCd) => { - ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 - } + /************************************************************************** + * 최초 실행 함수 + **************************************************************************/ + // 1. 이벤트 설정 + $P.setEvent(); - /************************************************************************** - * script 진입 - **************************************************************************/ - $(document).ready(function() { - // 이벤트 설정 - setEvent${pageName}(); + // 2. 화면 초기 설정 및 업무 구분 변경 + $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); - // 보안모드 + // 3. 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); - - // 화면 초기 설정 및 업무 구분 변경 - fnResetAndChangeBiz${pageName}($("#layout-navbar input[name='taskSeCd']:checked").val()); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04010-main.jsp index a7cd0179..bd8fa469 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04010-main.jsp @@ -13,14 +13,14 @@
- - - @@ -145,10 +145,10 @@
- - @@ -165,7 +165,7 @@ NO. - + 민원접수구분 상담일자 요일 @@ -186,7 +186,7 @@