fix : 메뉴 등록 화면 수정

main
이범준 1 year ago
parent 2386af33c5
commit 232be2deb2

@ -18,11 +18,12 @@ public class XitMenuInfoVO {
private String menuNo; //메뉴 번호 private String menuNo; //메뉴 번호
private String menuNm; //메뉴 명 private String menuNm; //메뉴 명
private String pgrmFileNm; //프로그램 파일 private String action; //메뉴화면 파일
private String prntNo; //상위 메뉴 번호 private String prntNo; //상위 메뉴 번호
private String srtOrd; //메뉴 순서 private String srtOrd; //메뉴 순서
private String dscrp; //메뉴 설명 private String dscrp; //메뉴 설명
private String imgCnf; //관계 이미지 경로 private String imgCnf; //관계 이미지 경로
private String relateImagePath; //관계 이미지 경로 private String relateImagePath; //관계 이미지 경로
private String imgNm; //관계 이미지 명 private String imgNm; //관계 이미지 명
private String pgrmFileNm; //프로그램 파일 명
} }

@ -10,6 +10,7 @@
SELECT menu_no SELECT menu_no
, srt_ord , srt_ord
, menu_nm , menu_nm
, action
, prnt_no , prnt_no
, dscrp , dscrp
, img_cnf AS relateImagePath , img_cnf AS relateImagePath
@ -55,6 +56,7 @@
INTO tb_menu ( INTO tb_menu (
menu_no menu_no
, menu_nm , menu_nm
, action
, pgrm_file_nm , pgrm_file_nm
, prnt_no , prnt_no
, srt_ord , srt_ord
@ -64,6 +66,7 @@
) VALUES ( ) VALUES (
#{menuNo} #{menuNo}
, #{menuNm} , #{menuNm}
, #{action}
, #{pgrmFileNm} , #{pgrmFileNm}
, #{prntNo} , #{prntNo}
, #{srtOrd} , #{srtOrd}
@ -77,6 +80,7 @@
/* menu-mysql-mapper|updateyMenuInfo-메뉴 정보 변경|julim */ /* menu-mysql-mapper|updateyMenuInfo-메뉴 정보 변경|julim */
UPDATE tb_menu UPDATE tb_menu
SET menu_nm = IF(menu_nm = #{menuNm}, menu_nm, #{menuNm}) SET menu_nm = IF(menu_nm = #{menuNm}, menu_nm, #{menuNm})
, action = IF(action = #{action}, action, #{action})
, pgrm_file_nm = IF(pgrm_file_nm = #{pgrmFileNm}, pgrm_file_nm, #{pgrmFileNm}) , pgrm_file_nm = IF(pgrm_file_nm = #{pgrmFileNm}, pgrm_file_nm, #{pgrmFileNm})
, prnt_no = IF(prnt_no = #{prntNo}, prnt_no, #{prntNo}) , prnt_no = IF(prnt_no = #{prntNo}, prnt_no, #{prntNo})
, srt_ord = IF(srt_ord = #{srtOrd}, srt_ord, #{srtOrd}) , srt_ord = IF(srt_ord = #{srtOrd}, srt_ord, #{srtOrd})

@ -20,6 +20,14 @@
<var-value>50</var-value> <var-value>50</var-value>
</var> </var>
</field> </field>
<field property="action" depends="required, maxlength">
<arg0 key="메뉴화면파일명" resource="false"/>
<arg1 key="60" resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>60</var-value>
</var>
</field>
<field property="prntNo" depends="required, integer"> <field property="prntNo" depends="required, integer">
<arg0 key="메뉴상위번호" resource="false"/> <arg0 key="메뉴상위번호" resource="false"/>
</field> </field>

@ -1,823 +0,0 @@
<%--
================================================================================
File : /fims/biz/rt/rtRegltMgtForm.jsp
Name : 단속현황관리 - 단속관리>단속현황관리
Auth : lim.jong.uk
Date : 2022-01-20
Desc : 단속현황관리 메인
================================================================================
Date Author Description
================================================================================
================================================================================
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<%@ include file="/WEB-INF/jsp/include/fims/taglib.jsp"%>
<%@ page import="kr.xit.fims.biz.FimsConst" %>
<c:set var="ctznTmplatId" value="<%= FimsConst.TmplatId.CTZN.getCode() %>"/>
<c:set var="ansSeCodeImpose" value="<%= FimsConst.AnswerSeCode.IMPOSE.getCode() %>"/>
<c:set var="ansSeCodeDisallow" value="<%= FimsConst.AnswerSeCode.DISALLOW.getCode() %>"/>
<c:set var="ansSeCodeEnlight" value="<%= FimsConst.AnswerSeCode.ENLIGHT.getCode() %>"/>
<div>
<div id="tabs" class="nav-align-top">
<ul class="nav nav-tabs">
<li class="nav-item">
<button id="0" type="button" class="nav-link active" data-bs-toggle="tab" data-bs-target="#tabContent0">단속초기자료</button>
</li>
<li class="nav-item">
<button id="1" type="button" class="nav-link" data-bs-toggle="tab" data-bs-target="#tabContent1">부과처리</button>
</li>
<li class="nav-item">
<button id="2" type="button" class="nav-link" data-bs-toggle="tab" data-bs-target="#tabContent2">답변처리</button>
</li>
</ul>
</div>
<!-- tab 공통 -->
<form id="frmSearch" name="frmSearch">
<div class="container-search">
<div class="row">
<div class="col-12">
<select id="sch_date_opt" name="sch_date_opt" class="form-select">
<option value="crdnYmd">단속일자</option>
<option value="regDt">등록일자</option>
</select>
<span class="form-search-linebox">
<input id="sch_date_from" class="form-control form-date" data-fmt-type="day" name="sch_date_from" type="text" title="시작 날짜 선택">
<button type="button" class="bx bx-calendar bg-white"></button>
~
<input id="sch_date_to" class="form-control form-date" data-fmt-type="day" name="sch_date_to" type="text" title="종료 날짜 선택">
<button type="button" class="bx bx-calendar bg-white"></button>
</span>
<code:select id="crdnSttsCd" name="crdnSttsCd"
grpId="FIM010" defaultSelect="01" title="단속처리상태" cls="form-select" alt="단속처리상태" disabled="false"/>
</div>
<div class="col-12">
<label class="form-label fw-bold form-search-title">시스템구분</label>
<span class="form-search-linebox">
<code:radio grpId="FIM001" id="sysSeCd" name="sysSeCd" defaultSelect='${sessionScope.XitLoginSession.orgnztId}'
cls="form-check-input" alt="시스템구분"/>
</span>
</div>
<div id="fldCrdnSeCd" class="col-12">
<label class="form-label fw-bold form-search-title">단속구분</label>
<span class="form-search-linebox">
<code:radio type="CMM_ETC2" id="crdnSeCd" name="crdnSeCd" grpId="FIM002"
cls="form-check-input" alt="단속구분" />
</span>
</div>
<div id="ansDiv" class="col-12">
<label class="form-label fw-bold form-search-title">답변구분</label>
<span class="form-search-linebox">
<input type="radio" id="ctznAnsY" name="ctznAnsYn" class="form-check-input"
value="Y" checked="true" />
<label for="ctznAnsY">답변가능</label>
<input type="radio" id="ctznAnsN" name="ctznAnsYn" class="form-check-input"
value="N" />
<label for="ctznAnsY">답변대기</label>
</span>
</div>
<div class="col-12">
<select id="sch_opt" name="sch_opt" class="form-select">
<option value="vhrno">차량번호</option>
</select>
<input type="text" id="sch_word" name="sch_word" class="form-control" value="" />
<span class="flr">
<button type="button" class="btn btn-search" id="btnSearch" title="검색">검색</button>
<button type="button" class="btn btn-darkgray" id="btnExtrRegist" title="연계파일등록">연계파일처리</button>
<button type="button" class="btn btn-open-detail btn-sm" data-bs-toggle="collapse" data-bs-target="#searchDetail">
<i class="bx bx-chevron-down"></i>
상세조회조건
</button>
</span>
</div>
</div>
</div>
<div id="searchDetail" class="container-search container-search-detail collapse">
상세조회조건
</div>
</form>
<!-- //검색 -->
<div>
<span>
<div id="totCnt">전체 ㅣ <span></span></div>
<span>
<div id="divImpose">
<a href="#" class="btn btn-blue" id="btnImpose" title="부과(세올연계)">부과처리</a>
</div>
<div id="divAnswer">
<%-- <a href="#" class="btn btn-blue" id="btnOrgCtznView" title="민원내용원본">민원내용원본</a>--%>
<a href="#" class="btn btn-blue" id="btnAnswerPreview" title="답변내용미리보기">답변내용미리보기</a>
<a href="#" class="btn btn-blue" id="btnAnswer" title="답변등록">선택자료 답변등록</a>
<%-- <a href="#" class="btn btn-blue" id="btnAnswerCplt" title="개별답변완료">개별답변완료로 변경</a>--%>
</div>
</span>
</span>
</div>
<!-- tab 공통 -->
<div class="tab-content">
<div id="tabContent0" style="flex-direction: column" class="tab-pane fade show active">
<div id="tabs_t0">
<div id="grid"></div>
</div>
</div>
<div id="tabContent1" class="tab-pane fade">
<div id="tabs_t1">
<div id="grid_t1"></div>
</div>
</div>
<div id="tabContent2" class="tab-pane fade">
<div id="tabs_t2">
<div id="grid_t2"></div>
</div>
</div>
</div>
</div>
<script defer type="text/javascript" src="${pageContext.request.contextPath}/resources/js/fims/biz/common/popupPageNavigation.js"></script>
<script type="text/javaScript">
/**************************************************************************
* Global Variable
**************************************************************************/
/**
* tab index : 0 부터 시작
* @type {number}
*/
var CUR_TAB_IDX = 0;
/**
* tui-grid array
* @type {*[]}
*/
var ARR_GRID = [];
/**
* PageNavigation
* @type {*[]}
*/
var ARR_NAV = [];
/**
* 부과대상 데이타 배열
* 단속ID, 접수번호
* @type {Array<{crdnId: string, cvplRceptNo: string}>}
*/
var IMPOSE_DATA;
/**
* 그리드 목록 총 건수
* @type {number[]}
*/
let ARR_TOTCNT = [0, 0, 0];
/**
* 단속진행 상태
* 01 - 초기등록
* 10 - 부과대상
* @type {string[]}
*/
let ARR_PRC_STS_CODE = ['01', '10']
/**
* 팝업 객체
* @type {null}
*/
popup = null;
/**
*
*/
let popupDiv;
/**
*
*/
var callbackSearch = () => {
if(CUR_TAB_IDX == 0){
search$1$s();
} else if(CUR_TAB_IDX == 1) {
search$2$s();
} else if(CUR_TAB_IDX == 2) {
search$3$s();
}
}
let $1$Control = new FimsDatasetControl({
prefix:"aaa",
prefixName:"ㅁㅁㅁ",
infoSize:"xl",
urls : {
load : fimsApiUrl.FIND_CRACKDOWNS,
total : fimsApiUrl.POPUP_CRACKDOWN_TOTAL,
edit : fimsApiUrl.POPUP_CRACKDOWN_EDIT,
file : fimsApiUrl.POPUP_EXTR_CRACKDOWN_FILE_SEL
},
keymapper:info => info ? info.CRACKDOWN_KEY : "",
dataGetter:obj => obj.data.contents
});
$1$Control._paginationInfo.pagingType = "scroll";
$1$Control._paginationInfo.fetchSize = 50;
$1$Control._paginationInfo.scrollFuncName = scroll$1$s;
$1$Control.onDatasetChange = obj => {
let pagination = obj.data.pagination;
if(obj.data.pagination){
$1$Control._paginationInfo.totalSize = pagination.totalSize;
$1$Control._paginationInfo.pageNum = pagination.pageNum;
} else {
$1$Control._paginationInfo.totalSize = obj.count;
}
$1$Control.totalCountSetting(obj);
render$1$List(obj.data);
};
let $2$Control = new FimsDatasetControl({
prefix:"bbb",
prefixName:"ㅁㅁㅁ",
infoSize:"xl",
urls : {
load : fimsApiUrl.FIND_CRACKDOWNS,
impose : fimsApiUrl.POPUP_IMPOSE
},
keymapper:info => info ? info.CRACKDOWN_KEY : "",
dataGetter:obj => obj.data.contents
});
$2$Control._paginationInfo.pagingType = "scroll";
$2$Control._paginationInfo.fetchSize = 50;
$2$Control._paginationInfo.scrollFuncName = scroll$2$s;
$2$Control.onDatasetChange = obj => {
let pagination = obj.data.pagination;
if(obj.data.pagination){
$2$Control._paginationInfo.totalSize = pagination.totalSize;
$2$Control._paginationInfo.pageNum = pagination.pageNum;
} else {
$2$Control._paginationInfo.totalSize = obj.count;
}
$2$Control.totalCountSetting(obj);
render$2$List(obj.data);
};
let $3$Control = new FimsDatasetControl({
prefix:"ccc",
prefixName:"ㅁㅁㅁ",
infoSize:"xl",
urls : {
load : fimsApiUrl.FIND_CRACKDOWNS,
answerPreview : fimsApiUrl.POPUP_CTZN_ANS_PREVIEW
},
keymapper:info => info ? info.CRACKDOWN_KEY : "",
dataGetter:obj => obj.data.contents
});
$3$Control._paginationInfo.pagingType = "scroll";
$3$Control._paginationInfo.fetchSize = 50;
$3$Control._paginationInfo.scrollFuncName = scroll$3$s;
$3$Control.onDatasetChange = obj => {
let pagination = obj.data.pagination;
if(obj.data.pagination){
$3$Control._paginationInfo.totalSize = pagination.totalSize;
$3$Control._paginationInfo.pageNum = pagination.pageNum;
} else {
$3$Control._paginationInfo.totalSize = obj.count;
}
$3$Control.totalCountSetting(obj);
render$3$List(obj.data);
};
function search$1$s(){
$1$Control.query = fnBiz.getParams();
ARR_GRID[0].clear();
$1$Control.load(1);
}
function search$2$s(){
$2$Control.query = fnBiz.getParams();
ARR_GRID[1].clear();
$2$Control.load(1);
}
function search$3$s(){
$3$Control.query = fnBiz.getParams();
ARR_GRID[2].clear();
$3$Control.load(1);
}
function scroll$1$s(){
$1$Control.load($1$Control._paginationInfo.pageNum + 1, "more");
}
function scroll$2$s(){
$2$Control.load($2$Control._paginationInfo.pageNum + 1, "more");
}
function scroll$3$s(){
$3$Control.load($3$Control._paginationInfo.pageNum + 1, "more");
}
function render$1$List(data) {
ARR_GRID[0].clear();
ARR_GRID[0].appendRows(data.contents);
}
function render$2$List(data) {
ARR_GRID[1].clear();
ARR_GRID[1].appendRows(data.contents);
}
function render$3$List(data) {
ARR_GRID[2].clear();
ARR_GRID[2].appendRows(data.contents);
}
/*******************************
* Biz function
*******************************/
// tab 전체
const fnBiz = {
getParams: () => {
return {
sch_date_opt: $('#sch_date_opt').val()
,sch_date_from: $('#sch_date_from').val()
,sch_date_to: $('#sch_date_to').val()
,[$('#sch_opt').val()]: $('#sch_word').val()
,sysSeCd: $('input:radio[name=sysSeCd]:checked').val()
,crdnSeCd: CUR_TAB_IDX === 2 ? '09' : $('input:radio[name=crdnSeCd]:checked').val()
,crdnSttsCd: CUR_TAB_IDX === 2 ? 'NON-INIT' : $('#crdnSttsCd').val()
,ctznAnsYn: $('input:radio[name=ctznAnsYn]:checked').val()
}
}
,pagePopup: function(flag, params){
let url;
let popTitle;
let popOption;
switch (flag) {
case "total":
url = $1$Control.urls.total
popOption = {width: 1200, height:900};
popTitle = "개별총정보";
break;
case "edit":
url = $1$Control.urls.edit
popOption = {width: 1200, height:900};
popTitle = "정보 변경";
break;
case "file":
url = $1$Control.urls.file
popOption = {width: 900, height:750};
popTitle = "외부연계 데이타 선택";
break;
case "impose":
url = $2$Control.urls.impose
popOption = {width: 500, height: 400};
popTitle = "과태료 시스템 등록";
break;
case "answerPreview":
url = $3$Control.urls.answerPreview
popOption = {width: 600, height: 620};
popTitle = "답변 내용 미리 보기";
break;
default:
break;
}
popup = CmmPopup.open( url, params, popOption, popTitle);
}
,onClickGrid: function(props){
const selColumn = props.columnInfo.name;
switch (selColumn){
case 'cvplRceptNo':
popupDiv = 'edit';
const rowDatas = ARR_GRID[CUR_TAB_IDX].store.data.rawData.map(d => {
return {crdnSeCd: d.crdnSeCd, crdnId: d.crdnId, crdnSttsCd: d.crdnSttsCd}
})
ARR_NAV[CUR_TAB_IDX] = new PageNavigation(ARR_GRID[CUR_TAB_IDX], rowDatas, props.rowKey);
fnBiz.pagePopup(popupDiv, ARR_NAV[CUR_TAB_IDX].gridInfo.curRowData);
break;
default:
break;
}
}
,resetBtn: function() {
switch(CUR_TAB_IDX){
case 0:
$('#btnExtrRegist').show();
$('#divImpose').hide();
$('#divAnswer').hide();
$('#ansDiv').hide();
$('#crdnSttsCd').show();
$('#fldCrdnSeCd').show();
break;
case 1:
$('#btnExtrRegist').hide();
$('#divImpose').show();
$('#divAnswer').hide();
$('#ansDiv').hide();
$('#crdnSttsCd').show();
$('#fldCrdnSeCd').show();
break;
case 2:
$('#btnExtrRegist').hide();
$('#divImpose').hide();
$('#divAnswer').show();
$('#ansDiv').show();
$('#crdnSttsCd').hide();
$('#fldCrdnSeCd').hide();
break;
}
}
,onDblClickGrid: function (props, idx) {
popupDiv = 'total';
const rowDatas = ARR_GRID[idx].store.data.rawData.map(d => {
return {crdnSeCd: d.crdnSeCd, crdnId: d.crdnId, crdnSttsCd: d.crdnSttsCd}
})
ARR_NAV[idx] = new PageNavigation(ARR_GRID[idx], rowDatas, props.rowKey);
fnBiz.pagePopup(popupDiv, ARR_NAV[idx].gridInfo.curRowData);
}
,getAnswerSeCode: (stsCode) => {
/*
,{value: '10', text: '부과대상'}
,{value: '11', text: '서손'}
,{value: '12', text: '계도'}
,{value: '20', text: '부과'}
*/
let answerSeCode;
switch(stsCode){
// 부과
case '10':
case '20':
answerSeCode = '${ansSeCodeImpose}';
break;
// 서손
case '11':
answerSeCode = '${ansSeCodeDisallow}';
break;
// 계도
case '12':
answerSeCode = '${ansSeCodeEnlight}';
break;
}
return answerSeCode;
}
};
/**************************************************************************
* event
**************************************************************************/
$(() => {
$("#tabs").on("click", "li", function () {
CUR_TAB_IDX = parseInt($("#tabs .nav-link.active").attr("id"));
$('#totCnt span').text(ARR_TOTCNT[CUR_TAB_IDX]);
$('#crdnSttsCd').val(ARR_PRC_STS_CODE[CUR_TAB_IDX]).prop('selected', true);
if(ARR_GRID[CUR_TAB_IDX]) ARR_GRID[CUR_TAB_IDX].refreshLayout();
fnBiz.resetBtn();
});
$('#btnSearch').on('click', () => {
if(CUR_TAB_IDX == 0){
search$1$s();
} else if(CUR_TAB_IDX == 1) {
search$2$s();
} else if(CUR_TAB_IDX == 2) {
search$3$s();
}
});
$('#btnExtrRegist').on('click', () => {
fnBiz.pagePopup('file');
});
$('#btnImpose').on('click', () => {
const arrChecks = ARR_GRID[CUR_TAB_IDX].getCheckedRows();
if(arrChecks.length === 0){
alert('부과 처리 대상을 먼저 선택해 주세요');
return false;
}
IMPOSE_DATA = arrChecks.map((row) => {
const extnlInterfaceId = row.crdnSeCd === '09' ? row.interfaceSeqN + row.ctznSttemntDetailSn : row.fileLinkId
return {
crdnId: row.crdnId
,crdnSeCd: row.crdnSeCd
,extnlInterfaceId
,vhrno: row.vhrno
,cvplRceptNo: row.cvplRceptNo
}
})
fnBiz.pagePopup('impose');
});
$('#btnAnswerPreview').on('click', () => {
if(ARR_GRID[CUR_TAB_IDX].store.data.rawData.length == 0){
alert('대상 데이타가 존재하지 않습니다.');
return false;
}
const arrChecks = ARR_GRID[CUR_TAB_IDX].getCheckedRows();
let rowKey;
if(arrChecks.length > 0){
rowKey = arrChecks[0].rowKey;
} else {
rowKey = ARR_GRID[CUR_TAB_IDX].store.data.rawData[0]?.rowKey;
}
const rowDatas = ARR_GRID[CUR_TAB_IDX].store.data.rawData.map(d => {
return {tmplatId: '${ctznTmplatId}', answerSeCode: fnBiz.getAnswerSeCode(d.crdnSttsCd), resnCode: d.erppSeCode, interfaceSeqN: d.interfaceSeqN, vhrno: d.vhrno}
})
popupDiv = 'answerPreview';
ARR_NAV[CUR_TAB_IDX] = new PageNavigation(ARR_GRID[CUR_TAB_IDX], rowDatas, rowKey);
fnBiz.pagePopup(popupDiv, ARR_NAV[CUR_TAB_IDX].gridInfo.curRowData);
});
$('#btnAnswer').on('click', () => {
const arrChecks = ARR_GRID[CUR_TAB_IDX].getCheckedRows();
if(arrChecks.length === 0){
alert('답변 처리할 대상을 먼저 선택해 주세요');
return false;
}
const arrData = arrChecks.map((row) => {
return {
interfaceSeqN: row.interfaceSeqN
}
})
// 중복제거
const datas = arrData.reduce(function(acc, current) {
if (acc.findIndex(({ interfaceSeqN }) => interfaceSeqN === current.interfaceSeqN) === -1) {
acc.push(current.interfaceSeqN);
}
return acc;
}, []);
cmmAjax({
url: fimsApiUrl.ADD_CTZN_ANS_LIST
,contentType: 'application/json'
,data: JSON.stringify(datas)
,success: (res) => {
}
});
});
});
/* *******************************
* Grid
******************************* */
const gridColumns = [
{
header: '등록구분',
name: 'crdnRegSeCd',
minWidth: 50,
sortable: false,
align: 'center',
formatter: 'listItemText',
disabled: true,
editor: {
type: "select",
options: {
listItems: ComboCodeData.crdnRegSeCd
}
},
},
{
header: '접수번호',
name: 'cvplRceptNo',
minWidth: 130,
sortable: false,
align: 'center',
renderer: {
type: CustomButtonRenderer,
options: {
formatter: (props)=>{
const rowData = props.grid.getRow(props.rowKey);
return {
formatter: rowData.crdnSeCd === '09' ? rowData.cvplRceptNo : rowData.fileLinkId
,element: "text"
,dataAttrs : {
bsToggle: "tooltip",
bsOffset: "0,4",
bsPlacement: "top",
bsHtml: "true"
}
,attrs : {
title : "<i class='bx bx-window bx-xs'></i> <span>단속현황 정보</span>"
}
}
}
,eventFunction: fnBiz.onClickGrid
,eventType: "click"
}
}
},
{
header: '차량번호',
name: 'vhrno',
minWidth: 80,
sortable: false,
align: 'center',
// renderer: {
// type: CustomButtonRenderer,
// options: {
// formatter: (props)=>{
// return {
// formatter: props.grid.getRow(props.rowKey).vhrno
// ,element: "text"
// }
// }
// ,eventFunction: fnBiz.onClickGrid
// ,eventType: "dblclick"
// }
// }
},
{
header: '신고자',
name: 'cvplApplcntNm',
minWidth: 80,
sortable: false,
align: 'center'
},
{
header: '신고방법',
name: 'crdnSeCd',
minWidth: 100,
sortable: false,
align: 'center',
formatter: 'listItemText',
disabled: true,
editor: {
type: "select",
options: {
listItems: [...ComboCodeData.crdnSeCd]
}
},
},
{
header: '위반내용',
name: 'vltnCn',
minWidth: 120,
sortable: false,
align: 'center',
},
{
header: '담당자',
name: 'dutyIdV',
minWidth: 80,
sortable: false,
align: 'center'
},
{
header: '전화번호',
name: 'pcdTelV',
minWidth: 80,
sortable: false,
align: 'center'
},
{
header: '접수일자',
name: 'cvplRceptDt',
minWidth: 80,
sortable: false,
align: 'center',
formatter({value}) {
return StrDateFormat.format(value); //
}
},
{
header: '처리기한',
name: 'cvplProcessPd',
minWidth: 80,
sortable: false,
align: 'center',
formatter({value}) {
return StrDateFormat.format(value); //
}
},
{
header: '위반일시',
name: 'crdnYmdTime',
minWidth: 120,
sortable: false,
align: 'center',
formatter({value}) {
return StrDateTimeFormat.format(value); //
}
},
{
header: '사진건수',
name: 'atchFileCnt',
minWidth: 40,
sortable: false,
align: 'center',
},
{
header: '특기사항',
name: 'etcCn',
width: 80,
sortable: false,
align: 'center',
},
{
header: '서손사유',
name: 'erppResnDetail', //erppSeCode
width: 80,
sortable: false,
align: 'center',
},
{
header: '',
name: 'crdnSttsCd',
hidden: true
},
{
header: '서손ID',
name: 'erppId',
hidden: true,
},
{
header: '소유자ID',
name: 'rtpyrId',
hidden: true,
},
{
header: '서손사유코드',
name: 'erppSeCode',
hidden: true,
},
{
header: 'interfaceSeqN',
name: 'interfaceSeqN',
hidden: true,
}
];
const gridOptions1 = {
el: 'grid',
rowHeaders: ['rowNum'],
columns: gridColumns,
columnOptions: {
frozenCount: 6
},
paginationInfoRef : $1$Control._paginationInfo
};
const gridOptions2 = {
el: 'grid_t1',
rowHeaders: ['rowNum'],
columns: gridColumns,
columnOptions: {
frozenCount: 6
},
paginationInfoRef : $2$Control._paginationInfo
};
const gridOptions3 = {
el: 'grid_t2',
rowHeaders: ['rowNum'],
columns: gridColumns,
columnOptions: {
frozenCount: 6
},
paginationInfoRef : $3$Control._paginationInfo
};
const initGrid = () => {
ARR_GRID[0] = TuiGrid.of(gridOptions1);
ARR_GRID[0].on('dblclick', function(props){ fnBiz.onDblClickGrid(props, 0)});
ARR_GRID[1] = TuiGrid.of(gridOptions2);
ARR_GRID[1].on('dblclick', function(props){ fnBiz.onDblClickGrid(props, 1)});
ARR_GRID[2] = TuiGrid.of(gridOptions3);
ARR_GRID[2].on('dblclick', function(props){ fnBiz.onDblClickGrid(props, 2)});
};
/**************************************************************************
* initialize
**************************************************************************/
$(document).ready(function(){
$('#sch_date_from').datepicker('setDate', DateUtil.getDateDay(-5475).date);
$('#sch_date_to').datepicker('setDate', new Date());
CUR_TAB_IDX = 0;
fnBiz.resetBtn();
initGrid();
});
</script>

@ -44,14 +44,6 @@
<form:errors path="menuNo"/> <form:errors path="menuNo"/>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">
<label for="action">메뉴화면명</label>
</th>
<td colspan="3" nowrap="nowrap">
</td>
</tr>
<tr> <tr>
<th scope="row"> <th scope="row">
<label for="menuNm" class="required">메뉴명</label> <label for="menuNm" class="required">메뉴명</label>
@ -69,6 +61,15 @@
<span id="warnMsg" style="color: red; font-size: 10px; font-weight: bold; display: inline-block">최상위메뉴는 메뉴번호 앞 1, 또는 2자리</span> <span id="warnMsg" style="color: red; font-size: 10px; font-weight: bold; display: inline-block">최상위메뉴는 메뉴번호 앞 1, 또는 2자리</span>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">
<label for="action">메뉴화면파일명</label>
</th>
<td colspan="3" nowrap="nowrap">
<form:input path="action" cssStyle="width: 64%;" size="60" maxlength="60" title="메뉴화면명" />
<form:errors path="action" />
</td>
</tr>
<tr> <tr>
<th scope="row"> <th scope="row">
<label for="relateImagePath">관련이미지경로</label> <label for="relateImagePath">관련이미지경로</label>

Loading…
Cancel
Save