diff --git a/src/main/webapp/WEB-INF/jsp/fims/rent/rent01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent01010-main.jsp
index b0a3cd72..a654a07e 100644
--- a/src/main/webapp/WEB-INF/jsp/fims/rent/rent01010-main.jsp
+++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent01010-main.jsp
@@ -53,10 +53,10 @@
-
@@ -77,7 +77,7 @@
No. |
|
사용자계정 |
- 사용자명 |
+ 사용자명 |
기업구분 |
기업명 |
법인(사업자)번호 |
diff --git a/src/main/webapp/WEB-INF/jsp/fims/rent/rent01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent01020-info.jsp
index bc9db46f..86c61a22 100644
--- a/src/main/webapp/WEB-INF/jsp/fims/rent/rent01020-info.jsp
+++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent01020-info.jsp
@@ -17,7 +17,7 @@
검색
-
+
선택 확인
diff --git a/src/main/webapp/WEB-INF/jsp/fims/rent/rent01030-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent01030-info.jsp
index f647f945..b8bbae18 100644
--- a/src/main/webapp/WEB-INF/jsp/fims/rent/rent01030-info.jsp
+++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent01030-info.jsp
@@ -77,7 +77,7 @@
-
+
저장
diff --git a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02010-main.jsp
index fda06870..c565abf0 100644
--- a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02010-main.jsp
+++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02010-main.jsp
@@ -1,7 +1,7 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
-임대계약서 관리
+임대차계약서 등록
@@ -76,10 +76,13 @@
-
+
임대계약서 등록
-
+
+ 임대계약서 수정
+
+
임대계약서 삭제
@@ -98,14 +101,14 @@
- 단속
+ onClick="pageObject['${pageName}'].fnSearchList('대상');">
+ 대상
- 세외수입
+ onClick="pageObject['${pageName}'].fnSearchList('등록');">
+ 등록
@@ -126,6 +129,7 @@
|
업무구분 |
+ 대상여부 |
단속일시 |
차량번호 |
납부자구분 |
@@ -150,6 +154,7 @@
{ROW_NUM} |
|
{TASK_SE_NM} |
+ {TRGT_YN} |
{CRDN_YMD_TM} |
{VHRNO} |
{RTPYR_SE_NM} |
@@ -207,95 +212,9 @@
// formFields
$P.formFields = new FimsFormFields($P.selectorn("frmSearch"));
- // paging
- $P.pagingSupport = new FimsPagingSupport({
- doq: $P
- , linkContainer: "[name='dataPaging']"
- });
- // datasetControl
- $P.ctrl = newRent02010Control($P, "${pageName}", "[data-doctx=${pageName}]");
-
- /**************************************************************************
- * DataTable 이벤트
- **************************************************************************/
- // DataTable에 click, dbclick 이벤트
- $P.renderList = (obj, option) => {
- // 데이터 셋
- let dataList = $P.ctrl.dataset;
- let empty = dataList.empty;
-
- // 업무별 DataTables(그리드) tr, td
- let foundContent = $P.findn("tmpltRows").content;
- let foundTr = $(foundContent).find("tr")[0].cloneNode(false);
- let foundTds = $(foundContent).find(".cmn");
-
- foundTds.each(function() {
- foundTr.appendChild(this.cloneNode(true));
- });
-
- let replacer = (str, dataItem) => str
- .replace(/{onclick}/gi, "pageObject['${pageName}'].dataTableClick('{DATA-INDEX}');")
- .replace(/{ondblclick}/gi, "pageObject['${pageName}'].dataTableDblClick('{CRDN_ID}');");
-
- let trs = empty ?
- [$P.findn("tmpltNotFound").content.querySelector(".cmn").outerHTML]
- : dataList.inStrings(foundTr.outerHTML, replacer);
-
- let noMore = (dataList.length >= obj["Total"]);
- let initScroll = ($P.ctrl.query.pageNum < 2);
-
- if (option != null && option.reloaded) {
- initScroll = false;
- }
-
- // pagingInfo
- $P.pagingSupport.setPagingInfo(obj);
-
- $P.findn("tableRspns").changeContent(trs.join(), initScroll, noMore);
-
- // checkbox 체크 해제
- $P.$findn("gridAllCheckbox").prop("checked", false);
-
- // 보안모드
- fn_securityModeToggle($("#securityMode--top").is(":checked"));
- }
-
- // dataTable 체크박스 클릭 이벤트
- $P.dataTableCheckbox = (element, bool) => {
- GRID.checkbox.sync(element, bool);
-
- let atLeastOne = GRID.checkbox.countChecked(element) > 0;
-
- // 버튼
- $P.$findn("btnRemove").prop("disabled", !atLeastOne);
- Apply.toDataset.selection($P.ctrl.dataset, element, bool);
- }
-
- // dataTable 클릭 이벤트
- $P.dataTableClick = (dataIndex) => {
- if (dataIndex == "") return;
-
- $P.$findn("tbodyList").setCurrentRow(dataIndex);
-
- Apply.toDataset.current($P.ctrl.dataset, dataIndex);
- }
-
- // dataTable 더블 클릭 이벤트
- $P.dataTableDblClick = (dataKey) => {
- let params = {
- callPurpose: "update"
- , crdnId: dataKey
- , lsctId: $P.ctrl.getValue("LSCT_ID")
- };
-
- $P.ctrl.getInfo(params);
- }
-
- // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
- $P.scrollDataList = () => {
- $P.ctrl.load($P.ctrl.query.pageNum + 1);
- }
+ // datasetControl
+ $P.ctrl = newRent02010Control("${pageName}", "[data-doctx=${pageName}]");
/**************************************************************************
* 사용자 함수(function)
@@ -331,12 +250,17 @@
$P.$findn("schCrdnYmdTo").datepicker("setDate", TODAY()); // 단속 일자 종료
$P.$findn("schVhrno").val("167하9750"); // 차량번호
- // URL 설정
- $P.fnSetUrl("${prefixUrl}");
+ //
+ $P.$findn("btnCreate").prop("disabled", true);
+ $P.$findn("btnUpdate").prop("disabled", true);
+ $P.$findn("btnRemove").prop("disabled", true);
// dataset 초기화
$P.ctrl.dataset.clear();
+ // URL 설정
+ $P.fnSetUrl("${prefixUrl}");
+
// 그리드 th
let colContent = $P.findn("tmpltCols").content;
let cols = $(colContent).find(".cmn");
@@ -356,12 +280,17 @@
$P.ctrl.query.delYn = "N"; // 삭제 여부
// tab
- if (tabName == "단속") {
- $P.ctrl.query.nxrpCrdnLinkYn = "N";
- } else if (tabName == "세외수입") {
- $P.ctrl.query.nxrpCrdnLinkYn = "Y";
+ if (tabName == "대상") {
+ $P.ctrl.query.regTrgtYn = "Y";
+ $P.$findn("btnCreate").prop("disabled", false);
+ } else if (tabName == "등록") {
+ $P.ctrl.query.regTrgtYn = "N";
+ $P.$findn("btnUpdate").prop("disabled", false);
+ $P.$findn("btnRemove").prop("disabled", false);
} else {
- $P.ctrl.query.nxrpCrdnLinkYn = "N";
+ $P.$findn("btnCreate").prop("disabled", true);
+ $P.$findn("btnUpdate").prop("disabled", true);
+ $P.$findn("btnRemove").prop("disabled", true);
}
// 임대기업번호가 전체라면..
diff --git a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02020-info.jsp
new file mode 100644
index 00000000..aa1e2e5b
--- /dev/null
+++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02020-info.jsp
@@ -0,0 +1,500 @@
+<%@ 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/rent/rent02030-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02030-info.jsp
new file mode 100644
index 00000000..b8bbae18
--- /dev/null
+++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02030-info.jsp
@@ -0,0 +1,237 @@
+<%@ 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/rent/rent02040-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02040-main.jsp
new file mode 100644
index 00000000..ab2d18ab
--- /dev/null
+++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02040-main.jsp
@@ -0,0 +1,475 @@
+<%@ 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/resources/js/fims/rent/rent02010.js b/src/main/webapp/resources/js/fims/rent/rent02010.js
index dd93e362..1da7d929 100644
--- a/src/main/webapp/resources/js/fims/rent/rent02010.js
+++ b/src/main/webapp/resources/js/fims/rent/rent02010.js
@@ -1,4 +1,4 @@
-function newRent02010Control(pageObj, pageName, doctx="[data-doctx='rent02010']") {
+function newRent02010Control(pageName, doctx="[data-doctx='rent02010']") {
let ctrl = new DatasetControl({
doctx: doctx
, prefix: "lsct"
@@ -27,7 +27,7 @@ function newRent02010Control(pageObj, pageName, doctx="[data-doctx='rent02010']"
// paging
pagingSupport = new FimsPagingSupport({
- doq: pageObj
+ doq: ctrl
, linkContainer: "[name='dataPaging']"
});
@@ -36,9 +36,6 @@ function newRent02010Control(pageObj, pageName, doctx="[data-doctx='rent02010']"
**************************************************************************/
// Dataset 변경 이벤트
ctrl.onDatasetChange = (obj, option) => {
-// pageObj.renderList(obj, option);
-
-
// 데이터 셋
let dataList = ctrl.dataset;
let empty = dataList.empty;
@@ -53,14 +50,14 @@ function newRent02010Control(pageObj, pageName, doctx="[data-doctx='rent02010']"
});
let replacer = (str, dataItem) => str
- .replace(/{onclick}/gi, "pageObject['" + pageName + "'].dataTableClick('{DATA-INDEX}');")
- .replace(/{ondblclick}/gi, "pageObject['" + pageName + "'].dataTableDblClick('{CRDN_ID}');");
+ .replace(/{onclick}/gi, "dataTableClick('{DATA-INDEX}');")
+ .replace(/{ondblclick}/gi, "dataTableDblClick('{CRDN_ID}');");
let trs = empty ?
[ctrl.find("[name='tmpltNotFound']").content.querySelector(".cmn").outerHTML]
: dataList.inStrings(foundTr.outerHTML, replacer);
- let noMore = (dataList.length >= obj["Total"]);
+ let noMore = (dataList.length >= obj["Total"]); // 전체 건수
let initScroll = (ctrl.query.pageNum < 2);
if (option != null && option.reloaded) {
@@ -75,9 +72,6 @@ function newRent02010Control(pageObj, pageName, doctx="[data-doctx='rent02010']"
// pagingInfo
pagingSupport.setPagingInfo(obj);
-
- // 보안모드
- fn_securityModeToggle($("#securityMode--top").is(":checked"));
};
// 현재 선택 자료 변경 이벤트
@@ -147,5 +141,33 @@ function newRent02010Control(pageObj, pageName, doctx="[data-doctx='rent02010']"
});
}
+ /**************************************************************************
+ * DataTable 이벤트
+ **************************************************************************/
+ // dataTable 클릭 이벤트
+ dataTableClick = (dataIndex) => {
+ if (dataIndex == "") return;
+
+ $(ctrl.find("[name='tbodyList']")).setCurrentRow(dataIndex);
+
+ Apply.toDataset.current(ctrl.dataset, dataIndex);
+ }
+
+ // dataTable 더블 클릭 이벤트
+ dataTableDblClick = (dataKey) => {
+ let params = {
+ callPurpose: "update"
+ , crdnId: dataKey
+ , lsctId: ctrl.getValue("LSCT_ID")
+ };
+
+ ctrl.getInfo(params);
+ }
+
+ // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
+ scrollDataList = () => {
+ ctrl.load(ctrl.query.pageNum + 1);
+ }
+
return ctrl;
}
diff --git a/src/main/webapp/resources/js/fims/rent/rent02020.js b/src/main/webapp/resources/js/fims/rent/rent02020.js
new file mode 100644
index 00000000..f0ce8f1f
--- /dev/null
+++ b/src/main/webapp/resources/js/fims/rent/rent02020.js
@@ -0,0 +1,173 @@
+function newRent02010Control(pageName, doctx="[data-doctx='rent02020']") {
+ let ctrl = new DatasetControl({
+ doctx: doctx
+ , prefix: "lsct"
+ , prefixName: "임대차계약"
+ , dataGetter: obj => obj["List"]
+ , keys: ["CRDN_ID"]
+ , appendData: true
+ , infoSize: "xl"
+ , urls: {
+ load: "/list.do"
+ , getInfo: "/info.do"
+ , create: "/create.do"
+ , update: "/update.do"
+ , remove: "/remove.do"
+ }
+ , formats: {
+ CRDN_YMD_TM: datetimeFormat
+ , FFNLG_CRDN_AMT: numberFormat
+ , REG_DT: datetimeFormat
+ , MDFCN_DT: datetimeFormat
+ }
+ });
+
+ // 검색 조건
+ ctrl.query = { pageNum: 1, fetchSize: DEFAULT_FETCH_SIZE }; // 1 페이지당 자료 건수 index.jsp에서 확인
+
+ // paging
+ pagingSupport = new FimsPagingSupport({
+ doq: ctrl
+ , linkContainer: "[name='dataPaging']"
+ });
+
+ /**************************************************************************
+ * DatasetControl Events
+ **************************************************************************/
+ // Dataset 변경 이벤트
+ ctrl.onDatasetChange = (obj, option) => {
+ // 데이터 셋
+ let dataList = ctrl.dataset;
+ let empty = dataList.empty;
+
+ // 업무별 DataTables(그리드) tr, td
+ let foundContent = ctrl.find("[name='tmpltRows']").content;
+ let foundTr = $(foundContent).find("tr")[0].cloneNode(false);
+ let foundTds = $(foundContent).find(".cmn");
+
+ foundTds.each(function() {
+ foundTr.appendChild(this.cloneNode(true));
+ });
+
+ let replacer = (str, dataItem) => str
+ .replace(/{onclick}/gi, "dataTableClick('{DATA-INDEX}');")
+ .replace(/{ondblclick}/gi, "dataTableDblClick('{CRDN_ID}');");
+
+ let trs = empty ?
+ [ctrl.find("[name='tmpltNotFound']").content.querySelector(".cmn").outerHTML]
+ : dataList.inStrings(foundTr.outerHTML, replacer);
+
+ let noMore = (dataList.length >= obj["Total"]); // 전체 건수
+ let initScroll = (ctrl.query.pageNum < 2);
+
+ if (option != null && option.reloaded) {
+ initScroll = false;
+ }
+
+ //
+ ctrl.find("[name='tableRspns']").changeContent(trs.join(), initScroll, noMore);
+
+ // checkbox 체크 해제
+ $(ctrl.find("[name='gridAllCheckbox']")).prop("checked", false);
+
+ // pagingInfo
+ pagingSupport.setPagingInfo(obj);
+ };
+
+ // 현재 선택 자료 변경 이벤트
+ 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);
+ // 삭제 버튼
+ 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: ctrl.prefixName + " 정보"
+ , size: ctrl.infoSize
+ , content: resp
+ , init: () => {
+ $("#" + dialogId).attr("name", dialogName);
+ $("#" + dialogId).attr("data-ref-doctx", pageName);
+
+ AppSupport.setDialogZindex();
+ }
+ , onClose: () => { ctrl.reload({ all: true }); }
+ });
+ }
+ });
+ }
+
+ // 삭제 callback
+ ctrl.onRemove = (params, resp) => {
+ let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, ctrl.prefixName);
+
+ // 메시지 출력
+ 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); }
+ });
+ }
+
+ /**************************************************************************
+ * DataTable 이벤트
+ **************************************************************************/
+ // dataTable 클릭 이벤트
+ dataTableClick = (dataIndex) => {
+ if (dataIndex == "") return;
+
+ $(ctrl.find("[name='tbodyList']")).setCurrentRow(dataIndex);
+
+ Apply.toDataset.current(ctrl.dataset, dataIndex);
+ }
+
+ // dataTable 더블 클릭 이벤트
+ dataTableDblClick = (dataKey) => {
+ let params = {
+ callPurpose: "update"
+ , crdnId: dataKey
+ , lsctId: ctrl.getValue("LSCT_ID")
+ };
+
+ ctrl.getInfo(params);
+ }
+
+ // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
+ scrollDataList = () => {
+ ctrl.load(ctrl.query.pageNum + 1);
+ }
+
+ return ctrl;
+}
diff --git a/src/main/webapp/resources/js/fims/rent/rent02030.js b/src/main/webapp/resources/js/fims/rent/rent02030.js
new file mode 100644
index 00000000..68a2dd2b
--- /dev/null
+++ b/src/main/webapp/resources/js/fims/rent/rent02030.js
@@ -0,0 +1,177 @@
+function newRent02010Control(pageName, doctx="[data-doctx='rent02010']") {
+ let ctrl = new DatasetControl({
+ doctx: doctx
+ , prefix: "lsct"
+ , prefixName: "임대차계약"
+ , dataGetter: obj => obj["List"]
+ , keys: ["CRDN_ID"]
+// , keymapper: info => info ? info.CRDN_ID : ""
+ , appendData: true
+ , infoSize: "xl"
+ , urls: {
+ load: "/list.do"
+ , getInfo: "/info.do"
+ , create: "/create.do"
+ , update: "/update.do"
+ , remove: "/remove.do"
+ }
+ , formats: {
+ CRDN_YMD_TM: datetimeFormat
+ , FFNLG_CRDN_AMT: numberFormat
+ , REG_DT: datetimeFormat
+ , MDFCN_DT: datetimeFormat
+ }
+ });
+
+ // 검색 조건
+ ctrl.query = { pageNum: 1, fetchSize: DEFAULT_FETCH_SIZE }; // 1 페이지당 자료 건수 index.jsp에서 확인
+
+ // paging
+ pagingSupport = new FimsPagingSupport({
+ doq: ctrl
+ , linkContainer: "[name='dataPaging']"
+ });
+
+ /**************************************************************************
+ * DatasetControl Events
+ **************************************************************************/
+ // Dataset 변경 이벤트
+ ctrl.onDatasetChange = (obj, option) => {
+ // 데이터 셋
+ let dataList = ctrl.dataset;
+ let empty = dataList.empty;
+
+ // 업무별 DataTables(그리드) tr, td
+ let foundContent = ctrl.find("[name='tmpltRows']").content;
+ let foundTr = $(foundContent).find("tr")[0].cloneNode(false);
+ let foundTds = $(foundContent).find(".cmn");
+
+ foundTds.each(function() {
+ foundTr.appendChild(this.cloneNode(true));
+ });
+
+ let replacer = (str, dataItem) => str
+ .replace(/{onclick}/gi, "dataTableClick('{DATA-INDEX}');")
+ .replace(/{ondblclick}/gi, "dataTableDblClick('{CRDN_ID}');");
+
+// .replace(/{onclick}/gi, "pageObject['" + pageName + "'].dataTableClick('{DATA-INDEX}');")
+// .replace(/{ondblclick}/gi, "pageObject['" + pageName + "'].dataTableDblClick('{CRDN_ID}');");
+
+ let trs = empty ?
+ [ctrl.find("[name='tmpltNotFound']").content.querySelector(".cmn").outerHTML]
+ : dataList.inStrings(foundTr.outerHTML, replacer);
+
+ let noMore = (dataList.length >= obj["Total"]); // 전체 건수
+ let initScroll = (ctrl.query.pageNum < 2);
+
+ if (option != null && option.reloaded) {
+ initScroll = false;
+ }
+
+ //
+ ctrl.find("[name='tableRspns']").changeContent(trs.join(), initScroll, noMore);
+
+ // checkbox 체크 해제
+ $(ctrl.find("[name='gridAllCheckbox']")).prop("checked", false);
+
+ // pagingInfo
+ pagingSupport.setPagingInfo(obj);
+ };
+
+ // 현재 선택 자료 변경 이벤트
+ 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);
+ // 삭제 버튼
+ 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: ctrl.prefixName + " 정보"
+ , size: ctrl.infoSize
+ , content: resp
+ , init: () => {
+ $("#" + dialogId).attr("name", dialogName);
+ $("#" + dialogId).attr("data-ref-doctx", pageName);
+
+ AppSupport.setDialogZindex();
+ }
+ , onClose: () => { ctrl.reload({ all: true }); }
+ });
+ }
+ });
+ }
+
+ // 삭제 callback
+ ctrl.onRemove = (params, resp) => {
+ let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, ctrl.prefixName);
+
+ // 메시지 출력
+ 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); }
+ });
+ }
+
+ /**************************************************************************
+ * DataTable 이벤트
+ **************************************************************************/
+ // dataTable 클릭 이벤트
+ dataTableClick = (dataIndex) => {
+ if (dataIndex == "") return;
+
+ $(ctrl.find("[name='tbodyList']")).setCurrentRow(dataIndex);
+
+ Apply.toDataset.current(ctrl.dataset, dataIndex);
+ }
+
+ // dataTable 더블 클릭 이벤트
+ dataTableDblClick = (dataKey) => {
+ let params = {
+ callPurpose: "update"
+ , crdnId: dataKey
+ , lsctId: ctrl.getValue("LSCT_ID")
+ };
+
+ ctrl.getInfo(params);
+ }
+
+ // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
+ scrollDataList = () => {
+ ctrl.load(ctrl.query.pageNum + 1);
+ }
+
+ return ctrl;
+}