File name
Commit message
Commit date
16 hours ago
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
/* 전자조정시스템 js파일
*
* 전자조정시스템 필요한 함수 여기에 생성해서 쓰세요
*
* */
$(document).ready(function() {
});
/*우편번호 검색*/
function fn_postCode(schBtn, test) {
var curX = window.screenLeft;
var curWidth = document.body.clientWidth;
var nLeft = curX + (curWidth / 2) - (500 / 2);
var nTop = (window.screen.height / 2) - (500 / 2);
//IE 에서 closet 지원이 되지않아 추가
if (!Element.prototype.matches) {
Element.prototype.matches = Element.prototype.msMatchesSelector ||
Element.prototype.webkitMatchesSelector;
}
if (!Element.prototype.closest) {
Element.prototype.closest = function(s) {
var el = this;
do {
if (el.matches(s)) return el;
el = el.parentElement || el.parentNode;
} while (el !== null && el.nodeType === 1);
return null;
};
}
var domArea = "";
if (schBtn) {
domArea = schBtn.closest("tr"); // 주소검색 n개일때 해당 tr 참조
} else {
domArea = document;
}
/*input에 텍스트 입력하고 함수 호출할 경우 입력한 텍스트 팝업창에 전달*/
var popupPostCode = domArea.querySelector('.adr_input').value;
var popupAddr = domArea.querySelector('.searchResultAddr').value;
var popupInput = '';
if (popupAddr != '') {
popupInput = popupAddr;
} else if (popupPostCode != '') {
popupInput = popupPostCode;
}
new daum.Postcode({
autoMapping: true,
// autoMappingRoad: true
// , autoMappingJibun: true
// ,
oncomplete: function(data) {
// 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
// 각 주소의 노출 규칙에 따라 주소를 조합한다.
// 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
var addr = ''; // 주소 변수
var extraAddr = ' '; // 참고항목 변수
//사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다.
if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우
addr = data.roadAddress;
} else { // 사용자가 지번 주소를 선택했을 경우(J)
addr = data.jibunAddress;
}
// 사용자가 선택한 주소가 도로명 타입일때 참고항목을 조합한다.
if (data.userSelectedType === 'R') {
// 법정동명이 있을 경우 추가한다. (법정리는 제외)
// 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다.
//김상훈 본부장 지시 -> 법정동 없이 도로명만
// if (data.bname !== '' && /[동|로|가]$/g.test(data.bname)) {
/* extraAddr += data.bname; */
// addr += data.bname;
// }
// 건물명이 있고, 공동주택일 경우 추가한다.
// if (data.buildingName !== '' && data.apartment === 'Y') {
// addr += (addr !== '' ? ', ' + data.buildingName : data.buildingName);
// }
}
// 우편번호와 주소 정보를 해당 필드에 넣는다. 첫번째 class가 adr_input, searchResultAddr에 값을 넣는다
/*domArea.getElementsByClassName("adr_input").value = data.zonecode;*/
domArea.querySelector('.adr_input').value = data.zonecode;
/*domArea.getElementsByClassName("searchResultAddr").value = addr;*/
domArea.querySelector('.searchResultAddr').value = addr;
// 커서를 상세주소 필드로 이동한다.
// domArea.getElementsByClassName("usrInsertAddr").focus();
}
}).open({
//미리 입력된 값을 팝업창에 전달
q: popupInput,
//팝업의 키값입력으로 다중 팝업 방지
popupKey: 'kccAdressPopup1',
//팝업 이름 지정
popupTitle: '주소검색',
left: nLeft,
top: nTop
});
}
// 이메일 도메인 선택 박스
function emailSelect(obj) {
var selectUrl = $(obj).find(":selected").val();
if (!selectUrl) {
selectUrl = "";
}
// 선택 박스 이전 첫번째 text박스
var email2Obj = $(obj).prevAll().filter("[type='text']:first");
if (email2Obj) {
email2Obj.val(selectUrl);
}
}
//수령지 주소 복사
function addrCp(obj) {
var $tdAddr = $(obj).closest("td");
var $tdAddrReal = $("#" + $tdAddr[0].id + "Real");
var $realPost = $tdAddrReal.find(".adr_input");
var $realAddr = $tdAddrReal.find(".searchResultAddr");
var $realAddrDtl = $tdAddrReal.find(".usrInsertAddr");
if ($(obj).prop("checked")) {
var $post = $tdAddr.find(".adr_input");
var $addr = $tdAddr.find(".searchResultAddr");
var $addrDtl = $tdAddr.find(".usrInsertAddr");
$realPost.val($post.val());
$realAddr.val($addr.val());
$realAddrDtl.val($addrDtl.val());
} else {
$realPost.val("");
$realAddr.val("");
$realAddrDtl.val("");
}
}
// 개인/법인 분류 선택
function usrTySelect(obj) {
if (!obj) return;
var usrTy = $("#" + obj.id + ":checked").val();
if (!usrTy) {
var ustTy01 = $("[name='rpplUsrTy']:eq(0)");
ustTy01.prop("checked", true);
usrTy = ustTy01.val();
}
$(obj).closest("table").find("tr[usrTy]").hide().prop("disabled", false);
$(obj).closest("table").find("tr[usrTy='" + usrTy + "']").show().prop("disabled", true);
//$("tr[usrTy]").hide().prop("disabled", false);
//$("tr[usrTy='"+usrTy+"']").show().prop("disabled", true);
}
//오프라인 조정신청에서 사용하려고 추가 20220125
//개인/법인 분류 선택
function usrTySelectOff(obj, reqNo) {
if (!obj) return;
var usrTy = $("#" + obj.id + ":checked").val();
if (!usrTy) {
var ustTy01 = $("[name='adjReqMgrVoList["+ reqNo +"].rpplUsrTy']:eq(0)");
ustTy01.prop("checked", true);
usrTy = ustTy01.val();
}
$(obj).closest("table").find("tr[usrTy]").hide().prop("disabled", false);
$(obj).closest("table").find("tr[usrTy='" + usrTy + "']").show().prop("disabled", true);
//$("tr[usrTy]").hide().prop("disabled", false);
//$("tr[usrTy='"+usrTy+"']").show().prop("disabled", true);
}
// 법인번호 유효성 자동 맞춤
function onKeyUpBizId(jObj) {
if (!jObj) return;
jObj.on("keyup", function() {
$(this).val(BusinessId($(this).val().replace(/[^-\.0-9]/g, "")));
});
}
//법인번호 포맷
function BusinessId(str) {
str = str.replace(/[^0-9]/g, '');
var tmp = '';
if (str.length < 6) {
return str;
} else {
tmp += str.substr(0, 6);
tmp += '-';
tmp += str.substr(6);
return tmp;
}
return str;
}
//개인사업자 유효성 자동 맞춤
function onKeyUpBizNo(jObj) {
if (!jObj) return;
jObj.on("keyup", function() {
$(this).val(BusinessNo($(this).val().replace(/[^-\.0-9]/g, "")));
});
}
//사업자번호 포맷
function BusinessNo(str) {
str = str.replace(/[^0-9]/g, '');
var tmp = '';
if (str.length < 4) {
return str;
} else if (str.length < 7) {
tmp += str.substr(0, 3);
tmp += '-';
tmp += str.substr(3);
return tmp;
} else {
tmp += str.substr(0, 3);
tmp += '-';
tmp += str.substr(3, 2);
tmp += '-';
tmp += str.substr(5);
return tmp;
}
return str;
}
/*
* layer 팝업 열기
* 페이지마다 modal과, 영역을 넣어야하는 번거러움과
* selector를 바꿔줘야하는 단첨이 있어 보완하여 기능 추가
* */
function commonPopLayeropen(url, popupwidth, popupheight, paramObj, maskYn, target) {
if (target == undefined || target == '') {
target = 'layerPop';
}
var maskId = target + "_mask";
if ($("#" + target).length == 0) {
var ele = $("<div/>").addClass("tooltip-wrap").css({ "display": "none" }).attr("id", target);
$("body:first").prepend(ele);
}
$('#' + target).load(
url
, paramObj
, function(res, status, xhr) {
if (status == "success") {
var parentDiv = $("#" + target);
var innerTarget = $("#" + target).find(".popup_wrap").css({ "width": popupwidth + 'px' });
var innerPopCont = $("#" + target).find(".popup_cont").css({
"height": popupheight + 'px!important',
"max-height": "none"
});
if (popupwidth > screen.width) {
popupwidth = screen.width;
}
if (popupheight > screen.height) {
popupheight = screen.height;
}
var top = 0;
var left = 0;
if (isNaN(parseInt(popupwidth))) {
top = ($(window).height() - 600) / 2;
left = ($(window).width() - 800) / 2;
} else {
top = ($(window).height() - popupheight) / 2;
left = ($(window).width() - popupwidth) / 2;
}
if (top < 0) top = 0;
if (left < 0) left = 0;
innerTarget.css({ "left": left, "top": top });
if (maskYn == "Y") {
if($(".mask").length == 0){
parentDiv.after($("<div/>").addClass("mask").attr("id", maskId)).next(".mask").show();
}else{
$(".mask").show();
}
}
parentDiv.show();
innerTarget.show().focus();
parentDiv.find("[data-focus=list_popup_close]").off().click(function(e) {
$("#" + target).remove();
$("#" + maskId).remove();
});
}
});
}
/*
* layer 팝업 닫기
* */
function commonPopLayerClose() {
$("[data-focus=list_popup_close]").trigger("click");
}
function commonPopWindowopenForm(surl, popupwidth, popupheight, name, frm) {
if (popupwidth > screen.width)
popupwidth = screen.width;
if (popupheight > screen.height)
popupheight = screen.height;
var top = 0;
var left = 0;
if (isNaN(parseInt(popupwidth))) {
top = (screen.availHeight - 600) / 2;
left = (screen.availWidth - 800) / 2;
} else {
top = (screen.availHeight - popupheight) / 2;
left = (screen.availWidth - popupwidth) / 2;
}
if (top < 0) top = 0;
if (left < 0) left = 0;
var option = "dependent=yes,fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,left=" + left + ",top=" + top + ",width=" + popupwidth + ",height=" + popupheight;
if (name == null || name == "") { name = "Popup"; }
window.open("", name, option);
frm.attr('target', name);
frm.attr('action', surl);
frm.method = "post";
frm.submit();
// 초기화..
frm.attr('target', '_self');
}
//휴대폰 번호에 대쉬(-) 추가해주기
function addDash(str) {
// alert(str + "::" + str.length);
if(str.length == 10){
// alert("in :: " + str.replace(/^(0(2|3[1-3]|4[1-4]|5[1-5]|6[1-4]))-(\d{3,4})-(\d{4})$/, "$1-$2-$3"));
return str.replace(/^(0(2|3[1-3]|4[1-4]|5[1-5]|6[1-4]))-(\d{3,4})-(\d{4})$/).replace("--", "-");
}
return str.replace(/(^01[016789]{1}|070)([0-9]{3}|[0-9]{4})([0-9]{4})$/, "$1-$2-$3").replace("--", "-");
}
//const formatPhoneNumber = (input) => {
function formatPhoneNumber(input){
const cleanInput = input.replaceAll(/[^0-9]/g, "");
let result = "";
const length = cleanInput.length;
if(length === 8) {
result = cleanInput.replace(/(\d{4})(\d{4})/, '$1-$2');
} else if(cleanInput.startsWith("02") && (length === 9 || length === 10)) {
result = cleanInput.replace(/(\d{2})(\d{3,4})(\d{4})/, '$1-$2-$3');
} else if(!cleanInput.startsWith("02") && (length === 10 || length === 11)) {
result = cleanInput.replace(/(\d{3})(\d{3,4})(\d{4})/, '$1-$2-$3');
} else {
result = undefined;
}
console.log(`${input} -> ${result}`);
return result;
}
//null 체크
function isEmpty(value) {
if (value == "" || value == null || value == undefined || (value != null && typeof value == "object" && !Object.keys(value).length)) { return true } else { return false }
}
function isNotEmpty(value) {
return !isEmpty(value);
}
function isEmptyObj(name) {
return isEmpty($('#' + name).val());
}
function isNotEmptyObj(name) {
return isNotEmpty($('#' + name).val());
}
function onlyNumber(thisObj) {
thisObj.value = thisObj.value.replace(/[^0-9]/gi, "");
}
function onlyAlphabetNumber(thisObj) {
thisObj.value = thisObj.value.replace(/[^0-9a-zA-Z]/gi, "");
}
function onlyAlphabetNumberEmail(thisObj) {
thisObj.value = thisObj.value.replace(/[^0-9a-zA-Z\.\_\-]/gi, "");
//thisObj.value = thisObj.value.replace(/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*/gi, "");
//thisObj.value = thisObj.value.replace(/^([\w\.\_\-])*[^0-9a-zA-Z\.\_\-]/gi, "");
//thisObj.value = thisObj.value.replace(/^([\w\.\_\-])*[^0-9a-zA-Z\.\_\-]/gi, "");
}
function getChkLen(name) {
return $("input:checkbox[name=" + name + "]:checked").length;
}
//hh:mm 체크
function isDatetime(d) {
var re = /^(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])$/;
return re.test(d);
}
//hh:mm:ss 체크
function isDatetimeSec(d) {
var re = /^(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/;
return re.test(d);
}
function setFormat (opt, obj) {
var formatText = '';
var num = $(obj).val();
switch (opt) {
case 'time':
formatText = num.replace(/(\d{2})(\d{2})/, '$1:$2');
break;
case 'day':
formatText = num.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3');
break;
}
$(obj).val(formatText);
}
// 조정신청서 리포트 화면
function fn_adjstReq_preview(adrSeq) {
window.open("/kccadr/adjReqMgr/popup/report/adjstReqReportAjax.do?adrSeq="+adrSeq);
}
//텍스트 문자열 길이만 반환
function conByteLeng(content){
var totalByte = 0;
//한글과 영문을 구분하여 바이트수 계산
for(var i=0; i< content.length; i++){
var currentByte = content.charCodeAt(i);
if(currentByte > 128){
totalByte += 2;
}else{
totalByte++;
}
}
return totalByte;
}
//메뉴별 권한 체크 - 시작시 현재 사용자의 해당 페이지 사용권한을 체크한다.
//_admin_fn_check_authority("adjReqMgrRegList", "div.cont", "ALL"); //ALL, CUD, P, R
function _admin_fn_check_authority(p_this_page_name, p_target_tag, p_target) {
var url = "";
url = "/kccadr/adjReqMgOff/EgovMenuAuthPstnCheckAjax.do";
//var this_page_name = "adjReqMgrRegList";
//alert(p_target);
$.ajax({
type:"POST",
"url":url,
data:{
"p_url": p_this_page_name //현재 페이지 정보를 넣어준다. 메뉴별권한관리-lettnprogrmlist 테이블의 url 컬럼값에서 like 검색 가능한 주소로 넣어야 한다.
},
dataType:'json',
success : function(returnData, status) {
//alert(returnData.status);
if (returnData.status == "success") {
//대상데이터가 있고, 해당 내용으로 제어를 체크한다.
//alert("대상임");
//alert(returnData.result4Check.allIs); //Y/N-전체권한여부ALL
//alert(returnData.result4Check.cudIs); //Y/N-cud권한여부
//alert(returnData.result4Check.pIs); //Y/N-출력권한여부
//alert(returnData.result4Check.rIs); //Y/N-r권한여부READ
if (returnData.result4Check.allIs=='N' && p_target=='ALL'){ //모든 권한 없는 경우
//$('div.cont').html('해당 페이지에 대한 접근 권한이 없습니다.');
$(p_target_tag).html('해당 페이지에 대한 접근 권한이 없습니다.');
}else if (returnData.result4Check.rIs=='N' && p_target=='R'){ //읽기 권한 없는 경우(상세화면)
//$('div.cont').html('해당 페이지에 대한 접근 권한이 없습니다.');
$(p_target_tag).html('해당 페이지에 대한 접근 권한이 없습니다.');
}
var v_ret = "";
if (returnData.result4Check.cudIs=='Y'){ //등록/수정/삭제 권한 없는 경우(리스트,상세화면)
//alert("1");
//admin_fn_check_authority_ret("CUD");
v_ret = "CUD";
//return "";
}
if (returnData.result4Check.pIs=='Y'){ //출력 권한 없는 경우(상세화면)
//alert("12");
//return "CUD";
v_ret = v_ret + "P";
//admin_fn_check_authority_ret("P");
}
admin_fn_check_authority_ret(v_ret);
}else if (returnData.status == "pass") {
//상위 권한으로 패스처리
//alert("pass-상위권한자");
}else if (returnData.status == "nodata") {
//해당 페이지에 대한 데이터 없음
//alert("nodata-해당페이지 제어 데이터 없음");
}else if (returnData.status == "fail") {
//처리중 오류 발생
//alert("fail-체크 실패DB오류");
}else{
//대상 페이지가 아니다.
//alert("else"+returnData.status);
}
},
error : function(request , status, error) {
;//체크정보 호출 실패
},
complete : function () {
;//체크 정보 호출 완료
}
});
}