From 598f60872c76b815f5315cc2df5203810fa72155 Mon Sep 17 00:00:00 2001 From: hylee Date: Tue, 10 Sep 2024 16:57:53 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A3=BC=EC=86=8C=EB=A1=9D=20=EC=A7=81?= =?UTF-8?q?=EC=A0=91=EC=9E=85=EB=A0=A5=20-=20=EC=A0=84=EC=B2=B4=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20=EC=84=A0=ED=83=9D=EC=82=AD=EC=A0=9C=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsp/web/addr/include/addrListforSelf.jsp | 4 +- src/main/webapp/js/web/addr/event.js | 147 +++++++++++++----- 2 files changed, 107 insertions(+), 44 deletions(-) diff --git a/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforSelf.jsp b/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforSelf.jsp index 0f1cde84..957d2e5d 100644 --- a/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforSelf.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforSelf.jsp @@ -163,8 +163,8 @@ function fn_selfUpdataCount(value){
- - + +
diff --git a/src/main/webapp/js/web/addr/event.js b/src/main/webapp/js/web/addr/event.js index cdcb188e..c666b5f7 100644 --- a/src/main/webapp/js/web/addr/event.js +++ b/src/main/webapp/js/web/addr/event.js @@ -150,7 +150,6 @@ $(document).ready(function(){ function fn_phoneDupl_old($objTabul) { var data = $objTabul.getData(); var uniquePhones = new Set(); - var dupliPhoneDataRealList = []; var rowsToKeep = []; var rowsToDelete = []; var phoneNumberChk = false; @@ -167,7 +166,6 @@ $(document).ready(function(){ } if (uniquePhones.has(row.addrPhoneNo)) { - dupliPhoneDataRealList.push(row.addrPhoneNo); rowsToDelete.push(index); // 중복된 행의 인덱스를 기록 } else { uniquePhones.add(row.addrPhoneNo); @@ -179,12 +177,7 @@ $(document).ready(function(){ alert('휴대폰 형식에 맞지 않는 데이터가 있습니다.\n 확인해 주세요'); } - $(tabluC+" #rowDupCnt").text(dupliPhoneDataRealList.length); - if (dupliPhoneDataRealList.length > 0) { -// alert("중복된 휴대폰 번호가 있습니다: \n" + duplicatePhones.join(", ")); - makeAddrMassDupliPop(dupliPhoneDataRealList); - } // 중복된 행 삭제 rowsToDelete.reverse().forEach(index => { @@ -196,48 +189,118 @@ $(document).ready(function(){ $(tabluC+" #rowTotCnt").text(rowsToKeep.length); }*/ - //받는사람 전체삭제 버튼 처리 - $('.all_del').click(function(){ + //받는사람 전체삭제 버튼 처리 + $('.all_del').click(function(){ - var tabulNm = fn_utils_getTabulatorNm(); - var tabluC = '.'+tabulNm - - var $objTabul = fn_utils_getTabulator(); - - var data = $objTabul.getRows(); - $objTabul.clearData(); - fn_rowCntInit(); -// dupliPhoneDataRealList.length = 0; // 중복 휴대폰번호 초기화 + var tabulNm = fn_utils_getTabulatorNm(); + var tabluC = '.'+tabulNm + + var $objTabul = fn_utils_getTabulator(); + + $objTabul.clearData(); + fn_rowCntInit(); - // select box 초기화 - $('.field-selector').each(function() { $(this).val(''); }); - }); + // select box 초기화 + $('.field-selector').each(function() { $(this).val(''); }); + }); - // 받는사람 선택삭제 버튼 처리해주기 - $('.select_del').click(function(){ + // 받는사람 선택삭제 버튼 처리해주기 + $('.select_del').click(function(){ - var tabulNm = fn_utils_getTabulatorNm(); - var tabluC = '.'+tabulNm + var tabulNm = fn_utils_getTabulatorNm(); + var tabluC = '.'+tabulNm - var $objTabul = fn_utils_getTabulator(); - - $(tabluC+" #rowDupCnt").text(0); //중복건수 수정 - dupliPhoneDataRealList.length = 0; // 중복 휴대폰번호 초기화 - var selectedData = $objTabul.getSelectedRows(); - - if(selectedData == "" || selectedData == null){ - alert("삭제할 데이터를 선택해 주세요."); - return false; - }else{ // 선택한 Row 데이터 삭제하기 - for(var i=0; i < selectedData.length; i++){ - selectedData[i].delete(); - } + var $objTabul = fn_utils_getTabulator(); + + $(tabluC+" #rowDupCnt").text(0); //중복건수 수정 + var selectedData = $objTabul.getSelectedRows(); + + if(selectedData == "" || selectedData == null){ + alert("삭제할 데이터를 선택해 주세요."); + return false; + }else{ // 선택한 Row 데이터 삭제하기 + for(var i=0; i < selectedData.length; i++){ + selectedData[i].delete(); + } + } + + totRows = $objTabul.getRows().length; + + updateTotCnt(totRows); + }); + + + //받는사람 전체삭제 버튼 처리 + $('.self_all_del').click(function(){ + + var tabulNm = fn_utils_getTabulatorNm(); + var tabluC = '.'+tabulNm + + var $objTabul = fn_utils_getTabulator(); + + // 초기화 및 데이터 추가를 한번에 처리 + var newTableData = []; + + // 1000개의 빈 행을 미리 준비 + for (var i = 0; i < 1000; i++) { + newTableData.push({ + addrNm: "", + addrPhoneNo: "", + addrInfo1: "", + addrInfo2: "", + addrInfo3: "", + addrInfo4: "", + addrComment: "" + }); + } + + // 기존 데이터 초기화 후, 새로운 데이터를 한 번에 추가 + $objTabul.setData(newTableData); + + // 행 수 초기화 함수 호출 + fn_rowCntInit(); + }); + + // 직접입력 받는사람 선택삭제 버튼 처리해주기 + $('.self_select_del').click(function(){ + + var tabulNm = fn_utils_getTabulatorNm(); + var tabluC = '.'+tabulNm + + var $objTabul = fn_utils_getTabulator(); + + $(tabluC+" #rowDupCnt").text(0); //중복건수 수정 + var selectedData = $objTabul.getSelectedRows(); + + if(selectedData == "" || selectedData == null){ + alert("삭제할 데이터를 선택해 주세요."); + return false; + }else{ // 선택한 Row 데이터 삭제하기 + for(var i=0; i < selectedData.length; i++){ + selectedData[i].delete(); + } + } + + // 남은 행 수 계산 + var totRows = $objTabul.getRows().length; + + // 1000개 행이 되도록 나머지 행 생성 + for (var i = totRows; i < 1000; i++) { + $objTabul.addRow({addrNm: "", addrPhoneNo: "", addrInfo1: "", addrInfo2: "", addrInfo3: "", addrInfo4: "", addrComment: ""}); + } + + + var existingNumbers = []; // 중복 번호를 저장할 배열 + // 모든 행의 'addrPhoneNo' 값을 배열에 추가 + var allRows = $tableSelf.getData(); // 테이블의 모든 데이터를 가져옴 + allRows.forEach(function(row) { + if (row.addrPhoneNo) { + const cleanedExistingNumber = row.addrPhoneNo.replace(/[^0-9]/g, ''); // 숫자만 남김 + existingNumbers.push(cleanedExistingNumber); // 기존 번호를 배열에 추가 } - - totRows = $objTabul.getRows().length; - - updateTotCnt(totRows); }); + updateTotCnt(existingNumbers.length); + }); //전체 데이터 갯수 구하는 함수 function updateTotCnt(data){