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