Merge branch 'dev' into dev-feat-doc
commit
2ac0807160
Binary file not shown.
@ -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…
Reference in New Issue