702 lines
19 KiB
JavaScript
702 lines
19 KiB
JavaScript
/**
|
|
*
|
|
* @author : 이호영
|
|
* @fileName : alimtalkExcel.js
|
|
* @date : 2023.02.21
|
|
* @description : 알림톡 excel 관련된 fuction .js
|
|
* ===========================================================
|
|
* DATE AUTHOR NOTE
|
|
* ----------------------------------------------------------- *
|
|
* 2023.02.21 이호영 최초 생성
|
|
*
|
|
*
|
|
*
|
|
*/
|
|
|
|
|
|
$(document).ready(function(){
|
|
|
|
//치환문자 없는 엑섹불러오기 버튼 클릭시 파일 첨부 실행
|
|
$('.c1').click(function(){ // 엑셀파일 불러오기 선택 시
|
|
|
|
$("#excelFile01").click();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
function excelAdd(){
|
|
|
|
var files = document.getElementById('excelFile01').files;
|
|
var filename = files[0].name;
|
|
|
|
var extension = filename.substring(filename.lastIndexOf(".")).toUpperCase();
|
|
if (extension == '.XLS' || extension == '.XLSX') {
|
|
excelFileToJSON01(files[0]);
|
|
}else{
|
|
alert("엑셀 파일을 첨부해주세요.");
|
|
}
|
|
}
|
|
|
|
/*
|
|
* 신규 엑셀 파일 불러오기
|
|
* 기존 json 처리가 아닌 POI 방식으로 처리하기 위함
|
|
*
|
|
* */
|
|
function excelExportAjax(){
|
|
|
|
var data = new FormData(document.excelToolTipForm);
|
|
|
|
var fileValue = $("#excelFile01").val().split("\\");
|
|
var fileName = fileValue[fileValue.length-1];
|
|
|
|
var fileExt = fileName.split('.').pop().toLowerCase();
|
|
|
|
if(fileExt.length > 0){
|
|
if($.inArray(fileExt, ['xls','xlsx']) == -1) {
|
|
|
|
alert('xls, xlsx 파일만 업로드 할수 있습니다.');
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
fn_viewDataInit02();
|
|
$('#excelNm01').val(fileName);
|
|
|
|
}
|
|
|
|
function excelAddAjax(){
|
|
|
|
var data = new FormData(document.excelToolTipForm);
|
|
data.append("file0", $('#excelFile01').prop('files')[0]);
|
|
|
|
var url = "/web/mjon/alimtalk/sendAlimtalkExelFilePhoneNumAjax.do";
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
enctype: 'multipart/form-data',
|
|
url: url,
|
|
data: data,
|
|
dataType:'json',
|
|
async: true,
|
|
processData: false,
|
|
contentType: false,
|
|
cache: false,
|
|
//timeout: 600000,
|
|
success: function (returnData, status) {
|
|
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
|
|
|
if(returnData.success){
|
|
|
|
var data = returnData.data;
|
|
var message = returnData.message;
|
|
|
|
if(message != '' ){
|
|
alert(returnData.message);
|
|
}
|
|
|
|
if(data != null){
|
|
|
|
//수신목록 Html 태그
|
|
var addHtml = '<div class="list_table list_body excelBody">'
|
|
+'\t<div class="cb_wrap">'
|
|
+'\t\t<label for="" class="label"></label>'
|
|
+'\t\t<input type="checkbox" class="wrap01C">'
|
|
+'\t</div>'
|
|
+'\t<div class="list_table_num phoneArea">'
|
|
+'\t\t<p>$PHONE$</p>'
|
|
+'\t</div>'
|
|
/*23.04.06 이름제거 요청으로인한 화면 이름 제거*/
|
|
/*+'\t<div class="list_table_name">'
|
|
+'\t\t<p>$NAME$</p>'
|
|
+'\t</div>'*/
|
|
+'</div>';
|
|
|
|
var totalDuplCnt = $('#rowDupCnt').text();//중복 건수 정보
|
|
var $excelBody = $('#wrap01_body');
|
|
var phoneNum;
|
|
|
|
$.each(data, function(i, item){
|
|
|
|
if(checkHpNum(item.phone)){
|
|
|
|
phoneNum = removeDash(item.phone);
|
|
|
|
if(!phoneDupl(phoneNum))
|
|
/*23.04.06 이름제거 요청으로인한 화면 이름 제거*/
|
|
// $excelBody.append(addHtml.replace('$PHONE$', phoneNum).replace('$NAME$', jsonData[bodyIndex]['이름'] ??= ''));
|
|
$excelBody.append(addHtml.replace('$PHONE$', phoneNum));
|
|
else
|
|
totalDuplCnt++;
|
|
|
|
} else{
|
|
|
|
alert("엑셀 파일 데이터의 형식이 맞지 않는 부분이 있습니다.");
|
|
excelAddr = []; //엑셀 데이터 저장 변수 초기화
|
|
$("#excelFile").val(""); //첨부파일 input 초기화
|
|
$("#excelNm").val(""); // 첨부파일 명 초기화
|
|
fileName = "";
|
|
return;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$('#rowDupCnt').text(totalDuplCnt);
|
|
$("#excelFile01").val(""); //첨부파일 input 초기화
|
|
$("#excelNm01").val(""); // 첨부파일 명 초기화
|
|
updateTotCnt();
|
|
|
|
}
|
|
|
|
}else{
|
|
alert(returnData.message);
|
|
// alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
|
|
excelAddr = []; //엑셀 데이터 저장 변수 초기화
|
|
$("#excelFile01").val(""); //첨부파일 input 초기화
|
|
$("#excelNm01").val(""); // 첨부파일 명 초기화
|
|
fileName = "";
|
|
return;
|
|
|
|
}
|
|
} else if(status== 'fail'){
|
|
alert("첨부파일 불러오는 중 오류가 발생하였습니다.1");
|
|
console.log("status : fail ~");
|
|
}
|
|
},
|
|
error: function (e) {
|
|
alert("첨부파일 불러오는 중 오류가 발생하였습니다2.");
|
|
console.log("ERROR : ", e);
|
|
},
|
|
beforeSend : function(xmlHttpRequest) {
|
|
//로딩창 show
|
|
$('.loading_layer').addClass('active');
|
|
},
|
|
complete : function(xhr, textStatus) {
|
|
//로딩창 hide
|
|
$('.loading_layer').removeClass('active');
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
* 신규 변수명 설정 엑셀 파일 불러오기
|
|
* 기존 json 처리가 아닌 POI 방식으로 처리하기 위함
|
|
*
|
|
* */
|
|
function excelExportVarAjax(){
|
|
console.log(' :: excelExportVarAjax ::')
|
|
|
|
var data = document.getElementById('excelFile').files;
|
|
|
|
var fileValue = $("#excelFile").val().split("\\");
|
|
var fileName = fileValue[fileValue.length-1];
|
|
|
|
var fileExt = fileName.split('.').pop().toLowerCase();
|
|
|
|
if(fileExt.length > 0){
|
|
if($.inArray(fileExt, ['xls','xlsx']) == -1) {
|
|
|
|
alert('xls, xlsx 파일만 업로드 할수 있습니다.');
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
fn_viewDataInit01();
|
|
excelAddVarAjax();
|
|
}
|
|
|
|
function excelAddVarAjax(){
|
|
|
|
var varList = $("#excelTemplateContent").val().match(/#\{([^}]+)\}/g);
|
|
var varListSize = new Set(varList);
|
|
var form = document.excelVarFileForm;
|
|
form.excelVarCnt.value = varListSize.size;
|
|
form.excelVarList.value = varList;
|
|
|
|
var data = new FormData(form);
|
|
data.append("file0", $('#excelFile').prop('files')[0]);
|
|
|
|
var url = "/web/mjon/alimtalk/sendAlimtalkExelVarFilePhoneNumAjax.do";
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
enctype: 'multipart/form-data',
|
|
url: url,
|
|
data: data,
|
|
dataType:'json',
|
|
async: true,
|
|
processData: false,
|
|
contentType: false,
|
|
cache: false,
|
|
//timeout: 600000,
|
|
success: function (returnData, status) {
|
|
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
|
console.log('returnData : ', returnData);
|
|
if(returnData.success){
|
|
|
|
var data = returnData.data;
|
|
var message = returnData.message;
|
|
|
|
if(message != '' ){
|
|
alert(returnData.message);
|
|
}
|
|
|
|
if(data != null){
|
|
|
|
//수신목록 Html 태그
|
|
// 엑셀 헤더
|
|
var excelTitleHeadText ='<div class="list_table_name">'
|
|
+'\t<p>$HEADTITLE$</p>'
|
|
+'</div>';
|
|
|
|
// 바디 row 수신자 tag
|
|
var excelBodyRowTextIndex00 ='<div class="list_table_name phoneArea">'
|
|
+'\t\t<p>$ROWTEXT$</p>'
|
|
+'\t</div>';
|
|
|
|
// 바디 row tag
|
|
var excelBodyRowTextIndex01 ='<div class="list_table_name transData">'
|
|
+'\t\t<p>$ROWTEXT$</p>'
|
|
+'\t</div>';
|
|
|
|
//맨 앞에 수신번호 배열 추가
|
|
varList.unshift('수신번호');
|
|
//변수 문자열 중복 제거
|
|
var newList = Array.from(new Set(varList));
|
|
|
|
//엑셀헤더 selector
|
|
var $excelHead = $('#excelHead');
|
|
//엑셀바디 selector
|
|
var $excelBody = $('#excelBody02');
|
|
|
|
// 엑셀 헤더 부분
|
|
$.each(newList, function(headerIndex, value) {
|
|
$excelHead.append(excelTitleHeadText.replace('$HEADTITLE$', value));
|
|
});
|
|
|
|
var totalDuplCnt = $('#rowDupCnt').text();//중복 건수 정보
|
|
var $excelBody = $('#excelBody02');
|
|
var addDiv = "";
|
|
var phoneNum;
|
|
|
|
var msgCnt = 0;
|
|
//입력데이터를 역정렬해준다.
|
|
data.reverse();
|
|
|
|
//변수명 추출해주기
|
|
var varListArr = [];
|
|
varListArr = form.excelVarList.value.split(",");
|
|
|
|
var forBreakB = true
|
|
$.each(data, function(i, item){
|
|
|
|
if(checkHpNum(item.phone)){
|
|
|
|
phoneNum = removeDash(item.phone);
|
|
|
|
if(!phoneDupl(phoneNum)){
|
|
var varVal = item.varVal;
|
|
var lengthCheck =true;
|
|
/*23.04.06 이름제거 요청으로인한 화면 이름 제거*/
|
|
var excelBody = '<div class="list_table list_body excelBody">';
|
|
|
|
//수신번호 화면 태그 생성
|
|
excelBody += excelBodyRowTextIndex00.replace('$ROWTEXT$', removeDash(phoneNum));
|
|
|
|
//변수 데이터 태그 생성
|
|
var varValArr = []
|
|
varValArr = varVal.split("§");
|
|
for(var i=0; i < varValArr.length; i++){
|
|
|
|
var bodyData = varValArr[i];
|
|
|
|
// 기타변수는 50자리 까지 입력
|
|
if(bodyData.length > 100 || bodyData.length == 0 ){
|
|
if(forBreakB){
|
|
alert("등록 변수[ "+varListArr[i]+" ] \n기타변수의 입력 값이 없거나 100자리를 초과하는 내용이 포함되어 해당 내용 제외되었습니다.");
|
|
forBreakB = false;
|
|
}
|
|
lengthCheck = false;
|
|
break;
|
|
}
|
|
excelBody += excelBodyRowTextIndex01.replace('$ROWTEXT$', bodyData);
|
|
|
|
}
|
|
|
|
excelBody += '</div>';
|
|
|
|
if(lengthCheck){
|
|
addDiv += excelBody;
|
|
msgCnt++;
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
totalDuplCnt++;
|
|
|
|
} else{
|
|
|
|
alert("엑셀 파일 데이터의 형식이 맞지 않는 부분이 있습니다.");
|
|
excelAddr = []; //엑셀 데이터 저장 변수 초기화
|
|
$("#excelFile").val(""); //첨부파일 input 초기화
|
|
$("#excelNm").val(""); // 첨부파일 명 초기화
|
|
fileName = "";
|
|
return;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
//화면에 수신번호 및 변수 데이터 추가해 주기
|
|
$excelBody.append(addDiv);
|
|
|
|
// 총 금액 계산
|
|
fn_priceClclt(msgCnt);
|
|
|
|
}
|
|
|
|
}else{
|
|
alert(returnData.message);
|
|
// alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
|
|
excelAddr = []; //엑셀 데이터 저장 변수 초기화
|
|
$("#excelFile01").val(""); //첨부파일 input 초기화
|
|
$("#excelNm01").val(""); // 첨부파일 명 초기화
|
|
fileName = "";
|
|
return;
|
|
|
|
}
|
|
} else if(status== 'fail'){
|
|
alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
|
|
console.log("status : fail ~");
|
|
}
|
|
},
|
|
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');
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* 엑셀 파일 불러오기
|
|
*/
|
|
function excelExport01() {
|
|
var files = document.getElementById('excelFile01').files;
|
|
if(files.length==0){
|
|
alert("파일을 선택해주세요.");
|
|
return;
|
|
}
|
|
|
|
// (치환문자가 있는)다른 형식의 값이 있으면 초기화
|
|
fn_viewDataInit02();
|
|
|
|
var filename = files[0].name;
|
|
|
|
$('#excelNm01').val(filename);
|
|
|
|
// var extension = filename.substring(filename.lastIndexOf(".")).toUpperCase();
|
|
// if (extension == '.XLS' || extension == '.XLSX') {
|
|
// excelFileToJSON01(files[0]);
|
|
// }else{
|
|
// alert("엑셀 파일을 첨부해주세요.");
|
|
// }
|
|
}
|
|
|
|
/**
|
|
* 변수 포함한 엑셀 파일 불러오기
|
|
*/
|
|
function excelExport02() {
|
|
var files = document.getElementById('excelFile').files;
|
|
if(files.length==0){
|
|
alert("파일을 선택해주세요.");
|
|
return;
|
|
}
|
|
|
|
// (치환문자가 없는)다른 형식의 값이 있으면 초기화
|
|
fn_viewDataInit01();
|
|
// fn_viewDataInit02();
|
|
|
|
var filename = files[0].name;
|
|
var extension = filename.substring(filename.lastIndexOf(".")).toUpperCase();
|
|
if (extension == '.XLS' || extension == '.XLSX') {
|
|
excelFileToJSON02(files[0]);
|
|
}else{
|
|
alert("엑셀 파일을 첨부해주세요.");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 엑셀 정보 json으로 변환
|
|
*/
|
|
function excelFileToJSON01(file){
|
|
|
|
/*
|
|
* 시트 row 삭제 function 시작
|
|
*
|
|
* */
|
|
const ec = (r, c) => {
|
|
return XLSX.utils.encode_cell({r:r,c:c})
|
|
}
|
|
const delete_row = (ws, row_index) => {
|
|
let range = XLSX.utils.decode_range(ws["!ref"])
|
|
for(var R = row_index; R < range.e.r; ++R){
|
|
for(var C = range.s.c; C <= range.e.c; ++C){
|
|
ws[ec(R, C)] = ws[ec(R+1, C)]
|
|
}
|
|
}
|
|
range.e.r--
|
|
ws['!ref'] = XLSX.utils.encode_range(range.s, range.e)
|
|
}
|
|
/*
|
|
* 시트 row 삭제 function 끝
|
|
*
|
|
* */
|
|
|
|
try {
|
|
var reader = new FileReader();
|
|
reader.readAsBinaryString(file);
|
|
reader.onload = function(e) {
|
|
var data = e.target.result;
|
|
var workbook = XLSX.read(data, {
|
|
type : 'binary'
|
|
});
|
|
var result = {};
|
|
|
|
//첫번째 시트 정보 json으로 변환
|
|
var firstSheetName = workbook.SheetNames[0];
|
|
|
|
//첫번째 시트의 첫번째 로우 삭제
|
|
delete_row(workbook.Sheets[firstSheetName], 0);
|
|
|
|
var jsonData = XLSX.utils.sheet_to_json(workbook.Sheets[firstSheetName]);
|
|
displayJsonToHtmlTable01(jsonData);
|
|
}
|
|
}catch(e){
|
|
console.error(e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 엑셀 정보 json으로 변환
|
|
*/
|
|
function excelFileToJSON02(file){
|
|
try {
|
|
var reader = new FileReader();
|
|
reader.readAsBinaryString(file);
|
|
reader.onload = function(e) {
|
|
var data = e.target.result;
|
|
var workbook = XLSX.read(data, {
|
|
type : 'binary'
|
|
});
|
|
var result = {};
|
|
//첫번째 시트 정보 json으로 변환
|
|
var firstSheetName = workbook.SheetNames[0];
|
|
var jsonData = XLSX.utils.sheet_to_json(workbook.Sheets[firstSheetName]);
|
|
displayJsonToHtmlTable02(jsonData);
|
|
}
|
|
}catch(e){
|
|
console.error(e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 변수 없는 엑셀 json 정보를 테이블로 그려주기
|
|
*/
|
|
function displayJsonToHtmlTable01(jsonData){
|
|
|
|
|
|
var addHtml = '<div class="list_table list_body excelBody">'
|
|
+'\t<div class="cb_wrap">'
|
|
+'\t\t<label for="" class="label"></label>'
|
|
+'\t\t<input type="checkbox" class="wrap01C">'
|
|
+'\t</div>'
|
|
+'\t<div class="list_table_num phoneArea">'
|
|
+'\t\t<p>$PHONE$</p>'
|
|
+'\t</div>'
|
|
/*23.04.06 이름제거 요청으로인한 화면 이름 제거*/
|
|
/*+'\t<div class="list_table_name">'
|
|
+'\t\t<p>$NAME$</p>'
|
|
+'\t</div>'*/
|
|
+'</div>';
|
|
|
|
|
|
|
|
// 중복 텍스트
|
|
var totalDuplCnt = $('#rowDupCnt').text();
|
|
|
|
|
|
var keys = Object.keys(jsonData); // json에 key만 추출
|
|
|
|
|
|
var $excelBody = $('#wrap01_body');
|
|
// jsonData.reverse();
|
|
var phoneNum;
|
|
$.each(jsonData, function(bodyIndex, value) {
|
|
|
|
phoneNum = removeDash(jsonData[bodyIndex]['수신번호'])
|
|
|
|
if(!phoneDupl(phoneNum))
|
|
/*23.04.06 이름제거 요청으로인한 화면 이름 제거*/
|
|
// $excelBody.append(addHtml.replace('$PHONE$', phoneNum).replace('$NAME$', jsonData[bodyIndex]['이름'] ??= ''));
|
|
$excelBody.append(addHtml.replace('$PHONE$', phoneNum));
|
|
else
|
|
totalDuplCnt++;
|
|
|
|
});
|
|
$('#rowDupCnt').text(totalDuplCnt);
|
|
updateTotCnt();
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* 변수 있는 엑셀 json 정보를 테이블로 그려주기
|
|
*/
|
|
function displayJsonToHtmlTable02(jsonData){
|
|
|
|
|
|
// 엑셀 헤더
|
|
var excelTitleHeadText ='<div class="list_table_name">'
|
|
+'\t<p>$HEADTITLE$</p>'
|
|
+'</div>';
|
|
|
|
// 바디 row 수신자 tag
|
|
var excelBodyRowTextIndex00 ='<div class="list_table_name phoneArea">'
|
|
+'\t\t<p>$ROWTEXT$</p>'
|
|
+'\t</div>';
|
|
|
|
// 바디 row tag
|
|
var excelBodyRowTextIndex01 ='<div class="list_table_name transData">'
|
|
+'\t\t<p>$ROWTEXT$</p>'
|
|
+'\t</div>';
|
|
|
|
|
|
//합친 내용에서 변수 문자열 뽑기 - #과{}포함
|
|
var varList = $("#excelTemplateContent").val().match(/#\{([^}]+)\}/g);
|
|
//맨 앞에 수신번호 배열 추가
|
|
varList.unshift('수신번호');
|
|
//변수 문자열 중복 제거
|
|
var newList = Array.from(new Set(varList));
|
|
|
|
|
|
//엑셀헤더 selector
|
|
var $excelHead = $('#excelHead');
|
|
//엑셀바디 selector
|
|
var $excelBody = $('#excelBody02');
|
|
|
|
// 엑셀 헤더 부분
|
|
$.each(newList, function(headerIndex, value) {
|
|
$excelHead.append(excelTitleHeadText.replace('$HEADTITLE$', value));
|
|
});
|
|
|
|
// 중복 텍스트
|
|
var totalDuplCnt = $('#rowDupCnt').text();
|
|
|
|
//엑셀바디 내용 리버스
|
|
jsonData.reverse();
|
|
// 치환 데이터 선언
|
|
var bodyData;
|
|
// 추가 div 선언
|
|
var addDiv = "";
|
|
// 입력 글자수 체크 선언
|
|
var lengthCheck =true;
|
|
|
|
outerLoop : for(var bodyIndex=0; bodyIndex < jsonData.length; bodyIndex++)
|
|
{
|
|
if(lengthCheck){
|
|
var excelBody = '<div class="list_table list_body excelBody">';
|
|
for(var headerIndex=0; headerIndex < newList.length; headerIndex++)
|
|
{
|
|
// 치환할 데이터
|
|
bodyData = jsonData[bodyIndex][newList[headerIndex]];
|
|
|
|
if(bodyData == null){
|
|
// reverse 감안하여 전체 개수 - 하여 몇행인지 알려줌
|
|
// alert((jsonData.length - bodyIndex+1)+'번째 데이터에 오류가 있습니다. 확인해주세요.');
|
|
continue outerLoop; // outerLoop 다음 loop 실행
|
|
}
|
|
|
|
//headerIndex == 0 : 전화번호
|
|
if(headerIndex == 0)
|
|
{
|
|
// 핸드폰 번호 11자리 체크
|
|
if(bodyData.length > 11){
|
|
alert("등록 핸드폰 번호["+bodyData+"] \n핸드폰 번호는 11자리 까지 입력이 가능합니다.");
|
|
lengthCheck = false;
|
|
break;
|
|
}
|
|
|
|
// 전화번호 중복 체크
|
|
if(!phoneDupl(bodyData)) excelBody += excelBodyRowTextIndex00.replace('$ROWTEXT$', removeDash(bodyData));
|
|
else
|
|
{
|
|
totalDuplCnt++;
|
|
continue outerLoop; // outerLoop 다음 loop 실행
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// 기타변수는 50자리 까지 입력
|
|
if(bodyData.length > 100){
|
|
alert("등록 변수["+bodyData+"] \n기타 변수에는 100자리 까지 입력이 가능합니다.");
|
|
lengthCheck = false;
|
|
break;
|
|
}
|
|
excelBody += excelBodyRowTextIndex01.replace('$ROWTEXT$', bodyData);
|
|
}
|
|
}
|
|
excelBody += '</div>';
|
|
addDiv += excelBody;
|
|
}else{
|
|
addDiv = "";
|
|
break;
|
|
}
|
|
}
|
|
|
|
$excelBody.append(addDiv);
|
|
}
|
|
|
|
|
|
/**
|
|
* 중복체크
|
|
* true : 중복 [O]
|
|
* false : 중복 [X]
|
|
*/
|
|
function phoneDupl(data){
|
|
var resultBoo = true;
|
|
|
|
data = removeDash(data);
|
|
/*
|
|
* 중복체크
|
|
* 기존 데이터 배열화
|
|
*/
|
|
var area = [];
|
|
$('.phoneArea').each(function(index, item){
|
|
area.push($(item).text().trim());
|
|
});
|
|
|
|
if(!area.includes(data))
|
|
resultBoo = false;
|
|
|
|
return resultBoo;
|
|
} |