From b4b50ae85231aef5f29a1797095bb5f90afa6fa1 Mon Sep 17 00:00:00 2001 From: jjh Date: Fri, 3 Nov 2023 10:50:11 +0900 Subject: [PATCH] =?UTF-8?q?dataTables=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/sndb/web/Sndb01Controller.java | 4 + .../sql/mapper/fims/sndb/sndng-mapper.xml | 218 ++++++------ .../WEB-INF/jsp/fims/crdn/crdn06010-main.jsp | 12 +- .../WEB-INF/jsp/fims/excl/excl01010-main.jsp | 6 +- .../WEB-INF/jsp/fims/excl/excl02010-main.jsp | 6 +- .../WEB-INF/jsp/fims/excl/excl03010-main.jsp | 6 +- .../WEB-INF/jsp/fims/sndb/sndb01010-main.jsp | 201 ++++++----- .../WEB-INF/jsp/fims/sndb/sndb01030-main.jsp | 6 +- .../WEB-INF/jsp/fims/sndb/sndb01040-info.jsp | 58 ++-- .../WEB-INF/jsp/fims/sndb/sndb01050-main.jsp | 324 ++++++++++-------- .../WEB-INF/jsp/fims/sndb/sndb01060-info.jsp | 4 +- .../js/fims/framework/cmm/taskUtil.js | 4 +- 12 files changed, 447 insertions(+), 402 deletions(-) diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java index b5f1ef55..a0c0b888 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -181,6 +181,8 @@ public class Sndb01Controller extends ApplicationController { ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01040-info"); return mav.addObject("pageName", "sndb01040") + .addObject("sggCd", req.getSggCd()) + .addObject("taskSeCd", req.getTaskSeCd()) .addObject("sndngSeCd", req.getSndngSeCd()) // 발송 구분 코드 .addObject("wrngSndngDtlInfo", json ? sndngDtls : toJson(sndngDtls)) // 계도장 발송 현황 세부내용 ; @@ -245,6 +247,8 @@ public class Sndb01Controller extends ApplicationController { ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01060-info"); return mav.addObject("pageName", "sndb01060") + .addObject("sggCd", req.getSggCd()) + .addObject("taskSeCd", req.getTaskSeCd()) .addObject("sndngSeCd", req.getSndngSeCd()) // 발송 구분 코드 .addObject("vltnCd", req.getVltnCd()) // 위반 코드 .addObject("advntceSndngTrgs", json ? advntceSndngTrgs : toJson(advntceSndngTrgs)) // 사전통지 발송 대상 정보 diff --git a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml index 14dffdab..905a1812 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -137,10 +137,20 @@ , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM , CA.CRDN_SE_CD , (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM + , CA.DTL_CRDN_PLC , CA.CRDN_SPAREA_CD , (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM + , CA.CRDN_BGNG_TM + , CA.CRDN_END_TM + , CA.CRDN_SN + , CA.USE_FUEL_CD + , (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM + , CA.FFNLG_CARMDL_CD + , (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM , CA.PARKNG_PSBLTY_RSLT_CD , (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM + , CA.VLTN_NMTM + , CA.OVTIME_YN , VI.VLTN_ID , VI.VLTN_CD , VI.VLTN_ARTCL @@ -176,15 +186,17 @@ LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N') - - - /* 계고장 발송 대상 목록 조회(sndngMapper.selectWrngSndngTrgtList) */ + + SELECT C.CRDN_ID + @@ -327,24 +341,6 @@ , SUM(C.FFNLG_AMT) OVER() AS GRAMT , C.CRDN_ID - - - AND C.CRDN_ID IN ( - #{crdnId} - ) - - - AND C.CRDN_ID = #{crdnId} - - - - AND C.DEL_YN = #{crdnDelYn} - - - AND C.DEL_YN = 'N' - - - @@ -360,6 +356,7 @@ , C.CRDN_STDG_NM , C.CRDN_ROAD_NM , C.CRDN_PLC + , C.FFNLG_CRDN_AMT , C.FFNLG_AMT , C.ADVNTCE_AMT , C.CRDN_STTS_CD @@ -372,10 +369,20 @@ , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM , CA.CRDN_SE_CD , (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM + , CA.DTL_CRDN_PLC , CA.CRDN_SPAREA_CD , (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM + , CA.CRDN_BGNG_TM + , CA.CRDN_END_TM + , CA.CRDN_SN + , CA.USE_FUEL_CD + , (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM + , CA.FFNLG_CARMDL_CD + , (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM , CA.PARKNG_PSBLTY_RSLT_CD , (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM + , CA.VLTN_NMTM + , CA.OVTIME_YN , VI.VLTN_ID , VI.VLTN_CD , VI.VLTN_ARTCL @@ -404,16 +411,25 @@ INNER JOIN TB_VLTN_INFO VI ON (C.VLTN_ID = VI.VLTN_ID AND C.SGG_CD = VI.SGG_CD AND C.TASK_SE_CD = VI.TASK_SE_CD) LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) - - - /* 사전통지 발송 대상 목록 조회(sndngMapper.selectAdvntceSndngTrgtList) */ + + SELECT C.CRDN_ID + - /* 사전통지 발송 대상 객체 가져오기(sndngMapper.selectAdvntceSndngTrgts) */ SELECT COUNT(*) OVER() AS TNOCS , SUM(C.FFNLG_AMT) OVER() AS GRAMT , C.CRDN_ID - - - AND C.CRDN_ID IN ( - #{crdnId} - ) - - - AND C.CRDN_ID = #{crdnId} - - - - AND C.DEL_YN = #{crdnDelYn} - - - AND C.DEL_YN = 'N' - - - diff --git a/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn06010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn06010-main.jsp index 1e33a0a0..548f8405 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn06010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn06010-main.jsp @@ -4,7 +4,7 @@
- +
@@ -129,7 +129,7 @@
- +
@@ -340,7 +340,7 @@ $(document).ready(function(){ //업무별 그리드 $("#DataTables_Table_0--${pageName}").find("th").resizable( "destroy" ); - + var colsContent = document.getElementById("crdnCols--${pageName}").content; var cols = $(colsContent).find("."+clsForTask+",.cmn"); var colsStr = ""; @@ -348,7 +348,7 @@ $(document).ready(function(){ colsStr += this.outerHTML; }); $("#crdnThead--${pageName}").html(colsStr); - + $("#DataTables_Table_0--${pageName}").find("th").resizable({handles : "e"}); } @@ -468,7 +468,7 @@ $(document).ready(function(){ $('#btnReset--${pageName}').on('click', () => $P.fnReset()); $('#btnSearch--${pageName}').on('click', () => $P.searchCrdnList()); $("#table-responsive--${pageName}").scroll(function(){ $P.scrollEnd(this); }); - + /************************************************************************** * 초기화 **************************************************************************/ @@ -480,7 +480,7 @@ $(document).ready(function(){ $P.fnResetAndChangeBiz(defaultBizValue); fn_securityModeToggle($("#securityMode--top").is(":checked")); //보안모드 - + $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { $(this).prop("disabled", "true"); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp index af9f21d9..1ac1a915 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp @@ -615,12 +615,12 @@ // 기본 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - // 보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - // 이벤트 설정 setEvent${pageName}(); + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); + // 업무 구분 설정 let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp index 9a0b0ad9..0b2cd8ef 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp @@ -644,12 +644,12 @@ // 기본 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - // 보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - // 이벤트 설정 setEvent${pageName}(); + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); + // 업무 구분 설정 let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp index 42d4d088..2703e385 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp @@ -483,12 +483,12 @@ // 기본 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - // 보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - // 이벤트 설정 setEvent${pageName}(); + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); + // 업무 구분 설정 let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp index 5a64149d..a0143a2e 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp @@ -21,7 +21,7 @@ 검색
@@ -174,43 +174,43 @@ - NO. - - - - 업무구분 - 계고일자 - 계고사유 - 민원신청번호 - 민원접수번호 - 민원접수일자 - 민원처리담당자 - 민원처리결과 - 단속일시 - 차량번호 - 위반항목 - 법정동 - 단속장소 - 단속금액 - 처리상태 - 납부자명 - 납부자생일 - 우편번호 - 등록일시 - 등록사용자 - 수정일시 - 수정사용자 - + @@ -266,11 +282,11 @@ // FormFields var ${pageName}Fields = new FormFields("#frmSearch--${pageName}"); // 공통 코드 - var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드 - var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드 - var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드 - var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드 - var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드 + var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드 + var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드 + var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드 + var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드 + var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드 /************************************************************************** * DatasetControl @@ -282,7 +298,7 @@ , keymapper : info => info ? info.CRDN_ID : "" , dataGetter : obj => obj.wrngSndngTrgtList , appendData : true - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 + , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { CVLCPT_RCPT_YMD : dateFormat , LEVY_EXCL_YMD : dateFormat @@ -321,20 +337,6 @@ $("#tbody--${pageName}").setCurrentRow(key); }; - // 선택(체크) 변경 이벤트 - ${pageName}Control.onSelectionChange = selected => { - let ${infoPrefix}List = ${pageName}Control.dataset; - let keys = selected.map(e => ${infoPrefix}List.getKey(e)); - - $("#tbody--${pageName} input[type='checkbox']").each(function() { - let checkbox = $(this); - - checkbox.prop("checked", keys.includes(checkbox.val())); - }); - - $("#btnWrngSndngTrg--${pageName}").prop("disabled", keys.length < 1); - }; - // 개별총정보 dialog ${pageName}Control.getInfo = (crdnId) => { if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") { @@ -367,17 +369,32 @@ renderList${pageName} = () => { let ${infoPrefix}List = ${pageName}Control.dataset; let empty = ${infoPrefix}List.empty; + let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val(); + + if (typeof clsForTask == "undefined" || clsForTask == null || clsForTask == "") { + clsForTask = $("#layout-navbar input[name='taskSeCd']:checked").val().toLowerCase(); + } else { + clsForTask = clsForTask.toLowerCase(); + } + + // 업무별 그리드 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 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("CRDN_ID") + "');") - .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');") - ); + let trs = empty ? + [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] + : ${infoPrefix}List.inStrings(foundTr.outerHTML + , (str, dataItem) => str + .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CRDN_ID") + "');") + .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');") + ); - $("#tbody--${pageName}").html(trs.join()); + $("#tbody--${pageName}").html(trs.join()); $("th input[type='checkbox']").prop("checked", false); //보안모드 @@ -386,12 +403,7 @@ // 계고장 발송 등록 dialog -> callback 추가 getInfoWrngSndngTrg${pageName} = (params) => { - // 선택된 자료의 단속ID 추가 - let selected = ${pageName}Control.dataset.getKeys("selected"); - - if (selected.length < 1) return; - - params["crdnIDs"] = selected.join(","); + if (!params) return; ajax.get({ url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do") @@ -410,6 +422,8 @@ // 계고 수정 dialog -> callback 추가 getInfoLevyExcl${pageName} = (params) => { + if (!params) return; + ajax.get({ url : wctx.url("/" + params.taskSeCd + "/excl/excl01/020/info.do?openerPageName=${pageName}") , data : params || {} @@ -507,10 +521,10 @@ return; } - // 항목 초기화 + // 위반 항목 $("#schVltnId--${pageName}").empty(); - $("#schVltnId--${pageName}").append(""); + $("#schVltnId--${pageName}").append(""); $(vltnIdCode).each(function(index, item) { $("#schVltnId--${pageName}").append(""); }); @@ -518,8 +532,27 @@ // 달력 초기화 initDatepicker("frmSearch--${pageName}"); - $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-90).date); + $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); $("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date()); + + // 업무별 조회조건 + let clsForTask = taskSeCd.toLowerCase(); + + renderForTask("frmSearch--${pageName}", clsForTask); + + // 업무별 그리드 th + $("#DataTables_Table_0--${pageName}").find("th").resizable( "destroy" ); + + let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; + let cols = $(colContent).find("." + clsForTask + ",.cmn"); + let colsOuterHTML = ""; + + cols.each(function() { + colsOuterHTML += this.outerHTML; + }); + + $("#theadTr--${pageName}").html(colsOuterHTML); + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); } // URL 설정 @@ -557,11 +590,7 @@ fnSearchList${pageName} = () => { // 검색조건 ${pageName}Control.query = ${pageName}Fields.get(); - ${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 - ${pageName}Control.query.delYn = "N"; // 삭제 여부 - ${pageName}Control.query.crdnDelYn = "N"; // 단속 대장 삭제 여부 - ${pageName}Control.query.crdnSttsCd = "83"; // 계고 ${pageName}Control.load(); } @@ -571,19 +600,17 @@ } - // 계고장 발송 등록 + // 계고장 발송 대상 등록 버튼 이벤트 fnWrngSndngTrg${pageName} = () => { - let params = { - callPurpose : "create" - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , sndngSeCd : "01" // 발송 구분 코드 - 01 계고장 - }; + let params = ${pageName}Fields.get(); + + params.callPurpose = "create"; + params.sndngSeCd = "01"; // 발송 구분 코드 - 01 계고장 getInfoWrngSndngTrg${pageName}(params); } - // 계고 수정 + // 계고 수정 버튼 이벤트 fnLevyExcl${pageName} = () => { let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID"); @@ -609,12 +636,12 @@ // 기본 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - // 보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - // 이벤트 설정 setEvent${pageName}(); + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); + // 업무 구분 설정 let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01030-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01030-main.jsp index bcbebbb3..71a02dac 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01030-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01030-main.jsp @@ -440,12 +440,12 @@ // 기본 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - // 보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - // 이벤트 설정 setEvent${pageName}(); + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); + // 업무 구분 설정 let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp index e5d870cf..68d158e8 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp @@ -147,7 +147,6 @@ ${pageName}Control.select(true); // 전체 선택 되도록.. if (obj.length > 0) { - } ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 @@ -201,8 +200,27 @@ /************************************************************************** * 초기 셋팅 **************************************************************************/ + // 이벤트 + setEvent${pageName} = () => { + // 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); + } + }); + }); + + // DataTables width 변경 조정 + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); + } + // 화면 초기값 셋팅 - initForm${pageName} = () => { + setForm${pageName} = () => { // 달력 초기화 initDatepicker("frmEdit--${pageName}"); $("#sndngYmd--${pageName}").datepicker("setDate", new Date()); @@ -223,25 +241,6 @@ ${pageName}Control.urls.getInfo = wctx.url("/" + ${pageName}Control.dataset.getValue("TASK_SE_CD") + "/sprt/sprt02/010/main.do"); // 개별총정보 } - // 이벤트 - setEvent${pageName} = () => { - // 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); - } - }); - }); - - // DataTables width 변경 조정 - $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - } - /************************************************************************** * 버튼 clickEvent **************************************************************************/ @@ -261,27 +260,28 @@ params.sndngDtlIDs = selected.join(","); // 발송 상세 IDs params.delYn = "N"; // 삭제 여부 - } /************************************************************************** * script 진입 **************************************************************************/ $(document).ready(function() { + // 기본 데이터 + $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 + $("#taskSeCd--${pageName}").val("${taskSeCd}"); // 업무 구분 코드 + $("#sndngSeCd--${pageName}").val("${sndngSeCd}"); // 발송 구분 코드 + + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); + // 이벤트 설정 setEvent${pageName}(); // 화면 초기 설정 - initForm${pageName}(); - - // 보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); + setForm${pageName}(); // Dataset 셋팅 - 화면이 열리면서 조회하는 경우 addData 하여 자료를 추가 ${pageName}Control.addData(${wrngSndngDtlInfo}); - - $("#sggCd--${pageName}").val(${pageName}Control.dataset.getValue("SGG_CD")); // 시군구 코드 - $("#taskSeCd--${pageName}").val(${pageName}Control.dataset.getValue("TASK_SE_CD")); // 업무 구분 코드 }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01050-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01050-main.jsp index 3b9bd2f1..e01a6344 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01050-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01050-main.jsp @@ -20,8 +20,8 @@ - @@ -161,42 +161,43 @@ - NO. - - - - 민원신청번호 - 민원접수번호 - 민원접수일자 - 민원처리담당자 - 민원처리결과 - 단속일시 - 차량번호 - 위반항목 - 법정동 - 단속장소 - 과태료금액 - 사전통지금액 - 처리상태 - 주차가능여부 - 납부자명 - 납부자생일 - 우편번호 - 등록일시 - 등록사용자 - 수정일시 - 수정사용자 - + @@ -248,6 +264,8 @@ **************************************************************************/ // URL var ${pageName}PrefixUrl = "/sndb/sndb01"; + // FormFields + var ${pageName}Fields = new FormFields("#frmSearch--${pageName}"); // 공통 코드 var FIM004 = new CommonCodes(${FIM004}, true); var FIM005 = new CommonCodes(${FIM005}, true); @@ -265,11 +283,7 @@ , keymapper : info => info ? info.CRDN_ID : "" , dataGetter : obj => obj.advntceSndngTrgtList , appendData : true - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 - , urls : { - load : wctx.url(${pageName}PrefixUrl + "/050/list.do") // 검색 - , getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보 - } + , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { CVLCPT_RCPT_YMD : dateFormat , CRDN_YMD_TM : datetimeFormat @@ -308,23 +322,9 @@ $("#tbody--${pageName}").setCurrentRow(key); }; - // 선택(체크) 변경 이벤트 - ${pageName}Control.onSelectionChange = selected => { - let ${infoPrefix}List = ${pageName}Control.dataset; - let keys = selected.map(e => ${infoPrefix}List.getKey(e)); - - $("#tbody--${pageName} input[type='checkbox']").each(function() { - let checkbox = $(this); - - checkbox.prop("checked", keys.includes(checkbox.val())); - }); - - $("#btnAdvntceSndngTrg--${pageName}").prop("disabled", keys.length < 1); - }; - // 개별총정보 dialog ${pageName}Control.getInfo = (crdnId) => { - if (crdnId == undefined || crdnId == null || crdnId == "") { + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") { return; } @@ -335,15 +335,13 @@ ajax.get({ url : ${pageName}Control.urls.getInfo - , data : params || {} + , data : params , success : resp => { dialog.open({ id : "totalInfoMainDialog" , title : "개별총정보" , content : resp , size : "xxl" - , init : () => { } - , onClose : () => { } }); } }); @@ -356,76 +354,41 @@ renderList${pageName} = () => { let ${infoPrefix}List = ${pageName}Control.dataset; let empty = ${infoPrefix}List.empty; + let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val(); - 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("CRDN_ID") + "');") - .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');") - ); - - $("#tbody--${pageName}").html(trs.join()); - $("th input[type='checkbox']").prop("checked", false); - - //보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - } - - // 업무구분 변경 - fnResetAndChangeBiz${pageName} = (taskSeCd) => { - initForm${pageName}(); - - ${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/050/list.do"); // 조회 - ${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보 - - // 업무에 따른 위반 내용 - let vltnCode = []; - if (taskSeCd == "PVS") { // 주정차 위반 - vltnCode = FIM004.list(); - } else if (taskSeCd == "BPV") { // 전용차로 위반 - vltnCode = FIM005.list(); - } else if (taskSeCd == "DPV") { // 장애인 전용 - vltnCode = FIM006.list(); - } else if (taskSeCd == "ECA") { // 전기차 주차 위반 - vltnCode = FIM061.list(); - } else if (taskSeCd == "TPV") { // 밤샘 주차 위반 - vltnCode = FIM064.list(); + if (typeof clsForTask == "undefined" || clsForTask == null || clsForTask == "") { + clsForTask = $("#layout-navbar input[name='taskSeCd']:checked").val().toLowerCase(); } else { - return; + clsForTask = clsForTask.toLowerCase(); } - // 항목 초기화 - $("#schVltnCd--${pageName}").empty(); - - $("#schVltnCd--${pageName}").append(""); - $(vltnCode).each(function(index, item) { - $("#schVltnCd--${pageName}").append(""); - }) - } + // 업무별 그리드 td + let foundContent = document.getElementById("${infoPrefix}Row--${pageName}").content; + let foundTr = $(foundContent).find("tr")[0].cloneNode(false); + let foundTds = $(foundContent).find("." + clsForTask + ",.cmn"); - // 검색 조건 파라미터 가져오기 - getParams${pageName} = () => { - let formFields = new FimsFormFields("#frmSearch--${pageName}"); - let formData = formFields.get(); + foundTds.each(function() { + foundTr.appendChild(this.cloneNode(true)); + }); - formData.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 + let trs = empty ? + [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] + : ${infoPrefix}List.inStrings(foundTr.outerHTML + , (str, dataItem) => str + .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CRDN_ID") + "');") + .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');") + ); - // 나중에 삭제 - formData.sggCd = "41480"; // 시군구 코드 임시 + $("#tbody--${pageName}").html(trs.join()); + $("th input[type='checkbox']").prop("checked", false); - return formData; + //보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); } // 사전통지 발송 등록 dialog -> callback 추가 getInfoAdvntceSndngTrg${pageName} = (params) => { - // 선택된 자료의 단속ID 추가 - let selected = ${pageName}Control.dataset.getKeys("selected"); - - if (selected.length < 1) return; - - params["crdnIDs"] = selected.join(","); + if (!params) return; ajax.get({ url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/060/info.do") @@ -436,7 +399,6 @@ , title : ${pageName}Control.prefixName + " 정보" , content : resp , size : "xl" - , init : () => { } , onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback }); } @@ -446,14 +408,12 @@ /************************************************************************** * 초기 셋팅 **************************************************************************/ - // 화면 초기값 셋팅 + // 초기화 initForm${pageName} = () => { - // 달력 초기화 - initDatepicker("frmSearch--${pageName}"); - - $("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-90).date); - $("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date()); + // 화면 초기화 + $("#frmSearch--${pageName}")[0].reset(); + // dataset 초기화 ${pageName}Control.dataset.clear(); } @@ -501,43 +461,117 @@ }); } + // 화면 초기값 셋팅 + setForm${pageName} = (taskSeCd) => { + // 업무 구분 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); + + // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. + $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { + $(this).prop("disabled", "true"); + }); + + // 업무에 따른 위반 내용 + let vltnCode = []; + if (taskSeCd == "PVS") { // 주정차 위반 + vltnCode = FIM004.list(); + } else if (taskSeCd == "BPV") { // 전용차로 위반 + vltnCode = FIM005.list(); + } else if (taskSeCd == "DPV") { // 장애인 전용 + vltnCode = FIM006.list(); + } else if (taskSeCd == "ECA") { // 전기차 주차 위반 + vltnCode = FIM061.list(); + } else if (taskSeCd == "TPV") { // 밤샘 주차 위반 + vltnCode = FIM064.list(); + } else { + return; + } + + // 위반 항목 + $("#schVltnCd--${pageName}").empty(); + + $("#schVltnCd--${pageName}").append(""); + $(vltnCode).each(function(index, item) { + $("#schVltnCd--${pageName}").append(""); + }) + + // 달력 초기화 + initDatepicker("frmSearch--${pageName}"); + + $("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); + $("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date()); + + // 업무별 조회조건 + let clsForTask = taskSeCd.toLowerCase(); + + renderForTask("frmSearch--${pageName}", clsForTask); + + // 업무별 그리드 th + $("#DataTables_Table_0--${pageName}").find("th").resizable( "destroy" ); + + let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; + let cols = $(colContent).find("." + clsForTask + ",.cmn"); + let colsOuterHTML = ""; + + cols.each(function() { + colsOuterHTML += this.outerHTML; + }); + + $("#theadTr--${pageName}").html(colsOuterHTML); + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); + } + + // URL 설정 + setURL${pageName} = (taskSeCd) => { + ${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/050/list.do"); // 조회 + ${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보 + } + /************************************************************************** * 버튼 clickEvent **************************************************************************/ - // 초기화 - fnReset${pageName} = () => { - let taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); + // 업무 구분 변경 + fnResetAndChangeBiz${pageName} = (taskSeCd) => { + // 초기화 + initForm${pageName}(); + + // 업무 구분 코드 + if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { + taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); + } - fnResetAndChangeBiz${pageName}(taskSeCd); + // 화면 초기값 설정 + setForm${pageName}(taskSeCd); + + // URL 설정 + setURL${pageName}(taskSeCd); + } + + // 초기화 버튼 이벤트 + fnReset${pageName} = () => { + fnResetAndChangeBiz${pageName}(); } - // 검색 + // 검색 버튼 이벤트 fnSearchList${pageName} = () => { // 검색조건 - ${pageName}Control.query = getParams${pageName}(); - ${pageName}Control.query.delYn = "N"; // 삭제 여부 - ${pageName}Control.query.crdnDelYn = "N"; // 단속 대장 삭제 여부 - // if () { } 주정차, 전용차로 위반 - // else { } 기타 - ${pageName}Control.query.crdnSttsCd = "21"; // 21 납부자 등록 + ${pageName}Control.query = ${pageName}Fields.get(); + ${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 ${pageName}Control.load(); } - // 엑셀 + // 엑셀 버튼 이벤트 fnExcel${pageName} = () => { } - // 사전통지 발송 대상 등록 + // 사전통지 발송 대상 등록 버튼 이벤트 fnAdvntceSndngTrg${pageName} = () => { - let params = { - callPurpose : "create" - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , sndngSeCd : "01" // 발송 구분 코드 - 01 사전통지서 - , vltnCd : $("#schVltnCd--${pageName}").val() // 위반 코드 - }; + let params = ${pageName}Fields.get(); + + params.callPurpose = "create"; + params.sndngSeCd = "02"; // 발송 구분 코드 - 02 사전통지서 getInfoAdvntceSndngTrg${pageName}(params); } @@ -546,16 +580,20 @@ * script 진입 **************************************************************************/ $(document).ready(function() { + // 기본 데이터 설정 + $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 + // 이벤트 설정 setEvent${pageName}(); // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); - // 업무구분 및 화면 초기 설정 + // 업무 구분 설정 let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); + // 업무 구분 및 화면 초기 설정 fnResetAndChangeBiz${pageName}(defaultBizValue); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp index 999ef031..3aef2e98 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp @@ -123,8 +123,8 @@ {RTPYR_NM} {RTPYR_BRDT} {ZIP} - {ADDR} - {DTL_ADDR} + {ADDR} + {DTL_ADDR} {REG_DT} {RGTR_NM} {MDFCN_DT} diff --git a/src/main/webapp/resources/js/fims/framework/cmm/taskUtil.js b/src/main/webapp/resources/js/fims/framework/cmm/taskUtil.js index 90791924..0e74e143 100644 --- a/src/main/webapp/resources/js/fims/framework/cmm/taskUtil.js +++ b/src/main/webapp/resources/js/fims/framework/cmm/taskUtil.js @@ -5,13 +5,13 @@ function renderForTask(areaId, taskClass){ $(this).find("template").each(function(){ tempHtml += this.cloneNode(true).outerHTML; }); - + var taskTemplate = $(this).find("template."+taskClass); if(taskTemplate.length < 1){ this.innerHTML = tempHtml; return; } - + var inHtml = $(taskTemplate[0].content).find("slot")[0].innerHTML; this.innerHTML = tempHtml + inHtml; });