팩스 주소록 엑셀파일 등록 기능 수정
This commit is contained in:
parent
6c761267a9
commit
526b1d6895
@ -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) {
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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"]
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user