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;
+}