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.
695 lines
23 KiB
JavaScript
695 lines
23 KiB
JavaScript
/**
|
|
*
|
|
* 날짜,시간 형식을 변환하여 준다.
|
|
* @date 2019. 4. 28.
|
|
* @memberOf member
|
|
* @param param
|
|
* @returns returns
|
|
* @author NOHEART
|
|
* @example
|
|
* @since
|
|
*/
|
|
com.fmtDateDtime = function(data, formattedData, rowIndex, colIndex) {
|
|
// 날짜 표시 형식 (yyyy-MM-dd 24HH:mm:ss)
|
|
var rtn = data;
|
|
if (data.length == 4) {
|
|
rtn = data.substr(0,4);
|
|
} else if (data.length == 6) {
|
|
rtn = data.substr(0,4)+'-'+data.substr(4,2);
|
|
} else if (data.length == 8) {
|
|
rtn = data.substr(0,4)+'-'+data.substr(4,2)+'-'+data.substr(6,2);
|
|
} else if (data.length == 14) {
|
|
rtn = data.substr(0,4)+'-'+data.substr(4,2)+'-'+data.substr(6,2)+' '+data.substr(8,2)+":"+data.substr(10,2)+":"+data.substr(12,2);
|
|
}
|
|
return rtn;
|
|
};
|
|
|
|
com.fmtDateDtimeKor = function(data, formattedData, rowIndex, colIndex) {
|
|
// 날짜 표시 형식 (yyyy년 MM월 dd일 24HH시 mm분 ss초)
|
|
var rtn = data;
|
|
if (data.length == 4) {
|
|
rtn = data.substr(0,4)+'년';
|
|
} else if (data.length == 6) {
|
|
rtn = data.substr(0,4)+'년 '+data.substr(4,2)+'월';
|
|
} else if (data.length == 8) {
|
|
rtn = data.substr(0,4)+'년 '+data.substr(4,2)+'월 '+data.substr(6,2)+'일';
|
|
} else if (data.length == 14) {
|
|
rtn = data.substr(0,4)+'년 '+data.substr(4,2)+'월 '+data.substr(6,2)+'일 '+data.substr(8,2)+"시 "+data.substr(10,2)+"분 "+data.substr(12,2)+"초";
|
|
}
|
|
return rtn;
|
|
};
|
|
|
|
com.fmtDtime = function(data, formattedData, rowIndex, colIndex) {
|
|
// 시간 표시 형식
|
|
var rtn = data;
|
|
if (data.length == 6) {
|
|
rtn = data.substr(0,2)+':'+data.substr(2,2)+':'+data.substr(4,2);
|
|
}
|
|
return rtn;
|
|
};
|
|
|
|
com.fmtDtimeToYm = function(data, formattedData, rowIndex, colIndex) {
|
|
// 시간 표시 형식
|
|
var rtn = data;
|
|
if (data.length == 6) {
|
|
rtn = data.substr(0,2)+':'+data.substr(2,2);
|
|
}
|
|
return rtn;
|
|
};
|
|
|
|
com.fmtSecondsToYmd = function(data, formattedData, rowIndex, colIndex) {
|
|
var hour = parseInt(data / 3600);
|
|
var min = parseInt((data % 3600) / 60);
|
|
var sec = data % 60;
|
|
return com.fillZero(hour,2)+":"+com.fillZero(min,2)+":"+com.fillZero(sec,2);
|
|
};
|
|
|
|
com.fmtSecondsToYm = function(data, formattedData, rowIndex, colIndex) {
|
|
var hour = parseInt(data / 3600);
|
|
var min = parseInt((data % 3600) / 60);
|
|
var sec = data % 60;
|
|
if (sec >= 30) { min = min +1 } //반올림
|
|
return com.fillZero(hour,2)+":"+com.fillZero(min,2);
|
|
};
|
|
|
|
com.fmtSecondsToYmKor = function(data, formattedData, rowIndex, colIndex) {
|
|
var hour = parseInt(data / 3600);
|
|
var min = parseInt((data % 3600) / 60);
|
|
var sec = data % 60;
|
|
if (sec >= 30) { min++; } //반올림
|
|
if (min >= 60) { hour++; min = min - 60;}
|
|
return String(com.fillZero(hour,2)+"시간"+com.fillZero(min,2)+"분");
|
|
};
|
|
|
|
/**
|
|
*
|
|
* 요금소, 차로명 표시 형식을 변환하여 준다.
|
|
* @date 2019. 4. 28.
|
|
* @memberOf member
|
|
* @param param
|
|
* @returns returns
|
|
* @author NOHEART
|
|
* @example
|
|
* @since
|
|
*/
|
|
com.fmtFareOfficeNm = function(data, formattedData, rowIndex, colIndex) {
|
|
// 차로명 표시 형식
|
|
var rtn = data;
|
|
if (Number(data) > 0) {
|
|
rtn = Number(data) + '호';
|
|
}
|
|
return rtn;
|
|
};
|
|
|
|
com.fmtBoothNm = function(data, formattedData, rowIndex, colIndex) {
|
|
// 차로명 표시 형식
|
|
var rtn = data;
|
|
if (Number(data) > 0) {
|
|
rtn = Number(data) + '차';
|
|
}
|
|
return rtn;
|
|
};
|
|
|
|
com.fmtWeekdayKbnNm = function(data, formattedData, rowIndex, colIndex) {
|
|
// 평일/토요일 표시 형식
|
|
var rtn = data;
|
|
if (data == '1') {
|
|
rtn = '평일';
|
|
} else if (data == '2') {
|
|
rtn = '토요일';
|
|
}
|
|
return rtn;
|
|
};
|
|
|
|
com.fmtWorkTimeKbnNm = function(data, formattedData, rowIndex, colIndex) {
|
|
// 시간대 표시 형식 (07:00 ~ 08:00 형태)
|
|
var hour = data;
|
|
var rtn = com.fillZero(Number(hour),2) + ":00 ~ " + com.fillZero((Number(hour)+1),2) + ":00";
|
|
return rtn;
|
|
};
|
|
|
|
/**
|
|
* 오늘 날짜를 가져온다.
|
|
*
|
|
* @date 2019. 4. 12.
|
|
* @memberOf member
|
|
* @param param
|
|
* @returns returns
|
|
* @author NOHEART
|
|
* @example
|
|
* @since
|
|
*/
|
|
com.getToday = function( fmt ) {
|
|
if (fmt == null) {
|
|
fmt = "yyyyMMdd";
|
|
}
|
|
var curYMD = $p.getCurrentServerDate( fmt );
|
|
var date = new Date();
|
|
var year = new String(date.getFullYear());
|
|
var month = new String(date.getMonth()+1);
|
|
if(month.length == 1){
|
|
month = "0"+month;
|
|
}
|
|
var day = new String(date.getDate());
|
|
if(day.length == 1){
|
|
day = "0"+day;
|
|
}
|
|
//개발용임시
|
|
if (fmt == "yyyyMMdd") {
|
|
curYMD = year+month+day;
|
|
} else if (fmt == "yyyyMM") {
|
|
curYMD = year+month;
|
|
} else if (fmt == "yyyy") {
|
|
curYMD = year;
|
|
}
|
|
|
|
return curYMD;
|
|
};
|
|
|
|
/**
|
|
* 현재시간을 가져온다.
|
|
*
|
|
* @date 2019. 7. 8.
|
|
* @memberOf member
|
|
* @param param
|
|
* @returns returns
|
|
* @author NOHEART
|
|
* @example
|
|
* @since
|
|
*/
|
|
com.getCurDtime = function( fmt ) {
|
|
if (fmt == null) {
|
|
fmt = "yyyyMMddHHmmss";
|
|
}
|
|
var curDtime = $p.getCurrentServerDate( fmt );
|
|
return curDtime;
|
|
};
|
|
|
|
com.getDateFormat = function( date ) {
|
|
var year = date.substr(0, 4);
|
|
var month = date.substr(4, 2);
|
|
var day = date.substr(6, 2);
|
|
return year+'-'+month+'-'+day;
|
|
};
|
|
|
|
com.getDateDay = function(date) {
|
|
var year = date.substr(0, 4);
|
|
var month = date.substr(4, 2);
|
|
var day = date.substr(6, 2);
|
|
var week = ['일', '월', '화', '수', '목', '금', '토'];
|
|
var dayOfWeek = week[new Date(year+'-'+month+'-'+day).getDay()];
|
|
|
|
return dayOfWeek;
|
|
};
|
|
|
|
com.lpad = function(n, width, pad) {
|
|
n = n + '';
|
|
return n.length >= width ? n : new Array(width - n.length + 1).join(pad) + n;
|
|
};
|
|
|
|
/**
|
|
* 코드성 데이터와 컴포넌트의 nodeSet(아이템 리스트)연동 기능을 제공한다.
|
|
* code별로 JSON객체를 생성하여 array에 담아 첫번째 파라메터로 넘겨준다.
|
|
*
|
|
* @date 2018.04.13
|
|
* @param {Object} codeOptions {"code" : "코드넘버", "compID" : "적용할 컴포넌트명"}
|
|
* @param {requestCallback} callbackFunc 콜백 함수
|
|
* @memberOf com
|
|
* @author InswaveSystems
|
|
* @example
|
|
* // 공통코드 조회시
|
|
* var codeOptions = [ { code : "00001", compID : "sbx_Duty" },
|
|
* { code : "00002", compID : "sbx_Postion" },
|
|
* { code : "00021", compID : "sbx_JoinClass" },
|
|
* { code : "00005", compID : "sbx_CommCodePart1, sbx_CommCodePart2"},
|
|
* { code : "00024", compID :"grd_CommCodeSample:JOB_CD"} ];
|
|
* com.setCfsCommonCode(codeOptions);
|
|
*/
|
|
com.setCfsCommonCode = function(codeOptions, callbackFunc) {
|
|
var codeOptionsLen = 0;
|
|
|
|
if (codeOptions) {
|
|
codeOptionsLen = codeOptions.length;
|
|
} else {
|
|
$p.log("=== com.setCfsCommonCode Parameter Type Error ===\nex) com.setCfsCommonCode([{\"code:\":\"04\",\"compID\":\"sbx_Gender\"}],\"scwin.callbackFunction\")\n===================================");
|
|
return;
|
|
}
|
|
|
|
var i, j, codeObj, dltId, dltIdArr = [], paramCode = "", fareOfficeId = "", compArr, compArrLen, tmpIdArr, codeOption = "";
|
|
var dataListOption = _getCodeDataListOptions(gcm.COMMON_CODE_INFO.FILED_ARR);
|
|
for (i = 0; i < codeOptionsLen; i++) {
|
|
codeObj = codeOptions[i];
|
|
|
|
try {
|
|
dltId = gcm.DATA_PREFIX + codeObj.code;
|
|
dltIdArr.push(dltId);
|
|
|
|
if (i > 0) {
|
|
paramCode += ",";
|
|
fareOfficeId += ",";
|
|
if(typeof codeObj.option != "undefined"){
|
|
codeOption += ",";
|
|
}
|
|
}
|
|
paramCode += codeObj.code;
|
|
fareOfficeId += codeObj.fareOfficeId;
|
|
if(typeof codeObj.option != "undefined"){
|
|
codeOption += codeObj.option;
|
|
}
|
|
dataListOption.id = dltId;
|
|
$p.data.create(dataListOption);
|
|
|
|
if (codeObj.compID) {
|
|
compArr = (codeObj.compID).replaceAll(" ", "").split(",");
|
|
compArrLen = compArr.length;
|
|
for (j = 0; j < compArrLen; j++) {
|
|
tmpIdArr = compArr[j].split(":");
|
|
// 기본 컴포넌트에 대한 Node Setting 설정
|
|
if (tmpIdArr.length === 1) {
|
|
var comp = $p.getComponentById(tmpIdArr[0]);
|
|
comp.setNodeSet("data:" + dltId, gcm.COMMON_CODE_INFO.LABEL, gcm.COMMON_CODE_INFO.VALUE);
|
|
|
|
// gridView 컴포넌트에 대한 Node Setting 설정
|
|
} else {
|
|
var gridObj = $p.getComponentById(tmpIdArr[0]);
|
|
gridObj.setColumnNodeSet(tmpIdArr[1], "data:" + dltId, gcm.COMMON_CODE_INFO.LABEL, gcm.COMMON_CODE_INFO.VALUE);
|
|
}
|
|
}
|
|
|
|
if (typeof $p.top().scwin.commonCodeList[dltId] === "undefined") {
|
|
} else {
|
|
if (typeof callbackFunc === "function") {
|
|
callbackFunc();
|
|
}
|
|
}
|
|
}
|
|
} catch (ex) {
|
|
$p.log("com.setCfsCommonCode Error");
|
|
$p.log(JSON.stringify(codeObj));
|
|
$p.log(ex);
|
|
continue;
|
|
}
|
|
}
|
|
|
|
var searchCodeGrpOption = {
|
|
id : "sbm_searchCode",
|
|
action : "/cfs/com/code/findComCodeList.do",
|
|
target : "data:json," + com.strSerialize(dltIdArr),
|
|
isShowMeg : false };
|
|
|
|
searchCodeGrpOption.submitDoneHandler = function(e) {
|
|
for (codeGrpDataListId in e.responseJSON) {
|
|
if (codeGrpDataListId.indexOf(gcm.DATA_PREFIX) > -1) {
|
|
$p.top().scwin.commonCodeList[codeGrpDataListId] = com.strSerialize(e.responseJSON[codeGrpDataListId]);
|
|
}
|
|
}
|
|
|
|
for (i = 0; i < codeOptionsLen; i++) {
|
|
codeObj = codeOptions[i];
|
|
|
|
if (codeObj.code) {
|
|
if (codeObj.code == 'cfs01') {
|
|
var comp = $p.getComponentById(codeObj.compID);
|
|
if(codeObj.option == "-전체-"){
|
|
comp.showChooseOption( true );
|
|
comp.setReadOnly( false );
|
|
}else{
|
|
if (comp.getItemCount() <= 2) {
|
|
comp.showChooseOption( false );
|
|
comp.setReadOnly( true );
|
|
} else {
|
|
comp.showChooseOption( true );
|
|
comp.setReadOnly( false );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (typeof callbackFunc === "function") {
|
|
callbackFunc();
|
|
}
|
|
}
|
|
if (paramCode !== "") {
|
|
if (paramCode.indexOf("cfs01") > -1) {
|
|
fareOfficeId = com.getLoginFareOfficeId();
|
|
if (fareOfficeId == "00") {
|
|
fareOfficeId = ""; //로그인사용자의 요금소 구분이 00 이면 전체 요금소를 조회하는 사용자로 처리
|
|
}
|
|
}
|
|
if (fareOfficeId == "undefined") {
|
|
fareOfficeId = "";
|
|
}
|
|
if(codeOption != ""){
|
|
if(codeOption.indexOf("-전체-") > -1){
|
|
fareOfficeId = "";
|
|
}
|
|
}
|
|
var codeParam = {"dma_commonCode":{"GRP_CD":paramCode, "DATA_PREFIX":gcm.DATA_PREFIX, "FARE_OFFICE_ID":fareOfficeId}};
|
|
com.executeSubmission_dynamic(searchCodeGrpOption, codeParam);
|
|
}
|
|
|
|
// dataList를 동적으로 생성하기 위한 옵션 정보를 반환한다.
|
|
function _getCodeDataListOptions(infoArr) {
|
|
var option = {
|
|
"type" : "dataList",
|
|
"option":{ "baseNode": "list", "repeatNode": "map"},
|
|
"columnInfo":[]
|
|
};
|
|
|
|
for (var idx in infoArr) {
|
|
option.columnInfo.push({ "id" : infoArr[idx] });
|
|
}
|
|
return option;
|
|
};
|
|
};
|
|
|
|
/**
|
|
* 코드성 데이터와 컴포넌트의 nodeSet(아이템 리스트)연동 기능을 제공한다.
|
|
* code별로 JSON객체를 생성하여 array에 담아 첫번째 파라메터로 넘겨준다.
|
|
*
|
|
* @date 2018.04.13
|
|
* @param {Object} codeOptions {"code" : "코드넘버", "compID" : "적용할 컴포넌트명"}
|
|
* @param {requestCallback} callbackFunc 콜백 함수
|
|
* @memberOf com
|
|
* @author InswaveSystems
|
|
* @example
|
|
* // 공통코드 조회시
|
|
* var codeOptions = [ { code : "00001", compID : "sbx_Duty" },
|
|
* { code : "00002", compID : "sbx_Postion" },
|
|
* { code : "00021", compID : "sbx_JoinClass" },
|
|
* { code : "00005", compID : "sbx_CommCodePart1, sbx_CommCodePart2"},
|
|
* { code : "00024", compID :"grd_CommCodeSample:JOB_CD"} ];
|
|
* com.setCfsCommonCode(codeOptions);
|
|
*/
|
|
com.setCfsWorkerWorkCode = function(codeOptions, callbackFunc) {
|
|
var codeOptionsLen = 0;
|
|
|
|
if (codeOptions) {
|
|
codeOptionsLen = codeOptions.length;
|
|
} else {
|
|
$p.log("=== com.setCfsWorkerWorkCode Parameter Type Error ===\nex) com.setCfsWorkerWorkCode([{\"code:\":\"04\",\"compID\":\"sbx_Gender\"}],\"scwin.callbackFunction\")\n===================================");
|
|
return;
|
|
}
|
|
|
|
var i, j, codeObj, dltId, dltIdArr = [], paramCode = "", fareOfficeId = "", inStDate = "", inEdDate = "", compArr, compArrLen, tmpIdArr;
|
|
var dataListOption = _getWorkerDataListOptions(gcm.COMMON_CODE_INFO.FILED_ARR);
|
|
for (i = 0; i < codeOptionsLen; i++) {
|
|
codeObj = codeOptions[i];
|
|
|
|
try {
|
|
dltId = codeObj.code;
|
|
dltIdArr.push(dltId);
|
|
|
|
if (i > 0) {
|
|
paramCode += ",";
|
|
fareOfficeId += ",";
|
|
inStDate += ",";
|
|
inEdDate += ",";
|
|
}
|
|
paramCode += codeObj.code;
|
|
fareOfficeId += codeObj.fareOfficeId;
|
|
inStDate += codeObj.inStDate;
|
|
inEdDate += codeObj.inEdDate;
|
|
|
|
dataListOption.id = dltId;
|
|
|
|
// 동일한 id의 DataCollection이 존재할 경우, 삭제 후 재생성함
|
|
$p.data.create(dataListOption);
|
|
|
|
if (codeObj.compID) {
|
|
compArr = (codeObj.compID).replaceAll(" ", "").split(",");
|
|
compArrLen = compArr.length;
|
|
for (j = 0; j < compArrLen; j++) {
|
|
tmpIdArr = compArr[j].split(":");
|
|
// 기본 컴포넌트에 대한 Node Setting 설정
|
|
if (tmpIdArr.length === 1) {
|
|
var comp = $p.getComponentById(tmpIdArr[0]);
|
|
comp.setNodeSet("data:" + dltId, gcm.COMMON_CODE_INFO.LABEL, gcm.COMMON_CODE_INFO.VALUE);
|
|
|
|
// gridView 컴포넌트에 대한 Node Setting 설정
|
|
} else {
|
|
var gridObj = $p.getComponentById(tmpIdArr[0]);
|
|
gridObj.setColumnNodeSet(tmpIdArr[1], "data:" + dltId, gcm.COMMON_CODE_INFO.LABEL, gcm.COMMON_CODE_INFO.VALUE);
|
|
}
|
|
}
|
|
|
|
}
|
|
} catch (ex) {
|
|
$p.log("com.setCfsWorkerWorkCode Error");
|
|
$p.log(JSON.stringify(codeObj));
|
|
$p.log(ex);
|
|
continue;
|
|
}
|
|
}
|
|
|
|
var searchCodeGrpOption = {
|
|
id : "sbm_workerWorkCode",
|
|
action : "/cfs/com/code/findWorkerWorkInfoList.do",
|
|
target : "data:json," + com.strSerialize(dltIdArr),
|
|
isShowMeg : false
|
|
};
|
|
|
|
searchCodeGrpOption.submitDoneHandler = function(e) {
|
|
for (codeGrpDataListId in e.responseJSON) {
|
|
if (codeGrpDataListId.indexOf(gcm.DATA_PREFIX) > -1) {
|
|
$p.top().scwin.commonCodeList[codeGrpDataListId] = com.strSerialize(e.responseJSON[codeGrpDataListId]);
|
|
}
|
|
}
|
|
if (typeof callbackFunc === "function") {
|
|
callbackFunc();
|
|
}
|
|
}
|
|
|
|
if (paramCode !== "") {
|
|
var codeParam = {"dma_workerCode":{"fareOfficeId":fareOfficeId, "inStDate":inStDate, "inEdDate":inEdDate}};
|
|
|
|
com.executeSubmission_dynamic(searchCodeGrpOption, codeParam);
|
|
}
|
|
|
|
// dataList를 동적으로 생성하기 위한 옵션 정보를 반환한다.
|
|
function _getWorkerDataListOptions(infoArr) {
|
|
var option = {
|
|
"type" : "dataList",
|
|
"option":{ "baseNode": "list", "repeatNode": "map"},
|
|
"columnInfo":[]
|
|
};
|
|
|
|
for (var idx in infoArr) {
|
|
option.columnInfo.push({ "id" : infoArr[idx] });
|
|
}
|
|
return option;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* 엑셀파일을 생성한다.
|
|
*
|
|
* @date 2019. 4. 17.
|
|
* @memberOf member
|
|
* @param {String} service 서비스ID
|
|
* @param {String} method 서비스 조회 메서드
|
|
* @param {String} paramVO 조회시 파라메터로 전달되는 객체 (맵을 매핑할 도메인)
|
|
* @param {String} paramMap 조회시 파라메터로 전달하는 맵
|
|
* @param {Object} gridViewObj 조회결과를 보여주는 그리드 객체 (gridview 의 id)
|
|
* @param {Object} options 엑셀생성옵션
|
|
* @param {Object} info 엑셀생성정보
|
|
* @returns returns
|
|
* @author NOHEART
|
|
* @example com.fncMakeExcelProvider("incomeService", "findIncomeQuantityStatList", "cfs.income.vo.IncomeParamsVO", statMap, grd_statList, {}, {});
|
|
* @since
|
|
*/
|
|
com.fncMakeExcelProvider = function(service, method, paramVO, paramMap, gridViewObj, options, info) {
|
|
var totalCnt = gridViewObj.getTotalRow();
|
|
if (totalCnt > 0) {
|
|
//엑셀다운로드 실행
|
|
} else {
|
|
com.alert("엑셀다운로드할 정보가 없습니다.");
|
|
return false;
|
|
}
|
|
|
|
//그리드뷰에서 보여주는 컬럼목록을 획득한다.
|
|
var totalCol = gridViewObj.getTotalCol();
|
|
var cols = "";
|
|
var hidCols = "";
|
|
for (var i = 0; i < totalCol; i++) {
|
|
// 그리드에 표시된 항목중 열숨기기 되어있는 컬럼은 엑셀파일에 저장시키지 않도록 함.
|
|
if ((!gridViewObj.getColumnVisible(i)) || (gridViewObj.getColumnType(i)=='checkbox') ) {
|
|
if (hidCols != '') {
|
|
hidCols += ","+i;
|
|
} else {
|
|
hidCols = ''+i;
|
|
}
|
|
}
|
|
if (i > 0) {
|
|
cols += ",";
|
|
}
|
|
cols += gridViewObj.getColumnID(i);
|
|
}
|
|
|
|
if (options.ismap == 'true') {
|
|
options.splitProvider = "cfs.common.provider.MapExcelSplitDown";
|
|
} else {
|
|
options.splitProvider = "cfs.common.provider.ExcelSplitDown";
|
|
}
|
|
|
|
//엑셀저장 요청 XML 정보 생성
|
|
options.providerRequestXml = _setProviderData(service, method, paramVO, paramMap, cols);
|
|
options.useFooterData = "true"; //footer 값을 서식없이 그대로 올린다.
|
|
options.useSubTotalData = "true"; //subtotal 값을 서식없이 그대로 올린다.
|
|
options.useStyle = "true"; //화면의 서식을 그대로 사용한다.
|
|
options.removeColumns = hidCols; //엑셀저장에서 제외할 컬럼
|
|
|
|
//엑셀저장
|
|
gridViewObj.advancedExcelDownload(options, info);
|
|
|
|
/**
|
|
* 엑셀저장 요청 XML 정보 생성
|
|
*/
|
|
function _setProviderData(service, method, paramVO, paramMap, cols) {
|
|
var serviceXml = "<service>" + service + "</service>";
|
|
var methodXml = "<method>" + method + "</method>";
|
|
var voXml = "<vo>" + paramVO + "</vo>";
|
|
var colsXml = "<cols>" + cols + "</cols>";
|
|
var paramXml = "<param>" + JSON.stringify(paramMap.getJSON()) + "</param>";
|
|
|
|
return "<data>" + serviceXml + methodXml + voXml + colsXml + paramXml + "</data>";
|
|
};
|
|
};
|
|
|
|
/**
|
|
* Choice 메시지 창을 호출한다.
|
|
*
|
|
* @date 2019.05.12
|
|
* @memberOf com
|
|
* @param {String} messageStr 메시지
|
|
* @param {String} closeCallbackFncName 콜백 함수명
|
|
* @author Neighbor System
|
|
* @example
|
|
* com.choice("선택하세요. 예/아니오/취소", "scwin.userChoiceCallback");
|
|
*/
|
|
com.choice = function(messageStr, closeCallbackFncName) {
|
|
com.messagBox("choice", messageStr, closeCallbackFncName);
|
|
};
|
|
|
|
/**
|
|
* DataCollection 의 DataList 를 생성한다.
|
|
* Function description...
|
|
* @date 2019. 5. 13.
|
|
* @memberOf member
|
|
* @param param
|
|
* @returns returns
|
|
* @author NOHEART
|
|
* @example
|
|
* @since
|
|
*/
|
|
com.makeDataList = function(id, columnArr) {
|
|
if(WebSquare.util.getComponentById(id) != undefined){
|
|
$w.data.remove(id);
|
|
}
|
|
$w.data.create({
|
|
"id": id
|
|
, "type": "dataList"
|
|
, "option": {
|
|
"useData": false
|
|
}
|
|
, "columnInfo": columnArr
|
|
});
|
|
};
|
|
|
|
|
|
Array.prototype.contains = function(element) {
|
|
for (var i = 0; i < this.length; i++) {
|
|
if (this[i] == element) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
String.prototype.trim = function() {
|
|
return this.replace(/^\s+|\s+$/g,"");
|
|
}
|
|
String.prototype.ltrim = function() {
|
|
return this.replace(/^\s+/,"");
|
|
}
|
|
String.prototype.rtrim = function() {
|
|
return this.replace(/\s+$/,"");
|
|
}
|
|
|
|
var etaxMsg = {
|
|
MESSAGE_CODE : {
|
|
ALREADY_IN : "이미 시세입 처리하였습니다. 수정 불가능합니다.",
|
|
NON_ETAX : "ETAX파일생성 이후 시세입 등록이 가능합니다.",
|
|
SELECT_IN : "시세입 등록할 데이터를 선택해 주세요",
|
|
SELECT_DEL : "시세입 삭제할 데이터를 선택해 주세요",
|
|
NON_DATA : "대상이 존재하지 않습니다."
|
|
|
|
}
|
|
};
|
|
|
|
gcm.progress = {
|
|
wait : false,
|
|
intervalID : null,
|
|
dataCount : 0,
|
|
successCount : 0,
|
|
funcWhenDone : null,
|
|
processMsgs : []
|
|
};
|
|
gcm.ajaxReqs = [];
|
|
|
|
|
|
gcm.ajaxStart = function(ajaxReqArray, processMsgArray, funcWhenDone){
|
|
if(ajaxReqArray.length == 0 || ajaxReqArray.length != processMsgArray.length){
|
|
return;
|
|
}
|
|
gcm.ajaxReqs = ajaxReqArray;
|
|
gcm.progress.dataCount = ajaxReqArray.length;
|
|
gcm.progress.successCount = 0;
|
|
gcm.progress.intervalID = null;
|
|
gcm.progress.wait = false;
|
|
gcm.progress.funcWhenDone = null;
|
|
gcm.progress.processMsgs = processMsgArray;
|
|
if(funcWhenDone != null){
|
|
gcm.progress.funcWhenDone = funcWhenDone;
|
|
}
|
|
|
|
gcm.progress.intervalID = setInterval(gcm.ajaxStep, 100);
|
|
};
|
|
|
|
gcm.ajaxStep = function(){
|
|
|
|
if(!(gcm.progress.wait)){
|
|
gcm.progress.wait = true;
|
|
|
|
if(gcm.ajaxReqs.length > 0){
|
|
let pureAjaxReq = gcm.ajaxReqs.shift();
|
|
let msg = gcm.progress.processMsgs.shift();
|
|
|
|
WebSquare.layer.showProcessMessage(msg);
|
|
$.ajax( pureAjaxReq );
|
|
} else {
|
|
|
|
let dataCount = gcm.progress.dataCount;
|
|
let successCount = gcm.progress.successCount;
|
|
|
|
clearInterval(gcm.progress.intervalID);
|
|
gcm.progress.dataCount = 0;
|
|
gcm.progress.successCount = 0;
|
|
gcm.progress.intervalID = null;
|
|
gcm.progress.wait = false;
|
|
|
|
WebSquare.layer.hideProcessMessage();
|
|
|
|
if(gcm.progress.funcWhenDone != null){
|
|
gcm.progress.funcWhenDone(successCount, dataCount);
|
|
}
|
|
gcm.progress.funcWhenDone = null;
|
|
}
|
|
|
|
}
|
|
}; |