1. 의견제출 수정.

2. 기타 수정.
main
jjh 3 months ago
parent 038da67b5b
commit 04d62deb47

@ -34,7 +34,7 @@
<div class="row g-1">
<!-- 업무 구분 -->
<div class="col-12">
<span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<span class="form-label form-search-title w-px-120 text-end fw-bold">업무구분</span>
<span class="form-search-linebox">
<c:forEach items="${taskListForSgg}" var="item">
<label>
@ -47,7 +47,7 @@
</div>
<!-- 부과 제외 일자 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end">부과제외일자</label>
<label class="form-label form-search-title w-px-120 text-end fw-bold">부과제외일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" name="schLevyExclYmdFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
@ -58,9 +58,9 @@
<button type="button" class="bx bx-lg bx-calendar bg-white"></button>
</span>
</div>
<!-- 부과 제외 구분 -->
<!-- 부과 제외 구분 코드 -->
<div class="col-6">
<label is="name-label" class="form-label fw-bold form-search-title w-px-120 text-end" for="schLevyExclSeCd">부과제외구분</label>
<label is="name-label" class="form-label form-search-title w-px-120 text-end fw-bold" for="schLevyExclSeCd">부과제외구분</label>
<select is="id-select" class="form-select w-px-120" name="schLevyExclSeCd">
<option value="">전체</option>
<c:forEach items="${FIM021List}" var="item">
@ -68,9 +68,9 @@
</c:forEach>
</select>
</div>
<!-- 부과 제외 사유 -->
<!-- 부과 제외 사유 코드 -->
<div class="col-6">
<label is="name-label" class="form-label fw-bold form-search-title w-px-120 text-end" for="schLevyExclRsnCd">부과제외사유</label>
<label is="name-label" class="form-label form-search-title w-px-120 text-end fw-bold" for="schLevyExclRsnCd">부과제외사유</label>
<select is="id-select" class="form-select w-px-200" name="schLevyExclRsnCd">
<option value="">전체</option>
<c:forEach items="${FIM022List}" var="item">
@ -101,7 +101,7 @@
<div class="row g-1">
<!-- 단속일자 -->
<div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end">단속일자</label>
<label class="form-label form-search-title w-px-120 text-end fw-bold">단속일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" name="schCrdnYmdFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
@ -114,17 +114,17 @@
</div>
<!-- 차량번호 -->
<div class="col-4">
<label is="name-label" class="form-label fw-bold form-search-title w-px-120 text-end" for="schVhrno">차량번호</label>
<label is="name-label" class="form-label form-search-title w-px-120 text-end fw-bold" for="schVhrno">차량번호</label>
<input is="id-input" type="text" class="form-control w-px-160" name="schVhrno" autocomplete="off" />
</div>
<!-- 납부자번호 -->
<div class="col-4">
<label is="name-label" class="form-label fw-bold form-search-title w-px-120 text-end" for="schRtpyrNm">납부자번호</label>
<label is="name-label" class="form-label form-search-title w-px-120 text-end fw-bold" for="schRtpyrNm">납부자번호</label>
<input is="id-input" type="text" class="form-control w-px-160" name="schRtpyrNm" autocomplete="off" />
</div>
<!-- 납부자명 -->
<div class="col-4">
<label is="name-label" class="form-label fw-bold form-search-title w-px-120 text-end" for="schRtpyrNo">납부자명</label>
<label is="name-label" class="form-label form-search-title w-px-120 text-end fw-bold" for="schRtpyrNo">납부자명</label>
<input is="id-input" type="text" class="form-control w-px-160" name="schRtpyrNo" autocomplete="off" />
</div>
<!-- 등록일자, 수정일자 -->
@ -223,6 +223,7 @@
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</template>
<tbody name="tbodyList">
</tbody>
<template is="curly-brackets" name="tmpltRows">
@ -344,7 +345,7 @@
// datasetPaging
Apply.fromDataset.paging($P.ctrl.dataset, obj, $P.find("dataPaging"), $P.find("dataPagingInfo"));
};
}
// 현재 선택 자료 변경 이벤트
$P.ctrl.onCurrentChange = (item) => {
@ -353,13 +354,13 @@
let key = item.data.LEVY_EXCL_ID;
$P.$find("tbodyList").setCurrentRow(key);
};
}
// 선택(체크) 변경 이벤트
$P.ctrl.onSelectionChange = (selected) => {
Apply.fromDataset.gridCheckbox($P.ctrl.dataset, $P.find("tbodyList"), 1, selected);
Apply.fromDataset.gridButton($P.ctrl.dataset, $P.find("btnRemove"), selected); // 삭제 버튼
};
}
// 상세정보 dialog
$P.ctrl.getInfo = (params) => {
@ -424,7 +425,7 @@
$P.renderList = (totalSize, option) => {
let dataList = $P.ctrl.dataset;
let empty = dataList.empty;
let clsForTask = $P.$find("taskSeCd").val().toLowerCase(); // 소문자
let clsForTask = $P.$find("frmSearch").find("[name='taskSeCd']:checked").val().toLowerCase();
// 업무별 DataTables(그리드) tr, td
let foundContent = $P.find("tmpltRows").content;
@ -482,13 +483,13 @@
// 개별총정보 dialog
let crdnId = $P.ctrl.getValue("CRDN_ID");
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
if (!crdnId) return;
let params = {
callControlName: "pageObject['${pageName}'].ctrl"
, sggCd: $P.ctrl.getValue("SGG_CD")
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD")
, crdnId: crdnId
, crdnId: $P.ctrl.getValue("CRDN_ID")
}
ajax.get({
@ -536,7 +537,7 @@
// 서버에 전송할 data(파라미터) 생성
let params = {
sggCd: $P.$find("sggCd").val() // 시군구 코드
, taskSeCd: $P.$find("taskSeCd").val() // 업무 구분 코드
, taskSeCd: $P.$find("frmSearch").find("[name='taskSeCd']:checked").val() // 업무 구분 코드
, levyExclIds: selected.join(",") // 부과 제외 IDs
, btnTitle: obj.btnTitle // 버튼 title
, delRsn: obj.reason // 삭제 사유
@ -549,13 +550,10 @@
* 버튼 clickEvent
**************************************************************************/
// 초기화 버튼 이벤트
$P.fnReset = () => {
$P.fnReset = (taskSeCd) => {
// 화면 초기화
$P.find("frmSearch").reset();
// dataset 초기화
$P.ctrl.dataset.clear();
// input, select 초기화
let searchForm = $P.$find("frmSearch");
searchForm.find("input[type='radio']").not("[name='taskSeCd']").prop("checked", false);
@ -564,24 +562,39 @@
searchForm.find("input[type='hidden']").val("");
searchForm.find("select").each(function(){ $(this).find("option:eq(0)").prop("selected", true); });
// 최고 관리자인지 권한을 확인하여 업무구분을 선택할 수 있도록 하자 -> 수정 필요
$P.$find("frmSearch").find("input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
});
initDatepicker($P.find("frmSearch")); // 달력 초기화
initDetailSearchButton($P.find("frmSearch")); // 상세검색 버튼 화살표
// 기본 데이터 설정
$P.$find("byOutput").val("동적 검색"); // 동적 검색
$P.$find("schRgtrNm").prop("readonly", true); // 사용자 이름
$P.$find("sggCd").val("${sggCd}"); // 시군구 코드
if (taskSeCd) {
$P.$find("frmSearch").find("input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
}
$P.$find("schLevyExclYmdFrom").datepicker('setDate', DateUtil.getDateDay(-7).date); // 부과 제외 일자 시작
$P.$find("schLevyExclYmdTo").datepicker('setDate', TODAY()); // 부과 제외 일자 종료
$P.$find("byOutput").val("동적 검색"); // 동적 검색
$P.$find("schRgtrNm").prop("readonly", true); // 사용자 이름
// dataset 초기화
$P.ctrl.dataset.clear();
}
// 업무 구분 변경 이벤트
$P.fnResetAndChangeBiz = (taskSeCd) => {
// 초기화
$P.fnReset();
// 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
if (!taskSeCd) {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
}
$P.$find("frmSearch").find("input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 초기화
$P.fnReset(taskSeCd);
// 업무구분에 따른 URL 설정
$P.ctrl.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do");
@ -666,11 +679,11 @@
let levyExclId = $P.ctrl.getValue("LEVY_EXCL_ID");
// 부과제외 ID 가 없다면.. return
if (typeof levyExclId == "undefined" || levyExclId == null || levyExclId == "") return;
if (!levyExclId) return;
let params = {
callPurpose: "update" // 호출용도: 수정
, btnTitle: btnTitle // 버튼 title
btnTitle: btnTitle // 버튼 title
, callPurpose: "update" // 호출용도: 수정
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, levyExclId: $P.ctrl.getValue("LEVY_EXCL_ID") // 부과제외 ID
@ -767,11 +780,8 @@
// 1. 이벤트 설정
$P.setEvent();
// 2. 초기 설정
initDatepicker($P.find("frmSearch")); // 달력 초기화
initDetailSearchButton($P.find("frmSearch")); //
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); // 초기 설정 및 업무 구분 변경
// 2. 초기 설정 및 업무 구분 변경
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
// 3. 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));

@ -20,17 +20,17 @@
<!-- 단속일시 -->
<div class="col-md-12">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="crdnYmdTm">단속일시</label>
<input is="id-input" type="text" class="form-control w-px-160" name="crdnYmdTm" data-map="CRDN_YMD_TM" data-fmt-type="dt" />
<input is="id-input" type="text" class="form-control w-px-160" name="crdnYmdTm" data-map="CRDN_YMD_TM" data-fmt-type="dt" readonly />
</div>
<!-- 차량번호 -->
<div class="col-md-12">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="vhrno">차량번호</label>
<input is="id-input" type="text" class="form-control w-px-120" name="vhrno" data-map="VHRNO" autocomplete="off" />
<input is="id-input" type="text" class="form-control w-px-120" name="vhrno" data-map="VHRNO" autocomplete="off" readonly />
</div>
<!-- 부과 제외 구분 -->
<div class="col-md-12">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="levyExclSeNm">부과제외구분</label>
<input is="id-input" type="text" class="form-control w-px-120" name="levyExclSeNm" autocomplete="off" />
<input is="id-input" type="text" class="form-control w-px-120" name="levyExclSeNm" autocomplete="off" readonly />
<input type="hidden" name="levyExclSeCd" data-map="LEVY_EXCL_SE_CD" />
</div>
<!-- 부과 제외 일자 -->
@ -53,7 +53,7 @@
<!-- 기타 내용 -->
<div class="col-md-12">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="etcCn">기타 내용</label>
<textarea is="id-textarea" type="text" class="form-control w-70" name="etcCn" data-map="ETC_CN" autocomplete="off" rows="3" data-maxlengthb="1000"></textarea>
<textarea is="id-textarea" class="form-control w-70" name="etcCn" data-map="ETC_CN" autocomplete="off" rows="3" data-maxlengthb="1000"></textarea>
</div>
</div>
</form>
@ -64,7 +64,7 @@
<span class="container-page-btn">
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-80" name="btnSave" title="저장">
<button type="button" class="btn btn-primary w-px-120" name="btnSave" title="저장">
저장
</button>
</span>
@ -239,11 +239,6 @@
initDatepicker($P.find("frmEdit"));
$P.$find("levyExclYmd").datepicker("setDate", TODAY());
// 화면 활성화 설정
$P.$find("crdnYmdTm").prop("readonly", true); // 단속 일시
$P.$find("vhrno").prop("readonly", true); // 차량번호
$P.$find("levyExclSeNm").prop("readonly", true); // 부과 제외 구분
// View로 호출되었을때 disabled 셋팅
if ($P.callPurpose == "view") {
// input 요소들을 disabled

File diff suppressed because it is too large Load Diff

@ -4,50 +4,50 @@
<c:set var="prefixName" scope="request">의견제출 상세 정보</c:set>
<!-- inner page html -->
<div class="content-pop">
<div class="content-pop" data-doctx="${pageName}">
<!-- Content -->
<div class="container flex-grow-1 px-0">
<div class="card">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<form name="frmEdit">
<!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="opnnId--${pageName}" name="opnnId" data-map="OPNN_ID" />
<input type="hidden" name="sggCd" data-map="SGG_CD" />
<input type="hidden" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" name="opnnId" data-map="OPNN_ID" />
<div class="row g-1">
<!-- 단속일시 -->
<div class="col-md-4">
<label for="crdnYmdTm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속일시</label>
<input type="text" class="form-control w-50" id="crdnYmdTm--${pageName}" name="crdnYmdTm" data-map="CRDN_YMD_TM" data-fmt-type="dt" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="crdnYmdTm">단속일시</label>
<input is="id-input" type="text" class="form-control w-50" name="crdnYmdTm" data-map="CRDN_YMD_TM" data-fmt-type="dt" readonly />
</div>
<!-- 차량번호 -->
<div class="col-md-4">
<label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label>
<input type="text" class="form-control w-40" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="vhrno">차량번호</label>
<input is="id-input" type="text" class="form-control w-45" name="vhrno" data-map="VHRNO" readonly />
</div>
<!-- 납부자 명 -->
<div class="col-md-4">
<label for="rtpyrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부자</label>
<input type="text" class="form-control w-55" id="rtpyrNm--${pageName}" name="rtpyrNm" data-map="RTPYR_NM" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rtpyrNm">납부자</label>
<input is="id-input" type="text" class="form-control w-55" name="rtpyrNm" data-map="RTPYR_NM" readonly />
</div>
<!-- 접수 번호 -->
<div class="col-md-4">
<label for="rcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수번호</label>
<input type="text" class="form-control w-40" id="rcptNo--${pageName}" name="rcptNo" data-map="RCPT_NO" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcptNo">접수번호</label>
<input is="id-input" type="text" class="form-control w-40" name="rcptNo" data-map="RCPT_NO" />
</div>
<!-- 접수 일자 -->
<div class="col-md-4">
<label for="rcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">접수일자</label>
<input type="text" class="form-control form-date" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD"
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="rcptYmd">접수일자</label>
<input is="id-input" type="text" class="form-control form-date" name="rcptYmd" data-map="RCPT_YMD"
data-fmt-type="day" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-lg bx-calendar bg-white" id="btnRcptYmd--${pageName}"></button>
</div>
<!-- 접수 구분 -->
<div class="col-md-4">
<label for="rcptSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">접수구분</label>
<select class="form-select" id="rcptSeCd--${pageName}" name="rcptSeCd" data-map="RCPT_SE_CD" required>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="rcptSeCd">접수구분</label>
<select is="id-select" class="form-select" name="rcptSeCd" data-map="RCPT_SE_CD" required>
<option value="">선택하세요</option>
<c:forEach items="${FIM029List}" var="item">
<option value="${item.code}">${item.value}</option>
@ -56,21 +56,21 @@
</div>
<!-- 진술자 이름 -->
<div class="col-md-4">
<label for="sttrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">성명</label>
<input type="text" class="form-control w-35" id="sttrNm--${pageName}" name="sttrNm" data-map="STTR_NM" required />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnSearchPayer--${pageName}" title="납부자 정보 적용">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="sttrNm">성명</label>
<input is="id-input" type="text" class="form-control w-35" name="sttrNm" data-map="STTR_NM" required />
<button type="button" class="btn btn-sm btn-outline-dark" name="btnSearchPayer" title="납부자 정보 적용">
납부자
</button>
</div>
<!-- 진술자 생년월일 -->
<div class="col-md-4">
<label for="sttrBrdt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">생년월일</label>
<input type="text" class="form-control w-30" id="sttrBrdt--${pageName}" name="sttrBrdt" data-map="STTR_BRDT" placeholder="YYMMDD" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrBrdt">생년월일</label>
<input is="id-input" type="text" class="form-control w-30" name="sttrBrdt" data-map="STTR_BRDT" placeholder="YYMMDD" />
</div>
<!-- 소유주 관계 구분 코드 -->
<div class="col-md-4">
<label for="ownrRelCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">소유주관계</label>
<select class="form-select" id="ownrRelCd--${pageName}" name="ownrRelCd" data-map="OWNR_REL_CD">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="ownrRelCd">소유주관계</label>
<select is="id-select" class="form-select" name="ownrRelCd" data-map="OWNR_REL_CD" required>
<option value="">선택하세요</option>
<c:forEach items="${FIM032List}" var="item">
<option value="${item.code}">${item.value}</option>
@ -79,37 +79,37 @@
</div>
<!-- 진술자 주소 --><!-- 진술자 우편번호 -->
<div class="col-md-12">
<label for="sttrAddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">주소</label>
<input type="text" class="form-control w-70" id="sttrAddr--${pageName}" name="sttrAddr" data-map="STTR_ADDR" />
<input type="text" class="form-control w-px-75" id="sttrZip--${pageName}" name="sttrZip" data-map="STTR_ZIP" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnSearchAddr--${pageName}" title="주소 검색">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrAddr">주소</label>
<input is="id-input" type="text" class="form-control w-70" name="sttrAddr" data-map="STTR_ADDR" />
<input is="id-input" type="text" class="form-control w-px-75" name="sttrZip" data-map="STTR_ZIP" />
<button type="button" class="btn btn-sm btn-outline-dark" name="btnSearchAddr" title="주소 검색">
검색
</button>
</div>
<!-- 진술자 상세주소 -->
<div class="col-md-12">
<label for="sttrDaddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세주소</label>
<input type="text" class="form-control w-85" id="sttrDaddr--${pageName}" name="sttrDaddr" data-map="STTR_DADDR" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrDaddr">상세주소</label>
<input is="id-input" type="text" class="form-control w-85" name="sttrDaddr" data-map="STTR_DADDR" />
</div>
<!-- 진술자 연락처 -->
<div class="col-md-4">
<label for="sttrCttpc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">연락처</label>
<input type="text" class="form-control w-45" id="sttrCttpc--${pageName}" name="sttrCttpc" data-map="STTR_CTTPC" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrCttpc">연락처</label>
<input is="id-input" type="text" class="form-control w-45" name="sttrCttpc" data-map="STTR_CTTPC" />
</div>
<!-- 진술자 이메일 -->
<div class="col-md-8">
<label for="sttrEml--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">이메일</label>
<input type="text" class="form-control w-40" id="sttrEml--${pageName}" name="sttrEml" data-map="STTR_EML" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrEml">이메일</label>
<input is="id-input" type="text" class="form-control w-40" name="sttrEml" data-map="STTR_EML" />
</div>
<!-- 의견 제출 내용 -->
<div class="col-md-12">
<label for="opnnSbmsnCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출내용</label>
<textarea type="text" class="form-control w-85" id="opnnSbmsnCn--${pageName}" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="5" data-maxlengthb="4000"></textarea>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="opnnSbmsnCn">의견제출내용</label>
<textarea is="id-textarea" type="text" class="form-control w-85" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="5" data-maxlengthb="4000"></textarea>
</div>
<!-- 의견 제출 구분 코드 -->
<div class="col-md-12">
<label for="opnnSbmsnSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">의견제출구분</label>
<select class="form-select" id="opnnSbmsnSeCd--${pageName}" name="opnnSbmsnSeCd" data-map="OPNN_SBMSN_SE_CD" required>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="opnnSbmsnSeCd">의견제출구분</label>
<select is="id-select" class="form-select" name="opnnSbmsnSeCd" data-map="OPNN_SBMSN_SE_CD" required>
<option value="">선택하세요</option>
<c:forEach items="${FIM033List}" var="item">
<option value="${item.code}">${item.value}</option>
@ -118,14 +118,13 @@
</div>
<!-- 의견 제출 요지 -->
<div class="col-md-12">
<label for="opnnSbmsnGist--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출요지</label>
<input type="text" class="form-control w-85" id="opnnSbmsnGist--${pageName}" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="opnnSbmsnGist">의견제출요지</label>
<input is="id-input" type="text" class="form-control w-85" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" />
</div>
<!-- 담당자 검토 의견 -->
<div class="col-md-12">
<label for="picRvwOpnn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">검토의견</label>
<textarea class="form-control w-85" id="picRvwOpnn--${pageName}" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="3" data-maxlengthb="1000">
</textarea>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="picRvwOpnn">검토의견</label>
<textarea is="id-textarea" class="form-control w-85" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="2" data-maxlengthb="1000"></textarea>
</div>
</div>
</form>
@ -133,17 +132,17 @@
<!-- 첨부 파일 -->
<div class="card">
<form id="frmFile--${pageName}" method="post" enctype="multipart/form-data" >
<input type="file" id="uploadFiles--${pageName}" name="uploadFiles" multiple="multiple" onchange="pageObject['${pageName}'].fnAddFiles(this);" hidden />
<form name="frmFile" method="post" enctype="multipart/form-data" >
<input type="file" name="uploadFiles" multiple="multiple" onchange="pageObject['${pageName}'].fnAddFiles(this);" hidden />
</form>
<div class="row g-1">
<div class="col-md-12">
<button type="button" class="btn btn-blue w-px-120" id="btnAddFile--${pageName}" title="첨부파일 추가">파일추가</button>
<button type="button" class="btn btn-blue w-px-120" name="btnAddFile" title="첨부파일 추가">파일추가</button>
</div>
</div>
<!-- 첨부 파일 테이블 -->
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped" id="fileList--${pageName}">
<table class="table table-bordered table-hover table-striped" name="fileList">
<thead>
<th class="text-center" style="width: 24px">No.</th>
<th class="text-center" style="width: 200px">파일번호</th>
@ -152,7 +151,7 @@
<th class="text-center" style="width: 120px">다운로드</th>
<th class="text-center" style="width: 120px">삭제</th>
</thead>
<tbody>
<tbody name="tbodyFileList">
</tbody>
</table>
</div> <!-- 첨부 파일 테이블 <div class="table-responsive"> -->
@ -164,7 +163,9 @@
<span class="container-page-btn">
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" id="btnSave--${pageName}" title="저장">저장</button>
<button type="button" class="btn btn-primary w-px-120" name="btnSave" title="저장">
저장
</button>
</span>
</span>
</div>
@ -179,7 +180,7 @@
/**************************************************************************
* Global Variable
**************************************************************************/
pageObject["${pageName}"] = {};
pageObject["${pageName}"] = newDoctxFinder("${pageName}");
/**************************************************************************
* script 진입
@ -191,43 +192,47 @@
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
$P.callPurpose = "${callPurpose}";
// FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
$P.formFields = new FimsFormFields($P.selector("frmEdit"));
// 파일 리스트
$P.fileListArr = new Array();
/**************************************************************************
* DatasetControl
**************************************************************************/
$P.control = new DatasetControl({
$P.ctrl = new DatasetControl({
prefix: "opnn"
, prefixName: "의견제출"
, keymapper: info => info ? info.OPNN_ID : ""
, dataGetter: obj => obj.${infoPrefix}Info
, dataGetter: obj => obj.info
});
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = (item) => {
$P.ctrl.onCurrentChange = (item) => {
if (!item) return;
// Dataset 셋팅
$P.formFields.set($P.control, item);
$P.formFields.set($P.ctrl, item);
// 업무구분에 따른 URL 변경
$P.fnSetURL(item.data.TASK_SE_CD);
let key = item.data.OPNN_ID;
// 호출용도가 등록..
if ($P.callPurpose == "create") {
$("#rcptYmd--${pageName}").datepicker("setDate", new Date());
$P.$find("rcptYmd").datepicker("setDate", TODAY());
} else {
$P.fnSearchFileList(item.data.OPNN_ID); // 첨부파일 조회
// 첨부파일 조회
if (key != null) { $P.fnSearchFileList(key); }
}
}
// 저장 callback
$P.control.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog--${openerPageName}").find("h5.modal-title").html();
$P.ctrl.onSave = (resp) => {
let dialogTitle = $("#" + $P.selfDlgId()).find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력
@ -235,18 +240,19 @@
content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
, onClose: () => {
if (resp.saved) {
// 폼을 리셋해서 uploadFiles에 출력된 선택 파일을 초기화시킨다.
document.getElementById("frmFile--${pageName}").reset();
$P.find("frmFile").reset();
dialog.close($P.control.prefix + "Dialog--${openerPageName}");
dialog.close($P.selfDlgId());
}
}
});
}
// 저장
$P.control.save = (info) => {
$P.ctrl.save = (info) => {
if (!info) return;
let create = ($P.callPurpose == "create");
@ -262,11 +268,11 @@
}
ajax.post({
url: !create ? $P.control.urls.update : $P.control.urls.create
url: !create ? $P.ctrl.urls.update : $P.ctrl.urls.create
, data: formData
, contentType: false
, processData: false
, success: resp => $P.control.onSave(resp)
, success: (resp) => { $P.ctrl.onSave(resp); }
});
}
@ -275,45 +281,45 @@
**************************************************************************/
// 업무구분에 따른 url 변경
$P.fnSetURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/create.do"); // 등록
$P.control.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/update.do"); // 수정
$P.ctrl.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/create.do"); // 등록
$P.ctrl.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/update.do"); // 수정
}
// 주소 검색 결과 callback
$P.callbackSearchAddr = (obj) => {
$("#sttrAddr--${pageName}").val(obj.ADDR); // 주소
$("#sttrZip--${pageName}").val(obj.ZIP); // 우편번호
$("#sttrDaddr--${pageName}").val(obj.DTL_ADDR); // 상세 주소
$P.$find("sttrAddr").val(obj.ADDR); // 주소
$P.$find("sttrZip").val(obj.ZIP); // 우편번호
$P.$find("sttrDaddr").val(obj.DTL_ADDR); // 상세 주소
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 납부자 정보를 진술자 정보로 입력한다.
$P.fnSearchPayer = (title) => {
$("select[name='ownrRelCd'] option:contains('본인')").attr("selected", "selected");
$("#sttrNm--${pageName}").val($P.control.getValue("RTPYR_NM"));
$("#sttrBrdt--${pageName}").val($P.control.getValue("RTPYR_BRDT"));
$("#sttrAddr--${pageName}").val($P.control.getValue("ADDR"));
$("#sttrZip--${pageName}").val($P.control.getValue("ZIP"));
$("#sttrDaddr--${pageName}").val($P.control.getValue("DTL_ADDR"));
if ($P.control.getValue("RTPYR_MBL_TELNO") != "")
$("#sttrCttpc--${pageName}").val($P.control.getValue("RTPYR_MBL_TELNO"));
$P.fnSearchPayer = (btnTitle) => {
$P.$find("frmEdit").find("[name='ownrRelCd'] option:contains('본인')").prop("selected", true);
$P.$find("sttrNm").val($P.ctrl.getValue("RTPYR_NM"));
$P.$find("sttrBrdt").val($P.ctrl.getValue("RTPYR_BRDT"));
$P.$find("sttrAddr").val($P.ctrl.getValue("ADDR"));
$P.$find("sttrZip").val($P.ctrl.getValue("ZIP"));
$P.$find("sttrDaddr").val($P.ctrl.getValue("DTL_ADDR"));
if ($P.ctrl.getValue("RTPYR_MBL_TELNO") != "")
$P.$find("sttrCttpc").val($P.ctrl.getValue("RTPYR_MBL_TELNO"));
else
$("#sttrCttpc--${pageName}").val($P.control.getValue("RTPYR_TELNO"));
$P.$find("sttrCttpc").val($P.ctrl.getValue("RTPYR_TELNO"));
$("#sttrEml--${pageName}").val($P.control.getValue("RTPYR_EML"));
$P.$find("sttrEml").val($P.ctrl.getValue("RTPYR_EML"));
}
// 주소 검색
$P.fnSearchAddr = async(title) => {
$P.fnSearchAddr = async(btnTitle) => {
let resp = await fetch(wctx.url("/resources/html/searchAddr.html"));
let template = await resp.text();
dialog.open({
id: "searchAddrDialog"
, title: title
, title: btnTitle
, size: "lg"
, content: template
, init: () => {
@ -326,8 +332,16 @@
// 첨부파일 조회
$P.fnSearchFileList = (opnnId) => {
let tableFileList = $P.find("fileList"); // table element 찾기
let fileLength = tableFileList.rows.length;
// 기존 table에 자료가 존재하면 tableRow 삭제
for (let iLoop = 1; iLoop < fileLength; iLoop++) {
tableFileList.deleteRow(1); // table 행(Row) 삭제
}
// 의견제출 등록일 경우에는 첨부파일을 조회하지 안는다..
if (opnnId == null || opnnId == "") return;
if (!opnnId) return;
// 첨부파일 리스트
ajax.get({
@ -337,7 +351,7 @@
, infoKeys: opnnId
, fetchSize: 0
}
, success: resp => {
, success: (resp) => {
let fileNo = 0;
let fileList = resp.fileList;
@ -356,7 +370,7 @@
innerHtml += "pageObject['${pageName}'].fnFileRemove(this);" + "><i class='bx bx-trash me-1'></i></button>" + "</td>";
innerHtml += "</tr>";
$("#fileList--${pageName} > tbody:last").append(innerHtml);
$P.$find("tbodyFileList").append(innerHtml);
});
}
});
@ -364,10 +378,10 @@
// 첨부파일 등록
$P.fnAddFiles = (obj) => {
let fileNo = $("#fileList--${pageName} > tbody tr").length; // table의 tr 개수
let maxFileCnt = 3; // 첨부파일 최대 개수
let attFileCnt = obj.files.length; // 선택한 파일 개수 + 기존 파일 개수
let tableFileList = $P.find("fileList"); // table element 찾기
let fileNo = tableFileList.rows.length - 1; // table에 있는 파일 갯수 (첫번째 title은 제외하기 위해서 -1 처리)
let maxFileCnt = 3; // 의견제출에 등록 할 수 있는 첨부 파일 최대 개수
let attFileCnt = obj.files.length; // 선택한 파일의 개수
let fileArr = new Array(); // 파일 배열
fileArr = $P.fileListArr;
@ -376,6 +390,8 @@
if (attFileCnt + fileNo > maxFileCnt) {
dialog.alert({
content : "첨부파일은 최대 " + maxFileCnt + "개 까지 첨부 가능합니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;
}
@ -397,7 +413,7 @@
innerHtml += "pageObject['${pageName}'].fnFileRemove(this);" + "><i class='bx bx-trash me-1'></i></button>" + "</td>";
innerHtml += "</tr>";
$("#fileList--${pageName} > tbody:last").append(innerHtml);
$P.$find("tbodyFileList").append(innerHtml);
fileArr.push(obj.files[iLoop]);
}
@ -410,19 +426,21 @@
, onOK: () => {
let tr = $(obj).parent().parent(); // 클릭한 버튼이 속한 tr 요소
let td = tr.children();
let fileNo = td.eq(0).text(); // 삭제할 파일 번호
let fileId = td.eq(1).text();
let fileId = td.eq(1).text(); // 삭제할 파일번호
let fileName = td.eq(2).text(); // 삭제할 파일이름
if (fileId != null && fileId != "") {
ajax.post({
url: "file/remove.do"
, data: { fileIDs : fileId }
, success: resp => { // 성공
}
, data: { fileIDs: fileId }
, success: (resp) => { }
});
} else {
// 배열에서 삭제한다. 배열은 0부터 시작하기 때문에 -1 해준다.
$P.fileListArr.splice(fileNo - 1);
let filtered = $P.fileListArr.filter((value, index, arr) => {
return (value.name != fileName);
});
$P.fileListArr = filtered;
}
$(obj).closest("tr").remove(); // table 에서 제거
@ -438,14 +456,12 @@
// 저장
$P.fnSave = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
if (!customValidate($P.$find("frmEdit").find("input,select,textarea"))) return;
dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
content: "현재 " + $P.ctrl.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK: () => {
$P.control.save($P.formFields.get()); // formFields
}
, onOK: () => { $P.ctrl.save($P.formFields.get()); } // formFields
});
}
@ -455,53 +471,50 @@
// 이벤트 설정
$P.setEvent = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmEdit--${pageName}").find(".form-date").each(function() {
$(this).on("input",function() {
$P.$find("frmEdit").find(".form-date").each(function() {
$(this).on("input", function() {
let value = this.value.replaceAll("-", "");
if (value.length > 7) {
this.value = value.substring(0,4) + "-" + value.substring(4,6) + "-" + value.substring(6);
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);
this.value = value.substring(0, 4) + "-" + value.substring(4);
}
});
});
// 버튼 이벤트
$("#btnSearchPayer--${pageName}").on("click", function() { // 납부자 정보 조회 버튼 이벤트
$P.fnSearchPayer($(this).attr("title"));
$P.$find("btnSearchPayer").on("click", function() {
$P.fnSearchPayer($(this).attr("title")); // 납부자 정보 조회 버튼 이벤트
});
$("#btnSearchAddr--${pageName}").on("click", function() { // 주소 검색 버튼 이벤트
$P.fnSearchAddr($(this).attr("title"));
$P.$find("btnSearchAddr").on("click", function() {
$P.fnSearchAddr($(this).attr("title")); // 주소 검색 버튼 이벤트
});
$("#btnAddFile--${pageName}").on('click', () => $("#uploadFiles--${pageName}").trigger("click")); // 파일 등록 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장 버튼 이벤트
$P.$find("btnAddFile").on("click", () => $P.$find("uploadFiles").trigger("click")); // 파일 등록 버튼 이벤트
$P.$find("btnSave").on("click", () => { $P.fnSave() }); // 저장
}
// 초기 화면 설정
$P.initForm = () => {
// 달력 초기화
initDatepicker("frmEdit--${pageName}");
$("#rcptYmd--${pageName}").datepicker("setDate", new Date());
// 화면 초기화
$P.find("frmEdit").reset();
// 화면 활성화 설정
$("#vhrno--${pageName}").prop("readonly", true); // 차량번호
$("#crdnYmdTm--${pageName}").prop("readonly", true); // 단속 일자
$("#rtpyrNm--${pageName}").prop("readonly", true); // 납부자 명
// 달력 초기화
initDatepicker($P.find("frmEdit"));
$P.$find("rcptYmd").datepicker("setDate", TODAY());
// View로 호출
// View로 호출되었을때 disabled 셋팅
if ($P.callPurpose == "view") {
// input 요소들을 disabled
$("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true);
$P.$find("frmEdit").find("input,textarea,select").prop("disabled", true);
// button 요소들을 disabled
$("#btnRcptYmd--${pageName}").prop("disabled", true); // 접수 일자 달력 버튼
$("#btnSearchPayer--${pageName}").prop("disabled", true); // 납부자 버튼
$("#btnSearchAddr--${pageName}").prop("disabled", true); // 우편번호 버튼
$("#btnAddFile--${pageName}").prop("disabled", true); // 파일 추가 버튼
$("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼
$P.$find("btnRcptYmd").prop("disabled", true); // 접수 일자 달력 버튼
$P.$find("btnSearchPayer").prop("disabled", true); // 납부자 버튼
$P.$find("btnSearchAddr").prop("disabled", true); // 우편번호 버튼
$P.$find("btnAddFile").prop("disabled", true); // 파일 추가 버튼
$P.$find("btnSave").prop("disabled", true); // 저장 버튼
} else if ($P.callPurpose == "create") {
$("#rcptNo--${pageName}").prop("readonly", true); // 접수 번호
$("#rcptYmd--${pageName}").datepicker("setDate", new Date()); // 접수 일자
$P.$find("rcptNo").prop("readonly", true); // 접수 번호
}
}
@ -515,7 +528,7 @@
$P.initForm();
// 3. Dataset 설정
$P.control.setData([${opnnSbmsnInfo}]);
$P.ctrl.setData([${info}]);
});
</script>

@ -1,97 +1,97 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">의견제출 심의위원 상세 정보</c:set>
<c:set var="prefixName" scope="request">의견제출 심의 위원 정보</c:set>
<!-- inner page html -->
<div class="content-pop">
<div class="content-pop" data-doctx="${pageName}">
<!-- Content -->
<div class="container flex-grow-1 px-0">
<div class="card">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<form name="frmEdit">
<!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="mngId--${pageName}" name="mngId" data-map="MNG_ID" />
<input type="hidden" name="sggCd" data-map="SGG_CD" />
<input type="hidden" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" name="mngId" data-map="MNG_ID" />
<div class="row g-1">
<!-- 1 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd1--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원1</label>
<label for="dlbrMbrJbgd1--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd1--${pageName}" name="dlbrMbrJbgd1" data-map="DLBR_MBR_JBGD1" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원1</label>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd1">직급</label>
<input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd1" data-map="DLBR_MBR_JBGD1" />
</div>
<!-- 1 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm1--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm1--${pageName}" name="dlbrMbrNm1" data-map="DLBR_MBR_NM1" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm1">성명</label>
<input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm1" data-map="DLBR_MBR_NM1" />
</div>
<!-- 2 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd2--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원2</label>
<label for="dlbrMbrJbgd2--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd2--${pageName}" name="dlbrMbrJbgd2" data-map="DLBR_MBR_JBGD2" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원2</label>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd2">직급</label>
<input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd2" data-map="DLBR_MBR_JBGD2" />
</div>
<!-- 2 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm2--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm2--${pageName}" name="dlbrMbrNm2" data-map="DLBR_MBR_NM2" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm2">성명</label>
<input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm2" data-map="DLBR_MBR_NM2" />
</div>
<!-- 3 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd3--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원3</label>
<label for="dlbrMbrJbgd3--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd3--${pageName}" name="dlbrMbrJbgd3" data-map="DLBR_MBR_JBGD3" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원3</label>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd3">직급</label>
<input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd3" data-map="DLBR_MBR_JBGD3" />
</div>
<!-- 3 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm3--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm3--${pageName}" name="dlbrMbrNm3" data-map="DLBR_MBR_NM3" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm3">성명</label>
<input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm3" data-map="DLBR_MBR_NM3" />
</div>
<!-- 4 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd4--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원4</label>
<label for="dlbrMbrJbgd4--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd4--${pageName}" name="dlbrMbrJbgd4" data-map="DLBR_MBR_JBGD4" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원4</label>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd4">직급</label>
<input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd4" data-map="DLBR_MBR_JBGD4" />
</div>
<!-- 4 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm4--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm4--${pageName}" name="dlbrMbrNm4" data-map="DLBR_MBR_NM4" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm4">성명</label>
<input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm4" data-map="DLBR_MBR_NM4" />
</div>
<!-- 5 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd5--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원5</label>
<label for="dlbrMbrJbgd5--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd5--${pageName}" name="dlbrMbrJbgd5" data-map="DLBR_MBR_JBGD5" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원5</label>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd5">직급</label>
<input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd5" data-map="DLBR_MBR_JBGD5" />
</div>
<!-- 5 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm5--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm5--${pageName}" name="dlbrMbrNm5" data-map="DLBR_MBR_NM5" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm5">성명</label>
<input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm5" data-map="DLBR_MBR_NM5" />
</div>
<!-- 6 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd6--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원6</label>
<label for="dlbrMbrJbgd6--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd6--${pageName}" name="dlbrMbrJbgd6" data-map="DLBR_MBR_JBGD6" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원6</label>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd6">직급</label>
<input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd6" data-map="DLBR_MBR_JBGD6" />
</div>
<!-- 6 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm6--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm6--${pageName}" name="dlbrMbrNm6" data-map="DLBR_MBR_NM6" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm6">성명</label>
<input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm6" data-map="DLBR_MBR_NM6" />
</div>
<!-- 7 직급 -->
<div class="col-md-7">
<label for="dlbrMbrJbgd7--${pageName}" class="w-px-70 bg-lighter pe-2 col-form-label text-sm-end">심의위원7</label>
<label for="dlbrMbrJbgd7--${pageName}" class="w-px-40 bg-lighter pe-2 col-form-label text-sm-end">직급</label>
<input type="text" class="form-control w-50" id="dlbrMbrJbgd7--${pageName}" name="dlbrMbrJbgd7" data-map="DLBR_MBR_JBGD7" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-70 text-sm-end">심의위원7</label>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-40 text-sm-end" for="dlbrMbrJbgd7">직급</label>
<input is="id-input" type="text" class="form-control w-50" name="dlbrMbrJbgd7" data-map="DLBR_MBR_JBGD7" />
</div>
<!-- 7 회원명 -->
<div class="col-md-5">
<label for="dlbrMbrNm7--${pageName}" class="w-px-60 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-60" id="dlbrMbrNm7--${pageName}" name="dlbrMbrNm7" data-map="DLBR_MBR_NM7" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-60 text-sm-end" for="dlbrMbrNm7">성명</label>
<input is="id-input" type="text" class="form-control w-60" name="dlbrMbrNm7" data-map="DLBR_MBR_NM7" />
</div>
</div>
</form>
@ -102,7 +102,7 @@
<span class="container-page-btn">
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장">
<button type="button" class="btn btn-primary w-px-80" name="btnSave" title="저장">
저장
</button>
</span>
@ -119,7 +119,7 @@
/**************************************************************************
* Global Variable
**************************************************************************/
pageObject["${pageName}"] = {};
pageObject["${pageName}"] = newDoctxFinder("${pageName}");
/**************************************************************************
* script 진입
@ -129,34 +129,35 @@
let $P = pageObject["${pageName}"];
// FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
$P.formFields = new FimsFormFields($P.selector("frmEdit"));
/**************************************************************************
* DatasetControl
**************************************************************************/
$P.control = new DatasetControl({
$P.ctrl = new DatasetControl({
prefix: "opnnDlbrMbr"
, prefixName: "의견제출 심의위원 관리"
, prefixName: "의견제출 심의 위원 관리"
, keymapper: info => info ? info.MNG_ID : ""
, dataGetter: obj => obj.${infoPrefix}Info
, dataGetter: obj => obj.info
});
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => {
$P.ctrl.onCurrentChange = item => {
if (!item) return;
// Dataset 셋팅
$P.formFields.set($P.control, item);
$P.formFields.set($P.ctrl, item);
// 업무구분에 따른 URL 변경
$P.fnSetURL(item.data.TASK_SE_CD);
}
// 저장 callback
$P.control.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog--${openerPageName}").find("h5.modal-title").html();
$P.ctrl.onSave = (resp) => {
let dialogTitle = $("#" + $P.selfDlgId()).find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력
@ -164,23 +165,22 @@
content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
if (resp.saved) {
dialog.close($P.control.prefix + "Dialog--${openerPageName}");
, onClose: () => {
if (resp.saved) { dialog.close($P.selfDlgId()); }
}
});
}
// 저장
$P.control.save = (info) => {
$P.ctrl.save = (info) => {
if (!info) return;
let create = (info.mngId == "");
ajax.post({
url: !create ? $P.control.urls.update : $P.control.urls.create
url: !create ? $P.ctrl.urls.update : $P.ctrl.urls.create
, data: info || {}
, success: resp => $P.control.onSave(resp)
, success: (resp) => { $P.ctrl.onSave(resp); }
});
}
@ -189,8 +189,8 @@
**************************************************************************/
// 업무구분에 따른 URL 설정
$P.fnSetURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/create.do"); // 등록
$P.control.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/update.do"); // 수정
$P.ctrl.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/create.do"); // 등록
$P.ctrl.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/update.do"); // 수정
}
/**************************************************************************
@ -199,14 +199,12 @@
// 저장
$P.fnSave = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
if (!customValidate($P.$find("frmEdit").find("input,select,textarea"))) return;
dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
content: "현재 " + $P.ctrl.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK: () => {
$P.control.save($P.formFields.get()); // formFields
}
, onOK: () => { $P.ctrl.save($P.formFields.get()); } // formFields
});
}
@ -216,12 +214,13 @@
// 이벤트 설정
$P.setEvent = () => {
// 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장
$P.$find("btnSave").on("click", () => { $P.fnSave() }); // 저장
}
// 초기 화면 설정
$P.initForm = () => {
//
// 화면 초기화
$P.find("frmEdit").reset();
}
/**************************************************************************
@ -234,7 +233,7 @@
$P.initForm();
// 3. Dataset 설정
$P.control.setData([${opnnDlbrMbrInfo}]);
$P.ctrl.setData([${info}]);
});
</script>

@ -414,10 +414,10 @@
, size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});
@ -505,10 +505,10 @@
, size: "xl"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
});
}
@ -532,10 +532,10 @@
, size: "xl"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
});
}
@ -593,10 +593,10 @@
, size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});
@ -651,10 +651,10 @@
, size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});

@ -259,10 +259,10 @@
, size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});
@ -356,10 +356,10 @@
, size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});
@ -427,6 +427,7 @@
dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;
@ -453,6 +454,7 @@
dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;
@ -468,6 +470,7 @@
content: "[" + btnTitle + "]" + " 작업은 심의결과가 '접수', '자진취하' 자료만 삭제 가능합니다."
+ "<br>" + "심의결과 : " + opnnSbmsnSttsNm
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;
@ -508,6 +511,7 @@
dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;
@ -533,6 +537,7 @@
dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;
@ -548,6 +553,7 @@
content: "[" + btnTitle + "]" + " 작업은 단속상태가 '의견제출수용', '경찰서이첩', '부과 이전' 자료만 처리 가능합니다."
+ "<br>" + "단속상태 : " + crdnSttsNm
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;
@ -585,7 +591,7 @@
, infoKeys: opnnId
, fetchSize: 0
}
, success: resp => {
, success: (resp) => {
let fileNo = 0;
let fileList = resp.fileList;
@ -593,7 +599,6 @@
fileNo = index + 1;
let innerHtml = "";
innerHtml += "<tr>";
innerHtml += "<td class='text-center'>" + fileNo + "</td>";
innerHtml += "<td class='text-center'>" + item.FILE_ID + "</td>";

@ -301,10 +301,10 @@
, size: "md"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});

@ -346,10 +346,10 @@
, size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});
@ -420,10 +420,10 @@
, size: "md"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});
@ -661,6 +661,7 @@
dialog.alert({
content: "조회된 감경 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;
@ -741,6 +742,7 @@
dialog.alert({
content: "조회된 부과제외 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;
@ -768,6 +770,7 @@
dialog.alert({
content: "조회된 부과제외 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;

@ -385,10 +385,10 @@
, size: "md"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});

@ -293,10 +293,10 @@
, size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});
@ -306,7 +306,8 @@
// 수기 수납 취소 callback
$P.ctrlRcvmt.onSave = (params, resp) => {
let dialogTitle = $("#" + $P.ctrlRcvmt.prefix + "Dialog--${pageName}").find("h5.modal-title").html();
// let dialogTitle = $("#" + $P.ctrlRcvmt.prefix + "Dialog--${pageName}").find("h5.modal-title").html();
let dialogTitle = $("#" + $P.selfDlgId()).find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력
@ -516,6 +517,7 @@
content: "[" + btnTitle + "]" + " 작업은 rcvmtInptSeNm 구분이 '수기' 자료만 처리 가능합니다."
+ "<br>" + "수납입력구분 : " + crdnSttsNm
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
return;

@ -156,10 +156,10 @@
, size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});

Loading…
Cancel
Save