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 757cdf6a..c28a7f9d 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 @@ -241,7 +241,7 @@ $P.dataTableDblClick = (dataIndex) => { if (!dataIndex) return; - // 민원상담 ID 가 없다면.. 입력 + // 안내문 ID 가 없다면.. 입력 let gdntcId = $P.ctrl.getValue("GDNTC_ID"); if (!gdntcId) return; @@ -289,8 +289,6 @@ // 초기화 $P.fnReset(taskSeCd); - // dataset 초기화 - $P.ctrl.dataset.clear(); // 업무 구분에 따른 URL 설정 $P.fnSetURL(taskSeCd); @@ -371,7 +369,6 @@ , callPurpose: "create" , sggCd: $P.$findn("sggCd").val() // 시군구 코드 , taskSeCd: $P.$findn("frmSearch").find("[name='taskSeCd']:checked").val() // 업무 구분 코드 - }; $P.ctrl.getInfo(params); @@ -429,10 +426,10 @@ // 이벤트 설정 $P.setEvent = () => { // 기본 버튼 이벤트 - $P.$findn("btnReset").on("click", () => { $P.fnResetAndChangeBiz() }); // 초기화 - $P.$findn("btnSearch").on("click", () => { $P.fnSearchList() }); // 검색 - $P.$findn("btnExcel").on("click", () => { $P.fnExcel() }); // 엑셀 - $P.$findn("btnFindUser").on("click", () => $P.fnGetFindUser()); // 사용자 검색 + $P.$findn("btnReset").on("click", () => $P.fnResetAndChangeBiz()); // 초기화 + $P.$findn("btnSearch").on("click", () => $P.fnSearchList()); // 검색 + $P.$findn("btnExcel").on("click", () => $P.fnExcel()); // 엑셀 + $P.$findn("btnFindUser").on("click", () => $P.fnGetFindUser()); // 사용자 검색 // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. $P.$findn("term").onEnterPress($P.fnSearchList); @@ -458,6 +455,7 @@ $P.fnReset = (taskSeCd) => { // 초기화 $P.findn("frmSearch").reset(); // 화면 초기화 + $P.ctrl.dataset.clear(); // dataset 초기화 AppSupport.initDatepicker($P.findn("frmSearch")); // 달력 초기화 AppSupport.initDetailSearchButton($P.findn("frmSearch")); // 상세검색 버튼 화살표 diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02020-info.jsp index bd9d958c..f79eab73 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02020-info.jsp @@ -121,6 +121,8 @@ // button 요소들을 disabled $P.$findn("btnSave").prop("disabled", true); // 저장 버튼 + } else if ($P.callPurpose == "update") { + $P.$findn("sndngSeCd").prop("disabled", true); // 발송 구분 코드 } } 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 ea299141..af0c3b0a 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 @@ -1,855 +1,625 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> -우편통합 우편발송 +우편통합 발송 -
- -
-
- -
- - - - - -
- - - -
- - - - - - - - - -
+
+ + +
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 e62a8658..9cf15c0e 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 @@ -1,295 +1,226 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> -우편통합 발송 내역 +우편통합 발송 상세 내역 -
- -
-
- -
- - -
- - - -
- - -
- -
    -
-
- - - - -
-
- - - -
- -
- -
-
- +
+ +
+
+ +
+ + + +
+ + + +
+ + +
+ + + +
+ + +
+ +
    +
+
+
+
+ + + +
+ +
+ +
+
+
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 4619bbba..53745b72 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 @@ -424,8 +424,6 @@ // 초기화 $P.fnReset(taskSeCd); - // dataset 초기화 - $P.ctrl.dataset.clear(); // 업무 구분에 따른 URL 설정 $P.fnSetURL(taskSeCd); @@ -575,10 +573,10 @@ // 이벤트 설정 $P.setEvent = () => { // 기본 버튼 이벤트 - $P.$findn("btnReset").on("click", () => { $P.fnResetAndChangeBiz() }); // 초기화 - $P.$findn("btnSearch").on("click", () => { $P.fnSearchList() }); // 검색 - $P.$findn("btnExcel").on("click", () => { $P.fnExcel() }); // 엑셀 - $P.$findn("btnFindUser").on("click", () => $P.fnGetFindUser()); // 사용자 검색 + $P.$findn("btnReset").on("click", () => $P.fnResetAndChangeBiz()); // 초기화 + $P.$findn("btnSearch").on("click", () => $P.fnSearchList()); // 검색 + $P.$findn("btnExcel").on("click", () => $P.fnExcel()); // 엑셀 + $P.$findn("btnFindUser").on("click", () => $P.fnGetFindUser()); // 사용자 검색 // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. $P.$findn("term").onEnterPress($P.fnSearchList); @@ -601,6 +599,7 @@ $P.fnReset = (taskSeCd) => { // 초기화 $P.findn("frmSearch").reset(); // 화면 초기화 + $P.ctrl.dataset.clear(); // dataset 초기화 AppSupport.initDatepicker($P.findn("frmSearch")); // 달력 초기화 AppSupport.initDetailSearchButton($P.findn("frmSearch")); // 상세검색 버튼 화살표 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 74e23325..6d19732a 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 @@ -547,8 +547,6 @@ // 초기화 $P.fnReset(taskSeCd); - // dataset 초기화 - $P.ctrl.dataset.clear(); // 업무 구분에 따른 URL 설정 $P.fnSetURL(taskSeCd); @@ -751,10 +749,10 @@ // 이벤트 $P.setEvent = () => { // 기본 버튼 이벤트 - $P.$findn("btnReset").on("click", () => $P.fnResetAndChangeBiz()); // 초기화 - $P.$findn("btnSearch").on("click", () => $P.fnSearchList()); // 검색 - $P.$findn("btnExcel").on("click", () => $P.fnExcel()); // 엑셀 - $P.$findn("btnFindUser").on("click", () => $P.fnGetFindUser()); // 사용자 검색 + $P.$findn("btnReset").on("click", () => $P.fnResetAndChangeBiz()); // 초기화 + $P.$findn("btnSearch").on("click", () => $P.fnSearchList()); // 검색 + $P.$findn("btnExcel").on("click", () => $P.fnExcel()); // 엑셀 + $P.$findn("btnFindUser").on("click", () => $P.fnGetFindUser()); // 사용자 검색 // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. $P.$findn("term").onEnterPress($P.fnSearchList); @@ -786,6 +784,7 @@ $P.fnReset = (taskSeCd) => { // 초기화 $P.findn("frmSearch").reset(); // 화면 초기화 + $P.ctrl.dataset.clear(); // dataset 초기화 AppSupport.initDatepicker($P.findn("frmSearch")); // 달력 초기화 AppSupport.initDetailSearchButton($P.findn("frmSearch")); // 상세검색 버튼 화살표 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 87247397..63d39faf 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 @@ -360,8 +360,6 @@ // 초기화 $P.fnReset(taskSeCd); - // dataset 초기화 - $P.ctrl.dataset.clear(); // 업무 구분에 따른 URL 설정 $P.fnSetURL(taskSeCd); @@ -472,10 +470,10 @@ // 이벤트 설정 $P.setEvent = () => { // 기본 버튼 이벤트 - $P.$findn("btnReset").on("click", () => { $P.fnResetAndChangeBiz() }); // 초기화 - $P.$findn("btnSearch").on("click", () => { $P.fnSearchList() }); // 검색 - $P.$findn("btnExcel").on("click", () => { $P.fnExcel() }); // 엑셀 - $P.$findn("btnFindUser").on("click", () => $P.fnGetFindUser()); // 사용자 검색 + $P.$findn("btnReset").on("click", () => $P.fnResetAndChangeBiz()); // 초기화 + $P.$findn("btnSearch").on("click", () => $P.fnSearchList()); // 검색 + $P.$findn("btnExcel").on("click", () => $P.fnExcel()); // 엑셀 + $P.$findn("btnFindUser").on("click", () => $P.fnGetFindUser()); // 사용자 검색 // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. $P.$findn("term").onEnterPress($P.fnSearchList); @@ -495,6 +493,7 @@ $P.fnReset = (taskSeCd) => { // 초기화 $P.findn("frmSearch").reset(); // 화면 초기화 + $P.ctrl.dataset.clear(); // dataset 초기화 AppSupport.initDatepicker($P.findn("frmSearch")); // 달력 초기화 AppSupport.initDetailSearchButton($P.findn("frmSearch")); // 상세검색 버튼 화살표 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04020-info.jsp index 79148ee4..0a44c6d7 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04020-info.jsp @@ -126,9 +126,7 @@ $P.fnReset = () => { // 초기화 $P.findn("frmEdit").reset(); // 화면 초기화 - - // 달력 초기화 - AppSupport.initDatepicker($P.findn("frmEdit")); + AppSupport.initDatepicker($P.findn("frmEdit")); // 달력 초기화 // 기본 데이터 설정 $P.$findn("dscsnYmd").datepicker("setDate", TODAY()); // 상담 일자 diff --git a/src/main/webapp/resources/js/fims/epst/epst02010.js b/src/main/webapp/resources/js/fims/epst/epst02010.js index 826e8372..3083626d 100644 --- a/src/main/webapp/resources/js/fims/epst/epst02010.js +++ b/src/main/webapp/resources/js/fims/epst/epst02010.js @@ -94,7 +94,7 @@ function newEpst02010Script(pageName, doctx="[data-doctx='epst02010']") { AppSupport.setDialogZindex(); } -// , onClose: () => { ctrl.reload({all : true}); } // 자료 재조회 + , onClose: () => { ctrl.reload({all : true}); } // 자료 재조회 }); } }); diff --git a/src/main/webapp/resources/js/fims/epst/epst02030.js b/src/main/webapp/resources/js/fims/epst/epst02030.js new file mode 100644 index 00000000..c805f679 --- /dev/null +++ b/src/main/webapp/resources/js/fims/epst/epst02030.js @@ -0,0 +1,158 @@ +function newEpst02030Script(pageName, doctx="[data-doctx='epst02030']") { + let ctrl = new DatasetControl({ + doctx: doctx + , prefix: "epostRcptReg" + , prefixName: "우편발송" + , dataGetter: obj => obj["List"] + , keys: ["CON_KEY"] + , appendData: true + , infoSize: "xxl" + , urls: { + load: "/list.do" + , getInfo: "/info.do" + , remove: "/remove.do" + } + , formats: { + SEND_DATE: dateFormat + , RCEPT_YMD: dateFormat + , RECEV_CNT: numberFormat + , REG_DT: datetimeFormat + , MDFCN_DT: datetimeFormat + } + }); + + // 검색 조건 + ctrl.query = { pageNum: 1, fetchSize: DEFAULT_FETCH_SIZE }; // 1 페이지당 자료 건수 index.jsp에서 확인 + + /************************************************************************** + * DatasetControl Events + **************************************************************************/ + // Dataset 변경 이벤트 + ctrl.onDatasetChange = (obj, option) => { + // 데이터 셋 + let dataList = ctrl.dataset; + let empty = dataList.empty; + + let replacer = (str, dataItem) => str + .replace(/{onclick}/gi, "pageObject['" + pageName + "'].dataTableClick('{data-index}');") + .replace(/{ondblclick}/gi, "pageObject['" + pageName + "'].dataTableDblClick('{data-index}');"); + + let trs = empty ? + [ctrl.find("[name='tmpltNotFound']").innerHTML] + : dataList.inStrings(ctrl.find("[name='tmpltRows']").innerHTML, replacer); + + let noMore = (dataList.length >= obj["Paging"]?.totalSize); // 전체 건수 + let initScroll = (ctrl.query.pageNum < 2); + + if (option != null && option.reloaded) { + initScroll = false; + } + + // dataTables(그리드)에 자료 표시 td + ctrl.find("[name='tableRspns']").changeContent(trs.join(), initScroll, noMore); + + // checkbox 체크 해제 + $(ctrl.find("[name='gridAllCheckbox']")).prop("checked", false); + + // dataTables(그리드)에 페이지 표시 pagingInfo + pageObject[pageName].pagingSupport.setPagingInfo(obj); + + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); + }; + + // 현재 선택 자료 변경 이벤트 + ctrl.onCurrentChange = (item) => { + Apply.fromDataset.currentRow(ctrl.dataset, item, ctrl.find("[name='tbodyList']")); + }; + + // 선택(체크) 변경 이벤트 + ctrl.onSelectionChange = (selectedArr) => { + // gridCheckbox + Apply.fromDataset.gridCheckbox(ctrl.dataset, ctrl.find("[name='tbodyList']"), 1, selectedArr); + // gridButton + Apply.fromDataset.gridButton(ctrl.dataset, ctrl.find("[name='btnRemove']"), selectedArr); // 삭제 버튼 + }; + + // 상세 정보 dialog + ctrl.getInfo = (params) => { + if (!params) return; + + ajax.get({ + url: ctrl.urls.getInfo + , data: params || {} + , success: (resp) => { + let dialogName = ctrl.prefixed("Dialog"); + let dialogId = dialogName + "-" + uuid(); + + dialog.open({ + id: dialogId + , title: params.btnTitle + , size: ctrl.infoSize + , content: resp + , init: () => { + $("#" + dialogId).attr("name", dialogName); + $("#" + dialogId).attr("data-ref-doctx", pageName); + + AppSupport.setDialogZindex(); + } + , onClose: () => { } + }); + } + }); + } + + // 삭제 callback + ctrl.onRemove = (params, resp) => { + let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle); + + // 메시지 출력 + dialog.alert({ + content: showMessage + , init: () => { AppSupport.setDialogZindex(); } + , onOK: () => { } + , onClose: () => { + if (resp.saved) { ctrl.reload({ all: true }); } // 자료 재조회 + } + }); + } + + // 삭제 + ctrl.remove = (params) => { + if (!params) return; + + ajax.post({ + url: ctrl.urls.remove + , data: params || {} + , success: (resp) => { ctrl.onRemove(params, resp); } + }); + } + + // 저장 callback + ctrl.onSave = (params, resp) => { + let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle); + + // 메시지 출력 + dialog.alert({ + content: showMessage + , init: () => { AppSupport.setDialogZindex(); } + , onOK: () => { } + , onClose: () => { + if (resp.saved) { ctrl.reload({ all: true }); } // 자료 재조회 + } + }); + } + + // 저장 + ctrl.save = (params) => { + if (!params) return; + + ajax.post({ + url: ctrl.urls.update + , data: params || {} + , success: (resp) => { ctrl.onSave(params, resp); } + }); + } + + return ctrl; +} diff --git a/src/main/webapp/resources/js/fims/epst/epst02040.js b/src/main/webapp/resources/js/fims/epst/epst02040.js new file mode 100644 index 00000000..a682615f --- /dev/null +++ b/src/main/webapp/resources/js/fims/epst/epst02040.js @@ -0,0 +1,67 @@ +function newEpst02040Script(pageName, doctx="[data-doctx='epst02040']") { + let ctrl = new DatasetControl({ + doctx: doctx + , prefix: "epostRcptRegDtl" + , prefixName: "우편발송 상세" + , dataGetter: obj => obj["List"] + , keys: ["RGST_NMBR"] + , appendData: true + , infoSize: "xl" + , urls: { + load: "/list.do" + } + , formats: { + DELIV_YMD_TM: datetimeFormat + , REG_DT: datetimeFormat + , MDFCN_DT: datetimeFormat + } + }); + + // 검색 조건 + ctrl.query = { pageNum: 1, fetchSize: DEFAULT_FETCH_SIZE }; // 1 페이지당 자료 건수 index.jsp에서 확인 + + /************************************************************************** + * DatasetControl Events + **************************************************************************/ + ctrl.onDatasetChange = (obj, option) => { + // 데이터 셋 + let dataList = ctrl.dataset; + let empty = dataList.empty; + + let replacer = (str, dataItem) => str + .replace(/{onclick}/gi, "pageObject['" + pageName + "'].dataTableClick('{data-index}');"); + + let trs = empty ? + [ctrl.find("[name='tmpltNotFound']").innerHTML] + : dataList.inStrings(ctrl.find("[name='tmpltRows']").innerHTML, replacer); + + let noMore = (dataList.length >= obj["Paging"]?.totalSize); // 전체 건수 + let initScroll = (ctrl.query.pageNum < 2); + + if (option != null && option.reloaded) { + initScroll = false; + } + + // dataTables(그리드)에 자료 표시 td + ctrl.find("[name='tableRspns']").changeContent(trs.join(), initScroll, noMore); + + // dataTables(그리드)에 페이지 표시 pagingInfo + pageObject[pageName].pagingSupport.setPagingInfo(obj); + + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); + }; + + // 현재 선택 자료 변경 이벤트 + ctrl.onCurrentChange = (item) => { + Apply.fromDataset.currentRow(ctrl.dataset, item, ctrl.find("[name='tbodyList']")); + + if (!item) return; + + // 화면에 단속 Dataset 셋팅 + let formFields = new FimsFormFields(ctrl.selector("[name='frmEdit']")); + formFields.set(ctrl, item); + }; + + return ctrl; +}