File name
Commit message
Commit date
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 () {
;//체크 정보 호출 완료
}
});
}