diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp index 9f9268da..de1df458 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp @@ -103,7 +103,7 @@ - + 검색 @@ -340,7 +340,7 @@ if (!params) { params = {}; - params["GdccIDs"] = selected.join(","); // params[$P.control.prefixed("IDs")] = selected.join(","); + params["GdccIDs"] = selected.join(","); // params[$P.control.prefixed("IDs")] = selected.join(","); } ajax.post({ @@ -404,7 +404,8 @@ // 사용자 검색 $P.getFindUser = () => { let params = { - callbackFuncName : "$P.callbackFindUser" + openerPageName : "${pageName}" + , callbackFuncName : "pageObject['${pageName}']['callbackFindUser']" } ajax.get({ diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp index d725f89a..fd6a73ee 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp @@ -13,14 +13,14 @@ - + 초기화 - + 검색 - + 엑셀 @@ -124,7 +124,7 @@ - + 검색 @@ -145,10 +145,10 @@ - + 발송 취소 - + 발송 삭제 @@ -160,55 +160,55 @@ + aria-controls="tabEpostRcpt0" aria-selected="true" onClick="pageObject['${pageName}'].fnTabEpostRcpt0();"> 전체 + aria-controls="tabEpostRcpt1" aria-selected="false" onClick="pageObject['${pageName}'].fnTabEpostRcpt1();"> 발송대기 + aria-controls="tabEpostRcpt2" aria-selected="false" onClick="pageObject['${pageName}'].fnTabEpostRcpt2();"> 발송취소 + aria-controls="tabEpostRcpt3" aria-selected="false" onClick="pageObject['${pageName}'].fnTabEpostRcpt3();"> 전송 + aria-controls="tabEpostRcpt4" aria-selected="false" onClick="pageObject['${pageName}'].fnTabEpostRcpt4();"> 접수 + aria-controls="tabEpostRcpt5" aria-selected="false" onClick="pageObject['${pageName}'].fnTabEpostRcpt5();"> 제작불가 + aria-controls="tabEpostRcpt6" aria-selected="false" onClick="pageObject['${pageName}'].fnTabEpostRcpt6();"> 제작 + aria-controls="tabEpostRcpt7" aria-selected="false" onClick="pageObject['${pageName}'].fnTabEpostRcpt7();"> 배달중 + aria-controls="tabEpostRcpt8" aria-selected="false" onClick="pageObject['${pageName}'].fnTabEpostRcpt8();"> 배달완료 @@ -236,7 +236,7 @@ NO. - + 발송일자 발송내역 취급구분 @@ -254,7 +254,7 @@ {ROW_NUM} - + {SEND_DATE} {JOB_CD} {DIV_KB_NM} @@ -282,8 +282,6 @@ - - @@ -292,546 +290,597 @@ /************************************************************************** * Global Variable **************************************************************************/ - // URL - var ${pageName}PrefixUrl = "/epst/epst02"; - // FormFields - var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); - - /************************************************************************** - * DatasetControl - **************************************************************************/ - var ${pageName}Control = new DatasetControl({ - prefix : "epostRcptReg" - , prefixName : "우편 발송" - , infoSize : "xxl" - , keymapper : info => info ? info.CON_KEY : "" - , dataGetter : obj => obj.epostRcptRegList - , appendData : true - , untilPageNum : 0 // 현재 페이지 번호 - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 - , formats : { - SEND_DATE : dateFormat - , RCEPT_YMD : dateFormat - , RECEV_CNT : numberFormat - , 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 = "/epst/epst02"; + // FormFields + $P.formFields = new FimsFormFields("#frmSearch--${pageName}"); + + /************************************************************************** + * DatasetControl + **************************************************************************/ + $P.control = new DatasetControl({ + prefix : "epostRcptReg" + , prefixName : "우편 발송" + , infoSize : "xxl" + , keymapper : info => info ? info.CON_KEY : "" + , dataGetter : obj => obj.epostRcptRegList + , appendData : true + , formats : { + SEND_DATE : dateFormat + , RCEPT_YMD : dateFormat + , RECEV_CNT : 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})" + }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 true - }; - - // 현재 선택 자료 변경 이벤트 - ${pageName}Control.onCurrentChange = item => { - if (!item) return; + $P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + }; - let key = item.data.CON_KEY; + // 현재 선택 자료 변경 이벤트 + $P.control.onCurrentChange = item => { + if (!item) return; - $("#tbody--${pageName}").setCurrentRow(key); - }; + let key = item.data.CON_KEY; - // 선택(체크) 변경 이벤트 - ${pageName}Control.onSelectionChange = selected => { - let ${infoPrefix}List = ${pageName}Control.dataset; - let keys = selected.map(e => ${infoPrefix}List.getKey(e)); + $("#tbody--${pageName}").setCurrentRow(key); + }; - $("#tbody--${pageName} input[type='checkbox']").each(function() { - let checkbox = $(this); + // 선택(체크) 변경 이벤트 + $P.control.onSelectionChange = selected => { + let ${infoPrefix}List = $P.control.dataset; + let keys = selected.map(e => ${infoPrefix}List.getKey(e)); - checkbox.prop("checked", keys.includes(checkbox.val())); - }); + $("#tbody--${pageName} input[type='checkbox']").each(function() { + let checkbox = $(this); - $("#btnRemove--${pageName}").prop("disabled", keys.length < 1); - }; + checkbox.prop("checked", keys.includes(checkbox.val())); + }); - // 상세 정보 dialog - ${pageName}Control.getInfo = (callPurpose, conKey) => { - if (typeof conKey == "undefined" || conKey == null || conKey == "") return; + $("#btnRemove--${pageName}").prop("disabled", keys.length < 1); + }; - if (typeof callPurpose == "undefined" || callPurpose == null || callPurpose == "") { - callPurpose = "view"; - } + // 우편통합 상세 정보 dialog + $P.control.getInfo = (callPurpose, conKey) => { + if (typeof conKey == "undefined" || conKey == null || conKey == "") return; - let params = { - callPurpose : callPurpose - , sggCd : $("#sggCd--${pageName}").val() - , taskSeCd : $("input[name=taskSeCd]:checked").val() - , conKey : conKey - } + if (typeof callPurpose == "undefined" || callPurpose == null || callPurpose == "") { + callPurpose = "view"; + } - let dialogTitle = ""; + let params = { + callPurpose : callPurpose + , sggCd : $("#sggCd--${pageName}").val() + , taskSeCd : $("input[name=taskSeCd]:checked").val() + , conKey : conKey + } - if (params.callPurpose == "create") { - dialogTitle = ${pageName}Control.prefixName + " 등록"; - } else if (params.callPurpose == "update") { - dialogTitle = ${pageName}Control.prefixName + " 수정"; - } else { - dialogTitle = ${pageName}Control.prefixName + " 정보"; - } + let dialogTitle = ""; - ajax.get({ - url : ${pageName}Control.urls.getInfo - , data : params || {} - , success : resp => { - dialog.open({ - id : ${pageName}Control.prefixed("Dialog") - , title :dialogTitle - , content : resp - , size : ${pageName}Control.infoSize - , onClose : () => { } // callback - }); + if (params.callPurpose == "create") { + dialogTitle = $P.control.prefixName + " 등록"; + } else if (params.callPurpose == "update") { + dialogTitle = $P.control.prefixName + " 수정"; + } else { + dialogTitle = $P.control.prefixName + " 정보"; } - }); - } - // 저장 callback - ${pageName}Control.onSave = (resp) => { - let btnTitle = $("#btnUpdate--${pageName}").attr("title"); - let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); + ajax.get({ + url : $P.control.urls.getInfo + , data : params || {} + , success : resp => { + dialog.open({ + id : $P.control.prefixed("Dialog") + , title :dialogTitle + , content : resp + , size : $P.control.infoSize + , onClose : () => { $P.refreshList(); } + }); + } + }); + } + + // 저장 callback + $P.control.onSave = (resp) => { + let btnTitle = $("#btnUpdate--${pageName}").attr("title"); + let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); - dialog.alert(showMessage); + // 메시지 출력 + dialog.alert({ + content : showMessage + , onOK : () => { } + }); - if (resp.saved) { - refreshList${pageName}(); + if (resp.saved) { + $P.refreshList(); + } } - } - // 저장 - ${pageName}Control.save = (info) => { - if (!info) return; + // 저장 + $P.control.save = (info) => { + if (!info) return; - ajax.post({ - url : ${pageName}Control.urls.update - , data : info - , success : resp => ${pageName}Control.onSave(resp) - }); - } + ajax.post({ + url : $P.control.urls.update + , data : info + , success : resp => $P.control.onSave(resp) + }); + } - // 삭제 callback - ${pageName}Control.onRemove = (selected, resp) => { - let btnTitle = $("#btnRemove--${pageName}").attr("title"); - let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); + // 삭제 callback + $P.control.onRemove = (selected, resp) => { + let btnTitle = $("#btnRemove--${pageName}").attr("title"); + let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); - dialog.alert(showMessage); + // 메시지 출력 + dialog.alert({ + content : showMessage + , onOK : () => { } + }); - // 자료 재조회 - if (resp.saved) { - refreshList${pageName}(); // 자료 재조회 + if (resp.saved) { + $P.refreshList(); + } } - } - - // 삭제 - ${pageName}Control.remove = (params) => { - let selected = ${pageName}Control.dataset.getKeys("selected"); - if (selected.length < 1) return; + // 삭제 + $P.control.remove = (params) => { + let selected = $P.control.dataset.getKeys("selected"); - if (!params) { - params = {}; - params["conKeys"] = selected.join(","); // IDs - } + if (selected.length < 1) return; - ajax.post({ - url : ${pageName}Control.urls.remove - , data : params || {} - , success : resp => ${pageName}Control.onRemove(selected, resp) - }); - } + if (!params) { + params = {}; + params["conKeys"] = selected.join(","); // params[$P.control.prefixed("IDs")] = selected.join(","); + } - /************************************************************************** - * 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("CON_KEY") + "');") - .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('view', '" + dataItem.getValue("CON_KEY") + "');") - ); - - 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; + ajax.post({ + url : $P.control.urls.remove + , data : params || {} + , success : resp => $P.control.onRemove(selected, resp) + }); } - // checkbox 체크 해제 - $("th input[type='checkbox']").prop("checked", false); + /************************************************************************** + * DataTables 이벤트 + **************************************************************************/ + // DataTables에 click, dbclick 이벤트 + $P.renderList = (totalSize) => { + let ${infoPrefix}List = $P.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, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("CON_KEY") + "');") + .replace(/{ondblclick}/gi, "pageObject['${pageName}'].control.getInfo('view', '" + dataItem.getValue("CON_KEY") + "');") + ); + + 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; + } - // 보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - } + // checkbox 체크 해제 + $("th input[type='checkbox']").prop("checked", false); + + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); + } - // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 - scrollDataList${pageName} = () => { - ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false + // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 + $P.scrollDataList = () => { + $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false - ${pageName}Control.load(${pageName}Control.query.pageNum + 1); - } + $P.control.load($P.control.query.pageNum + 1); + } - /************************************************************************** - * 사용자 함수 - **************************************************************************/ - // callback 사용자 검색 - callbackFindUser${pageName} = (userId, userNm) => { - $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID - $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 - } - - // 사용자 검색 - getFindUser${pageName} = () => { - let params = { - callbackFuncName : "callbackFindUser${pageName}" + /************************************************************************** + * 사용자 함수 + **************************************************************************/ + // callback 사용자 검색 + $P.callbackFindUser = (userId, userNm) => { + $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID + $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 } - ajax.get({ - url : wctx.url("/user/user02/010/main.do") - , data : params || {} - , success : resp => { - dialog.open({ - id : "userDialog" - , title : "사용자 검색" - , content : resp - , size : "lg" - }); + // 사용자 검색 + $P.getFindUser = () => { + let params = { + openerPageName : "${pageName}" + , callbackFuncName : "pageObject['${pageName}']['callbackFindUser']" } - }); - } - - // 검색 자료 재조회 - refreshList${pageName} = () => { - ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; - ${pageName}Control.load(1); - } - - /************************************************************************** - * 버튼 clickEvent - **************************************************************************/ - // 업무 구분 변경 - fnResetAndChangeBiz${pageName} = (taskSeCd) => { - // 업무 구분 코드 - if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { - taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); + ajax.get({ + url : wctx.url("/user/user02/010/main.do") + , data : params || {} + , success : resp => { + dialog.open({ + id : "userDialog" + , title : "사용자 검색" + , content : resp + , size : "lg" + }); + } + }); } - // 초기 기본 설정 - initForm${pageName}(); + // 검색 자료 재조회 + $P.refreshList = () => { + $P.control.untilPageNum = $P.control.query.pageNum; + $P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum; - // 기본 데이터 설정 - setFormData${pageName}(taskSeCd); - } - - // 검색 버튼 이벤트 - fnSearchList${pageName} = (clickTab) => { - // 검색조건 - ${pageName}Control.query = ${pageName}Fields.get(); - - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 1 페이지당 조회되는 자료 건수 - ${pageName}Control.query.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드 - ${pageName}Control.query.conOrg = $("#conOrg--${pageName}").val(); // 외부기관구분코드 - ${pageName}Control.query.relorsectCd = $("#deptCd--${pageName}").val(); // 결제부서코드(부서코드) - ${pageName}Control.query.delYN = "N"; // 삭제 여부 - - // 탭 선택에 따른 우편 처리 상태(POST_PROC_STT) 설정. - if (clickTab == "tab1") { // 발송대기 - ${pageName}Control.query.postPrcsSttsCdFrom = "01"; - ${pageName}Control.query.postPrcsSttsCdTo = "01"; - } else if (clickTab == "tab2") { // 발송취소 - ${pageName}Control.query.postPrcsSttsCdFrom = "02"; - ${pageName}Control.query.postPrcsSttsCdTo = "02"; - } else if (clickTab == "tab3") { // 전송 - ${pageName}Control.query.postPrcsSttsCdFrom = "03"; - ${pageName}Control.query.postPrcsSttsCdTo = "03"; - } else if (clickTab == "tab4") { // 접수 - ${pageName}Control.query.postPrcsSttsCdFrom = "05"; - ${pageName}Control.query.postPrcsSttsCdTo = "05"; - } else if (clickTab == "tab5") { // 제작불가 - ${pageName}Control.query.postPrcsSttsCdFrom = "21"; - ${pageName}Control.query.postPrcsSttsCdTo = "79"; - } else if (clickTab == "tab6") { // 제작완료 - ${pageName}Control.query.postPrcsSttsCdFrom = "80"; - ${pageName}Control.query.postPrcsSttsCdTo = "80"; - } else if (clickTab == "tab7") { // 배달중 - ${pageName}Control.query.postPrcsSttsCdFrom = "90"; - ${pageName}Control.query.postPrcsSttsCdTo = "90"; - } else if (clickTab == "tab8") { // 배달완료 - ${pageName}Control.query.postPrcsSttsCdFrom = "95"; - ${pageName}Control.query.postPrcsSttsCdTo = "95"; - } else { // 전체 - // + $P.control.load(1); } - // 검색 - ${pageName}Control.load(1); - } + /************************************************************************** + * 버튼 clickEvent + **************************************************************************/ + // 업무 구분 변경 + $P.fnResetAndChangeBiz = (taskSeCd) => { + // 업무 구분 코드 + if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { + taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); + } - // 엑셀 버튼 이벤트 - fnExcel${pageName} = () => { - if (${pageName}Control.dataset.empty) { - dialog.alert({ - content : "검색된 자료가 없습니다." - , onOK : () => { } - }); + // 초기 기본 설정 + $P.initForm(); + // 기본 데이터 설정 + $P.initData(taskSeCd); + // 업무 구분별 설정 + $P.setTask(taskSeCd); - return; + // dataset 초기화 + $P.control.dataset.clear(); } - // 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.fnSearchList = (clickTab) => { + // 검색조건 + $P.control.query = $P.formFields.get(); + $P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수 + $P.control.query.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드 + $P.control.query.conOrg = $("#conOrg--${pageName}").val(); // 외부기관구분코드 + $P.control.query.relorsectCd = $("#deptCd--${pageName}").val(); // 결제부서코드(부서코드) + $P.control.query.delYN = "N"; // 삭제 여부 + + // 탭 선택에 따른 우편 처리 상태(POST_PROC_STT) 설정. + if (clickTab == "tab1") { // 발송대기 + $P.control.query.postPrcsSttsCdFrom = "01"; + $P.control.query.postPrcsSttsCdTo = "01"; + } else if (clickTab == "tab2") { // 발송취소 + $P.control.query.postPrcsSttsCdFrom = "02"; + $P.control.query.postPrcsSttsCdTo = "02"; + } else if (clickTab == "tab3") { // 전송 + $P.control.query.postPrcsSttsCdFrom = "03"; + $P.control.query.postPrcsSttsCdTo = "03"; + } else if (clickTab == "tab4") { // 접수 + $P.control.query.postPrcsSttsCdFrom = "05"; + $P.control.query.postPrcsSttsCdTo = "05"; + } else if (clickTab == "tab5") { // 제작불가 + $P.control.query.postPrcsSttsCdFrom = "21"; + $P.control.query.postPrcsSttsCdTo = "79"; + } else if (clickTab == "tab6") { // 제작완료 + $P.control.query.postPrcsSttsCdFrom = "80"; + $P.control.query.postPrcsSttsCdTo = "80"; + } else if (clickTab == "tab7") { // 배달중 + $P.control.query.postPrcsSttsCdFrom = "90"; + $P.control.query.postPrcsSttsCdTo = "90"; + } else if (clickTab == "tab8") { // 배달완료 + $P.control.query.postPrcsSttsCdFrom = "95"; + $P.control.query.postPrcsSttsCdTo = "95"; + } else { // 전체 + // + } - ${pageName}Control.query.cellDefs = cellDefs; + // 검색 + $P.control.load(1); + } + + // 엑셀 버튼 이벤트 + $P.fnExcel = () => { + if ($P.control.dataset.empty) { + dialog.alert({ + content : "검색된 자료가 없습니다." + , onOK : () => { } + }); - ${pageName}Control.download(); - } + return; + } - // 사용자 검색 버튼 이벤트 - fnFindUser${pageName} = () => { - getFindUser${pageName}(); - } + // 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; - // 발송 취소 버튼 이벤트 - fnUpdate${pageName} = () => { - let conKey = ${pageName}Control.dataset.getValue("CON_KEY"); // 외부연계식별키 - let sndngId = ${pageName}Control.dataset.getValue("SNDNG_ID"); // 발송 ID - let postPrcsSttsCd = ${pageName}Control.dataset.getValue("POST_PRCS_STTS_CD"); // 우편 처리 상태 코드 + $P.control.download(); + } - // 외부연계식별키 가 없다면.. return - if (typeof conKey == "undefined" || conKey == null || conKey == "") return; - // 우편 처리 상태 확인 - if (postPrcsSttsCd != "01") { - dialog.alert({ - content : "처리상태가 발송대기 자료만 취소 가능합니다." - , onOK : () => { } - }); - return; + // 사용자 조회 버튼 이벤트 + $P.fnFindUser = () => { + $P.getFindUser(); } - dialog.alert({ - content : "현재 " + ${pageName}Control.prefixName + " 정보를 취소하시겠습니까?" - , onOK : () => { - let params = { - callPurpose : "update" - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , conKey : conKey // 외부연계식별키 - , sndngId : sndngId // 발송 ID - }; - - ${pageName}Control.save(params); + // 발송 취소 버튼 이벤트 + $P.fnUpdate = () => { + // 외부연계식별키 + let conKey = $P.control.dataset.getValue("CON_KEY"); + // 외부연계식별키 가 없다면.. return + if (typeof conKey == "undefined" || conKey == null || conKey == "") return; + + // 발송 ID + let sndngId = $P.control.dataset.getValue("SNDNG_ID"); + // 발송 ID 가 없다면.. return + if (typeof sndngId == "undefined" || sndngId == null || sndngId == "") return; + + // 우편 처리 상태 코드 + let postPrcsSttsCd = $P.control.dataset.getValue("POST_PRCS_STTS_CD"); + // 우편 처리 상태 확인 + if (postPrcsSttsCd != "01") { + dialog.alert({ + content : "처리상태가 발송대기 자료만 취소 가능합니다." + , onOK : () => { } + }); + return; } - }); - } - - // 발송 삭제 버튼 이벤트 - fnRemove${pageName} = () => { - let conKey = ${pageName}Control.dataset.getValue("CON_KEY"); // 외부연계식별키 - let postPrcsSttsCd = ${pageName}Control.dataset.getValue("POST_PRCS_STTS_CD"); // 우편 처리 상태 코드 - - // 외부연계식별키 가 없다면.. return - if (typeof conKey == "undefined" || conKey == null || conKey == "") return; - // 우편 처리 상태 확인 - if (postPrcsSttsCd != "02" && postPrcsSttsCd != "03" && postPrcsSttsCd != "05" - && postPrcsSttsCd != "21" && postPrcsSttsCd != "22" && postPrcsSttsCd != "23" - && postPrcsSttsCd != "24" && postPrcsSttsCd != "61" && postPrcsSttsCd != "62") { + + let params = { + callPurpose : "update" + , sggCd : $P.control.dataset.getValue("SGG_CD") // 시군구 코드 + , conKey : conKey // 외부연계식별키 + , sndngId : sndngId // 발송 ID + }; + dialog.alert({ - content : "처리상태가 제작불가, 발송취소, 전송, 접수 자료만 삭제 가능합니다." - , onOK : () => { } + content : "선택한 " + $P.control.prefixName + " 정보를 취소하시겠습니까?" + , onOK : () => { + $P.control.save(params); + } }); - return; } - dialog.alert({ - content : "선택한 " + ${pageName}Control.prefixName + " 정보를 삭제하시겠습니까?" - , onOK : () => { - ${pageName}Control.remove(); + // 발송 삭제 버튼 이벤트 + $P.fnRemove = () => { + // 외부연계식별키 + let conKey = $P.control.dataset.getValue("CON_KEY"); + // 외부연계식별키 가 없다면.. return + if (typeof conKey == "undefined" || conKey == null || conKey == "") return; + + // 우편 처리 상태 코드 + let postPrcsSttsCd = $P.control.dataset.getValue("POST_PRCS_STTS_CD"); + // 우편 처리 상태 확인 + if (postPrcsSttsCd != "02" && postPrcsSttsCd != "03" && postPrcsSttsCd != "05" + && postPrcsSttsCd != "21" && postPrcsSttsCd != "22" && postPrcsSttsCd != "23" + && postPrcsSttsCd != "24" && postPrcsSttsCd != "61" && postPrcsSttsCd != "62") { + dialog.alert({ + content : "처리상태가 '발송취소', '전송', '접수', '제작불가' 자료만 삭제 가능합니다." + , onOK : () => { } + }); + return; } - }); - } - - // 탭0 - fnTabEpostRcpt0${pageName} = () => { - $("#tabEpostRcpt0").html($("#datatable--${pageName}")); - fnSearchList${pageName}("tab0"); - } + dialog.alert({ + content : "선택한 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?" + , onOK : () => { + $P.control.remove(); + } + }); + } - // 탭1 - fnTabEpostRcpt1${pageName} = () => { - $("#tabEpostRcpt1").html($("#datatable--${pageName}")); + // 탭0 + $P.fnTabEpostRcpt0 = () => { + $("#tabEpostRcpt0").html($("#datatable--${pageName}")); - fnSearchList${pageName}("tab1"); - } + $P.fnSearchList("tab0"); + } - // 탭2 - fnTabEpostRcpt2${pageName} = () => { - $("#tabEpostRcpt2").html($("#datatable--${pageName}")); + // 탭1 + $P.fnTabEpostRcpt1 = () => { + $("#tabEpostRcpt1").html($("#datatable--${pageName}")); - fnSearchList${pageName}("tab2"); - } + $P.fnSearchList("tab1"); + } - // 탭3 - fnTabEpostRcpt3${pageName} = () => { - $("#tabEpostRcpt3").html($("#datatable--${pageName}")); + // 탭2 + $P.fnTabEpostRcpt2 = () => { + $("#tabEpostRcpt2").html($("#datatable--${pageName}")); - fnSearchList${pageName}("tab3"); - } + $P.fnSearchList("tab2"); + } - // 탭4 - fnTabEpostRcpt4${pageName} = () => { - $("#tabEpostRcpt4").html($("#datatable--${pageName}")); + // 탭3 + $P.fnTabEpostRcpt3 = () => { + $("#tabEpostRcpt3").html($("#datatable--${pageName}")); - fnSearchList${pageName}("tab4"); - } + $P.fnSearchList("tab3"); + } - // 탭5 - fnTabEpostRcpt5${pageName} = () => { - $("#tabEpostRcpt5").html($("#datatable--${pageName}")); + // 탭4 + $P.fnTabEpostRcpt4 = () => { + $("#tabEpostRcpt4").html($("#datatable--${pageName}")); - fnSearchList${pageName}("tab5"); - } + $P.fnSearchList("tab4"); + } - // 탭6 - fnTabEpostRcpt6${pageName} = () => { - $("#tabEpostRcpt6").html($("#datatable--${pageName}")); + // 탭5 + $P.fnTabEpostRcpt5 = () => { + $("#tabEpostRcpt5").html($("#datatable--${pageName}")); - fnSearchList${pageName}("tab6"); - } + $P.fnSearchList("tab5"); + } - // 탭7 - fnTabEpostRcpt7${pageName} = () => { - $("#tabEpostRcpt7").html($("#datatable--${pageName}")); + // 탭6 + $P.fnTabEpostRcpt6 = () => { + $("#tabEpostRcpt6").html($("#datatable--${pageName}")); - fnSearchList${pageName}("tab7"); - } + $P.fnSearchList("tab6"); + } - // 탭8 - fnTabEpostRcpt8${pageName} = () => { - $("#tabEpostRcpt8").html($("#datatable--${pageName}")); + // 탭7 + $P.fnTabEpostRcpt7 = () => { + $("#tabEpostRcpt7").html($("#datatable--${pageName}")); - fnSearchList${pageName}("tab8"); - } + $P.fnSearchList("tab7"); + } - /************************************************************************** - * 초기 설정 - **************************************************************************/ - // 이벤트 - setEvent${pageName} = () => { - // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. - $("#term--${pageName}").keypress(function(e) { - if (e.keyCode == 13) { - fnSearchList${pageName}(); - } - }); + // 탭8 + $P.fnTabEpostRcpt8 = () => { + $("#tabEpostRcpt8").html($("#datatable--${pageName}")); - // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 - $("#frmSearch--${pageName}").find(".form-date").each(function() { - $(this).on("input", function() { - let value = this.value.replaceAll("-", ""); + $P.fnSearchList("tab8"); + } - 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.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) { + $P.fnSearchList(); + } }); - }); - - // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 - $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - - // DataTables 스크롤 이벤트 생성 - fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); - } - // 화면 초기 설정 - initForm${pageName} = () => { - // 화면 초기화 - $("#frmSearch--${pageName}")[0].reset(); + // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 + $("#frmSearch--${pageName}").find(".form-date").each(function() { + $(this).on("input", function() { + let value = this.value.replaceAll("-", ""); - // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. - $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { - $(this).prop("disabled", "true"); - }); + 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); + } + }); + }); - // 달력 초기화 - initDatepicker("frmSearch--${pageName}"); - $("#schSendDateFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); - $("#schSendDateTo--${pageName}").datepicker("setDate", new Date()); + //업무 버튼 이벤트 + $("#btnUpdate--${pageName}").on("click", () => $P.fnUpdate()); // 발송 취소 + $("#btnRemove--${pageName}").on("click", () => $P.fnRemove()); // 발송 삭제 - // 사용자 이름 - $("#schRgtrNm--${pageName}").prop("readonly", true); + // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - // dataset 초기화 - ${pageName}Control.dataset.clear(); - } + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList); + } - // 기본 데이터 설정 - setFormData${pageName} = (taskSeCd) => { - // ${pageName}Control 설정 - ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + // 초기 화면 설정 + $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"); + }); + + // 달력 초기화 + initDatepicker("frmSearch--${pageName}"); + $("#schSendDateFrom--${pageName}").datepicker("setDate", new Date()); + $("#schSendDateTo--${pageName}").datepicker("setDate", new Date()); + + // 동적 검색 + $("#byOutput--${pageName}").val("동적 검색"); + + // 사용자 이름 + $("#schRgtrNm--${pageName}").prop("readonly", true); + } - // 화면 데이터 설정 - $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - $("#deptCd--${pageName}").val("${deptCd}"); // 부서 코드 - $("#conOrg--${pageName}").val("${conOrg}"); // E그린 외부기관구분코드 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + // 기본 데이터 설정 + $P.initData = (taskSeCd) => { + // 화면 데이터 설정 + $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 + $("#deptCd--${pageName}").val("${deptCd}"); // 부서 코드 + $("#conOrg--${pageName}").val("${conOrg}"); // E그린 외부기관구분코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + + // 일자 + $("#schSendDateFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); + $("#schSendDateTo--${pageName}").datepicker("setDate", new Date()); + + // 첫번째 "전체" 탭에 datatable 설정 + $("#tabEpostRcpt0").html($("#datatable--${pageName}")); + } - // 첫번째 "전체" 탭에 datatable 설정 - $("#tabEpostRcpt0").html($("#datatable--${pageName}")); + // 업무 구분별 설정 + $P.setTask = (taskSeCd) => { + // URL 설정 + $P.setURL(taskSeCd); + } - // URL 설정 - setURL${pageName}(taskSeCd); - } + // 업무구분에 따른 URL 설정 + $P.setURL = (taskSeCd) => { + $P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/030/list.do"); // 조회 + $P.control.urls.update = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/030/updateSttsCd.do"); // 수정 (발송취소) + $P.control.urls.remove = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/030/remove.do"); // 삭제 + $P.control.urls.getInfo = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/040/info.do"); // 정보 + } - // URL 설정 - setURL${pageName} = (taskSeCd) => { - ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/030/list.do"); // 조회 - ${pageName}Control.urls.update = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/030/updateSttsCd.do"); // 수정 (발송취소) - ${pageName}Control.urls.remove = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/030/remove.do"); // 삭제 - ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/040/info.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/epst/epst02040-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02040-info.jsp index 6c895dec..e0291e03 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02040-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02040-info.jsp @@ -21,7 +21,7 @@ - + 엑셀 @@ -96,52 +96,64 @@ /************************************************************************** * Global Variable **************************************************************************/ - // URL - var ${pageName}PrefixUrl = "/epst/epst02"; - // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) - var ${pageName}CallPurpose = "${callPurpose}"; - // FormFields - var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); + pageObject["${pageName}"] = {}; /************************************************************************** - * DatasetControl - **************************************************************************/ - var ${pageName}Control = new DatasetControl({ - prefix : "epostRcptReg" - , prefixName : "우편 발송 정보" - , keymapper : info => info ? info.RGST_NMBR : "" - , dataGetter : obj => obj.epostRcptRegInfo - , appendData : true - , untilPageNum : 0 // 현재 페이지 번호 - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 - , formats : { - DELIV_YMD_TM : datetimeFormat - , REG_DT : datetimeFormat - , MDFCN_DT : datetimeFormat - } - }); - - /************************************************************************** - * DatasetControl 이벤트 + * script 진입 **************************************************************************/ + $(document).ready(function() { + // pageObject + var $P = pageObject["${pageName}"]; + + // URL + $P.PrefixUrl = "/epst/epst02"; + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + $P.callPurpose = "${callPurpose}"; + // FormFields + $P.formFields = new FimsFormFields("#frmEdit--${pageName}"); + + /************************************************************************** + * DatasetControl + **************************************************************************/ + $P.control = new DatasetControl({ + prefix : "epostRcptReg" + , prefixName : "우편 발송 정보" + , keymapper : info => info ? info.RGST_NMBR : "" + , dataGetter : obj => obj.epostRcptRegInfo + , appendData : true + , formats : { + DELIV_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 변경 이벤트 - ${pageName}Control.onDatasetChange = obj => { - renderList${pageName}(obj.${infoPrefix}Total); + $P.control.onDatasetChange = obj => { + $P.renderList(obj.${infoPrefix}Total); $("#paging--${pageName}").setPagingInfo({ - list : ${pageName}Control.dataset + list : $P.control.dataset , prefix : "paging--${pageName}" , start : obj.${infoPrefix}Start , totalSize : obj.${infoPrefix}Total , fetchSize : obj.${infoPrefix}Fetch - , func : "${pageName}Control.load({index})" + , func : "$P.control.load({index})" }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 true + $P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 }; // 현재 선택 자료 변경 이벤트 - ${pageName}Control.onCurrentChange = item => { + $P.control.onCurrentChange = item => { if (!item) return; let key = item.data.RGST_NMBR; @@ -152,142 +164,130 @@ $("#conKey--${pageName}").val(item.data.CON_KEY); }; - /************************************************************************** - * 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("RGST_NMBR") + "');") - ); - - 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; + /************************************************************************** + * DataTables 이벤트 + **************************************************************************/ + // DataTables에 click, dbclick 이벤트 + $P.renderList = (totalSize) => { + let ${infoPrefix}List = $P.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, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("RGST_NMBR") + "');") + ); + + 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) + **************************************************************************/ - ${pageName}Control.load(${pageName}Control.query.pageNum + 1); - } - /************************************************************************** - * 사용자 함수(function) - **************************************************************************/ + /************************************************************************** + * 버튼 clickEvent + **************************************************************************/ + // 엑셀 버튼 이벤트 + $P.fnExcel = () => { + if ($P.control.dataset.empty) { + dialog.alert({ + content : "검색된 자료가 없습니다." + , onOK : () => { } + }); + return; + } - /************************************************************************** - * 버튼 clickEvent - **************************************************************************/ - // 엑셀 버튼 이벤트 - fnExcel${pageName} = () => { - if (${pageName}Control.dataset.empty) { - dialog.alert({ - content : "검색된 자료가 없습니다." - , onOK : () => { } - }); + $P.control.query = $P.formFields.get(); + $P.control.query.conKey = $P.control.dataset.getValue("CON_KEY"); // conKey - return; + // DataTables(그리드) + let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th") + , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td")); + $P.control.query.cellDefs = cellDefs; + + $P.control.download(); } - // DataTables(그리드) - let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th") - , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td")); + /************************************************************************** + * 초기 셋팅 + **************************************************************************/ + // 이벤트 설정 + $P.setEvent = () => { + // 업무 버튼 이벤트 + $("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀 - ${pageName}Control.query = ${pageName}Fields.get(); - ${pageName}Control.query.conKey = ${pageName}Control.dataset.getValue("CON_KEY"); // conKey - ${pageName}Control.query.cellDefs = cellDefs; + // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - ${pageName}Control.download(); - } + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList); + } - /************************************************************************** - * 초기 셋팅 - **************************************************************************/ - // 이벤트 설정 - setEvent${pageName} = () => { - // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 - $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - - // DataTables 스크롤 이벤트 생성 - fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); - } - - // 초기 기본 설정 - initForm${pageName} = () => { - // 화면 초기화 - $("#frmEdit--${pageName}")[0].reset(); - - // 달력 초기화 - initDatepicker("frmEdit--${pageName}"); - } - - // URL 설정 - setURL${pageName} = () => { - let taskSeCd = $("#taskSeCd--${pageName}").val(); - - ${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/040/info.do"); // 엑셀(조회) - } - - // 기본 데이터 설정 - setFormData${pageName} = () => { - // 화면 데이터 설정 - $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - $("#taskSeCd--${pageName}").val("${taskSeCd}"); // 업무 구분 코드 - - // ${pageName}Control 설정 - ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 - - if (${pageName}CallPurpose == "view") { - // input 요소들을 disabled - $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); - } else if (${pageName}CallPurpose == "create") { - // - } else if (${pageName}CallPurpose == "update") { - // + // 초기 화면 설정 + $P.initForm = () => { + if ($P.callPurpose == "view") { + // input 요소들을 disabled + $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); + } } - } - /************************************************************************** - * script 진입 - **************************************************************************/ - $(document).ready(function() { - // 이벤트 설정 - setEvent${pageName}(); + // 기본 데이터 설정 + $P.initData = () => { + // 시군구 코드 + $("#sggCd--${pageName}").val("${sggCd}"); + // 업무 구분 코드 + $("#taskSeCd--${pageName}").val("${taskSeCd}"); + + // 업무구분에 따른 URL 변경 + $P.setURL("${taskSeCd}"); + } - // 초기 기본 설정 - initForm${pageName}(); + // 업무구분에 따른 URL 설정 + $P.setURL = (taskSeCd) => { + $P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/040/info.do"); // 엑셀 + } - // Dataset 설정 - ${pageName}Control.setData(${epostSndngSttsInfo}); + /************************************************************************** + * 최초 실행 함수 + **************************************************************************/ + // 1. 이벤트 설정 + $P.setEvent(); - // 기본 데이터 설정 - setFormData${pageName}(); + // 2. 초기 화면 설정 + $P.initForm(); + + // 3. 기본 데이터 설정 + $P.initData(); - // URL 설정 - setURL${pageName}(); + // 4. Dataset 설정 + $P.control.setData(${epostSndngSttsInfo}); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02050-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02050-main.jsp index 04206abc..87634bbf 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02050-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02050-main.jsp @@ -13,14 +13,14 @@ - + 초기화 - + 검색 - + 엑셀 @@ -108,7 +108,7 @@ - + 검색 @@ -193,11 +193,11 @@ -