이호영 이호영 2024-09-10
주소록 직접입력 - 전체삭제 선택삭제 구현
@598f60872c76b815f5315cc2df5203810fa72155
src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforSelf.jsp
--- src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforSelf.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforSelf.jsp
@@ -163,8 +163,8 @@
 					<div class="excel_middle">
 						<div class="select_btnWrap clearfix">
 							<div>
-								<button type="button" class="all_del"><i class="remove_img"></i>전체삭제</button>
-								<button type="button" class="select_del"><i class="remove_img"></i>선택삭제</button>
+								<button type="button" class="self_all_del"><i class="remove_img"></i>전체삭제</button>
+								<button type="button" class="self_select_del"><i class="remove_img"></i>선택삭제</button>
 <!-- 								<button type="button" class="chkVali_del"><i class="remove_img"></i>오류번호삭제</button> -->
 <!-- 								<button type="button" class="check_validity">오류 검사 <i></i></button> -->
 								<div class="error_hover_cont send_hover_cont addr_hover_cont">
src/main/webapp/js/web/addr/event.js
--- src/main/webapp/js/web/addr/event.js
+++ src/main/webapp/js/web/addr/event.js
@@ -150,7 +150,6 @@
 	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 @@
 	        }
 	    	
 	        if (uniquePhones.has(row.addrPhoneNo)) {
-	        	dupliPhoneDataRealList.push(row.addrPhoneNo);
 	            rowsToDelete.push(index); // 중복된 행의 인덱스를 기록
 	        } else {
 	            uniquePhones.add(row.addrPhoneNo);
@@ -179,12 +177,7 @@
 	    	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 @@
 	    $(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);
+		}
+		
+		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); // 기존 번호를 배열에 추가
+			}
 		});
+		updateTotCnt(existingNumbers.length);
+	});
 		
 	//전체 데이터 갯수 구하는 함수
 	function updateTotCnt(data){
Add a comment
List