rosewiper 2024-01-29
문자전송, 선거문자 주소록 불러오기 속도 개선 - 주소록 불러오기 팝업 그룹 선택시 로딩바 표시 추가 - 주소 추가시 중복 번호 체크 로직 속도 개선
 - 주소록 불러오기 팝업 그룹 선택시 로딩바 표시 추가
 - 주소 추가시 중복 번호 체크 로직 속도 개선
@ab889486ae42bf749741bf5cb4f80eb511322592
src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/MsgDataSMLView.jsp
@@ -65,7 +65,9 @@
 		
 		//기존 수신 리스트를 지워준 후 신규 전체 리스트를 추가해준다.
 		tableL.clearData(); //기존 받는사람 목록을 삭제.
-		tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		//tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		tableL.addData(getSpupDupliPhoneDataChk(tableData)); // 속도 개선된 중복 검사 호출
+		
 		_fileForm2 = []; //form file data 초기화
 		_fileIdx = 0;	//form file idx 초기화
 		
@@ -2429,7 +2431,7 @@
         url: url,
         data: data,
         dataType:'json',
-        async: false,
+        async: true,
         cache: false,
         success: function (returnData, status) {
 			if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
@@ -2467,7 +2469,17 @@
 				alert("주소록 불러오기에 실패하였습니다. !!");
 			}
 		},
-        error: function (e) { alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); }
+        error: function (e) { 
+        	alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); 
+        },
+		beforeSend : function(xmlHttpRequest) {
+        	//로딩창 show
+        	$('.loading_layer').addClass('active');				
+		},	        	        
+        complete : function(xhr, textStatus) {
+        	//로딩창 hide
+        	$('.loading_layer').removeClass('active');
+		}
     });
 	
 }
src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/tw/MsgTWDataSMLView.jsp
@@ -2564,13 +2564,12 @@
         url: url,
         data: data,
         dataType:'json',
-        async: false,
+        async: true,
         cache: false,
         success: function (returnData, status) {
 			if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
 				
 				if(returnData.result == "success"){
-					
 					var addrList = returnData.resultAddrList;
 					var tableData = [];
 					
@@ -2580,14 +2579,12 @@
 						tableAddr.setData(tableData);
 						return false;
 					}
-					
 					//받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다.
 					for(var i=0; i < addrList.length; i++){
 						
 						tableData.push({addrGroupNm: addrList[i].addrGrpNm, addrPhone: removeDash(addrList[i].addrPhoneNo) , addrName: addrList[i].addrNm, addrRep1: addrList[i].addrInfo1, addrRep2: addrList[i].addrInfo2, addrRep3: addrList[i].addrInfo3, addrRep4: addrList[i].addrInfo4});
 						
 					}
-					
 					//우측 주소록 리스트 Tabulator에 입력해주기
 					tableAddr.setData(tableData);
 					
@@ -2602,7 +2599,17 @@
 				alert("주소록 불러오기에 실패하였습니다. !!");
 			}
 		},
-        error: function (e) { alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); }
+        error: function (e) { 
+        	alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); 
+        },
+		beforeSend : function(xmlHttpRequest) {
+        	//로딩창 show
+        	$('.loading_layer').addClass('active');				
+		},	        	        
+        complete : function(xhr, textStatus) {
+        	//로딩창 hide
+        	$('.loading_layer').removeClass('active');
+		}
     });
 	
 }
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataSMLView.jsp
@@ -65,7 +65,9 @@
 		
 		//기존 수신 리스트를 지워준 후 신규 전체 리스트를 추가해준다.
 		tableL.clearData(); //기존 받는사람 목록을 삭제.
-		tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		//tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		tableL.addData(getSpupDupliPhoneDataChk(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		
 		_fileForm2 = []; //form file data 초기화
 		_fileIdx = 0;	//form file idx 초기화
 		
@@ -2691,7 +2693,7 @@
         url: url,
         data: data,
         dataType:'json',
-        async: false,
+        async: true,
         cache: false,
         success: function (returnData, status) {
 			if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
@@ -2729,7 +2731,17 @@
 				alert("주소록 불러오기에 실패하였습니다. !!");
 			}
 		},
-        error: function (e) { alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); }
+        error: function (e) { 
+        	alert("주소록 불러오기에 실패하였습니다."); console.log("ERROR : ", e); 
+        },
+		beforeSend : function(xmlHttpRequest) {
+        	//로딩창 show
+        	$('.loading_layer').addClass('active');				
+		},	        	        
+        complete : function(xhr, textStatus) {
+        	//로딩창 hide
+        	$('.loading_layer').removeClass('active');
+		}
     });
 	
 }
src/main/webapp/js/MJUtill.js
--- src/main/webapp/js/MJUtill.js
+++ src/main/webapp/js/MJUtill.js
@@ -575,6 +575,7 @@
 
 //중복 전화번호 체크하기
 function dupliPhoneData(data){
+	
 	var chk = true; //중복값 유무
 	var uniqData = []; // 중복값 삭제 후 데이터 저장
 	var dupCnt = 0;
@@ -622,6 +623,23 @@
 	return uniqData;
 }
 
+
+//연락처 중복검사 속도 개선 버전
+function getSpupDupliPhoneDataChk(data){
+	
+	var dataLen = data.length;
+	const arrUnique = data.filter((character, idx, arr)=>{
+	    return arr.findIndex((item) => item.phone === character.phone) === idx
+	});
+
+	var uniqLen = arrUnique.length;
+	var dupCnt = dataLen - uniqLen;
+	//중복건수 텍스트 입력해 주기
+	$("#rowDupCnt").text(dupCnt);
+	
+	return arrUnique;
+}
+
 // Get 중복 연락처 
 function GetDupliPhoneDataReal(item) {
 	var isDuplicate = false;
Add a comment
List