Merge branch 'dev' into dev-feat-doc

main
jjh 2 years ago
commit 2ac0807160

@ -1,6 +1,6 @@
<%@ page import="kr.xit.fims.biz.FimsConst" %><%-- <%@ page import="kr.xit.fims.biz.FimsConst" %><%--
================================================================================ ================================================================================
File : /fims/biz/cmm/cmmCrackdownMgtPopup.jsp File : /fims/biz/cmm/cmmCrackdownEditPopup.jsp
Name : 단속 데이타 처리 - 단속관리>단속현황관리 Name : 단속 데이타 처리 - 단속관리>단속현황관리
Auth : lim.jong.uk Auth : lim.jong.uk
Date : 2022-01-20 Date : 2022-01-20

@ -0,0 +1,224 @@
<%@ page import="kr.xit.fims.biz.FimsConst" %><%--
================================================================================
File : /fims/biz/template/templateForm.jsp
Name : JSP Form file template
Auth : lim.jong.uk
Date : 2023-03-08
Desc : JSP Form 파일 템플릿
================================================================================
Date Author Description
================================================================================
================================================================================
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp" %>
<!-- java class constants 사용시 아래와 같이 사용 -->
<%--<c:set var="citizen" value="<%= FimsConst.RegltSeCode.CITIZEN.getCode() %>"/>--%>
<div class="search r2">
<form name="frmSearch" id="frmSearch">
<table>
<caption>검색조건</caption>
<colgroup>
<col style="width: 110px;"/>
<col style="width: 250px;"/>
<col style="width: 250px;"/>
<col style="width: 250px;"/>
<col style="width: 100px;"/>
<col/>
<col/>
</colgroup>
<tbody>
<tr>
<td>
<!-- 공통코드 select box JSTL : radio 버튼은 :radio 로 -->
<code:select type="CMM_CFN" id="clCode" name="clCode" emptyMessageKey="table.select.clCode" title="분류코드" alt="selectBox tag" cls="selectBox"/>
</td>
<td>
<label for="codeId">코드그룹ID</label>
<input name="codeId" title="코드그룹ID" type="text" size="15" maxlength="15" id="codeId">
</td>
<td>
<label for="codeIdNm">코드그룹명</label>
<input name="codeIdNm" title="코드그룹명" type="text" size="35" maxlength="35" id="codeIdNm">
</td>
<td>
<label for="codeNm">공통코드명</label>
<input name="codeNm" title="공통코드명" type="text" size="35" maxlength="35" id="codeNm">
</td>
<td>
<select name="useAt" title="사용여부" class="selectBox">
<option value=''>-- 사용여부 --</option>
<option value='Y'>사용</option>
<option value='N'>미사용</option>
</select>
</td>
<td colspan="2">
<input type="button" id="btnSearch" class="btn_search" title="검색" value="검색" />
</td>
</tr>
</tbody>
</table>
</form>
</div>
<!-- //검색 -->
<div class="page_btn">
<span class="fll">
<div class="list clearfix" id="totCnt">전체 ㅣ <span>0</span></div>
</span>
<span class="flr">
<a href="#" class="btn darkgray" id="btnRegist" title="등록">등록</a>
</span>
</div>
<!-- //버튼 및 페이지정보 -->
<!-- grid 데이터 출력 -->
<div id="grid" style="margin-top: 10px;"></div>
<script type="text/javaScript">
/**************************************************************************
* Global Variable
**************************************************************************/
// 데이터 조회 : popup에서 호출 하기위해 var로 선언
var callbackSearch = () => fnBiz.search();
let GRID = null;
/* *******************************
* Biz function
******************************* */
const fnBiz = {
search: () => {
GRID.reloadData();
}
,pagePopup: function(flag, params){
let url = '<c:url value="/framework/biz/mng/code/mngCodeDtlMgtPopup.do"/>';
let popTitle;
let popOption = {width: 700, height:500}
switch (flag) {
case "add":
popTitle = "[업무명] 등록";
break;
case "detail":
popTitle = "[업무명] 상세";
break;
default:
break;
}
popup = CmmPopup.open(url, params, popOption, popTitle);
}
,onClickGrid: function(props){
const rowData = props.grid.getRow(props.rowKey);
fnBiz.pagePopup('detail', rowData);
}
}
/**************************************************************************
* event
**************************************************************************/
$(() => {
$('#btnSearch').on('click', () => {
fnBiz.search();
});
$('#btnRegist').on('click', () => {
fnBiz.pagePopup('add', null);
});
});
/* *******************************
* Grid
******************************* */
const initGrid = () => {
/* ******************************
* Grid start
****************************** */
//Grid 컬럼 정보
const gridColumns = [
{
header: '코드그룹ID',
name: 'codeId',
width: 100,
sortable: true,
sortingType: 'desc',
align: 'center'
},
// grid click event
{
header: '코드그룹명',
name: 'codeIdNm',
width: 150,
sortable: true,
sortingType: 'desc',
//align: 'center',
renderer: {
type: CustomButtonRenderer,
options: {
formatter : (props)=>{
const rowData = props.grid.getRow(props.rowKey);
return {
formatter: rowData.codeIdNm
,element: "text"
}
}
,eventFunction: fnBiz.onClickGrid
,eventType : "click"
}
}
},
// grid select box
// /webapp/resources/biz/common/js/codeComboData.js에 정의한 코드값 매핑
{
header: '등록구분',
name: 'registSeCode',
minWidth: 60,
sortable: false,
align: 'center',
formatter: 'listItemText',
disabled: true,
editor: {
type: "select",
options: {
listItems: ComboCodeData.registSeCode //
}
},
}
];
const gridDatasource = {
// grid load시 조회 : default false
//initialRequest: true,
api: {
readData: {
url: '<c:url value="/framework/biz/mng/code/findCodeDtls.do"/>'
,serializer: (params) => fnAddPageInfo(document.frmSearch, params)
}
}
}
const gridOptions = {
el: 'grid',
// row number 표시 : checkbox - 체크박스 표시
rowHeaders: ['rowNum'],
columns: gridColumns,
// 틀고정 필요시 : 1번째 컬럼까지 고정
//columnOptions: {
// frozenCount: 1
//}
};
GRID = TuiGrid.of(gridOptions, gridDatasource, (res) => {
// 그리드 데이타 조회후 처리할 내용이 있으면 기술
//
});
};
/**************************************************************************
* initialize
**************************************************************************/
$(document).ready(function(){
initGrid();
});
</script>

@ -0,0 +1,196 @@
<%--
================================================================================
File : /fims/biz/template/templatePopup.jsp
Name : JSP Popup file template
Auth : lim.jong.uk
Date : 2023-03-08
Desc : JSP Popup 파일 템플릿
================================================================================
Date Author Description
================================================================================
================================================================================
--%>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp" %>
<!-- 등록 또는 변경 여부를 판단할 수 있는 키값으로 설정 -->
<!-- 메인폼 화면의 그리드에서 건별로 클릭하여 처리하는 경우만 가능 -->
<c:set var="isUpdate" value="${!empty cmmnDetailCode.codeId}"/>
<c:set var="bizName" value="공통 코드"/>
<div class="popup" style="min-width: 100%;">
<!-- form 화면에서 팝업호출시 set한 값으로 set -->
<div class="popup_inner_02" style="max-width: 700px;">
<!-- 위에서 set한 bizName으로 isUpdate에 따라 변경 / 등록 타이틀 표시 -->
<%@include file="/WEB-INF/jsp/framework/biz-popup-title.jsp" %>
<form>
<table class="tbl03">
<caption><c:out value="${bizName}"/> 등록 / 변경</caption>
<colgroup>
<col style="width: 20%;"/>
<col style="width: 30%;"/>
<col style="width: 20%;"/>
<col style="width: 30%;"/>
</colgroup>
<tbody>
<!-- 메인폼 화면의 그리드에서 건별로 클릭하여 처리하는 경우 JSTL 태그로 처리 -->
<tr>
<th class="required" scope="row" nowrap>
<label for="codeId">코드그룹</label>
</th>
<td nowrap>
<input type="text" id="codeId" name="codeId" value="${cmmnDetailCode.codeId}">
</td>
<th class="required" scope="row" nowrap>
<label for="code">코드</label>
</th>
<td nowrap>
<input type="text" id="code" name="code" value="${cmmnDetailCode.code}"/>
</td>
</tr>
<!-- 메인폼 화면의 그리드에서 건별로 클릭하여 처리하는 경우 JSTL 태그로 처리 -->
<!-- Dynamic 한 데이타 처리시(예:메인폼 화면의 그리드 클릭후 이전/이후 데이타로 이동하는 경우) -->
<!--이경우는 JSTL을 사용할 수 없다 : 사용하려면 창을 닫고, 메인에서 다시 팝업호출 하는 방식으로 해야함 -->
<tr>
<th class="required" scope="row" nowrap>
<label for="codeId1">코드그룹</label>
</th>
<td nowrap>
<input type="text" id="codeId1" name="codeId">
</td>
<th class="required" scope="row" nowrap>
<label for="code1">코드</label>
</th>
<td nowrap>
<input type="text" id="code1" name="code"/>
</td>
</tr>
<!-- Dynamic 한 데이타 처리시(예:메인폼 화면의 그리드 클릭후 이전/이후 데이타로 이동하는 경우) -->
<!--이경우는 JSTL을 사용할 수 없다 : 사용하려면 창을 닫고, 메인에서 다시 팝업호출 하는 방식으로 해야함 -->
</tbody>
</table>
</form>
<!-- 팝업 버튼 : 업무에 따라 선택 적용 -->
<%@include file="/WEB-INF/jsp/framework/biz-popup-use-btn.jsp" %>
<%@include file="/WEB-INF/jsp/framework/biz-popup-btn.jsp" %>
</div>
</div>
<!-- //popup -->
<script type="text/javaScript">
/**************************************************************************
* Global Variable
**************************************************************************/
// 데이타 서버 전송시 변경여부 체크를 위한 변수
// onload 완료후 form data 저장
let orgData;
/* *******************************
* Biz function
******************************* */
const fnBiz = {
<!-- Dynamic 한 데이타 처리시(예:메인폼 화면의 그리드 클릭후 이전/이후 데이타로 이동하는 경우) -->
search: (params) => {
// 공통 프레임웍 사용 : /webapp/resources/framework/js/cmm/XitCmmnUtil.js
cmmAjax({
// ajax 호출 성공 alert disable
showSuccessMsg: false
,url: fimsApiUrl.FIND_CRACKDOWN_INFO
,data: params
,success: (res) => {
// from 태그 내의 element 에 data set
// form object의 element 태그에 json data binding
// name 속성으로 binding : name 속성 = json key 가 동일해야만 한다
// format이 필요한 element : data-fmt-type 에 dt|day|time|number 로 set
// /webapp/resources/framework/js/cmm/cmmUtil.js
// 사용예 : 단속관리 > 단속현황 관리 > 초기자료편집 - /WEB-INF/jsp/fims/biz/cmm/cmmCrackdownEditPopup.jsp
// 사용예 : 단속관리 > 단속현황 관리 > 개별총정보 - /WEB-INF/jsp/fims/biz/cmm/cmmCrackdownTotMgtPopup.jsp
setFormData(document.querySelector('#frm'), res.cmmnDetailCode);
orgData = $('form').serialize();
}
})
},
<!-- Dynamic 한 데이타 처리시(예:메인폼 화면의 그리드 클릭후 이전/이후 데이타로 이동하는 경우) -->
add: () => {
if (!fnBiz.validate()) return;
// 공통 프레임웍 사용 : /webapp/resources/framework/js/cmm/XitCmmnUtil.js
// 1. confirm 메세지후 응답에 따라 ajax 호출
// 2-1. ajax 호출이 성공이면 성공 메세지 alert
// 2-2. ajax 호출이 실패면 메세지 alert후 종료
// 3. ajax 호출 성공시 부모창의 callbackSearch() 호출
cmmBizAjax('add', {
url: '<c:url value="/framework/biz/mng/code/.do"/>'
, data: $("#cmmnDetailCode").serialize()
})
}
,modify: () => {
if (!fnBiz.validate()) return;
cmmBizAjax('modify', {
url: '<c:url value="/framework/biz/mng/code/.do"/>'
,data: $("#cmmnDetailCode").serialize()
});
}
,remove: () => {
cmmBizAjax('remove', {
url: '<c:url value="/framework/biz/mng/code/.do"/>'
,data: $("#cmmnDetailCode").serialize()
});
}
,validate: () => {
if(orgData === $('form').serialize()){
alert('변경된 내용이 없습니다.');
return false;
}
return true;
}
};
/**************************************************************************
* event
**************************************************************************/
$(() => {
$("#btnClose").on('click', () => {
window.close()
});
$('#btnRegist').on('click', () => {
fnBiz.add();
});
$('#btnModify').on('click', () => {
fnBiz.modify();
});
$('#btnRemove').on('click', () => {
fnBiz.remove();
});
});
/**************************************************************************
* initialize
**************************************************************************/
$(document).ready(function () {
<!-- 메인폼 화면의 그리드에서 건별로 클릭하여 처리하는 경우 -->
orgData = $('form').serialize();
<!-- 메인폼 화면의 그리드에서 건별로 클릭하여 처리하는 경우 -->
// Dynamic 한 데이타 처리시(예:메인폼 화면의 그리드 클릭후 이전/이후 데이타로 이동하는 경우)
fnPopupBiz.search({
code: '${param.code}'
})
// Dynamic 한 데이타 처리시(예:메인폼 화면의 그리드 클릭후 이전/이후 데이타로 이동하는 경우)
});
</script>
Loading…
Cancel
Save