팩스 주소록 엑셀파일 등록 기능 수정

This commit is contained in:
wyh 2024-11-05 12:36:04 +09:00
parent 6c761267a9
commit 526b1d6895
3 changed files with 58 additions and 122 deletions

View File

@ -86,8 +86,6 @@ function insertAddrGroupAjax() {
function insertAddrAjax() {
var selectVal = $("#addrRegistSelect option:selected").val();
//alert(selectVal);
var form = document.addrInsertForm;
if(form.addrPhoneNo.value == "") {
@ -212,49 +210,6 @@ $(document).ready(function(){
updateTotCnt(totRows);
});
//받는사람 전체삭제 버튼 처리
$('.all_del').click(function(){
var data = tableR.getRows();
if(data == null || data == ""){
alert("받는사람을 추가해 주세요.");
return false;
}else{
tableR.clearData();
$("#rowTotCnt").text(0); //총건수 수정
$("#rowDupCnt").text(0); //중복건수 수정
dupliPhoneDataRealList.length = 0; // 중복 팩스번호 초기화
}
});
// 받는사람 선택삭제 버튼 처리해주기
$('.select_del').click(function(){
$("#rowDupCnt").text(0); //중복건수 수정
dupliPhoneDataRealList.length = 0; // 중복 팩스번호 초기화
if(tableR == null || tableR == ""){
alert("받는사람을 추가해 주세요.");
return false;
}
var selectedData = tableR.getSelectedRows();
if(selectedData == "" || selectedData == null){
alert("받는 사람을 선택해 주세요.");
return false;
}else{ // 선택한 Row 데이터 삭제하기
for(var i=0; i < selectedData.length; i++){
selectedData[i].delete();
}
}
totRows = tableR.getRows().length;
updateTotCnt(totRows);
});
//받는사람 오류번호 삭제 처리해주기
$('.chkVali_del').click(function(){
//기존 연락처 모두 불러오기
@ -732,7 +687,15 @@ function getAddrGroupDuplCheckAjax() {
//저장
function SetAddrMassSave(){
var selectedData = tableR.getRows();
var selectedData = $tableExcel.getRows();
var columns = $tableExcel.getColumns();
var isAddrFaxNoSelected = columns.some(column => column.getField() === 'addrFaxNo');
if (!isAddrFaxNoSelected) {
alert('팩스번호가 선택되지 않았습니다.');
return false;
}
if (selectedData == "" || selectedData == null) {
alert("한 개 이상의 연락처를 입력하세요");
return false;
@ -781,11 +744,10 @@ function SetAddrMassSave(){
if (confirm(confirmMsg)) {
for (var i=0; i < selectedData.length; i++) {
var name = tableR.getRows()[i].getData().name;
var phone = removeDash(tableR.getRows()[i].getData().phone);
var memo = tableR.getRows()[i].getData().memo;
var name = $tableExcel.getRows()[i].getData().addrNm;
var phone = removeDash($tableExcel.getRows()[i].getData().addrFaxNo);
var memo = $tableExcel.getRows()[i].getData().addrMemo;
phoneList[i] = phone;
// name
if (name == "" || name == null || name == undefined) {
nameList[i] = "";
@ -794,10 +756,12 @@ function SetAddrMassSave(){
if(!addrEmojiCheck(name)){//이모지 체크 해주기
return false;
}
nameList[i] = name.replace(/,/g,"§");
}
// memo
phoneList[i] = phone;
// memo
if (memo == "" || memo == null || memo == undefined) {
memoList[i] = "";
@ -840,13 +804,9 @@ function SetAddrMassSave(){
// 중복건이 있을경우
if (returnData.dupliCnt > 0) {
//alert(returnData.addrMassDupliList.length);
// 중복번호(해당 그룹) Show
$("#btnAddrMassSaveDupli").show();
addrMassDupliSaveList = returnData.addrMassDupliList;
//$("#btnAddrMassSaveDupli").trigger("click");
}
// 데이터 비우기
@ -887,13 +847,14 @@ function SetClear() {
// 주소록 그룹정보 불러오기
getAddrGroupList();
var data = tableR.getRows();
var data = $tableExcel.getRows();
if (data == null || data == "") {
}
else {
tableR.clearData();
$("#rowTotCnt").text(0); //총건수 수정
$("#rowDupCnt").text(0); //중복건수 수정
}else{
$tableExcel.clearData();
$("#rowTotCnt").text(0); //총건수 초기화
$("#rowDupCnt").text(0); //중복건수 초기화
$("#rowErrorCnt").text(0); //오류건수 초기화
dupliPhoneDataRealList.length = 0; // 중복 팩스번호 초기화
}
}
@ -913,8 +874,7 @@ function getAddrGroupList() {
data : {},
dataType:'json',
success : function(data) {
//alert(JSON.stringify(data.addrGroupList));
// Show Html
getAddrGroupListShow(data.addrGroupList);
},
@ -948,7 +908,6 @@ $(document).on('change', '#addrGrpIdInfo', function() {
//#############################################################################################
//파일 불러오기
//#############################################################################################
//seetJs 엑셀 파일 불러오기
function excelExport(event){
var data = new FormData(document.excelForm);
@ -1044,6 +1003,11 @@ function excelExport(event){
}
}
//#############################################################################################
//파일 불러오기
//#############################################################################################
//체크박스 전체선택/해제
$(document).on("click", "#chkAll", function(e) {

View File

@ -4,17 +4,11 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%-- <script type="text/javascript" src="<c:url value='/publish/js/content.js'/>"></script> --%>
<script type="text/javascript">
$(document).ready(function(){
// 중복 휴대폰번호 버튼 노출여부
// $("#btnAddrMassDupli").hide();
// $("#btnAddrMassSaveDupli").hide();
});
});
function addrGroupLoadAjax(){
$("#addrRegistSelect").load("/web/addr/selectAddrGroupAjax.do", function(response, status, xhr){});
@ -28,6 +22,7 @@ function insertAddrGroupAjax() {
alert("주소록 그룹명을 입력해주세요.");
return;
}
if(!confirm("주소록 그룹을 추가하시겠습니까?")) {
return;
}
@ -66,10 +61,6 @@ function setSelectSetting(selectVal) {
$("#addrRegistSelect").val(selectVal).prop("selected", true);
}
//#############################################################################################
//Tabulator
//#############################################################################################
$(document).ready(function(){
// 파일 선택 버튼 클릭 이벤트
// 파일 입력 이벤트
@ -83,7 +74,6 @@ $(document).ready(function(){
}
});
//받는사람 오류번호 삭제 처리해주기
$('.chkVali_del').click(function(){
//기존 연락처 모두 불러오기
@ -95,8 +85,6 @@ $(document).ready(function(){
if(totLen > 0){
if(confirm("올바르지 않은 연락처 정보를 삭제 하시겠습니까?")){
for(var i=0; i < totLen; i++){
var phone = data[i].getData().phone;
var valiCheck = checkHpNum(phone);
if(valiCheck){
@ -126,7 +114,6 @@ $(document).ready(function(){
return false;
}
});
// 필드 선택 이벤트 핸들러
$("#column-selector").on("change", function() {
@ -138,9 +125,6 @@ $(document).ready(function(){
});
});
//#############################################################################################
//파일업로드 드래그앤 드롭
//#############################################################################################
@ -171,8 +155,8 @@ $(document).on('drop', function (e){
e.stopPropagation();
e.preventDefault();
});
//파일 드래그앤드롭 종료
//첨부파일 등록 변경 이벤트
function excelFileChange(file) {
console.log(' :: excelFileChange :: ');
fn_errorPopClean(); // 에러 popup 초기화
@ -219,7 +203,6 @@ function processExcelData(data) {
var tableData = [];
var totalRows = data.length - 2; // 전체 데이터 수 (1, 2행 제외)
// 1번째 행부터 입력
data.forEach((row, index) => {
var rowData = {};
@ -232,12 +215,11 @@ function processExcelData(data) {
updateTable(tableData);
}
// 텍스트 데이터 처리 함수
function processTextData(text) {
console.log(' :: processTextData :: ');
var lines = text.split('\n'); // 각 줄을 배열로 분리
var keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
var keys = ['A', 'B', 'C'];
var tableData = [];
lines.forEach(line => {
@ -398,7 +380,7 @@ $(document).on("click", "#duplicationChkAll", function(e) {
<select class="field-selector">
<option value="">선택하기</option>
<option value="addrNm">이름</option>
<option value="addrPhoneNo">팩스번호</option>
<option value="addrFaxNo">팩스번호</option>
<option value="addrComment">메모</option>
</select>
</div>
@ -407,7 +389,7 @@ $(document).on("click", "#duplicationChkAll", function(e) {
<select class="field-selector">
<option value="">선택하기</option>
<option value="addrNm">이름</option>
<option value="addrPhoneNo">팩스번호</option>
<option value="addrFaxNo">팩스번호</option>
<option value="addrComment">메모</option>
</select>
</div>
@ -416,7 +398,7 @@ $(document).on("click", "#duplicationChkAll", function(e) {
<select class="field-selector">
<option value="">선택하기</option>
<option value="addrNm">이름</option>
<option value="addrPhoneNo">팩스번호</option>
<option value="addrFaxNo">팩스번호</option>
<option value="addrComment">메모</option>
</select>
</div>

View File

@ -38,7 +38,7 @@ $(document).ready(function(){
updateTableFields($objTabul, group);
// 필드가 휴대폰이면 열 중복체크
if($(this).val() == 'addrPhoneNo'){
if($(this).val() == 'addrFaxNo'){
fn_phoneDupl($objTabul);
}
@ -68,7 +68,7 @@ $(document).ready(function(){
data.forEach((row, index) => {
const number = row.addrPhoneNo;
const number = row.addrFaxNo;
// number가 null, undefined, 빈 문자열이거나 숫자인 경우 처리
if (!number || (typeof number === 'string' && !number.trim())){
@ -81,7 +81,7 @@ $(document).ready(function(){
if (!existingNumbers.has(cleanedNumber)) { // 중복 번호 체크
if (isValidPhoneNumber(formattedNumber)) { // 유효성 검사
row.addrPhoneNo = formattedNumber;
row.addrFaxNo = formattedNumber;
existingNumbers.add(cleanedNumber); // 추가된 번호를 기존 목록에 추가
newData.push(row); // 유효한 데이터만 새로운 배열에 추가
} else {
@ -90,7 +90,7 @@ $(document).ready(function(){
errors.push({
name: row.addrNm, // 이름
phone: row.addrPhoneNo, // 폰번호
phone: row.addrFaxNo, // 폰번호
result: "오류" // 결과 메시지 추가
});
}
@ -100,7 +100,7 @@ $(document).ready(function(){
errors.push({
name: row.addrNm, // 이름
phone: row.addrPhoneNo, // 폰번호
phone: row.addrFaxNo, // 폰번호
result: "중복" // 결과 메시지 추가
});
}
@ -124,24 +124,18 @@ $(document).ready(function(){
$("#errorPopDupCnt").text(duplicateCount);
// 에러 카운트
$("#errorPopErrorCnt").text(errorCount);
//
// $("#errorPopTotCnt").text(duplicateCount+errorCount);
// 오류 및 중복 데이터를 한 번에 추가
// 오류 및 중복 데이터를 한 번에 추가
$tableError.setData(errors);
if(errorCount > 0){
alert('휴대폰 형식에 맞지 않는 데이터는 삭제 후 업로드 됩니다.\nex) 발송불가 특수문자, 자릿수 오류 등');
alert('팩스번호 형식에 맞지 않는 데이터는 삭제 후 업로드 됩니다.\nex) 발송불가 특수문자, 자릿수 오류 등');
}
}
//받는사람 전체삭제 버튼 처리
$('.all_del').click(function(){
var tabulNm = fn_utils_getTabulatorNm();
var tabluC = '.'+tabulNm
@ -195,12 +189,8 @@ $(document).ready(function(){
for (var i = 0; i < 1000; i++) {
newTableData.push({
addrNm: "",
addrPhoneNo: "",
addrInfo1: "",
addrInfo2: "",
addrInfo3: "",
addrInfo4: "",
addrComment: ""
addrFaxNo: "",
addrNemo: ""
});
}
@ -236,16 +226,16 @@ $(document).ready(function(){
// 1000개 행이 되도록 나머지 행 생성
for (var i = totRows; i < 1000; i++) {
$objTabul.addRow({addrNm: "", addrPhoneNo: "", addrInfo1: "", addrInfo2: "", addrInfo3: "", addrInfo4: "", addrComment: ""});
$objTabul.addRow({addrNm: "", addrFaxNo: "", addrMemo: ""});
}
var existingNumbers = []; // 중복 번호를 저장할 배열
// 모든 행의 'addrPhoneNo' 값을 배열에 추가
// 모든 행의 'addrFaxNo' 값을 배열에 추가
var allRows = $tableSelf.getData(); // 테이블의 모든 데이터를 가져옴
allRows.forEach(function(row) {
if (row.addrPhoneNo) {
const cleanedExistingNumber = row.addrPhoneNo.replace(/[^0-9]/g, ''); // 숫자만 남김
if (row.addrFaxNo) {
const cleanedExistingNumber = row.addrFaxNo.replace(/[^0-9]/g, ''); // 숫자만 남김
existingNumbers.push(cleanedExistingNumber); // 기존 번호를 배열에 추가
}
});
@ -269,13 +259,15 @@ $(document).ready(function(){
// 필드 초기 값 셋팅
var columns = [
{formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) {
{formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", width:50, headerSort: false, cellClick: function(e, cell) {
cell.getRow().toggleSelect();
}}
,{formatter:"rownum", align:"center", title:"No", hozAlign:"center", headerHozAlign:"center", width:40}
,{formatter:"rownum", align:"center", title:"No", hozAlign:"center", headerHozAlign:"center", width:100}
];
var fieldMapping = [];
console.log(": setTing number : ");
// 초기 후 필드 값 셋팅하기
$('[data-group="' + group + '"] .field-selector').each(function(index) {
var selectedField = $(this).val();
@ -287,9 +279,8 @@ $(document).ready(function(){
, field: selectedField
, hozAlign: "center"
, headerHozAlign: "center"
// , editor: "input"
, editor: false
, width: 125
, width: 260
, validator: ["maxLength:100", "string"]
});
fieldMapping.push(selectedField);
@ -299,9 +290,8 @@ $(document).ready(function(){
, field: field
, hozAlign: "center"
, headerHozAlign: "center"
// , editor: "input"
, editor: false
, width: 125
, width: 260
, validator: ["maxLength:100", "string"]
});
fieldMapping.push(field);
@ -365,8 +355,8 @@ function resetTableFieldsToDefault() {
// 타불 객체 가져오기
var $objTabul = fn_utils_getTabulator();
// 필드를 A, B, C, D로 초기화
var defaultFields = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
// 필드를 A, B, C로 초기화
var defaultFields = ['A', 'B', 'C'];
// 테이블의 기존 데이터를 가져옵니다.
var currentData = $objTabul.getData();
@ -387,7 +377,7 @@ function resetTableFieldsToDefault() {
hozAlign: "center",
headerHozAlign: "center",
editor: false, // 편집 비활성화
width: 125,
width: 240,
validator: ["maxLength:100", "string"]
});
});