From 4d03596d7b2d9cff53b2a70639c4d93489054be5 Mon Sep 17 00:00:00 2001 From: jjh Date: Wed, 2 Oct 2024 11:07:51 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=84=EB=8C=80=EC=B0=A8=EA=B3=84=EC=95=BD?= =?UTF-8?q?=20=EB=93=B1=EB=A1=9D(=EB=A7=A4=ED=95=91)=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WEB-INF/jsp/fims/rent/rent01020-info.jsp | 4 +- .../WEB-INF/jsp/fims/rent/rent01040-info.jsp | 2 + .../WEB-INF/jsp/fims/rent/rent02010-main.jsp | 16 +++++- .../WEB-INF/jsp/fims/rent/rent02020-info.jsp | 39 +++++++++++-- .../WEB-INF/jsp/fims/rent/rent02030-main.jsp | 7 ++- .../WEB-INF/jsp/fims/rent/rent02040-info.jsp | 2 + .../WEB-INF/jsp/fims/rent/rent02050-main.jsp | 2 +- .../WEB-INF/jsp/fims/rent/rent02060-info.jsp | 2 + .../resources/js/fims/rent/rent02010.js | 2 +- .../resources/js/fims/rent/rent02020.js | 55 +++++++++++++++++-- 10 files changed, 113 insertions(+), 18 deletions(-) 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 38c12b52..b2808970 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 @@ -142,6 +142,8 @@ $P.ctrl = newRent01020Control("${pageName}", "[data-doctx=${pageName}]"); // main에서 호출한 파라미터 $P.ctrl.query = ${mainQuery}; + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + $P.callPurpose = "${callPurpose}"; /************************************************************************** * 사용자 함수(function) @@ -149,7 +151,7 @@ // URL 설정 $P.setUrl = (prefixUrl) => { $P.ctrl.urls.load = wctx.url(prefixUrl + "/020/info.do"); // 상세 정보 조회 - $P.ctrl.urls.getInfo = wctx.url(prefixUrl + "/040/info.do"); // 상세 정보 조회 + $P.ctrl.urls.getInfo = wctx.url(prefixUrl + "/040/info.do"); // 임대기업 상세 정보 조회 } /************************************************************************** diff --git a/src/main/webapp/WEB-INF/jsp/fims/rent/rent01040-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent01040-info.jsp index f411af17..5aa4a5d4 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/rent/rent01040-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent01040-info.jsp @@ -107,6 +107,8 @@ // datasetControl $P.ctrl = newRent01040Control("${pageName}", "[data-doctx=${pageName}]"); + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + $P.callPurpose = "${callPurpose}"; /************************************************************************** * 사용자 함수(function) 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 035e3f6c..5a12d7c7 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 @@ -252,8 +252,18 @@ // dataTable 더블 클릭 이벤트 $P.dataTableDblClick = (dataIndex) => { - let params = { - callPurpose: "view" + let callPurpose = "view"; + let trgtSttsNm = $P.ctrl.getValue("TRGT_STTS_NM"); + + // 호출 용도를 구분한다. + if (trgtSttsNm == "계약서등록") { + callPurpose = "update"; + } else if (trgtSttsNm == "기타(세외수입)") { + callPurpose = "update"; + } + + let params = { + callPurpose: callPurpose , crdnId: $P.ctrl.getValue("CRDN_ID") }; @@ -344,7 +354,7 @@ // 기본 데이터 설정 $P.$findn("schCrdnYmdFrom").datepicker("setDate", "2024-06-01"); // 단속 일자 시작 $P.$findn("schCrdnYmdTo").datepicker("setDate", TODAY()); // 단속 일자 종료 - $P.$findn("schVhrno").val("167하9750"); // 자동차등록번호 + $P.$findn("schVhrno").val("12보3663"); // 자동차등록번호 $P.$findn("byOutput").val("동적 검색"); // 동적 검색 // 그리드 th 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 index a068cd11..bbe410f5 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02020-info.jsp @@ -50,6 +50,12 @@
+ + + +
@@ -142,17 +148,20 @@ $P.ctrl = newRent02020Control("${pageName}", "[data-doctx=${pageName}]"); // 파일 리스트 $P.fileListArr = new Array(); + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + $P.callPurpose = "${callPurpose}"; /************************************************************************** * 사용자 함수(function) **************************************************************************/ // URL 설정 $P.setUrl = (prefixUrl) => { - $P.ctrl.urls.load = wctx.url(prefixUrl + "/020/list.do") // 검색 + $P.ctrl.urls.load = wctx.url(prefixUrl + "/020/info.do") // 검색 + $P.ctrl.urls.getInfo = wctx.url(prefixUrl + "/040/info.do"); // 임대차계약 상세 정보 조회 } // 첨부파일 조회 - $P.fnSearchFileList = (hirerId) => { + $P.fnSearchFileList = (lsctId) => { let tableFileList = $P.findn("fileList"); // table element 찾기 let fileLength = tableFileList.rows.length; @@ -161,15 +170,15 @@ tableFileList.deleteRow(1); // table 행(Row) 삭제 } - // 임차인 등록일 경우에는 첨부파일을 조회하지 안는다.. - if (!hirerId) return; + // 임대차계약 ID가 없다면 첨부파일을 조회하지 안는다.. + if (!lsctId) return; // 첨부파일 리스트 ajax.get({ url: "file/list.do" , data: { infoType: "120" - , infoKeys: hirerId + , infoKeys: lsctId , fetchSize: 0 } , success: (resp) => { @@ -211,6 +220,23 @@ // URL 설정 $P.setUrl("${prefixUrl}"); + // + if ($P.callPurpose == "view") { + $P.$findn("btnUpdateLsct").prop("disabled", true); // 임대차계약 수정 버튼 + } else { + $P.$findn("btnUpdateLsct").prop("disabled", false); // 임대차계약 수정 버튼 + } + } + + // 임대차계약 수정 + $P.fnUpdateLsct = () => { + let params = { + callPurpose: "update" + , lsctId: $P.ctrl.getValue("LSCT_ID") + , crdnId: $P.$findn("crdnId").val() + }; + + $P.ctrl.getInfo(params); } /************************************************************************** @@ -218,7 +244,8 @@ **************************************************************************/ // 이벤트 $P.setEvent = () => { - // + // 버튼 이벤트 + $P.$findn("btnUpdateLsct").on("click", () => { $P.fnUpdateLsct(); }); // 임대차계약 수정 } /************************************************************************** diff --git a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02030-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02030-main.jsp index 668842ed..45a432c8 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02030-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02030-main.jsp @@ -35,8 +35,8 @@
- - + +
@@ -285,6 +285,9 @@ // 검색 버튼 클릭 이벤트 $P.fnSearchList = () => { + // validate 확인 + if (!AppSupport.customValidate($P.$findn("frmSearch").find("input,select,textarea"))) return; + // 검색조건 $P.ctrl.query = new FimsFormFields($P.selectorn("frmSearch")).get(); // 검색 조건 $P.ctrl.query.fetchSize = DEFAULT_FETCH_SIZE; // 한번에 조회되는 자료 건수 diff --git a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02040-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02040-info.jsp index 397fe14f..8b28c1d3 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02040-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02040-info.jsp @@ -205,6 +205,8 @@ $P.ctrl = newRent02040Control("${pageName}", "[data-doctx=${pageName}]"); // 파일 리스트 $P.fileListArr = new Array(); + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + $P.callPurpose = "${callPurpose}"; /************************************************************************** * 사용자 함수(function) diff --git a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02050-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02050-main.jsp index fc24cde8..42381520 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02050-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02050-main.jsp @@ -342,7 +342,7 @@ // 기본 데이터 설정 $P.$findn("schCrdnYmdFrom").datepicker("setDate", DateSupport.getAddDay(-365)); // 단속 일자 시작 $P.$findn("schCrdnYmdTo").datepicker("setDate", TODAY()); // 단속 일자 종료 - $P.$findn("schVhrno").val("167하9750"); // 자동차등록번호 + $P.$findn("schVhrno").val("12보3663"); // 자동차등록번호 $P.$findn("byOutput").val("동적 검색"); // 동적 검색 // 그리드 th diff --git a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02060-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02060-info.jsp index d04ac5c9..910b527c 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/rent/rent02060-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/rent/rent02060-info.jsp @@ -169,6 +169,8 @@ $P.ctrl = newRent02020Control("${pageName}", "[data-doctx=${pageName}]"); // 파일 리스트 $P.fileListArr = new Array(); + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + $P.callPurpose = "${callPurpose}"; /************************************************************************** * 사용자 함수(function) diff --git a/src/main/webapp/resources/js/fims/rent/rent02010.js b/src/main/webapp/resources/js/fims/rent/rent02010.js index 83f73387..7bc62874 100644 --- a/src/main/webapp/resources/js/fims/rent/rent02010.js +++ b/src/main/webapp/resources/js/fims/rent/rent02010.js @@ -2,7 +2,7 @@ function newRent02010Control(pageName, doctx="[data-doctx='rent02010']") { let ctrl = new DatasetControl({ doctx: doctx , prefix: "crdnLsct" - , prefixName: "임대차계약 등록" + , prefixName: "임대차계약 매핑" , dataGetter: obj => obj["List"] , keys: ["CRDN_ID"] , appendData: true diff --git a/src/main/webapp/resources/js/fims/rent/rent02020.js b/src/main/webapp/resources/js/fims/rent/rent02020.js index ef840fe0..57948043 100644 --- a/src/main/webapp/resources/js/fims/rent/rent02020.js +++ b/src/main/webapp/resources/js/fims/rent/rent02020.js @@ -2,11 +2,13 @@ function newRent02020Control(pageName, doctx="[data-doctx='rent02020']") { let ctrl = new DatasetControl({ doctx: doctx , prefix: "crdnLsct" - , prefixName: "임대차계약 등록" + , prefixName: "임대차계약 매핑" , dataGetter: obj => obj["Info"] , keys: ["CRDN_ID"] + , infoSize: "lg" , urls: { load: "/list.do" + , getInfo: "/info.do" } }); @@ -21,11 +23,56 @@ function newRent02020Control(pageName, doctx="[data-doctx='rent02020']") { let formFields = new FimsFormFields(ctrl.selector("[name='frmEdit']")); formFields.set(ctrl, item); - let key = item.data.CRDN_ID; - if (key != null) { - pageObject[pageName].fnSearchFileList(key); + let fileKey = item.data.LSCT_ID; + if (fileKey != null) { + pageObject[pageName].fnSearchFileList(fileKey); } }; + // 상세 정보 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: () => { } + }); + } + }); + } + + // 재 조회 -> 1건일때 reload 사용시 오류 발생. 배열이 아니여서 발생.. 한실장님에게 수정 요청 + ctrl.refresh = () => { + ajax.get({ + url: ctrl.urls.load + , headers: { Accept: "application/json; charset=utf-8" } // json + , data: ctrl.query + , success: (resp) => { + // 초기화 + ctrl.find("[name='frmEdit']").reset(); // 화면 초기화 + ctrl.dataset.clear(); // Dataset 초기화 + + // Dataset 셋팅 + ctrl.setData([resp.Info]); // 정보 + } + }); + } + return ctrl; }