feat : 결과(통보)처리 다이얼로그 화면 추가
parent
f8a8b311ef
commit
3193469495
@ -0,0 +1,351 @@
|
||||
<%@ 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>
|
||||
|
||||
<!-- inner page html -->
|
||||
<div class="content-wrapper">
|
||||
<!-- Content -->
|
||||
<div class="container flex-grow-1 px-0">
|
||||
<!-- Page Body -->
|
||||
<div class="card">
|
||||
|
||||
<!-- 입력 영역 -->
|
||||
<form id="frmEdit--${pageName}" name="frmEdit">
|
||||
<!-- hidden -->
|
||||
<label for="bssh--${pageName}">마약류 취급업체 정보</label>
|
||||
<div class="row my-1 mx-4 g-1 border-card rounded-3">
|
||||
<div class="col-md-4">
|
||||
<label for="bsshNm--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">업체명</label>
|
||||
<input type="text" class="form-control w-60" id="bsshNm--${pageName}" name="bsshNm" data-map="bsshNm" readonly>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="bsshCd--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">식별번호</label>
|
||||
<input type="text" class="form-control w-60" id="bsshNm--${pageName}" name="bsshCd" data-map="bsshCd" readonly>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="rprsntvNm--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">업종명</label>
|
||||
<input type="text" class="form-control w-60" id="rindutyNm--${pageName}" name="rindutyNm" data-map="rindutyNm" readonly>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="prmisnNo--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">폐기사유</label>
|
||||
<input type="text" class="form-control w-60" id="dsusePrvCd--${pageName}" name="dsusePrvCd" data-map="dsusePrvCd" readonly>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="rndDtlRptCnt--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">보고건수</label>
|
||||
<input type="text" class="form-control w-60" id="rndDtlRptCnt--${pageName}" name="rndDtlRptCnt" data-map="rndDtlRptCnt" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row my-1 mx-1 g-1 border-card rounded"></div>
|
||||
<label for="bssh--${pageName}">폐기 공통 정보</label>
|
||||
<div class="row my-1 mx-4 g-1 border-card rounded-3">
|
||||
<div class="col-md-5">
|
||||
<label for="hdrDe--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">취급일자</label>
|
||||
<input type="text" class="form-control form-date" id="hdrDe--${pageName}" name="hdrDe" data-fmt-type="day" data-map="HDR_DE" autocomplete="off" title="종료 날짜 선택" />
|
||||
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<label for="dsuseDe--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">폐기일자</label>
|
||||
<input type="text" class="form-control form-date" id="dsuseDe--${pageName}" name="dsuseDe" data-fmt-type="day" data-map="DSUSE_DE" autocomplete="off" title="종료 날짜 선택" />
|
||||
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<label for="addr--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">폐기구분</label>
|
||||
<select class="form-select" id="schVltnCd--${pageName}" name="schVltnCd"><option value="">사고마약류(파손)</option><option value="01">사고마약류(변질,부패)</option><option value="02">유효기한 또는 사용기한 경과</option><option value="03">재고관리 또는 보관을 하기에 곤란한 사유(유효기한 임박)</option>
|
||||
<option value="1">보건소폐기</option>
|
||||
<option value="2">공무원임회</option>
|
||||
<option value="4">도난/분실/재해 발생 사고마약류</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<label for="dsuseMth--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">폐기방법</label>
|
||||
<select class="form-select" id="dsuseMth--${pageName}" name="dsuseMth"><option value="">사고마약류(파손)</option><option value="01">사고마약류(변질,부패)</option><option value="02">유효기한 또는 사용기한 경과</option><option value="03">재고관리 또는 보관을 하기에 곤란한 사유(유효기한 임박)</option>
|
||||
<option value="1">소각</option>
|
||||
<option value="2">중화</option>
|
||||
<option value="3">가수분해</option>
|
||||
<option value="4">산화</option>
|
||||
<option value="5">환원</option>
|
||||
<option value="6">희석</option>
|
||||
<option value="7">매몰</option>
|
||||
<option value="8">기타(파쇄,혼합)</option>
|
||||
<option value="9">사고(사고마약류중재해상실, 분실, 도난에의한경우)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="dsuseLoc--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">폐기장소</label>
|
||||
<input type="text" class="form-control w-60" id="dsuseLoc--${pageName}" name="dsuseLoc" data-map="DSUSE_LOC" readonly>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="dsuseImg--${pageName}" class="w-px-130 bg-lighter pe-2 col-form-label text-sm-end">폐기이미지</label>
|
||||
<input type="text" class="form-control w-60" id="dsuseImg--${pageName}" name="dsuseImg" data-map="DSUSE_IMG" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row my-1 mx-1 g-1 border-card rounded"></div>
|
||||
</form> <!-- /입력 영역 -->
|
||||
</div> <!-- <div class="card"> -->
|
||||
|
||||
<!-- 업무 버튼 표시 -->
|
||||
<div>
|
||||
<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>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<!-- / 업무 버튼 표시 -->
|
||||
|
||||
</div> <!-- / Content <div class="container flex-grow-1 px-0"> -->
|
||||
</div> <!-- / inner page html <div class="content-wrapper"> -->
|
||||
|
||||
<script>
|
||||
/**************************************************************************
|
||||
* Global Variable
|
||||
**************************************************************************/
|
||||
pageObject["${pageName}"] = {};
|
||||
|
||||
/**************************************************************************
|
||||
* script 진입
|
||||
**************************************************************************/
|
||||
$(document).ready(function() {
|
||||
// pageObject
|
||||
let $P = pageObject["${pageName}"];
|
||||
|
||||
// FormFields
|
||||
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl
|
||||
**************************************************************************/
|
||||
$P.control = new DatasetControl({
|
||||
urls : {
|
||||
load : wctx.url("/adds/nims/dsuseMgt-list.do")
|
||||
}
|
||||
, prefix: "dsuseMgt"
|
||||
, prefixName: "신청서접수"
|
||||
, keymapper: info => info ? info.DSCDMNG_ID : ""
|
||||
, dataGetter: obj => obj.dsuseMgtList
|
||||
, appendData: true
|
||||
, infoSize: "xl"
|
||||
, formats: {
|
||||
RPT_DE: dateFormat
|
||||
, HDR_DE: dateFormat
|
||||
, DSUSE_DE: dateFormat
|
||||
}
|
||||
});
|
||||
// $P.control 설정
|
||||
$P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
|
||||
$P.control.untilPageNum = 0; // 현재 페이지 번호
|
||||
$P.control.beforeCurrent = null;
|
||||
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl 이벤트
|
||||
**************************************************************************/
|
||||
// Dataset 변경 이벤트
|
||||
$P.control.onDatasetChange = (obj) => {
|
||||
|
||||
$P.renderList(obj.${infoPrefix}Total);
|
||||
$("#paging--${pageName}").setPaging({
|
||||
list: $P.control.dataset
|
||||
, prefix: "paging--${pageName}"
|
||||
, start: obj.dsuseMgtStart
|
||||
, totalSize: obj.dsuseMgtTotal
|
||||
, fetchSize: obj.dsuseMgtFetch
|
||||
, func: "pageObject['${pageName}'].control.load({index})"
|
||||
});
|
||||
|
||||
$P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
|
||||
};
|
||||
|
||||
// 현재 선택 자료 변경 이벤트
|
||||
$P.control.onCurrentChange = item => {
|
||||
if (!item) return;
|
||||
|
||||
// Dataset 셋팅
|
||||
$P.formFields.set($P.control, 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();
|
||||
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
|
||||
|
||||
// 메시지 출력
|
||||
dialog.alert({
|
||||
content: showMessage
|
||||
, init: () => { setDialogZindex(); }
|
||||
, onOK: () => { }
|
||||
});
|
||||
|
||||
if (resp.saved) {
|
||||
dialog.close($P.control.prefix + "Dialog--${openerPageName}");
|
||||
}
|
||||
}
|
||||
|
||||
$P.control.getBsshInfo = (gdccId) => {
|
||||
let dialogTitle = "마약류 취급자 조회";
|
||||
let params = {};
|
||||
|
||||
ajax.get({
|
||||
url : wctx.url("/adds/nims/bssh-main.do")
|
||||
, data : params || {}
|
||||
, success : resp => {
|
||||
dialog.open({
|
||||
id : "bsshMainDialog"
|
||||
, title : dialogTitle
|
||||
, content : resp
|
||||
, size : $P.control.infoSize
|
||||
, onClose : () => { $P.control.setData(); }
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 저장
|
||||
$P.control.save = (info) => {
|
||||
if (!info) return;
|
||||
|
||||
let create = (info.mngId == "");
|
||||
|
||||
ajax.post({
|
||||
url: !create ? $P.control.urls.update : $P.control.urls.create
|
||||
, data: info || {}
|
||||
, success: resp => $P.control.onSave(resp)
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* DataTables 이벤트
|
||||
**************************************************************************/
|
||||
// DataTables에 click, dbclick 이벤트
|
||||
$P.renderList = (totalSize) => {
|
||||
let ${infoPrefix}List = $P.control.dataset;
|
||||
let empty = ${infoPrefix}List.empty;
|
||||
|
||||
// 업무별 DataTables(그리드) tr, td
|
||||
let foundContent = document.getElementById("${infoPrefix}Row--${pageName}").content;
|
||||
let foundTr = $(foundContent).find("tr")[0].cloneNode(false);
|
||||
let foundTds = $(foundContent).find("td");
|
||||
|
||||
foundTds.each(function() {
|
||||
foundTr.appendChild(this.cloneNode(true));
|
||||
});
|
||||
|
||||
//
|
||||
let replacer = (str, dataItem) => str;
|
||||
// .replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("USR_RPT_ID_NO") + "');")
|
||||
// .replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("USR_RPT_ID_NO") + "');");
|
||||
|
||||
let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.outerHTML]
|
||||
: ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer);
|
||||
|
||||
let noMore = (totalSize == ${infoPrefix}List.length);
|
||||
let initScroll = ($P.control.query.pageNum < 2) && ($P.control.untilPageNum == 0);
|
||||
|
||||
$("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore);
|
||||
|
||||
if ($P.control.untilPageNum != 0) {
|
||||
$P.control.query.fetchSize = $P.control.defaultFetchSize;
|
||||
$P.control.query.pageNum = $P.control.untilPageNum;
|
||||
$P.control.untilPageNum = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
|
||||
$P.scrollDataList = () => {
|
||||
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false
|
||||
|
||||
$P.control.load($P.control.query.pageNum + 1);
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* 사용자 함수(function)
|
||||
**************************************************************************/
|
||||
// 업무구분에 따른 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.fnSearchBssh = (title) => {
|
||||
$P.control.getBsshInfo();
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* 버튼 clickEvent
|
||||
**************************************************************************/
|
||||
// 저장
|
||||
$P.fnSave = () => {
|
||||
// validate 확인
|
||||
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
|
||||
|
||||
dialog.alert({
|
||||
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
|
||||
, init: () => { setDialogZindex(); }
|
||||
, onOK: () => {
|
||||
$P.control.save($P.formFields.get()); // formFields
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* 초기 셋팅
|
||||
**************************************************************************/
|
||||
// 이벤트 설정
|
||||
$P.setEvent = () => {
|
||||
// 안내문 등록 버튼 이벤트
|
||||
$("#btnBsshSearch--${pageName}").on("click", function() {
|
||||
$P.fnSearchBssh($(this).attr("title"));
|
||||
});
|
||||
|
||||
// 버튼 이벤트
|
||||
$("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장
|
||||
}
|
||||
|
||||
|
||||
// DataTables width 변경 조정 (업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고)
|
||||
fnMakeResizableTable($("#table-responsive--${pageName}")[0]);
|
||||
|
||||
// DataTables 스크롤 이벤트 생성
|
||||
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList);
|
||||
|
||||
|
||||
// 초기 화면 설정
|
||||
$P.initForm = () => {
|
||||
// Dialog 마우스로 드래그 할 수 있도록 설정.
|
||||
fnMakeDraggableDialog(document.getElementById($P.control.prefix + "Dialog"));
|
||||
|
||||
// input, select 초기화
|
||||
let searchForm = $("#frmSearch--${pageName}");
|
||||
searchForm.find("input[type='checkbox']").prop("checked", false);
|
||||
searchForm.find("input[type='text']").val("");
|
||||
searchForm.find("input[type='hidden']").val("");
|
||||
searchForm.find("select").each(function() { $(this).find("option:eq(0)").prop("selected", true); });
|
||||
|
||||
// 기본 데이터 설정
|
||||
initDatepicker("frmEdit--${pageName}"); // 달력 초기화
|
||||
$("#schDateFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 부과 제외 일자 시작
|
||||
$("#schDateTo--${pageName}").datepicker("setDate", new Date()); // 부과 제외 일자 종료
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* 최초 실행 함수
|
||||
**************************************************************************/
|
||||
// 1. 이벤트 설정
|
||||
$P.setEvent();
|
||||
|
||||
// 2. 초기 화면 설정
|
||||
$P.initForm();
|
||||
|
||||
// 3. Dataset 설정
|
||||
//$P.control.setData([${opnnDlbrMbrInfo}]);
|
||||
});
|
||||
|
||||
</script>
|
Loading…
Reference in New Issue