주소록 직접입력 - 전체삭제 선택삭제 구현

This commit is contained in:
hylee 2024-09-10 16:57:53 +09:00
parent ddaca97fb0
commit 598f60872c
2 changed files with 107 additions and 44 deletions

View File

@ -163,8 +163,8 @@ function fn_selfUpdataCount(value){
<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">

View File

@ -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){