From ed05ea4648797602e4c9961fae11356f50194a4b Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Mon, 9 Dec 2024 14:52:29 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8C=A9=EC=8A=A4=20=EC=A3=BC=EC=86=8C?= =?UTF-8?q?=EB=A1=9D=20=EC=A7=84=ED=96=89=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MjonMsgDataServiceImpl.java | 13 +- .../let/fax/addr/Fax_AddrGroup_SQL_Mysql.xml | 3 +- .../webapp/WEB-INF/jsp/web/addr/AddrList.jsp | 82 ------ .../web/addr/include/addrListforClipboard.jsp | 109 +------- .../jsp/web/addr/include/addrListforExcel.jsp | 111 -------- .../WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp | 250 +----------------- .../addr/include/FaxAddrListforClipboard.jsp | 191 +------------ .../fax/addr/include/FaxAddrListforExcel.jsp | 68 ----- .../user/fax/addr/{faxEvent.js => event.js} | 6 +- src/main/webapp/js/user/fax/addr/init.js | 209 +++++++++++++++ 10 files changed, 255 insertions(+), 787 deletions(-) rename src/main/webapp/js/user/fax/addr/{faxEvent.js => event.js} (98%) create mode 100644 src/main/webapp/js/user/fax/addr/init.js diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java index 96260e32..aa01cc8b 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java @@ -4688,8 +4688,19 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M // 보유 금액이 충분한지 확인하는 메서드 private boolean isCashSufficient(MjonMsgVO mjonMsgVO) throws Exception { String userMoney = priceAndPoint.getBefCash(mjonMsgVO.getUserId()); + // 쉼표 제거 + userMoney = userMoney.replace(",", ""); + + String totalPrice = mjonMsgVO.getTotPrice(); + // 쉼표 제거 + totalPrice = totalPrice.replace(",", ""); + BigDecimal befCash = new BigDecimal(userMoney).setScale(2, RoundingMode.HALF_EVEN); - BigDecimal totMsgPrice = new BigDecimal(mjonMsgVO.getTotPrice()).setScale(2, RoundingMode.HALF_EVEN); + BigDecimal totMsgPrice = new BigDecimal(totalPrice).setScale(2, RoundingMode.HALF_EVEN); + +// String userMoney = priceAndPoint.getBefCash(mjonMsgVO.getUserId()); +// BigDecimal befCash = new BigDecimal(userMoney).setScale(2, RoundingMode.HALF_EVEN); +// BigDecimal totMsgPrice = new BigDecimal(mjonMsgVO.getTotPrice()).setScale(2, RoundingMode.HALF_EVEN); return befCash.compareTo(totMsgPrice) >= 0; } diff --git a/src/main/resources/egovframework/sqlmap/let/fax/addr/Fax_AddrGroup_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/let/fax/addr/Fax_AddrGroup_SQL_Mysql.xml index 459895b8..60dfcb06 100644 --- a/src/main/resources/egovframework/sqlmap/let/fax/addr/Fax_AddrGroup_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/fax/addr/Fax_AddrGroup_SQL_Mysql.xml @@ -9,7 +9,7 @@ SELECT COUNT(1) OVER() AS totCnt ,A.ADDR_GRP_ID AS addrGrpId - ,A.MBER_ID AS mberId + ,A.MBER_ID AS mberId ,A.ADDR_GRP_NM AS addrGrpNm ,DATE_FORMAT(A.FRST_REGIST_PNTTM, '%Y-%m-%d %T' ) AS frstRegistPnttm ,A.DELETE_YN AS deleteYn @@ -26,6 +26,7 @@ AND A.MBER_ID = #mberId# + AND A.DELETE_YN = 'N' AND ( A.MBER_ID LIKE CONCAT ('%', #searchKeyword#,'%') diff --git a/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp b/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp index e7b360eb..76f776b5 100644 --- a/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp @@ -293,35 +293,11 @@ function getAddrGroupDuplCheckAjax(addrGrpNm) { //저장 function SetAddrMassSave(){ - - - - - - - - var $objTabul = fn_utils_getTabulator(); var tabulNm = fn_utils_getTabulatorNm(); var tabluC = '.'+tabulNm - /* console.log('$objTabul : ', $objTabul.getData()); - if(tabulNm == 'tableSelf'){ - console.log('????'); - - var allRows = $objTabul.getData(); // 테이블의 모든 데이터를 가져옴 - - // addrPhoneNo 값이 있는 행만 필터링 - var rowsWithPhoneNumbers = allRows.filter(function(row) { - return row.addrPhoneNo && row.addrPhoneNo.trim() !== ''; // 값이 존재하고 공백이 아닌 경우 - }); - $objTabul = rowsWithPhoneNumbers; - console.log('rowsWithPhoneNumbers : ', rowsWithPhoneNumbers); - console.log('$objTabul : ', $objTabul.getData()); - return false; - } */ - if($objTabul.getData().length < 1){ alert("한 개 이상의 연락처를 입력하세요"); return false; @@ -385,64 +361,6 @@ function SetAddrMassSave(){ } } -/* -// 주소록 등록 old -function setSenderList_old(){ - - // tab에 해당하는 타블레이터 가져오기 - - var tabulNm = fn_utils_getTabulatorNm(); - var tabluC = '.'+tabulNm - - var $objTabul = fn_utils_getTabulator(); - var dataToSend = $objTabul.getData(); - var addrGrpIdInfo = $(tabluC+" #addrGrpIdInfo option:selected").val(); - var addrGrpNmInfo = $(tabluC+" #addrGrpNm").val(); - - var updateData = dataToSend.map(row => { - row.addrGrpId = addrGrpIdInfo; - row.addrGrpNm = addrGrpNmInfo; - return row; - }); - - console.log('updateData : ', updateData); - $.ajax({ - type: "POST", - url: "/web/mjon/addr/addrMassInsertByTempAjax_advc.do", - data: JSON.stringify(updateData), - dataType: 'json', - contentType: 'application/json', - async: true, - success: function (data) { - console.log('data : ', data); - - - if (data.status == 'OK') { - alert(data.message); - // 데이터 비우기 - SetClear($objTabul); - setAddrMassClose(); - var selectMassVal = $("#addrGrpIdInfo option:selected").val(); - } - else { - alert("오류 알림 : :: "+data.message); - } - }, - error: function (e) { - alert("저장에 실패하였습니다."); - alert("ERROR : " + JSON.stringify(e)); - }, - beforeSend : function(xmlHttpRequest) { - //로딩창 show - $('.loading_layer').addClass('active'); - }, - complete : function(xhr, textStatus) { - //로딩창 hide - $('.loading_layer').removeClass('active'); - } - }); -} - */ function setSenderList_advc(){ diff --git a/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforClipboard.jsp b/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforClipboard.jsp index 20fa9cd5..11f5a43f 100644 --- a/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforClipboard.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforClipboard.jsp @@ -22,117 +22,12 @@ function addrGroupLoadAjax(){ $("#funcAddrGroupSelect").load("/web/addr/selectAddrGroupAjax.do", function(response, status, xhr){}); } - -function insertAddrGroupAjax() { - var form = document.addrGrpInsertForm; - if(form.addrGrpNm.value == "") { - alert("주소록 그룹명을 입력해주세요."); - return; - } - if(!confirm("주소록 그룹을 추가하시겠습니까?")) { - return; - } - var data = new FormData(form); - - $.ajax({ - cache : false, - url : "", - type : 'POST', - data : data, - dataType:'json', - processData: false, - contentType: false, - success : function(returnData, status){ - if(status == "success") { - if("fail"==returnData.result){ - alert(returnData.message); - return; - } else if("dupl"==returnData.result) { - alert("중복된 그룹명입니다."); - return; - } - alert("등록되었습니다."); - listAddrGrp(); - addrGroupLoadAjax(); - - }else{ alert("ERROR!");return;} - }, - error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } - }); - -} - -function insertAddrAjax() { - var selectVal = $("#addrRegistSelect option:selected").val(); - //alert(selectVal); - - var form = document.addrInsertForm; - /* - //필수값 아니어서 뺐음 - if(form.addrNm.value == "") { - alert("주소록 이름을 입력하세요"); - return; - } - */ - if(form.addrPhoneNo.value == "") { - alert("주소록 번호를 입력하세요"); - return; - } - //if(!confirm("주소록을 추가하시겠습니까?")) { - // return; - //} - - if(!checkHpNum(form.addrPhoneNo.value)){//휴대폰 유효성 검사 - if(!checkNorPhoneNum(form.addrPhoneNo.value)){//일반전화 유효성 검사 - - alert("잘못된 휴대폰번호 또는 일반전화 번호 입니다."); - return false; - - } - - } - - var data = new FormData(form); - - $.ajax({ - cache : false, - url : "", - type : 'POST', - data : data, - dataType:'json', - processData: false, - contentType: false, - success : function(returnData, status){ - if(status == "success") { - if("fail"==returnData.result){ - alert(returnData.message); - return; - } else if("dupl"==returnData.result){ - alert("해당 그룹에 중복된 번호가 있습니다."); - return; - } - //alert("저장 되었습니다."); - - listAddrGrp(); - addrGroupLoadAjax(); - addrLoadAjax(); - - // 주소록그룹 콤보박스 유지 - setTimeout(setSelectSetting, 500, selectVal); - - }else{ alert("ERROR!");return;} - }, - error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } - }); - -} - // 주소록그룹 콤보박스 유지 function setSelectSetting(selectVal) { $("#addrRegistSelect").val(selectVal).prop("selected", true); } -function linkPage(pageNo){ +/* function linkPage(pageNo){ if ($('#searchKeywordAddr').val() != "" && $('#searchKeywordAddr').val() != null && $('#searchKeywordAddr').val() != undefined) { // 문자전송 검색용 $("#msgStartKeyword").val(""); @@ -149,7 +44,7 @@ function linkPage(pageNo){ $("#adr1_right").load("/web/mjon/addr/selectAddrAjax.do", sendData, function(response, status, xhr){tableAllChk();}); addrGroupLoadAjax(); } - + */ //############################################################################################# diff --git a/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp b/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp index a0e6ec68..e07247f1 100644 --- a/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp @@ -22,45 +22,6 @@ function addrGroupLoadAjax(){ } -function insertAddrGroupAjax() { - var form = document.addrGrpInsertForm; - if(form.addrGrpNm.value == "") { - alert("주소록 그룹명을 입력해주세요."); - return; - } - if(!confirm("주소록 그룹을 추가하시겠습니까?")) { - return; - } - var data = new FormData(form); - - $.ajax({ - cache : false, - url : "", - type : 'POST', - data : data, - dataType:'json', - processData: false, - contentType: false, - success : function(returnData, status){ - if(status == "success") { - if("fail"==returnData.result){ - alert(returnData.message); - return; - } else if("dupl"==returnData.result) { - alert("중복된 그룹명입니다."); - return; - } - alert("등록되었습니다."); - listAddrGrp(); - addrGroupLoadAjax(); - - }else{ alert("ERROR!");return;} - }, - error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } - }); - -} - // 주소록그룹 콤보박스 유지 function setSelectSetting(selectVal) { @@ -140,10 +101,6 @@ $(document).ready(function(){ updateTableField(selectedField, newValue); } }); - - - - }); @@ -282,14 +239,10 @@ function updateTable(tableData) { {title: "F", field: "F", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]}, {title: "G", field: "G", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]} ]); - - console.log(' :: $tableExcel.setData(tableData) :: '); $tableExcel.setData(tableData).then(() => { // rowTotCnt 업데이트 document.getElementById("rowTotCnt").innerText = tableData.length; }); - - console.log(' :: fn_loadRemoveActive :: '); fn_loadRemoveActive(); } @@ -299,37 +252,6 @@ function updateTable(tableData) { //############################################################################################# - -// 주소록 그룹 중복체크 -function getAddrGroupDuplCheckAjax() { - var isReturn = true; - - $.ajax({ - url : "", - type : 'POST', - data : {"addrGrpNm" : $("#addrGrpNm").val()}, - dataType:'json', - async: false, // 동기 - success : function(data, status){ - if(data.isSuccess == true) { - if(data.isDupl == true) { - //alert("중복된 그룹명입니다."); - isReturn = false; - } - } - else { - //alert("Message : " + msg); - } - }, - error: function (e) { - //alert("주소록 중복체크에 실패했습니다."); - } - }); - - return isReturn; -} - - //############################################################################################# //파일 불러오기 //############################################################################################# @@ -353,33 +275,6 @@ $(document).on("click", "#duplicationChkAll", function(e) { -//중복 연락처 => 저장시 -// 해당 그룹 -/* function GetAddrMassSaveDupli() { - var sHtml = ""; - sHtml += "
"; - sHtml += ""; - sHtml += " "; - sHtml += " "; - sHtml += " "; - sHtml += " "; - sHtml += " "; -// sHtml += " "; - sHtml += " "; - sHtml += " "; - sHtml += " "; - sHtml += " "; - for (var i = 0; i < addrMassDupliSaveList.length; i++) { - sHtml += " "; - sHtml += " "; - sHtml += " "; - } - sHtml += " "; - sHtml += "
중복 휴대폰번호 (" + numberWithCommas(addrMassDupliSaveList.length) + "개)중복 휴대폰번호 (10개)
" + addrMassDupliSaveList[i].addrPhoneNo + "
"; - sHtml += "
"; - - $("#addrMassSaveDupli_layer").html(sHtml); -} */ @@ -435,13 +330,7 @@ $(document).on("click", "#duplicationChkAll", function(e) { / 오류 0

-   - - - - - diff --git a/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp b/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp index 6896da2d..7e6eec13 100644 --- a/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp @@ -7,8 +7,10 @@ - - +<%-- --%> + +<%-- --%> + @@ -168,229 +170,6 @@ function moveTab(type){ } - -//############################################################################################# -//Tabulator -//############################################################################################# -var tableR = null; //우측 주소록 불러오기 Tabulator 변수 - -/* 파일등록 */ -var _fileIdx = 0; -var _fileForm2 = new Array(); -var fileExt = ""; // 첨부파일 확장자 -var excelAddr = []; //엑셀 불러오기에서 내용 저장하는 배열 변수 - -$(document).ready(function(){ - //Tabulator AJAX Data Loading - - //tableR.setData(tabledata); - - //받는사람 번호 버튼 클릭시 Tabulator에 데이터 넣어주기 - $('.addCallToF').click(function(){ - var recTableData = tableR.getRows(); // 받는사람 리스트의 전체 목록을 저장 - var tableData = []; - - //빈 Row 한줄을 상단에 먼저 추가해준다. - tableData.push({phone: ""}); - - //기존 받는사람 리스트를 배열에 미리 담아둔다. - if(recTableData.length > 0){ - for(var j=0; j < recTableData.length; j++){ - tableData.push({name: recTableData[j].getData().name, phone: removeDash(recTableData[j].getData().phone.trim()), memo: recTableData[j].getData().memo}); - } - } - - //연락처 추가해 주기 - //addPhoneInfo(tabledata); - - tableR.setData(tableData); - - //전체 데이터 갯수 구하기 - totRows = tableR.getRows().length; - updateTotCnt(totRows); - }); - - //받는사람 오류번호 삭제 처리해주기 - $('.chkVali_del').click(function(){ - //기존 연락처 모두 불러오기 - var data = tableR.getRows(); - var tableData = []; - var totLen = tableR.getRows().length; - var errCnt = 0; - - if(totLen > 0){ - if(confirm("올바르지 않은 연락처 정보를 삭제 하시겠습니까?")){ - for(var i=0; i < totLen; i++){ - var phone = data[i].getData().phone; - var valiCheck = checkFaxNum(phone); - if(valiCheck){//팩스 번호인 것만 저장해 준다. - tableData.push({name: data[i].getData().name.trim(), phone: data[i].getData().phone.trim(), memo:data[i].getData().memo}); - }else{ - errCnt++; - } - } - - var removeDuplData = dupliPhoneData(tableData); - - tableR.setData(removeDuplData); - - //총 받는사람 수 계산 - totRows = tableR.getRows().length; - updateTotCnt(totRows); - - if(errCnt > 0){ - alert(errCnt + " 건의 연락처를 삭제하였습니다."); - return false; - }else{ - alert("오류가 있는 연락처가 없습니다."); - } - } - }else{ - alert("연락처 정보를 입력해 주세요."); - return false; - } - }); - - - // 오류검사 항목 중복제거 - function SetTableErrorDupliCheck(sVal) { - var isDuplicate = false; - if (tableErrorCheckData.length == 0) { - tableErrorCheckData.push(sVal); - } - else { - for (var i = 0; i < tableErrorCheckData.length; i++) - { - if (tableErrorCheckData[i] == sVal) { - isDuplicate = true; - } - } - - if (isDuplicate) { - return; - } - else { - tableErrorCheckData.push(sVal); - } - } - } - - - // 오류검사 항목 중복제거 - function SetTableErrorDupliCheck(sVal) { - var isDuplicate = false; - if (tableErrorCheckData.length == 0) { - tableErrorCheckData.push(sVal); - } - else { - for (var i = 0; i < tableErrorCheckData.length; i++) - { - if (tableErrorCheckData[i] == sVal) { - isDuplicate = true; - } - } - - if (isDuplicate) { - return; - } - else { - tableErrorCheckData.push(sVal); - } - } - } - - $('.check_validity').click(function(){ - tableErrorCheckData.length = 0; // 오류 번호 배열 초기화 - - var data = tableR.getRows(); - var invalid = tableR.getInvalidCells(); //오류 데이터 체크 - var dataLen = tableR.getRows().length; //연락처 데이터 갯수 - var totLen = invalid.length; //오류 데이터 갯수 - var errMsg = ""; //최종 alert에 표시할 메시지 저장 변수 - - if(dataLen > 0) { //연락처 정보가 있으면 수행 - if(totLen > 0) { //내용에 오류가 있으면 수행 - //오류 데이터 값 저장 - for(var i=0; i < totLen; i++) { - var cellValue = invalid[i].getValue(); - SetTableErrorDupliCheck(cellValue); - } - - for(var i=0; i < dataLen; i++){ - // 팩스번호 체크 - var phone = data[i].getData().phone; - var valiCheck = checkFaxNum(phone); - if(!valiCheck){ - SetTableErrorDupliCheck(phone); - } - } - } - else { - for(var i=0; i < dataLen; i++){ - // 팩스번호 체크 - var phone = data[i].getData().phone; - var valiCheck = checkFaxNum(phone); - if(!valiCheck){ - SetTableErrorDupliCheck(phone); - } - } - } - } - else { - alert("연락처를 입력해 주세요."); - return false; - } - - if (tableErrorCheckData.length > 0) { - for (var i = 0; i < tableErrorCheckData.length; i++) - { - errMsg += tableErrorCheckData[i]; - if ((tableErrorCheckData.length - 1) > i) { - errMsg += ", "; - } - } - alert(errMsg + "의 내용에 오류가 있습니다."); - } - else { - alert("오류 데이터가 없습니다."); - } - - return false; - }); - - - $('.addExcelDw').click(function(){ - var data = tableR.getRows(); - if(data.length > 0){ - tableR.download("xlsx", "recieveAddr.xlsx", {sheetName:"recieveAddr"}); - }else{ - alert("입력된 연락처 정보가 없습니다."); - return false; - } - }); - - //받는사람 중복 삭제 - $('.duple_del').click(function(){ - //기존 연락처 모두 불러오기 - var data = tableR.getRows(); - var tableData = []; - var dpCnt = 0; - var totLen = tableR.getRows().length; - - for(var i=0; i < totLen; i++){ - tableData.push({name: data[i].getData().name.trim(), phone: data[i].getData().phone.trim()}); - } - - var removeDuplData = dupliPhoneData(tableData); - tableR.setData(removeDuplData); - - //총 받는사람 수 계산 - totRows = tableR.getRows().length; - updateTotCnt(totRows); - }); -}); - - //전체 데이터 갯수 구하는 함수 function updateTotCnt(data){ var rowTotCnt = data; @@ -681,6 +460,7 @@ function fn_rowDataClear(){ // 주소록 그룹 중복체크 function getAddrGroupDuplCheckAjax(addrGrpNm) { + console.log('addrGrpNm : ', addrGrpNm); var isReturn = true; $.ajax({ @@ -714,13 +494,7 @@ function SetAddrMassSave(){ var $objTabul = fn_utils_getTabulator(); var tabulNm = fn_utils_getTabulatorNm(); var tabluC = '.'+tabulNm - - var loginVO = '${LoginVO}'; - if(loginVO == "" || loginVO == null){ - alert("로그인 후 이용이 가능합니다."); - return false; - } - + if($objTabul.getData().length < 1){ alert("한 개 이상의 연락처를 입력하세요"); return false; @@ -730,6 +504,13 @@ function SetAddrMassSave(){ alert("30만개 까지 등록 가능합니다."); return false; } + + + var loginVO = '${LoginVO}'; + if(fn_utils_isEmpty(loginVO)){ + alert("로그인 후 이용이 가능합니다."); + return false; + } var columns = $objTabul.getColumns(); var isAddrPhoneNoSelected = columns.some(column => column.getField() === 'addrPhoneNo'); @@ -758,16 +539,13 @@ function SetAddrMassSave(){ console.log('addrGrpNm : ', addrGrpNm); //주소록 중복체크 - if (getAddrGroupDuplCheckAjax() == false) { + if (getAddrGroupDuplCheckAjax(addrGrpNm) == false) { alert("중복된 그룹명입니다. 새 그룹명을 입력해주세요."); return false; } } //수신번호 리스트 체크하기 - var phoneList = []; - var nameList = []; - var memoList = []; var confirmMsg = "저장하시겠습니까?\n이름 20byte, 메모 250byte 초과 글자는 절사됩니다."; if (confirm(confirmMsg)) { //로딩창 show diff --git a/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforClipboard.jsp b/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforClipboard.jsp index 20fa9cd5..6e95617e 100644 --- a/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforClipboard.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforClipboard.jsp @@ -23,110 +23,6 @@ function addrGroupLoadAjax(){ } -function insertAddrGroupAjax() { - var form = document.addrGrpInsertForm; - if(form.addrGrpNm.value == "") { - alert("주소록 그룹명을 입력해주세요."); - return; - } - if(!confirm("주소록 그룹을 추가하시겠습니까?")) { - return; - } - var data = new FormData(form); - - $.ajax({ - cache : false, - url : "", - type : 'POST', - data : data, - dataType:'json', - processData: false, - contentType: false, - success : function(returnData, status){ - if(status == "success") { - if("fail"==returnData.result){ - alert(returnData.message); - return; - } else if("dupl"==returnData.result) { - alert("중복된 그룹명입니다."); - return; - } - alert("등록되었습니다."); - listAddrGrp(); - addrGroupLoadAjax(); - - }else{ alert("ERROR!");return;} - }, - error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } - }); - -} - -function insertAddrAjax() { - var selectVal = $("#addrRegistSelect option:selected").val(); - //alert(selectVal); - - var form = document.addrInsertForm; - /* - //필수값 아니어서 뺐음 - if(form.addrNm.value == "") { - alert("주소록 이름을 입력하세요"); - return; - } - */ - if(form.addrPhoneNo.value == "") { - alert("주소록 번호를 입력하세요"); - return; - } - //if(!confirm("주소록을 추가하시겠습니까?")) { - // return; - //} - - if(!checkHpNum(form.addrPhoneNo.value)){//휴대폰 유효성 검사 - if(!checkNorPhoneNum(form.addrPhoneNo.value)){//일반전화 유효성 검사 - - alert("잘못된 휴대폰번호 또는 일반전화 번호 입니다."); - return false; - - } - - } - - var data = new FormData(form); - - $.ajax({ - cache : false, - url : "", - type : 'POST', - data : data, - dataType:'json', - processData: false, - contentType: false, - success : function(returnData, status){ - if(status == "success") { - if("fail"==returnData.result){ - alert(returnData.message); - return; - } else if("dupl"==returnData.result){ - alert("해당 그룹에 중복된 번호가 있습니다."); - return; - } - //alert("저장 되었습니다."); - - listAddrGrp(); - addrGroupLoadAjax(); - addrLoadAjax(); - - // 주소록그룹 콤보박스 유지 - setTimeout(setSelectSetting, 500, selectVal); - - }else{ alert("ERROR!");return;} - }, - error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } - }); - -} - // 주소록그룹 콤보박스 유지 function setSelectSetting(selectVal) { $("#addrRegistSelect").val(selectVal).prop("selected", true); @@ -312,7 +208,8 @@ $(document).ready(function(){ return false; } - let keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; +// let keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; + let keys = ['A', 'B', 'C']; let data = {}; splitData.forEach((item, index) => { data[keys[index]] = item.trim() || ""; // 빈 문자열로 기본값 설정 @@ -324,8 +221,11 @@ $(document).ready(function(){ console.log('Tabulator data before getData:', $tableClip.getData()); // $tableClip.clearData(); $tableClip.setData([{ - A: "", B: "", C: "", D: "", E: "", F: "", G: "" + A: "", B: "", C: "" }]); // 초기 데이터로 복원 +// $tableClip.setData([{ +// A: "", B: "", C: "", D: "", E: "", F: "", G: "" +// }]); // 초기 데이터로 복원 $tableClip.setData(realPhone); var totRows = $tableClip.getDataCount(); updateTotCnt(totRows); @@ -454,99 +354,34 @@ function GetAddrMassDupli() {
-
-
+
+
-
+
-
+
-
- - -
-
- - -
-
- - -
-
- - -
-
diff --git a/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp b/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp index 1631d3fd..c7e855d3 100644 --- a/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp @@ -16,45 +16,6 @@ function addrGroupLoadAjax(){ } -function insertAddrGroupAjax() { - var form = document.addrGrpInsertForm; - if(form.addrGrpNm.value == "") { - alert("주소록 그룹명을 입력해주세요."); - return; - } - - if(!confirm("주소록 그룹을 추가하시겠습니까?")) { - return; - } - var data = new FormData(form); - - $.ajax({ - cache : false, - url : "", - type : 'POST', - data : data, - dataType:'json', - processData: false, - contentType: false, - success : function(returnData, status){ - if(status == "success") { - if("fail"==returnData.result){ - alert(returnData.message); - return; - } else if("dupl"==returnData.result) { - alert("중복된 그룹명입니다."); - return; - } - alert("등록되었습니다."); - listAddrGrp(); - addrGroupLoadAjax(); - - }else{ alert("ERROR!");return;} - }, - error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } - }); -} - // 주소록그룹 콤보박스 유지 function setSelectSetting(selectVal) { @@ -252,7 +213,6 @@ function updateTable(tableData) { document.getElementById("rowTotCnt").innerText = tableData.length; }); - console.log(' :: fn_loadRemoveActive :: '); fn_loadRemoveActive(); } @@ -261,34 +221,6 @@ function updateTable(tableData) { //등록 //############################################################################################# -// 주소록 그룹 중복체크 -function getAddrGroupDuplCheckAjax() { - var isReturn = true; - - $.ajax({ - url : "", - type : 'POST', - data : {"addrGrpNm" : $("#addrGrpNm").val()}, - dataType:'json', - async: false, // 동기 - success : function(data, status){ - if(data.isSuccess == true) { - if(data.isDupl == true) { - //alert("중복된 그룹명입니다."); - isReturn = false; - } - } - else { - //alert("Message : " + msg); - } - }, - error: function (e) { - //alert("주소록 중복체크에 실패했습니다."); - } - }); - - return isReturn; -} //############################################################################################# diff --git a/src/main/webapp/js/user/fax/addr/faxEvent.js b/src/main/webapp/js/user/fax/addr/event.js similarity index 98% rename from src/main/webapp/js/user/fax/addr/faxEvent.js rename to src/main/webapp/js/user/fax/addr/event.js index b6135b3e..2c55e4be 100644 --- a/src/main/webapp/js/user/fax/addr/faxEvent.js +++ b/src/main/webapp/js/user/fax/addr/event.js @@ -358,10 +358,10 @@ function resetTableFieldsToDefault() { // 초기 필드(A, B, C, D 등)를 위한 열 설정 var columns = [ - {formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) { + {formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, width:50, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) { cell.getRow().toggleSelect(); }}, - {formatter:"rownum", align:"center", title:"No", hozAlign:"center", headerHozAlign:"center", width:40} + {formatter:"rownum", align:"center", title:"No", hozAlign:"center", headerHozAlign:"center", width:100} ]; // 기본 필드로 열 구성 @@ -372,7 +372,7 @@ function resetTableFieldsToDefault() { hozAlign: "center", headerHozAlign: "center", editor: false, // 편집 비활성화 - width: 240, + width: 260, validator: ["maxLength:100", "string"] }); }); diff --git a/src/main/webapp/js/user/fax/addr/init.js b/src/main/webapp/js/user/fax/addr/init.js new file mode 100644 index 00000000..60dc0ae1 --- /dev/null +++ b/src/main/webapp/js/user/fax/addr/init.js @@ -0,0 +1,209 @@ + + +var tableErrorData = []; +var tableErrorCheckData = []; +var addrMassDupliSaveList = null; + +var gArrRestartIndex = 0; //배열 재시작카운드 +var gNameList = []; //치환문자 이름 +var gPhoneList = []; //받는사람 +var gMemoList = []; //메모 + +var $tableExcel = null; //엑셀입력 탭 +var $tableClip = null; //붙여넣기 탭 +var $tableSelf = null; //직접입력 탭 +var $tableError = null; //에러 팝업 영역 + + +$(document).ready(function(){ + + //excel 파일 불러오기 tabulator + $tableExcel = new Tabulator("#tabulator_excel", { + height:"255px", + width:"100%", + layout:"fitColumns", + autoColumns:false, + headerHozAlign:"center", + validationMode:"highlight", + clipboard:false, + clipboardCopySelector:"table", + clipboardPasteAction:"insert", // insert, update, replace + placeholder:"Excel 파일을 업로드 해주세요.", //fit columns to width of table (optional) + columns:[ //Define Table Columns + {formatter:"rowSelection", titleFormatter:"rowSelection",clipboard:false, hozAlign:"center", width:50, headerSort:false, cellClick:function(e, cell){ + cell.getRow().toggleSelect(); + }} + ,{formatter:"rownum", hozAlign:"center" ,title:"No", hozAlign:"center", headerHozAlign:"center", width:100} + ,{title:"A", field:"A", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} + ,{title:"B", field:"B", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} + ,{title:"C", field:"C", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} + ], + validationFailed:function(cell, value, parameters){ // 유효성 체크 함수 + var valid = cell.isValid(); + if(!valid){ + alert("양식에 맞지 않는 정보가 입력되었습니다."); + + //해당 셀 데이터 삭제 + cell.setValue(""); + } + return value % parameters.phone; + }, + }); + + + + $tableClip = new Tabulator("#tabulator_clip", { + height:"255px", + width:"100%", + layout:"fitColumns", + editor:true, + headerHozAlign:"center", + validationMode:"highlight", + placeholder:"복사(Ctrl+C)한 내용을 여기에 붙여넣기(Ctrl+V) 해주세요.", //fit columns to width of table (optional) +// clipboard:true, // 클립보드 기능 활성화 + clipboardPasteAction:"update", // insert, update, replace + columns: [ + {formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", width:50, headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) { + cell.getRow().toggleSelect(); + }}, + {formatter:"rownum", hozAlign:"center" ,title:"No", hozAlign:"center", headerHozAlign:"center", width:100} + ,{title:"A", field:"A", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} + ,{title:"B", field:"B", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} + ,{title:"C", field:"C", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} + /*,{title:"D", field:"D", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]} + ,{title:"E", field:"E", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]} + ,{title:"F", field:"F", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]} + ,{title:"G", field:"G", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]}*/ + ], + validationFailed: function(cell, value, parameters) { + var valid = cell.isValid(); + if (!valid) { + alert("양식에 맞지 않는 정보가 입력되었습니다."); + cell.setValue(""); // 해당 셀 데이터 삭제 + } + return false; // 유효하지 않은 경우 false 반환 + }, + }); + + + + //Tabulator AJAX Data Loading + $tableError = new Tabulator("#tabulator_error", { + height:"255px", + width:"100%", + layout:"fitColumns", + autoColumns:false, + headerHozAlign:"center", + validationMode:"highlight", + clipboard:false, + clipboardCopySelector:"table", + clipboardPasteAction:"insert", // insert, update, replace + placeholder:"등록 팝업에서 팩스번호를 선택 후 확인해주세요.", //fit columns to width of table (optional) + columns:[ //Define Table Columns + {title:"이름", field:"name", hozAlign:"center", headerHozAlign: "center", width:125}, + {title:"팩스번호", field:"phone", hozAlign:"center", headerHozAlign: "center", width:158}, + {title:"미등록 결과", field:"result", hozAlign:"center", headerHozAlign: "center", width:125} + ] + }); + + // 타뷸레이터 width값 변경 시 위에 select width 값 변경 + var titleArray = ["A","B","C","D","E","F","G"]; + + $tableExcel.on("columnWidth",function(column){ + var titleIndex = titleArray.indexOf(column._column.definition.title); + titleIndex += 1; + if(titleIndex != 0){ + $('.tableExcel .select_adr_hd>div').eq(titleIndex).css('width', column._column.width); + }else{ + $('.tableExcel .select_adr_hd>div').eq(0).css('width', column._column.width + 40); + } + }); + + $tableExcel.on("scrollHorizontal",function(left){ + $(".tableExcel .adr_excel").scrollLeft(left); + }) + + $(".tableExcel .adr_excel").on("scroll",function(){ + $(".tableExcel .tabulator-tableholder").scrollLeft($(this).scrollLeft()); + }); + + + + $tableClip.on("columnWidth",function(column){ + var titleIndex = titleArray.indexOf(column._column.definition.title); + titleIndex += 1; + if(titleIndex != 0){ + $('.tableClip .select_adr_hd>div').eq(titleIndex).css('width', column._column.width); + }else{ + $('.tableClip .select_adr_hd>div').eq(0).css('width', column._column.width + 40); + } + }); + + $tableClip.on("scrollHorizontal",function(left){ + $(".tableClip .adr_excel").scrollLeft(left); + }) + + $(".tableClip .adr_excel").on("scroll",function(){ + $(".tableClip .tabulator-tableholder").scrollLeft($(this).scrollLeft()); + }); + + +}); + + + +function fn_selfmakeTable(){ + + var tableData = []; + for (var i = 0; i < 1000; i++) { + tableData.push({addrNm: "", addrPhoneNo: "", addrInfo1: "", addrInfo2: "", addrInfo3: "", addrInfo4: "", addrComment: ""}); + } + + // 테이블 초기화 + $tableSelf = new Tabulator("#tabulator_self", { + height: "255px", + width: "100%", + layout: "fitColumns", + clipboardPasteAction: "update", + keybindings: { + "navRight": "tab", // Tab 키를 누르면 오른쪽 셀로 이동 + "navLeft": "shift+tab", + "editNext": false // Tab 키를 누를 때 편집 모드를 종료하지 않도록 설정 + }, + data: tableData, + columns: [ + {formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) { + cell.getRow().toggleSelect(); + }}, + {formatter:"rownum", hozAlign:"center" ,title:"No", headerHozAlign:"center", width:40}, + {title:"이름", field:"addrNm", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}, + {title:"휴대폰", field:"addrPhoneNo", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input" + , cellEdited:function(cell){ + var currentValue = cell.getValue(); + console.log('cell.getValue() : ', currentValue); + + // 현재 값이 null 또는 undefined가 아니고, 값이 변경된 경우에만 처리 + if (currentValue !== null + && currentValue !== '' + ) { + var newValue = fn_selfUpdataCount(currentValue); + + // 값이 실제로 변경된 경우에만 setValue 호출 + if (currentValue !== newValue) { + cell.setValue(newValue); + } + } + } + }, + {title:"[*1*]", field:"addrInfo1", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}, + {title:"[*2*]", field:"addrInfo2", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}, + {title:"[*3*]", field:"addrInfo3", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}, + {title:"[*4*]", field:"addrInfo4", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}, + {title:"메모", field:"addrComment", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"} + ], + navigation: true // 키보드 탐색 활성화 + }); +} + + +