You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
607 lines
32 KiB
Plaintext
607 lines
32 KiB
Plaintext
<%@ 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" data-doctx="${pageName}">
|
|
<!-- Content -->
|
|
<div class="container-xxl flex-grow-1 px-0">
|
|
<div class="card wrapper-list">
|
|
<!-- 상단 버튼 -->
|
|
<div class="container-page-btn">
|
|
<button type="button" class="btn btn-outline-dark w-px-120" name="btnReset" title="초기화">
|
|
초기화
|
|
</button>
|
|
<span class="container-window-btn-right">
|
|
<button type="button" class="btn btn-search w-px-120" name="btnSearch" title="검색">
|
|
검색
|
|
</button>
|
|
<button type="button" class="btn btn-excel w-px-120" name="btnExcel" title="엑셀">
|
|
엑셀
|
|
</button>
|
|
</span>
|
|
</div>
|
|
<!-- 상단 버튼 -->
|
|
|
|
<!-- 검색 조건 영역 -->
|
|
<form name="frmSearch">
|
|
<!-- hidden -->
|
|
<input type="hidden" name="sggCd" />
|
|
|
|
<!-- 메인 조건 -->
|
|
<div class="container-search">
|
|
<div class="row g-1">
|
|
<jsp:include page="/WEB-INF/jsp/include/sgg-tasklist.jsp" />
|
|
<div class="col-6">
|
|
<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="schSvbtcYmdFrom"
|
|
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
|
|
<button type="button" class="bx bx-lg bx-calendar bg-white"></button>
|
|
~
|
|
<input type="text" class="form-control form-date" name="schSvbtcYmdTo"
|
|
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택" />
|
|
<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 form-search-title w-px-120 text-end fw-bold" for="schSndngSeCd">발송구분</label>
|
|
<select is="id-select" class="form-select w-px-160" name="schSndngSeCd">
|
|
<option value="">전체</option>
|
|
<c:forEach items="${FIM047List}" var="item">
|
|
<option value="${item.code}">${item.value}</option>
|
|
</c:forEach>
|
|
</select>
|
|
</div>
|
|
<!-- -->
|
|
<div class="col-6">
|
|
</div>
|
|
<!-- 동적검색 -->
|
|
<div class="col-6">
|
|
<input type="hidden" name="by" />
|
|
<input type="text" class="form-control w-px-120 text-end fw-bold" name="byOutput" value="동적 검색" readonly />
|
|
<input type="hidden" name="mainOption" />
|
|
<input type="hidden" name="subOption" />
|
|
<input type="text" class="form-control w-px-400" name="term" autocomplete="off" />
|
|
<!-- 상세 검색조건 버튼 -->
|
|
<span class="flr">
|
|
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="[data-doctx='${pageName}'] [name='searchDetail']">
|
|
<i class="bx bx-chevron-down"></i>
|
|
상세검색
|
|
</button>
|
|
</span>
|
|
</div> <!-- 동적검색 -->
|
|
</div>
|
|
</div> <!-- 메인 조건 -->
|
|
|
|
<!-- 상세 조건 -->
|
|
<div name="searchDetail" class="container-search container-search-detail collapse">
|
|
<div class="row g-1">
|
|
<div class="col-4">
|
|
<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="시작 날짜 선택" />
|
|
<button type="button" class="bx bx-lg bx-calendar bg-white"></button>
|
|
~
|
|
<input type="text" class="form-control form-date" name="schCrdnYmdTo"
|
|
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택" />
|
|
<button type="button" class="bx bx-lg bx-calendar bg-white"></button>
|
|
</span>
|
|
</div>
|
|
<div class="col-4">
|
|
<select class="form-select w-px-120 text-center" name="schRegDateOpt">
|
|
<option value="regDt">등록일자</option>
|
|
<option value="mdfcnDt">수정일자</option>
|
|
</select>
|
|
<span class="form-search-linebox">
|
|
<input type="text" class="form-control form-date" name="schRegDateFrom"
|
|
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
|
|
<button type="button" class="bx bx-lg bx-calendar bg-white"></button>
|
|
~
|
|
<input type="text" class="form-control form-date" name="schRegDateTo"
|
|
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택">
|
|
<button type="button" class="bx bx-lg bx-calendar bg-white"></button>
|
|
</span>
|
|
</div>
|
|
<div class="col-4">
|
|
<select class="form-select w-px-120 text-center" name="schRgtrOpt">
|
|
<option value="rgtr">등록자</option>
|
|
<option value="mdfr">수정자</option>
|
|
</select>
|
|
<input type="hidden" name="schRgtrCd" />
|
|
<input type="text" class="form-control w-px-160" name="schRgtrNm" />
|
|
<button type="button" class="btn btn-sm btn-outline-dark" name="btnFindUser" title="사용자 검색">검색</button>
|
|
</div>
|
|
</div>
|
|
</div> <!-- 상세 조건 -->
|
|
</form>
|
|
<!-- 검색 조건 영역 -->
|
|
|
|
<!-- 업무 버튼 및 건수 표시 -->
|
|
<div>
|
|
<span class="container-page-btn" name="gridButtonArea">
|
|
<!-- 건수, 페이지 표시 -->
|
|
<div class="d-flex flex-row justify-content-between">
|
|
<span is="paging-info" class="dataTables_info" name="dataPagingInfo" role="status" aria-live="polite"></span>
|
|
<ul class="pagination pagination-primary" name="dataPaging">
|
|
</ul>
|
|
</div>
|
|
<!-- 업무 버튼 -->
|
|
<span class="container-window-btn-right">
|
|
<button type="button" class="btn btn-primary w-px-120" name="btnPrintHwp" title="한글파일 출력">
|
|
한글파일 출력
|
|
</button>
|
|
<button type="button" class="btn btn-primary w-px-120" name="btnUpdate" title="공시송달 수정">
|
|
공시송달 수정
|
|
</button>
|
|
<button type="button" class="btn btn-primary w-px-120" name="btnRemove" title="공시송달 삭제">
|
|
공시송달 삭제
|
|
</button>
|
|
</span>
|
|
</span>
|
|
</div>
|
|
<!-- 업무 버튼 및 건수 표시 -->
|
|
|
|
<!-- DataTables(그리드) -->
|
|
<div class="card-datatable text-nowrap">
|
|
<div class="dataTables_wrapper dt-bootstrap5 no-footer">
|
|
<div class="table-responsive h-px-450" name="tableRspns">
|
|
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" aria-describedby="DataTables_Table_0_info">
|
|
<thead class="sticky-thead">
|
|
<tr name="theadTr" data-search-target="[data-doctx='${pageName}']">
|
|
</tr>
|
|
</thead>
|
|
<template name="tmpltCols">
|
|
<th class="cmn" style="width: 72px;">No.</th>
|
|
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" name="gridAllCheckbox" onchange="pageObject['${pageName}'].dataTableCheckbox(this, this.checked);" /></th>
|
|
<th class="cmn" style="width: 160px;">업무구분</th>
|
|
<th class="cmn" style="width: 160px;" onclick="FimsSupport.searchFromGridTitle('SNDNG_SE_CD', this.innerText, 'codeValue', 'FIM047');">발송구분</th>
|
|
<th class="cmn" style="width: 120px;" onclick="FimsSupport.searchFromGridTitle('SVBTC_YMD', this.innerText, 'ymd', '');">공시송달일자</th>
|
|
<th class="cmn" style="width: 160px;" onclick="FimsSupport.searchFromGridTitle('SVBTC_END_YMD', this.innerText, 'ymd', '');">공시송달종료일자</th>
|
|
<th class="cmn" style="width: 100px;" onclick="FimsSupport.searchFromGridTitle('TNOCS', this.innerText, 'match', 'part');">총건수</th>
|
|
<th class="cmn" style="width: 200px;" onclick="FimsSupport.searchFromGridTitle('DOC_NO', this.innerText, 'match', 'part');">문서번호</th>
|
|
<th class="cmn" style="width: 320px;" onclick="FimsSupport.searchFromGridTitle('TTL_NM', this.innerText, 'match', 'part');">제목</th>
|
|
<th class="cmn" style="width: 320px;" onclick="FimsSupport.searchFromGridTitle('ETC_CN', this.innerText, 'match', 'part');">기타내용</th>
|
|
<th class="cmn" style="width: 18rem;">등록일시 / 사용자</th>
|
|
<th class="cmn" style="width: 18rem;">수정일시 / 사용자</th>
|
|
</template>
|
|
<tbody name="tbodyList">
|
|
</tbody>
|
|
<template is="curly-brackets" name="tmpltRows">
|
|
<tr data-index="{data-index}">
|
|
<td class="cmn text-center" onclick ondblclick>{ROW_NUM}</td>
|
|
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{data-index}" onchange="pageObject['${pageName}'].dataTableCheckbox(this, this.checked);" /></td>
|
|
<td class="cmn text-center" onclick ondblclick>{TASK_SE_NM}</td>
|
|
<td class="cmn text-center" onclick ondblclick>{SNDNG_SE_NM}</td>
|
|
<td class="cmn text-center" onclick ondblclick>{SVBTC_YMD}</td>
|
|
<td class="cmn text-center" onclick ondblclick>{SVBTC_END_YMD}</td>
|
|
<td class="cmn text-end" onclick ondblclick>{TNOCS}</td>
|
|
<td class="cmn text-start" onclick ondblclick>{DOC_NO}</td>
|
|
<td class="cmn text-start" onclick ondblclick>{TTL_NM}</td>
|
|
<td class="cmn text-start" onclick ondblclick>{ETC_CN}</td>
|
|
<td class="cmn text-center" onclick ondblclick>{REG_DT} / {RGTR_NM}</td>
|
|
<td class="cmn text-center" onclick ondblclick>{MDFCN_DT} / {MDFR_NM}</td>
|
|
</tr>
|
|
</template>
|
|
<template name="tmpltNotFound">
|
|
<tr class="rvs"><td valign="top" colspan="13" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td></tr>
|
|
</template>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- DataTables(그리드) -->
|
|
</div> <!-- <div class="card wrapper-list"> -->
|
|
</div> <!-- <div class="container-xxl flex-grow-1 px-0"> -->
|
|
<!-- / Content -->
|
|
|
|
<div class="content-backdrop fade"></div>
|
|
</div>
|
|
<!-- / Inner page html -->
|
|
|
|
<script>
|
|
LoadScript("sndb01240Script", wctx.url("/resources/js/fims/sndb/sndb01240.js?ver=${ver}"));
|
|
|
|
/**************************************************************************
|
|
* Global Variable
|
|
**************************************************************************/
|
|
pageObject["${pageName}"] = newDoctxFinder("${pageName}");
|
|
|
|
/**************************************************************************
|
|
* script 진입
|
|
**************************************************************************/
|
|
$(document).ready(function() {
|
|
// pageObject
|
|
let $P = pageObject["${pageName}"];
|
|
|
|
// URL
|
|
$P.prefixUrl = "${prefixUrl}";
|
|
// datasetControl
|
|
$P.ctrl = newSndb01240Control("${pageName}", "[data-doctx=${pageName}]");
|
|
|
|
/**************************************************************************
|
|
* DataTables 이벤트
|
|
**************************************************************************/
|
|
// 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 더블 클릭 이벤트 - 개별총정보 dialog
|
|
$P.dataTableDblClick = (dataIndex) => {
|
|
if (!dataIndex) return;
|
|
|
|
// 발송 ID 가 없다면.. 입력
|
|
let svbtcId = $P.ctrl.getValue("SVBTC_ID");
|
|
if (!svbtcId) return;
|
|
|
|
let params = {
|
|
btnTitle: $P.ctrl.prefixName + " 상세 정보"
|
|
, pageNum: 1 // 페이지 번호
|
|
, fetchSize: DEFAULT_FETCH_SIZE // 1번에 조회되는 건수
|
|
, callPurpose: "view"
|
|
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
|
|
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
|
|
, svbtcId: $P.ctrl.getValue("SVBTC_ID") // 공시송달 ID
|
|
};
|
|
|
|
$P.ctrl.getInfo(params);
|
|
}
|
|
|
|
// DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
|
|
$P.scrollDataList = () => {
|
|
$P.ctrl.load($P.ctrl.query.pageNum + 1);
|
|
}
|
|
|
|
/**************************************************************************
|
|
* 사용자 함수(function)
|
|
**************************************************************************/
|
|
// 사용자검색 callback
|
|
$P.callbackFindUser = (userId, userNm) => {
|
|
$P.$findn("schRgtrCd").val(userId); // 사용자 ID
|
|
$P.$findn("schRgtrNm").val(userNm); // 사용자 명
|
|
}
|
|
|
|
// 한글파일 출력 callback
|
|
$P.callbackDocNoTtl = (obj) => {
|
|
// 서버에 전송할 data(파라미터) 생성
|
|
let params = {
|
|
sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
|
|
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
|
|
, svbtcId: $P.ctrl.getValue("SVBTC_ID") // 반송 ID
|
|
, sndngSeCd: $P.ctrl.getValue("SNDNG_SE_CD") // 발송 구분 코드
|
|
};
|
|
|
|
params.printDocNo = obj.docNo; // 문서 번호
|
|
params.printTtlNm = obj.ttlNm; // 제목
|
|
params.printSvbtcDate = obj.textDate; // 공고 기한
|
|
|
|
let parameter = toQuery(params);
|
|
let url = wctx.url($P.prefixUrl + "/240/makeSvbtcHwp.do");
|
|
|
|
document.location.href = url + "?" + parameter;
|
|
}
|
|
|
|
// 공시송달 수정
|
|
$P.getSvbtcInfo = (params) => {
|
|
if (!params) return;
|
|
|
|
ajax.get({
|
|
url: wctx.url($P.prefixUrl + "/260/info.do")
|
|
, data: params || {}
|
|
, success: (resp) => {
|
|
let dialogName = $P.ctrl.prefixed("Dialog");
|
|
let dialogId = dialogName + "-" + uuid();
|
|
|
|
dialog.open({
|
|
id: dialogId
|
|
, title: params.btnTitle
|
|
, size: "lg"
|
|
, content: resp
|
|
, init: () => {
|
|
$("#" + dialogId).attr("name", dialogName);
|
|
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
|
|
|
|
AppSupport.setDialogZindex();
|
|
}
|
|
, onClose: () => { $P.ctrl.reload({all : true}); } // 자료 재조회
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
// 삭제사유 callback
|
|
$P.callbackRsn = (obj) => {
|
|
if (!obj) return;
|
|
|
|
let selected = $P.ctrl.getDataset("selected"); // 선택 자료
|
|
|
|
// 서버에 전송할 data(파라미터) 생성
|
|
let params = {
|
|
sggCd: $P.$findn("sggCd").val() // 시군구 코드
|
|
, taskSeCd: $P.$findn("frmSearch").find("[name='taskSeCd']:checked").val() // 업무 구분 코드
|
|
, svbtcIds: selected.map(info => info.SVBTC_ID).join(",") // 공시송달 IDs
|
|
, btnTitle: obj.btnTitle // 버튼 title
|
|
, delRsn: obj.reason // 삭제 사유
|
|
};
|
|
|
|
$P.ctrl.remove(params);
|
|
}
|
|
|
|
/**************************************************************************
|
|
* 버튼 clickEvent
|
|
**************************************************************************/
|
|
// 업무 구분 변경 이벤트
|
|
$P.fnResetAndChangeBiz = (taskSeCd) => {
|
|
// 업무 구분 코드
|
|
if (!taskSeCd) {
|
|
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
|
|
}
|
|
|
|
// 초기화
|
|
$P.fnReset(taskSeCd);
|
|
|
|
// 업무구분에 따른 URL 설정
|
|
$P.ctrl.urls.load = wctx.url($P.prefixUrl + "/240/list.do"); // 검색
|
|
$P.ctrl.urls.remove = wctx.url($P.prefixUrl + "/240/remove.do"); // 삭제
|
|
$P.ctrl.urls.getInfo = wctx.url($P.prefixUrl + "/250/info.do"); // 상세 정보
|
|
|
|
// 최고 관리자인지 권한을 확인하여 업무구분을 선택할 수 있도록 하자 -> 수정 필요
|
|
$P.$findn("frmSearch").find("input[name='taskSeCd']").each(function(i) {
|
|
$(this).prop("disabled", "true");
|
|
});
|
|
|
|
FimsSupport.renderForTask($P.findn("frmSearch"), taskSeCd.toLowerCase()); // 업무별 검색 조건
|
|
FimsSupport.renderForTask($P.findn("gridbuttonArea"), taskSeCd.toLowerCase()); // 업무별 버튼
|
|
|
|
// 업무별 그리드 th
|
|
let colContent = $P.findn("tmpltCols").content;
|
|
let cols = $(colContent).find("." + taskSeCd.toLowerCase() + ",.cmn");
|
|
let colsOuterHTML = "";
|
|
|
|
cols.each(function() {
|
|
colsOuterHTML += this.outerHTML;
|
|
});
|
|
$P.findn("tableRspns").changeColumn(colsOuterHTML);
|
|
}
|
|
|
|
// 사용자검색 버튼 클릭 이벤트
|
|
$P.fnGetFindUser = () => {
|
|
let params = {
|
|
callbackFuncName: "pageObject['${pageName}']['callbackFindUser']"
|
|
}
|
|
|
|
ajax.get({
|
|
url: wctx.url("/user/user02/010/main.do")
|
|
, data: params || {}
|
|
, success: (resp) => {
|
|
let dialogName = "userDialog";
|
|
let dialogId = dialogName + "-" + uuid();
|
|
|
|
dialog.open({
|
|
id: dialogId
|
|
, title: "사용자 검색"
|
|
, size: "lg"
|
|
, content: resp
|
|
, init: () => {
|
|
$("#" + dialogId).attr("name", dialogName);
|
|
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
|
|
|
|
AppSupport.setDialogZindex();
|
|
}
|
|
, onClose: () => { }
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
// 검색 버튼 클릭 이벤트
|
|
$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; // 한번에 조회되는 자료 건수
|
|
$P.ctrl.query.delYn = "N"; // 삭제 여부
|
|
|
|
$P.ctrl.load(1);
|
|
}
|
|
|
|
// 엑셀 버튼 클릭 이벤트
|
|
$P.fnExcel = () => {
|
|
if ($P.ctrl.dataset.empty)
|
|
return dialog.alert("검색된 " + $P.ctrl.prefixName + " 정보가 없습니다.");
|
|
|
|
// DataTables(그리드)
|
|
$P.ctrl.query.cellDefs =
|
|
AppSupport.getCellDefs($P.$findn("theadTr").find("th").not(".dummy-th").not(":eq(0)")
|
|
, $($P.findn("tmpltRows").content).find("td").not(".dummy-td").not(":eq(0)")
|
|
, FimsSupport.getCellDefsForPrivacyCell);
|
|
|
|
$P.ctrl.download();
|
|
}
|
|
|
|
// 한글 파일 출력 버튼 이벤트
|
|
$P.fnPrintHwp = async(btnTitle) => {
|
|
if ($P.ctrl.dataset.empty)
|
|
return dialog.alert("검색된 " + $P.ctrl.prefixName + " 정보가 없습니다.");
|
|
|
|
// 공시송달 기간 차이 계산하기
|
|
let svbtcYmd = new Date($P.ctrl.getValue("SVBTC_YMD"));
|
|
let svbtcEndYmd = new Date($P.ctrl.getValue("SVBTC_END_YMD"));
|
|
let svbtcDiff = Math.abs(svbtcEndYmd.getTime() - svbtcYmd.getTime());
|
|
svbtcDiff = Math.ceil(svbtcDiff / (1000 * 60 * 60 * 24));
|
|
|
|
// 문서번호, 제목, 공고기한 입력
|
|
let docNo = $P.ctrl.getValue("DOC_NO");
|
|
let ttlNm = $P.ctrl.getValue("TTL_NM");
|
|
let textDate = $P.ctrl.getValue("SVBTC_YMD") + " ~ " + $P.ctrl.getValue("SVBTC_END_YMD") + " (" + svbtcDiff + "일간)";
|
|
|
|
// 문서번호, 제목, 공고기한 입력
|
|
let resp = await fetch(wctx.url("/resources/html/inputDocNoTtlDialog.html"));
|
|
let template = await resp.text();
|
|
|
|
dialog.open({
|
|
id: "inputDocNoTtlDialog"
|
|
, title: btnTitle
|
|
, size: "lg"
|
|
, content: template
|
|
, init: () => {
|
|
AppSupport.setDialogZindex();
|
|
|
|
$("#docNo").val(docNo);
|
|
$("#ttlNm").val(ttlNm);
|
|
$("#textDate").val(textDate.replace(/-/g, ". "));
|
|
}
|
|
, onOK: () => {
|
|
$P.callbackDocNoTtl({
|
|
btnTitle: btnTitle // 버튼 title
|
|
, docNo: $("#docNo").val()
|
|
, ttlNm: $("#ttlNm").val()
|
|
, textDate: $("#textDate").val()
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
// 수정 버튼 이벤트
|
|
$P.fnUpdate = (btnTitle) => {
|
|
// 공시송달 ID 가 없다면.. return
|
|
let svbtcId = $P.ctrl.getValue("SVBTC_ID");
|
|
if (!svbtcId) return;
|
|
|
|
let params = {
|
|
callPurpose: "update"
|
|
, btnTitle: btnTitle
|
|
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
|
|
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
|
|
, sndngSeCd: $P.ctrl.getValue("SNDNG_SE_CD") // 발송 구분 코드
|
|
, svbtcId: $P.ctrl.getValue("SVBTC_ID") // 공시송달 ID
|
|
};
|
|
|
|
$P.getSvbtcInfo(params);
|
|
}
|
|
|
|
// 삭제 버튼 이벤트
|
|
$P.fnRemove = (btnTitle) => {
|
|
let selected = $P.ctrl.getDataset("selected"); // 선택 자료
|
|
|
|
if (selected.length < 1)
|
|
return dialog.alert("선택하신 " + $P.ctrl.prefixName + " 정보가 없습니다.");
|
|
|
|
// 삭제 메세지 확인
|
|
dialog.alert({
|
|
content: "선택하신 " + selected.length + "건의 " + $P.ctrl.prefixName + " 정보를 삭제하시겠습니까?"
|
|
, onOK: () => {
|
|
// 삭제 사유 입력
|
|
fetch(wctx.url("/resources/html/inputRsnDialog.html"))
|
|
.then(function(resp) { return resp.text(); })
|
|
.then(function(template) {
|
|
dialog.open({
|
|
id: "inputDelRsnDialog"
|
|
, title: "삭제 사유"
|
|
, size: "lg"
|
|
, content: template
|
|
, init: () => { AppSupport.setDialogZindex(); }
|
|
, onOK: () => {
|
|
$P.callbackRsn({
|
|
btnTitle: btnTitle // 버튼 title
|
|
, reason: $("#reason").val() // 삭제 사유
|
|
});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
/**************************************************************************
|
|
* 초기 셋팅
|
|
**************************************************************************/
|
|
// 이벤트 설정
|
|
$P.setEvent = () => {
|
|
// 기본 버튼 이벤트
|
|
$P.$findn("btnReset").on("click", () => $P.fnResetAndChangeBiz()); // 초기화
|
|
$P.$findn("btnSearch").on("click", () => $P.fnSearchList()); // 검색
|
|
$P.$findn("btnExcel").on("click", () => $P.fnExcel()); // 엑셀
|
|
$P.$findn("btnFindUser").on("click", () => $P.fnGetFindUser()); // 사용자 검색
|
|
|
|
// 동적검색에서 엔터(Enter) 키를 누르면 검색한다.
|
|
$P.$findn("term").onEnterPress($P.fnSearchList);
|
|
|
|
// 업무 버튼 이벤트
|
|
$P.$findn("btnPrintHwp").on("click", function() {
|
|
$P.fnPrintHwp($P.$findn("btnPrintHwp").attr("title")); // 한글출력
|
|
});
|
|
$P.$findn("btnUpdate").on("click", function() {
|
|
$P.fnUpdate($P.$findn("btnUpdate").attr("title")); // 수정
|
|
});
|
|
$P.$findn("btnRemove").on("click", function() {
|
|
$P.fnRemove($P.$findn("btnRemove").attr("title")); // 삭제
|
|
});
|
|
|
|
// DataTables width 변경 조정
|
|
Componentization.fnMakeResizableTable($P.findn("tableRspns"));
|
|
// DataTables 스크롤 이벤트 생성
|
|
Componentization.fnMakeScrollableTable($P.findn("tableRspns"), $P.scrollDataList);
|
|
}
|
|
|
|
// 초기화 이벤트
|
|
$P.fnReset = (taskSeCd) => {
|
|
// 초기화
|
|
$P.findn("frmSearch").reset(); // 화면 초기화
|
|
AppSupport.initDatepicker($P.findn("frmSearch")); // 달력 초기화
|
|
AppSupport.initDetailSearchButton($P.findn("frmSearch")); // 상세검색 버튼 화살표
|
|
|
|
// input, select 초기화
|
|
let searchForm = $P.$findn("frmSearch");
|
|
searchForm.find("input[type='radio']").not("[name='taskSeCd']").prop("checked", false);
|
|
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); });
|
|
|
|
// 기본 데이터 설정
|
|
$P.$findn("sggCd").val("${sggCd}"); // 시군구 코드
|
|
$P.$findn("frmSearch").find("input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
|
|
$P.$findn("schSvbtcYmdFrom").datepicker("setDate", DateSupport.getAddDay(-7)); // 공시송달 일자 시작
|
|
$P.$findn("schSvbtcYmdTo").datepicker("setDate", TODAY()); // 공시송달 일자 종료
|
|
$P.$findn("byOutput").val("동적 검색"); // 동적 검색
|
|
$P.$findn("schRgtrNm").prop("readonly", true); // 사용자 이름
|
|
|
|
// dataset 초기화
|
|
$P.ctrl.dataset.clear();
|
|
}
|
|
|
|
/**************************************************************************
|
|
* 최초 실행 함수
|
|
**************************************************************************/
|
|
// 1. 이벤트 설정
|
|
$P.setEvent();
|
|
|
|
// 2. 초기 설정 및 업무 구분 변경
|
|
$P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val());
|
|
|
|
// 3. 보안모드
|
|
fn_securityModeToggle($("#securityMode--top").is(":checked"));
|
|
});
|
|
//# sourceURL=sndb01240-main.jsp
|
|
</script> |