수정완료

This commit is contained in:
hehihoho3@gmail.com 2025-06-25 14:27:02 +09:00
parent faedf7f75f
commit 681bdadb7d
2 changed files with 221 additions and 17 deletions

View File

@ -474,7 +474,7 @@ function upImgClick(){
if (!link) { if (!link) {
if(!confirm("URL먼저 입력을 안하면 이미지에 URL 저장이 안됩니다.\n계속하시겠습니까?")){ if(!confirm("먼저 URL을 입력하지 않으면 이미지에 URL이 저장되지 않습니다. 계속하시겠습니까?")){
return false; return false;
} }
@ -1551,6 +1551,9 @@ function updateButtons(){
} }
</script> </script>
<!-- 로딩바 --> <!-- 로딩바 -->
@ -2143,13 +2146,13 @@ function updateButtons(){
<div class="btn_popup_wrap"> <div class="btn_popup_wrap">
<button type="button" data-tooltip="popup03" class="btnType btnType7 tab2">자주보내는 번호</button> <button type="button" data-tooltip="popup03" class="btnType btnType7 tab2">자주보내는 번호</button>
</div> </div>
<div class="btn_popup_wrap check_validity_wrap"> <!-- <div class="btn_popup_wrap check_validity_wrap">
<button type="button" class="btnType btnType7 check_validity">오류 검사<i class="qmMark error_qm"></i></button> <button type="button" class="btnType btnType7 check_validity">오류 검사<i class="qmMark error_qm"></i></button>
<div class="error_hover_cont send_hover_cont"> <div class="error_hover_cont send_hover_cont">
<p>휴대폰 번호 입력 시 해당 휴대폰 번호에 대한 형식이 어긋나거나 휴대폰 번호에 오류가 있는지 등을 검사하는 기능</p> <p>휴대폰 번호 입력 시 해당 휴대폰 번호에 대한 형식이 어긋나거나 휴대폰 번호에 오류가 있는지 등을 검사하는 기능</p>
<span>(예시) 010-1234-0001(O) / 010-12345-0001(X)</span> <span>(예시) 010-1234-0001(O) / 010-12345-0001(X)</span>
</div> </div>
</div> </div> -->
</div> </div>
</div> </div>
<div class="list_bottom clearfix"> <div class="list_bottom clearfix">

View File

@ -20,46 +20,41 @@ $(document).ready(function (){
tableL = new Tabulator(".callList_box", { tableL = new Tabulator(".callList_box", {
height:"255px", height:"255px",
layout:"fitColumns", layout:"fitColumns",
//data:tabledata,
//autoColumns:true,
headerHozAlign:"center", headerHozAlign:"center",
validationMode:"highlight", validationMode:"highlight",
//clipboard:false,
//clipboardCopySelector:"table",
//clipboardPasteAction:"insert", // insert, update, replace
placeholder:"복사(Ctrl+C)한 내용을 여기에 붙여넣기(Ctrl+V) 해주세요.", //fit columns to width of table (optional) placeholder:"복사(Ctrl+C)한 내용을 여기에 붙여넣기(Ctrl+V) 해주세요.", //fit columns to width of table (optional)
resizableColumns:false, resizableColumns:false,
columnDefaults:{ // 공통설정 columnDefaults:{ // 공통설정
hozAlign: "center", hozAlign: "center",
headerHozAlign: "center", headerHozAlign: "center",
editor: "input", editor: false,
editor: false editor: false
}, },
columns:[ //Define Table Columns columns:[ //Define Table Columns
{formatter:"rowSelection", headerHozAlign:"center", titleFormatter:"rowSelection",clipboard:false, hozAlign:"center", width:5, headerSort:false, cellClick:function(e, cell){ {formatter:"rowSelection", headerHozAlign:"center", titleFormatter:"rowSelection",clipboard:false, hozAlign:"center", width:5, headerSort:false, cellClick:function(e, cell){
cell.getRow().toggleSelect(); cell.getRow().toggleSelect();
}}, }},
{title:"이름", hozAlign:"center", field:"name", editor:"input", validator:["maxLength:12"], cellEdited:function(cell){ {title:"이름", hozAlign:"center", field:"name", validator:["maxLength:12"], cellEdited:function(cell){
//cell - cell component //cell - cell component
fnReplCell(); fnReplCell();
}}, }},
{title:"휴대폰", hozAlign:"center", field:"phone", editor:"input", width:100, validator:["required","minLength:10", "maxLength:12"], cellEdited:function(cell){ {title:"휴대폰", hozAlign:"center", field:"phone", width:100, validator:["required","minLength:10", "maxLength:12"], cellEdited:function(cell){
//cell - cell component //cell - cell component
fnDuplPhone(); fnDuplPhone();
}}, }},
{title:"[*1*]", hozAlign:"center", field:"rep1", editor:"input", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){ {title:"[*1*]", hozAlign:"center", field:"rep1", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component //cell - cell component
fnReplCell(); fnReplCell();
}}, }},
{title:"[*2*]", hozAlign:"center", field:"rep2", editor:"input", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){ {title:"[*2*]", hozAlign:"center", field:"rep2", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component //cell - cell component
fnReplCell(); fnReplCell();
}}, }},
{title:"[*3*]", hozAlign:"center", field:"rep3", editor:"input", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){ {title:"[*3*]", hozAlign:"center", field:"rep3", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component //cell - cell component
fnReplCell(); fnReplCell();
}}, }},
{title:"[*4*]", hozAlign:"center", field:"rep4", editor:"input", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){ {title:"[*4*]", hozAlign:"center", field:"rep4", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
//cell - cell component //cell - cell component
fnReplCell(); fnReplCell();
}}, }},
@ -556,6 +551,207 @@ $(document).ready(function (){
}); });
//받는사람 목록에 복사/붙여넣기 기능 처리
$('.callList_box').on('paste', function (e) {
console.log(' :: callList _box :: ');
var element = e.originalEvent.clipboardData.getData('text'); // 클립보드에 복사한 데이터 가져오기
var elmSplit= [];
elmSplit = element.split("\n");
var elmLen = elmSplit.length;
if(elmLen < 0){
alert("붙여넣을 연락처를 복사해주세요.");
return false;
}else{
tableErrorData.length = 0; // 오류 번호 배열 초기화
var splitData = [];
var realPhone = [];
for(var i=0; i < elmLen; i++){
var splitStr = elmSplit[i];
var tabData = [];
var comData = [];
if(splitStr.indexOf('\t') != -1){
splitData = splitStr.split('\t'); //탭 구분으로 데이터 분할
}else if(splitStr.indexOf(',') != -1){
splitData = splitStr.split(','); //콤마 구분으로 데이터 분할
}else{
splitData = splitStr.split(' ');
}
if(splitData.length == 0){// 데이터가 없는경우
alert("탭으로 구분하여 데이터를 복사해 주세요.");
return false;
}else if(splitData.length == 1){// 데이터가 탭으로 구분이 없는 경우
for(var j=0; j < splitData.length; j++){
if(checkHpNum(splitData[j].trim())){//핸드폰 양식이 맞는지 확인
//배열 끝에 데이터 추가해 주기
realPhone.push({phone: removeDash(splitData[j].trim()), name: ""});
}
else {
if (splitData[j].trim() != '' && splitData[j].trim() != null && splitData[j].trim() != undefined) {
tableErrorData.push(splitData[j].trim());
}
}
}
}else{//데이터가 탭으로 구분되어 이름, 연락처로 구분된 경우
var phone = ""; //핸드폰번호
var name = ""; //이름
var rep1 = ""; //치환문자1
var rep2 = ""; //치환문자2
var rep3 = ""; //치환문자3
var rep4 = ""; //치환문자4
var isPhoneValid = false;
for(var j=0; j < splitData.length; j++){
if(j == 0){
name = splitData[j].trim();
}
if(j == 1){
if(checkHpNum(splitData[j].trim())){//핸드폰 양식이 맞는지 확인
phone = removeDash(splitData[j].trim());
isPhoneValid = true;
}else{
if (splitData[j].trim() != '' && splitData[j].trim() != null && splitData[j].trim() != undefined) {
tableErrorData.push(splitData[j].trim());
}
}
}
if(j == 2){ //치환문자1
rep1 = splitData[j].trim();
}
if(j == 3){ //치환문자2
rep2 = splitData[j].trim();
}
if(j == 4){ //치환문자3
rep3 = splitData[j].trim();
}
if(j == 5){ //치환문자4
rep4 = splitData[j].trim();
}
}
if (isPhoneValid == true) {
//배열 끝에 데이터 추가해 주기
realPhone.push({phone: phone, name: name, rep1 : rep1, rep2 : rep2, rep3 : rep3, rep4 : rep4 });
}
}//else end
}
var recTableData = tableL.getRows(); // 받는사람 리스트의 전체 목록을 저장
var tableData = [];
//기존 받는사람 리스트를 배열에 미리 담아둔다.
if(recTableData.length > 0){
for(var j=0; j < recTableData.length; j++){
tableData.push({phone: removeDash(recTableData[j].getData().phone.trim()) , name: recTableData[j].getData().name, rep1: recTableData[j].getData().rep1, rep2: recTableData[j].getData().rep2, rep3: recTableData[j].getData().rep3, rep4: recTableData[j].getData().rep4, });
}
}
if(realPhone.length > 0){
for(var j=0; j < realPhone.length; j++){
tableData.push({phone: removeDash(realPhone[j].phone.trim()) , name: realPhone[j].name, rep1: realPhone[j].rep1, rep2: realPhone[j].rep2, rep3: realPhone[j].rep3, rep4: realPhone[j].rep4});
}
}
//tableData.push(realPhone);
//중복 연락처 1개만 남기고 삭제하기
var removeDuplPhone = dupliPhoneData(tableData);
//수신자 리스트에 전화번호 추가해주기
//tableL.addData(removeDuplPhone);
tableL.setData(removeDuplPhone);
totRows = tableL.getRows().length;
updateTotCnt(totRows); //전체 데이터 갯수 구하기
var smsTxtArea = $('#smsTxtArea').val();
//일괄변환 문구 결제금액 처리
if(smsTxtArea.indexOf("[*이름*]") > -1
|| smsTxtArea.indexOf("[*1*]") > -1
|| smsTxtArea.indexOf("[*2*]") > -1
|| smsTxtArea.indexOf("[*3*]") > -1
|| smsTxtArea.indexOf("[*4*]") > -1){
fnReplCell_advc();
}else{
//결제 금액 구하기
totalPriceSum(totRows);
}
if (tableErrorData.length > 0) {
alert("올바르지 않은 휴대폰 번호가 "+ tableErrorData.length +" 건 있습니다.");
}
// 미리보기 버튼 활성화
updateButtons(0);
}
});
}); });
var tableErrorData = []; var tableErrorData = [];
@ -566,9 +762,9 @@ var totRows = 0; // 좌측 받는사람 총 갯수
* 토탈 카운트 화면에 노출 * 토탈 카운트 화면에 노출
* 변수 없는 리스트만 체크 * 변수 없는 리스트만 체크
*/ */
function updateTotCnt(){ function updateTotCnt(cnt){
$("#rowTotCnt").text($('#wrap01_body .list_body').length); $("#rowTotCnt").text(cnt);
} }
@ -927,3 +1123,8 @@ $('.check_validity').click(function(){
} }
}); });