팩스 주소록 진행중
This commit is contained in:
parent
a8c8f46f0e
commit
ed05ea4648
@ -4688,8 +4688,19 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M
|
||||
// 보유 금액이 충분한지 확인하는 메서드
|
||||
private boolean isCashSufficient(MjonMsgVO mjonMsgVO) throws Exception {
|
||||
String userMoney = priceAndPoint.getBefCash(mjonMsgVO.getUserId());
|
||||
// 쉼표 제거
|
||||
userMoney = userMoney.replace(",", "");
|
||||
|
||||
String totalPrice = mjonMsgVO.getTotPrice();
|
||||
// 쉼표 제거
|
||||
totalPrice = totalPrice.replace(",", "");
|
||||
|
||||
BigDecimal befCash = new BigDecimal(userMoney).setScale(2, RoundingMode.HALF_EVEN);
|
||||
BigDecimal totMsgPrice = new BigDecimal(mjonMsgVO.getTotPrice()).setScale(2, RoundingMode.HALF_EVEN);
|
||||
BigDecimal totMsgPrice = new BigDecimal(totalPrice).setScale(2, RoundingMode.HALF_EVEN);
|
||||
|
||||
// String userMoney = priceAndPoint.getBefCash(mjonMsgVO.getUserId());
|
||||
// BigDecimal befCash = new BigDecimal(userMoney).setScale(2, RoundingMode.HALF_EVEN);
|
||||
// BigDecimal totMsgPrice = new BigDecimal(mjonMsgVO.getTotPrice()).setScale(2, RoundingMode.HALF_EVEN);
|
||||
|
||||
return befCash.compareTo(totMsgPrice) >= 0;
|
||||
}
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
SELECT
|
||||
COUNT(1) OVER() AS totCnt
|
||||
,A.ADDR_GRP_ID AS addrGrpId
|
||||
,A.MBER_ID AS mberId
|
||||
,A.MBER_ID AS mberId
|
||||
,A.ADDR_GRP_NM AS addrGrpNm
|
||||
,DATE_FORMAT(A.FRST_REGIST_PNTTM, '%Y-%m-%d %T' ) AS frstRegistPnttm
|
||||
,A.DELETE_YN AS deleteYn
|
||||
@ -26,6 +26,7 @@
|
||||
<isNotEmpty property="mberId">
|
||||
AND A.MBER_ID = #mberId#
|
||||
</isNotEmpty>
|
||||
AND A.DELETE_YN = 'N'
|
||||
<isNotEmpty property="searchKeyword">
|
||||
<isEqual property="searchCondition" compareValue="">
|
||||
AND ( A.MBER_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
||||
|
||||
@ -293,35 +293,11 @@ function getAddrGroupDuplCheckAjax(addrGrpNm) {
|
||||
|
||||
//저장
|
||||
function SetAddrMassSave(){
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var $objTabul = fn_utils_getTabulator();
|
||||
var tabulNm = fn_utils_getTabulatorNm();
|
||||
var tabluC = '.'+tabulNm
|
||||
|
||||
/* console.log('$objTabul : ', $objTabul.getData());
|
||||
if(tabulNm == 'tableSelf'){
|
||||
console.log('????');
|
||||
|
||||
var allRows = $objTabul.getData(); // 테이블의 모든 데이터를 가져옴
|
||||
|
||||
// addrPhoneNo 값이 있는 행만 필터링
|
||||
var rowsWithPhoneNumbers = allRows.filter(function(row) {
|
||||
return row.addrPhoneNo && row.addrPhoneNo.trim() !== ''; // 값이 존재하고 공백이 아닌 경우
|
||||
});
|
||||
$objTabul = rowsWithPhoneNumbers;
|
||||
console.log('rowsWithPhoneNumbers : ', rowsWithPhoneNumbers);
|
||||
console.log('$objTabul : ', $objTabul.getData());
|
||||
return false;
|
||||
} */
|
||||
|
||||
if($objTabul.getData().length < 1){
|
||||
alert("한 개 이상의 연락처를 입력하세요");
|
||||
return false;
|
||||
@ -385,64 +361,6 @@ function SetAddrMassSave(){
|
||||
|
||||
}
|
||||
}
|
||||
/*
|
||||
// 주소록 등록 old
|
||||
function setSenderList_old(){
|
||||
|
||||
// tab에 해당하는 타블레이터 가져오기
|
||||
|
||||
var tabulNm = fn_utils_getTabulatorNm();
|
||||
var tabluC = '.'+tabulNm
|
||||
|
||||
var $objTabul = fn_utils_getTabulator();
|
||||
var dataToSend = $objTabul.getData();
|
||||
var addrGrpIdInfo = $(tabluC+" #addrGrpIdInfo option:selected").val();
|
||||
var addrGrpNmInfo = $(tabluC+" #addrGrpNm").val();
|
||||
|
||||
var updateData = dataToSend.map(row => {
|
||||
row.addrGrpId = addrGrpIdInfo;
|
||||
row.addrGrpNm = addrGrpNmInfo;
|
||||
return row;
|
||||
});
|
||||
|
||||
console.log('updateData : ', updateData);
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/web/mjon/addr/addrMassInsertByTempAjax_advc.do",
|
||||
data: JSON.stringify(updateData),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
async: true,
|
||||
success: function (data) {
|
||||
console.log('data : ', data);
|
||||
|
||||
|
||||
if (data.status == 'OK') {
|
||||
alert(data.message);
|
||||
// 데이터 비우기
|
||||
SetClear($objTabul);
|
||||
setAddrMassClose();
|
||||
var selectMassVal = $("#addrGrpIdInfo option:selected").val();
|
||||
}
|
||||
else {
|
||||
alert("오류 알림 : :: "+data.message);
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
alert("저장에 실패하였습니다.");
|
||||
alert("ERROR : " + JSON.stringify(e));
|
||||
},
|
||||
beforeSend : function(xmlHttpRequest) {
|
||||
//로딩창 show
|
||||
$('.loading_layer').addClass('active');
|
||||
},
|
||||
complete : function(xhr, textStatus) {
|
||||
//로딩창 hide
|
||||
$('.loading_layer').removeClass('active');
|
||||
}
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
function setSenderList_advc(){
|
||||
|
||||
|
||||
@ -22,117 +22,12 @@ function addrGroupLoadAjax(){
|
||||
$("#funcAddrGroupSelect").load("/web/addr/selectAddrGroupAjax.do", function(response, status, xhr){});
|
||||
}
|
||||
|
||||
|
||||
function insertAddrGroupAjax() {
|
||||
var form = document.addrGrpInsertForm;
|
||||
if(form.addrGrpNm.value == "") {
|
||||
alert("주소록 그룹명을 입력해주세요.");
|
||||
return;
|
||||
}
|
||||
if(!confirm("주소록 그룹을 추가하시겠습니까?")) {
|
||||
return;
|
||||
}
|
||||
var data = new FormData(form);
|
||||
|
||||
$.ajax({
|
||||
cache : false,
|
||||
url : "<c:url value='/web/addr/insertAddrGroupAjax.do' />",
|
||||
type : 'POST',
|
||||
data : data,
|
||||
dataType:'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(returnData, status){
|
||||
if(status == "success") {
|
||||
if("fail"==returnData.result){
|
||||
alert(returnData.message);
|
||||
return;
|
||||
} else if("dupl"==returnData.result) {
|
||||
alert("중복된 그룹명입니다.");
|
||||
return;
|
||||
}
|
||||
alert("등록되었습니다.");
|
||||
listAddrGrp();
|
||||
addrGroupLoadAjax();
|
||||
|
||||
}else{ alert("ERROR!");return;}
|
||||
},
|
||||
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function insertAddrAjax() {
|
||||
var selectVal = $("#addrRegistSelect option:selected").val();
|
||||
//alert(selectVal);
|
||||
|
||||
var form = document.addrInsertForm;
|
||||
/*
|
||||
//필수값 아니어서 뺐음
|
||||
if(form.addrNm.value == "") {
|
||||
alert("주소록 이름을 입력하세요");
|
||||
return;
|
||||
}
|
||||
*/
|
||||
if(form.addrPhoneNo.value == "") {
|
||||
alert("주소록 번호를 입력하세요");
|
||||
return;
|
||||
}
|
||||
//if(!confirm("주소록을 추가하시겠습니까?")) {
|
||||
// return;
|
||||
//}
|
||||
|
||||
if(!checkHpNum(form.addrPhoneNo.value)){//휴대폰 유효성 검사
|
||||
if(!checkNorPhoneNum(form.addrPhoneNo.value)){//일반전화 유효성 검사
|
||||
|
||||
alert("잘못된 휴대폰번호 또는 일반전화 번호 입니다.");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var data = new FormData(form);
|
||||
|
||||
$.ajax({
|
||||
cache : false,
|
||||
url : "<c:url value='/web/mjon/addr/insertAddrAjax.do' />",
|
||||
type : 'POST',
|
||||
data : data,
|
||||
dataType:'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(returnData, status){
|
||||
if(status == "success") {
|
||||
if("fail"==returnData.result){
|
||||
alert(returnData.message);
|
||||
return;
|
||||
} else if("dupl"==returnData.result){
|
||||
alert("해당 그룹에 중복된 번호가 있습니다.");
|
||||
return;
|
||||
}
|
||||
//alert("저장 되었습니다.");
|
||||
|
||||
listAddrGrp();
|
||||
addrGroupLoadAjax();
|
||||
addrLoadAjax();
|
||||
|
||||
// 주소록그룹 콤보박스 유지
|
||||
setTimeout(setSelectSetting, 500, selectVal);
|
||||
|
||||
}else{ alert("ERROR!");return;}
|
||||
},
|
||||
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// 주소록그룹 콤보박스 유지
|
||||
function setSelectSetting(selectVal) {
|
||||
$("#addrRegistSelect").val(selectVal).prop("selected", true);
|
||||
}
|
||||
|
||||
function linkPage(pageNo){
|
||||
/* function linkPage(pageNo){
|
||||
if ($('#searchKeywordAddr').val() != "" && $('#searchKeywordAddr').val() != null && $('#searchKeywordAddr').val() != undefined) {
|
||||
// 문자전송 검색용
|
||||
$("#msgStartKeyword").val("");
|
||||
@ -149,7 +44,7 @@ function linkPage(pageNo){
|
||||
$("#adr1_right").load("/web/mjon/addr/selectAddrAjax.do", sendData, function(response, status, xhr){tableAllChk();});
|
||||
addrGroupLoadAjax();
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
//#############################################################################################
|
||||
|
||||
@ -22,45 +22,6 @@ function addrGroupLoadAjax(){
|
||||
}
|
||||
|
||||
|
||||
function insertAddrGroupAjax() {
|
||||
var form = document.addrGrpInsertForm;
|
||||
if(form.addrGrpNm.value == "") {
|
||||
alert("주소록 그룹명을 입력해주세요.");
|
||||
return;
|
||||
}
|
||||
if(!confirm("주소록 그룹을 추가하시겠습니까?")) {
|
||||
return;
|
||||
}
|
||||
var data = new FormData(form);
|
||||
|
||||
$.ajax({
|
||||
cache : false,
|
||||
url : "<c:url value='/web/addr/insertAddrGroupAjax.do' />",
|
||||
type : 'POST',
|
||||
data : data,
|
||||
dataType:'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(returnData, status){
|
||||
if(status == "success") {
|
||||
if("fail"==returnData.result){
|
||||
alert(returnData.message);
|
||||
return;
|
||||
} else if("dupl"==returnData.result) {
|
||||
alert("중복된 그룹명입니다.");
|
||||
return;
|
||||
}
|
||||
alert("등록되었습니다.");
|
||||
listAddrGrp();
|
||||
addrGroupLoadAjax();
|
||||
|
||||
}else{ alert("ERROR!");return;}
|
||||
},
|
||||
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 주소록그룹 콤보박스 유지
|
||||
function setSelectSetting(selectVal) {
|
||||
@ -140,10 +101,6 @@ $(document).ready(function(){
|
||||
updateTableField(selectedField, newValue);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
@ -282,14 +239,10 @@ function updateTable(tableData) {
|
||||
{title: "F", field: "F", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]},
|
||||
{title: "G", field: "G", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]}
|
||||
]);
|
||||
|
||||
console.log(' :: $tableExcel.setData(tableData) :: ');
|
||||
$tableExcel.setData(tableData).then(() => {
|
||||
// rowTotCnt 업데이트
|
||||
document.getElementById("rowTotCnt").innerText = tableData.length;
|
||||
});
|
||||
|
||||
console.log(' :: fn_loadRemoveActive :: ');
|
||||
fn_loadRemoveActive();
|
||||
}
|
||||
|
||||
@ -299,37 +252,6 @@ function updateTable(tableData) {
|
||||
//#############################################################################################
|
||||
|
||||
|
||||
|
||||
// 주소록 그룹 중복체크
|
||||
function getAddrGroupDuplCheckAjax() {
|
||||
var isReturn = true;
|
||||
|
||||
$.ajax({
|
||||
url : "<c:url value='/web/addr/getAddrGroupDuplCheckAjax.do' />",
|
||||
type : 'POST',
|
||||
data : {"addrGrpNm" : $("#addrGrpNm").val()},
|
||||
dataType:'json',
|
||||
async: false, // 동기
|
||||
success : function(data, status){
|
||||
if(data.isSuccess == true) {
|
||||
if(data.isDupl == true) {
|
||||
//alert("중복된 그룹명입니다.");
|
||||
isReturn = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
//alert("Message : " + msg);
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
//alert("주소록 중복체크에 실패했습니다.");
|
||||
}
|
||||
});
|
||||
|
||||
return isReturn;
|
||||
}
|
||||
|
||||
|
||||
//#############################################################################################
|
||||
//파일 불러오기
|
||||
//#############################################################################################
|
||||
@ -353,33 +275,6 @@ $(document).on("click", "#duplicationChkAll", function(e) {
|
||||
|
||||
|
||||
|
||||
//중복 연락처 => 저장시
|
||||
// 해당 그룹
|
||||
/* function GetAddrMassSaveDupli() {
|
||||
var sHtml = "";
|
||||
sHtml += "<div class='' style='overflow-x:auto; height:350px;'>";
|
||||
sHtml += "<table class='tType4'>";
|
||||
sHtml += " <colgroup>";
|
||||
sHtml += " <col style='width:auto' />";
|
||||
sHtml += " </colgroup>";
|
||||
sHtml += " <thead>";
|
||||
sHtml += " <tr>";
|
||||
// sHtml += " <th>중복 휴대폰번호 (" + numberWithCommas(addrMassDupliSaveList.length) + "개)</th>";
|
||||
sHtml += " <th>중복 휴대폰번호 (10개)</th>";
|
||||
sHtml += " </tr>";
|
||||
sHtml += " </thead>";
|
||||
sHtml += " <tbody>";
|
||||
for (var i = 0; i < addrMassDupliSaveList.length; i++) {
|
||||
sHtml += " <tr>";
|
||||
sHtml += " <td>" + addrMassDupliSaveList[i].addrPhoneNo + "</td>";
|
||||
sHtml += " </tr>";
|
||||
}
|
||||
sHtml += " </tbody>";
|
||||
sHtml += " </table>";
|
||||
sHtml += " </div>";
|
||||
|
||||
$("#addrMassSaveDupli_layer").html(sHtml);
|
||||
} */
|
||||
|
||||
</script>
|
||||
|
||||
@ -435,13 +330,7 @@ $(document).on("click", "#duplicationChkAll", function(e) {
|
||||
/ 오류 <span class="c_002c9a fwBold" id="rowErrorCnt">0</span>건
|
||||
<button type="button" class="btn_list_detail" data-tooltip="adr_popup14"><img src="/publish/images/search.png"></button>
|
||||
</p>
|
||||
<!-- <p>총 <span class="c_e40000">171</span>건 / 중복 <span class="c_002c9a">9</span>건 / 오류 <span class="c_002c9a">9</span>건 <button type="button" class="btn_list_detail"><img src="/publish/images/search.png"></button></p> -->
|
||||
|
||||
<!-- <button type="button" class="btnType btnType6" data-tooltip="addrMassDupli_layer" onclick="GetAddrMassDupli()" id="btnAddrMassDupli">중복번호</button> -->
|
||||
<!-- <button type="button" class="btnType btnType6" data-tooltip="addrMassDupli_layer" id="tableExcelDupliBtn">중복번호</button> -->
|
||||
<!-- -->
|
||||
<!-- <button type="button" class="btnType btnType6" data-tooltip="addrMassSaveDupli_layer" onclick="GetAddrMassSaveDupli()" id="btnAddrMassSaveDupli">중복번호</button> -->
|
||||
<!-- <button type="button" class="btnType btnType6 addCallToF">번호추가</button> -->
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@ -7,8 +7,10 @@
|
||||
|
||||
<script type="text/javascript" src="<c:url value='/publish/js/content.js'/>"></script>
|
||||
<script type="text/javascript" src="https://oss.sheetjs.com/sheetjs/xlsx.full.min.js"></script>
|
||||
<script type="text/javascript" src="<c:url value='/js/user/fax/addr/faxTabulator.js'/>?v=20241031"></script>
|
||||
<script type="text/javascript" src="<c:url value='/js/user/fax/addr/faxEvent.js'/>?v=20241031"></script>
|
||||
<%-- <script type="text/javascript" src="<c:url value='/js/user/fax/addr/faxTabulator.js'/>?v=20241031"></script> --%>
|
||||
<script type="text/javascript" src="<c:url value='/js/user/fax/addr/init.js'/>?v=20241031"></script>
|
||||
<%-- <script type="text/javascript" src="<c:url value='/js/user/fax/addr/faxEvent.js'/>?v=20241031"></script> --%>
|
||||
<script type="text/javascript" src="<c:url value='/js/user/fax/addr/event.js'/>?v=20241031"></script>
|
||||
<script type="text/javascript" src="<c:url value='/js/web/addr/cmn.js?date=202409021440'/>"></script>
|
||||
<script type="text/javascript" src="<c:url value='/js/web/addr/utils.js'/>?v=20240919"></script>
|
||||
|
||||
@ -168,229 +170,6 @@ function moveTab(type){
|
||||
}
|
||||
|
||||
|
||||
|
||||
//#############################################################################################
|
||||
//Tabulator
|
||||
//#############################################################################################
|
||||
var tableR = null; //우측 주소록 불러오기 Tabulator 변수
|
||||
|
||||
/* 파일등록 */
|
||||
var _fileIdx = 0;
|
||||
var _fileForm2 = new Array();
|
||||
var fileExt = ""; // 첨부파일 확장자
|
||||
var excelAddr = []; //엑셀 불러오기에서 내용 저장하는 배열 변수
|
||||
|
||||
$(document).ready(function(){
|
||||
//Tabulator AJAX Data Loading
|
||||
|
||||
//tableR.setData(tabledata);
|
||||
|
||||
//받는사람 번호 버튼 클릭시 Tabulator에 데이터 넣어주기
|
||||
$('.addCallToF').click(function(){
|
||||
var recTableData = tableR.getRows(); // 받는사람 리스트의 전체 목록을 저장
|
||||
var tableData = [];
|
||||
|
||||
//빈 Row 한줄을 상단에 먼저 추가해준다.
|
||||
tableData.push({phone: ""});
|
||||
|
||||
//기존 받는사람 리스트를 배열에 미리 담아둔다.
|
||||
if(recTableData.length > 0){
|
||||
for(var j=0; j < recTableData.length; j++){
|
||||
tableData.push({name: recTableData[j].getData().name, phone: removeDash(recTableData[j].getData().phone.trim()), memo: recTableData[j].getData().memo});
|
||||
}
|
||||
}
|
||||
|
||||
//연락처 추가해 주기
|
||||
//addPhoneInfo(tabledata);
|
||||
|
||||
tableR.setData(tableData);
|
||||
|
||||
//전체 데이터 갯수 구하기
|
||||
totRows = tableR.getRows().length;
|
||||
updateTotCnt(totRows);
|
||||
});
|
||||
|
||||
//받는사람 오류번호 삭제 처리해주기
|
||||
$('.chkVali_del').click(function(){
|
||||
//기존 연락처 모두 불러오기
|
||||
var data = tableR.getRows();
|
||||
var tableData = [];
|
||||
var totLen = tableR.getRows().length;
|
||||
var errCnt = 0;
|
||||
|
||||
if(totLen > 0){
|
||||
if(confirm("올바르지 않은 연락처 정보를 삭제 하시겠습니까?")){
|
||||
for(var i=0; i < totLen; i++){
|
||||
var phone = data[i].getData().phone;
|
||||
var valiCheck = checkFaxNum(phone);
|
||||
if(valiCheck){//팩스 번호인 것만 저장해 준다.
|
||||
tableData.push({name: data[i].getData().name.trim(), phone: data[i].getData().phone.trim(), memo:data[i].getData().memo});
|
||||
}else{
|
||||
errCnt++;
|
||||
}
|
||||
}
|
||||
|
||||
var removeDuplData = dupliPhoneData(tableData);
|
||||
|
||||
tableR.setData(removeDuplData);
|
||||
|
||||
//총 받는사람 수 계산
|
||||
totRows = tableR.getRows().length;
|
||||
updateTotCnt(totRows);
|
||||
|
||||
if(errCnt > 0){
|
||||
alert(errCnt + " 건의 연락처를 삭제하였습니다.");
|
||||
return false;
|
||||
}else{
|
||||
alert("오류가 있는 연락처가 없습니다.");
|
||||
}
|
||||
}
|
||||
}else{
|
||||
alert("연락처 정보를 입력해 주세요.");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 오류검사 항목 중복제거
|
||||
function SetTableErrorDupliCheck(sVal) {
|
||||
var isDuplicate = false;
|
||||
if (tableErrorCheckData.length == 0) {
|
||||
tableErrorCheckData.push(sVal);
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < tableErrorCheckData.length; i++)
|
||||
{
|
||||
if (tableErrorCheckData[i] == sVal) {
|
||||
isDuplicate = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isDuplicate) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
tableErrorCheckData.push(sVal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 오류검사 항목 중복제거
|
||||
function SetTableErrorDupliCheck(sVal) {
|
||||
var isDuplicate = false;
|
||||
if (tableErrorCheckData.length == 0) {
|
||||
tableErrorCheckData.push(sVal);
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < tableErrorCheckData.length; i++)
|
||||
{
|
||||
if (tableErrorCheckData[i] == sVal) {
|
||||
isDuplicate = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isDuplicate) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
tableErrorCheckData.push(sVal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('.check_validity').click(function(){
|
||||
tableErrorCheckData.length = 0; // 오류 번호 배열 초기화
|
||||
|
||||
var data = tableR.getRows();
|
||||
var invalid = tableR.getInvalidCells(); //오류 데이터 체크
|
||||
var dataLen = tableR.getRows().length; //연락처 데이터 갯수
|
||||
var totLen = invalid.length; //오류 데이터 갯수
|
||||
var errMsg = ""; //최종 alert에 표시할 메시지 저장 변수
|
||||
|
||||
if(dataLen > 0) { //연락처 정보가 있으면 수행
|
||||
if(totLen > 0) { //내용에 오류가 있으면 수행
|
||||
//오류 데이터 값 저장
|
||||
for(var i=0; i < totLen; i++) {
|
||||
var cellValue = invalid[i].getValue();
|
||||
SetTableErrorDupliCheck(cellValue);
|
||||
}
|
||||
|
||||
for(var i=0; i < dataLen; i++){
|
||||
// 팩스번호 체크
|
||||
var phone = data[i].getData().phone;
|
||||
var valiCheck = checkFaxNum(phone);
|
||||
if(!valiCheck){
|
||||
SetTableErrorDupliCheck(phone);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for(var i=0; i < dataLen; i++){
|
||||
// 팩스번호 체크
|
||||
var phone = data[i].getData().phone;
|
||||
var valiCheck = checkFaxNum(phone);
|
||||
if(!valiCheck){
|
||||
SetTableErrorDupliCheck(phone);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
alert("연락처를 입력해 주세요.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (tableErrorCheckData.length > 0) {
|
||||
for (var i = 0; i < tableErrorCheckData.length; i++)
|
||||
{
|
||||
errMsg += tableErrorCheckData[i];
|
||||
if ((tableErrorCheckData.length - 1) > i) {
|
||||
errMsg += ", ";
|
||||
}
|
||||
}
|
||||
alert(errMsg + "의 내용에 오류가 있습니다.");
|
||||
}
|
||||
else {
|
||||
alert("오류 데이터가 없습니다.");
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
$('.addExcelDw').click(function(){
|
||||
var data = tableR.getRows();
|
||||
if(data.length > 0){
|
||||
tableR.download("xlsx", "recieveAddr.xlsx", {sheetName:"recieveAddr"});
|
||||
}else{
|
||||
alert("입력된 연락처 정보가 없습니다.");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
//받는사람 중복 삭제
|
||||
$('.duple_del').click(function(){
|
||||
//기존 연락처 모두 불러오기
|
||||
var data = tableR.getRows();
|
||||
var tableData = [];
|
||||
var dpCnt = 0;
|
||||
var totLen = tableR.getRows().length;
|
||||
|
||||
for(var i=0; i < totLen; i++){
|
||||
tableData.push({name: data[i].getData().name.trim(), phone: data[i].getData().phone.trim()});
|
||||
}
|
||||
|
||||
var removeDuplData = dupliPhoneData(tableData);
|
||||
tableR.setData(removeDuplData);
|
||||
|
||||
//총 받는사람 수 계산
|
||||
totRows = tableR.getRows().length;
|
||||
updateTotCnt(totRows);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
//전체 데이터 갯수 구하는 함수
|
||||
function updateTotCnt(data){
|
||||
var rowTotCnt = data;
|
||||
@ -681,6 +460,7 @@ function fn_rowDataClear(){
|
||||
|
||||
// 주소록 그룹 중복체크
|
||||
function getAddrGroupDuplCheckAjax(addrGrpNm) {
|
||||
console.log('addrGrpNm : ', addrGrpNm);
|
||||
var isReturn = true;
|
||||
|
||||
$.ajax({
|
||||
@ -714,13 +494,7 @@ function SetAddrMassSave(){
|
||||
var $objTabul = fn_utils_getTabulator();
|
||||
var tabulNm = fn_utils_getTabulatorNm();
|
||||
var tabluC = '.'+tabulNm
|
||||
|
||||
var loginVO = '${LoginVO}';
|
||||
if(loginVO == "" || loginVO == null){
|
||||
alert("로그인 후 이용이 가능합니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if($objTabul.getData().length < 1){
|
||||
alert("한 개 이상의 연락처를 입력하세요");
|
||||
return false;
|
||||
@ -730,6 +504,13 @@ function SetAddrMassSave(){
|
||||
alert("30만개 까지 등록 가능합니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
var loginVO = '${LoginVO}';
|
||||
if(fn_utils_isEmpty(loginVO)){
|
||||
alert("로그인 후 이용이 가능합니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var columns = $objTabul.getColumns();
|
||||
var isAddrPhoneNoSelected = columns.some(column => column.getField() === 'addrPhoneNo');
|
||||
@ -758,16 +539,13 @@ function SetAddrMassSave(){
|
||||
console.log('addrGrpNm : ', addrGrpNm);
|
||||
|
||||
//주소록 중복체크
|
||||
if (getAddrGroupDuplCheckAjax() == false) {
|
||||
if (getAddrGroupDuplCheckAjax(addrGrpNm) == false) {
|
||||
alert("중복된 그룹명입니다. 새 그룹명을 입력해주세요.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//수신번호 리스트 체크하기
|
||||
var phoneList = [];
|
||||
var nameList = [];
|
||||
var memoList = [];
|
||||
var confirmMsg = "저장하시겠습니까?\n이름 20byte, 메모 250byte 초과 글자는 절사됩니다.";
|
||||
if (confirm(confirmMsg)) {
|
||||
//로딩창 show
|
||||
|
||||
@ -23,110 +23,6 @@ function addrGroupLoadAjax(){
|
||||
}
|
||||
|
||||
|
||||
function insertAddrGroupAjax() {
|
||||
var form = document.addrGrpInsertForm;
|
||||
if(form.addrGrpNm.value == "") {
|
||||
alert("주소록 그룹명을 입력해주세요.");
|
||||
return;
|
||||
}
|
||||
if(!confirm("주소록 그룹을 추가하시겠습니까?")) {
|
||||
return;
|
||||
}
|
||||
var data = new FormData(form);
|
||||
|
||||
$.ajax({
|
||||
cache : false,
|
||||
url : "<c:url value='/web/addr/insertAddrGroupAjax.do' />",
|
||||
type : 'POST',
|
||||
data : data,
|
||||
dataType:'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(returnData, status){
|
||||
if(status == "success") {
|
||||
if("fail"==returnData.result){
|
||||
alert(returnData.message);
|
||||
return;
|
||||
} else if("dupl"==returnData.result) {
|
||||
alert("중복된 그룹명입니다.");
|
||||
return;
|
||||
}
|
||||
alert("등록되었습니다.");
|
||||
listAddrGrp();
|
||||
addrGroupLoadAjax();
|
||||
|
||||
}else{ alert("ERROR!");return;}
|
||||
},
|
||||
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function insertAddrAjax() {
|
||||
var selectVal = $("#addrRegistSelect option:selected").val();
|
||||
//alert(selectVal);
|
||||
|
||||
var form = document.addrInsertForm;
|
||||
/*
|
||||
//필수값 아니어서 뺐음
|
||||
if(form.addrNm.value == "") {
|
||||
alert("주소록 이름을 입력하세요");
|
||||
return;
|
||||
}
|
||||
*/
|
||||
if(form.addrPhoneNo.value == "") {
|
||||
alert("주소록 번호를 입력하세요");
|
||||
return;
|
||||
}
|
||||
//if(!confirm("주소록을 추가하시겠습니까?")) {
|
||||
// return;
|
||||
//}
|
||||
|
||||
if(!checkHpNum(form.addrPhoneNo.value)){//휴대폰 유효성 검사
|
||||
if(!checkNorPhoneNum(form.addrPhoneNo.value)){//일반전화 유효성 검사
|
||||
|
||||
alert("잘못된 휴대폰번호 또는 일반전화 번호 입니다.");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var data = new FormData(form);
|
||||
|
||||
$.ajax({
|
||||
cache : false,
|
||||
url : "<c:url value='/web/mjon/addr/insertAddrAjax.do' />",
|
||||
type : 'POST',
|
||||
data : data,
|
||||
dataType:'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(returnData, status){
|
||||
if(status == "success") {
|
||||
if("fail"==returnData.result){
|
||||
alert(returnData.message);
|
||||
return;
|
||||
} else if("dupl"==returnData.result){
|
||||
alert("해당 그룹에 중복된 번호가 있습니다.");
|
||||
return;
|
||||
}
|
||||
//alert("저장 되었습니다.");
|
||||
|
||||
listAddrGrp();
|
||||
addrGroupLoadAjax();
|
||||
addrLoadAjax();
|
||||
|
||||
// 주소록그룹 콤보박스 유지
|
||||
setTimeout(setSelectSetting, 500, selectVal);
|
||||
|
||||
}else{ alert("ERROR!");return;}
|
||||
},
|
||||
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// 주소록그룹 콤보박스 유지
|
||||
function setSelectSetting(selectVal) {
|
||||
$("#addrRegistSelect").val(selectVal).prop("selected", true);
|
||||
@ -312,7 +208,8 @@ $(document).ready(function(){
|
||||
return false;
|
||||
}
|
||||
|
||||
let keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
|
||||
// let keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
|
||||
let keys = ['A', 'B', 'C'];
|
||||
let data = {};
|
||||
splitData.forEach((item, index) => {
|
||||
data[keys[index]] = item.trim() || ""; // 빈 문자열로 기본값 설정
|
||||
@ -324,8 +221,11 @@ $(document).ready(function(){
|
||||
console.log('Tabulator data before getData:', $tableClip.getData());
|
||||
// $tableClip.clearData();
|
||||
$tableClip.setData([{
|
||||
A: "", B: "", C: "", D: "", E: "", F: "", G: ""
|
||||
A: "", B: "", C: ""
|
||||
}]); // 초기 데이터로 복원
|
||||
// $tableClip.setData([{
|
||||
// A: "", B: "", C: "", D: "", E: "", F: "", G: ""
|
||||
// }]); // 초기 데이터로 복원
|
||||
$tableClip.setData(realPhone);
|
||||
var totRows = $tableClip.getDataCount();
|
||||
updateTotCnt(totRows);
|
||||
@ -454,99 +354,34 @@ function GetAddrMassDupli() {
|
||||
<div class="adr_excel" style="margin-top: 13px; overflow-x: auto;">
|
||||
<!-- thead -->
|
||||
<div class="adr_hd select_adr_hd" data-group="tableClip">
|
||||
<div style="width: 80px;"></div>
|
||||
<div style="width: 125px;">
|
||||
<div style="width:80px;"></div>
|
||||
<div style="width:240px;">
|
||||
<label for="" class="label"></label>
|
||||
<select class="field-selector">
|
||||
<option value="">선택하기</option>
|
||||
<option value="addrNm">이름</option>
|
||||
<option value="addrPhoneNo">휴대폰</option>
|
||||
<option value="addrInfo1">[*1*]</option>
|
||||
<option value="addrInfo2">[*2*]</option>
|
||||
<option value="addrInfo3">[*3*]</option>
|
||||
<option value="addrInfo4">[*4*]</option>
|
||||
<option value="addrPhoneNo">팩스번호</option>
|
||||
<option value="addrComment">메모</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="width: 125px;">
|
||||
<div style="width:240px;">
|
||||
<label for="" class="label"></label>
|
||||
<select class="field-selector">
|
||||
<option value="">선택하기</option>
|
||||
<option value="addrNm">이름</option>
|
||||
<option value="addrPhoneNo">휴대폰</option>
|
||||
<option value="addrInfo1">[*1*]</option>
|
||||
<option value="addrInfo2">[*2*]</option>
|
||||
<option value="addrInfo3">[*3*]</option>
|
||||
<option value="addrInfo4">[*4*]</option>
|
||||
<option value="addrPhoneNo">팩스번호</option>
|
||||
<option value="addrComment">메모</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="width: 125px;">
|
||||
<div style="width:240px;">
|
||||
<label for="" class="label"></label>
|
||||
<select class="field-selector">
|
||||
<option value="">선택하기</option>
|
||||
<option value="addrNm">이름</option>
|
||||
<option value="addrPhoneNo">휴대폰</option>
|
||||
<option value="addrInfo1">[*1*]</option>
|
||||
<option value="addrInfo2">[*2*]</option>
|
||||
<option value="addrInfo3">[*3*]</option>
|
||||
<option value="addrInfo4">[*4*]</option>
|
||||
<option value="addrPhoneNo">팩스번호</option>
|
||||
<option value="addrComment">메모</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="width: 125px;">
|
||||
<label for="" class="label"></label>
|
||||
<select class="field-selector">
|
||||
<option value="">선택하기</option>
|
||||
<option value="addrNm">이름</option>
|
||||
<option value="addrPhoneNo">휴대폰</option>
|
||||
<option value="addrInfo1">[*1*]</option>
|
||||
<option value="addrInfo2">[*2*]</option>
|
||||
<option value="addrInfo3">[*3*]</option>
|
||||
<option value="addrInfo4">[*4*]</option>
|
||||
<option value="addrComment">메모</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="width: 125px;">
|
||||
<label for="" class="label"></label>
|
||||
<select class="field-selector">
|
||||
<option value="">선택하기</option>
|
||||
<option value="addrNm">이름</option>
|
||||
<option value="addrPhoneNo">휴대폰</option>
|
||||
<option value="addrInfo1">[*1*]</option>
|
||||
<option value="addrInfo2">[*2*]</option>
|
||||
<option value="addrInfo3">[*3*]</option>
|
||||
<option value="addrInfo4">[*4*]</option>
|
||||
<option value="addrComment">메모</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="width: 125px;">
|
||||
<label for="" class="label"></label>
|
||||
<select class="field-selector">
|
||||
<option value="">선택하기</option>
|
||||
<option value="addrNm">이름</option>
|
||||
<option value="addrPhoneNo">휴대폰</option>
|
||||
<option value="addrInfo1">[*1*]</option>
|
||||
<option value="addrInfo2">[*2*]</option>
|
||||
<option value="addrInfo3">[*3*]</option>
|
||||
<option value="addrInfo4">[*4*]</option>
|
||||
<option value="addrComment">메모</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="width: 125px;">
|
||||
<label for="" class="label"></label>
|
||||
<select class="field-selector">
|
||||
<option value="">선택하기</option>
|
||||
<option value="addrNm">이름</option>
|
||||
<option value="addrPhoneNo">휴대폰</option>
|
||||
<option value="addrInfo1">[*1*]</option>
|
||||
<option value="addrInfo2">[*2*]</option>
|
||||
<option value="addrInfo3">[*3*]</option>
|
||||
<option value="addrInfo4">[*4*]</option>
|
||||
<option value="addrComment">메모</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="drag_drop_wrap callList_box" id="tabulator_clip">
|
||||
|
||||
@ -16,45 +16,6 @@ function addrGroupLoadAjax(){
|
||||
}
|
||||
|
||||
|
||||
function insertAddrGroupAjax() {
|
||||
var form = document.addrGrpInsertForm;
|
||||
if(form.addrGrpNm.value == "") {
|
||||
alert("주소록 그룹명을 입력해주세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(!confirm("주소록 그룹을 추가하시겠습니까?")) {
|
||||
return;
|
||||
}
|
||||
var data = new FormData(form);
|
||||
|
||||
$.ajax({
|
||||
cache : false,
|
||||
url : "<c:url value='/web/addr/insertAddrGroupAjax.do' />",
|
||||
type : 'POST',
|
||||
data : data,
|
||||
dataType:'json',
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success : function(returnData, status){
|
||||
if(status == "success") {
|
||||
if("fail"==returnData.result){
|
||||
alert(returnData.message);
|
||||
return;
|
||||
} else if("dupl"==returnData.result) {
|
||||
alert("중복된 그룹명입니다.");
|
||||
return;
|
||||
}
|
||||
alert("등록되었습니다.");
|
||||
listAddrGrp();
|
||||
addrGroupLoadAjax();
|
||||
|
||||
}else{ alert("ERROR!");return;}
|
||||
},
|
||||
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 주소록그룹 콤보박스 유지
|
||||
function setSelectSetting(selectVal) {
|
||||
@ -252,7 +213,6 @@ function updateTable(tableData) {
|
||||
document.getElementById("rowTotCnt").innerText = tableData.length;
|
||||
});
|
||||
|
||||
console.log(' :: fn_loadRemoveActive :: ');
|
||||
fn_loadRemoveActive();
|
||||
}
|
||||
|
||||
@ -261,34 +221,6 @@ function updateTable(tableData) {
|
||||
//등록
|
||||
//#############################################################################################
|
||||
|
||||
// 주소록 그룹 중복체크
|
||||
function getAddrGroupDuplCheckAjax() {
|
||||
var isReturn = true;
|
||||
|
||||
$.ajax({
|
||||
url : "<c:url value='/web/addr/getAddrGroupDuplCheckAjax.do' />",
|
||||
type : 'POST',
|
||||
data : {"addrGrpNm" : $("#addrGrpNm").val()},
|
||||
dataType:'json',
|
||||
async: false, // 동기
|
||||
success : function(data, status){
|
||||
if(data.isSuccess == true) {
|
||||
if(data.isDupl == true) {
|
||||
//alert("중복된 그룹명입니다.");
|
||||
isReturn = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
//alert("Message : " + msg);
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
//alert("주소록 중복체크에 실패했습니다.");
|
||||
}
|
||||
});
|
||||
|
||||
return isReturn;
|
||||
}
|
||||
|
||||
|
||||
//#############################################################################################
|
||||
|
||||
@ -358,10 +358,10 @@ function resetTableFieldsToDefault() {
|
||||
|
||||
// 초기 필드(A, B, C, D 등)를 위한 열 설정
|
||||
var columns = [
|
||||
{formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) {
|
||||
{formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, width:50, hozAlign: "center", headerHozAlign: "center", 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}
|
||||
];
|
||||
|
||||
// 기본 필드로 열 구성
|
||||
@ -372,7 +372,7 @@ function resetTableFieldsToDefault() {
|
||||
hozAlign: "center",
|
||||
headerHozAlign: "center",
|
||||
editor: false, // 편집 비활성화
|
||||
width: 240,
|
||||
width: 260,
|
||||
validator: ["maxLength:100", "string"]
|
||||
});
|
||||
});
|
||||
209
src/main/webapp/js/user/fax/addr/init.js
Normal file
209
src/main/webapp/js/user/fax/addr/init.js
Normal file
@ -0,0 +1,209 @@
|
||||
|
||||
|
||||
var tableErrorData = [];
|
||||
var tableErrorCheckData = [];
|
||||
var addrMassDupliSaveList = null;
|
||||
|
||||
var gArrRestartIndex = 0; //배열 재시작카운드
|
||||
var gNameList = []; //치환문자 이름
|
||||
var gPhoneList = []; //받는사람
|
||||
var gMemoList = []; //메모
|
||||
|
||||
var $tableExcel = null; //엑셀입력 탭
|
||||
var $tableClip = null; //붙여넣기 탭
|
||||
var $tableSelf = null; //직접입력 탭
|
||||
var $tableError = null; //에러 팝업 영역
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
//excel 파일 불러오기 tabulator
|
||||
$tableExcel = new Tabulator("#tabulator_excel", {
|
||||
height:"255px",
|
||||
width:"100%",
|
||||
layout:"fitColumns",
|
||||
autoColumns:false,
|
||||
headerHozAlign:"center",
|
||||
validationMode:"highlight",
|
||||
clipboard:false,
|
||||
clipboardCopySelector:"table",
|
||||
clipboardPasteAction:"insert", // insert, update, replace
|
||||
placeholder:"Excel 파일을 업로드 해주세요.", //fit columns to width of table (optional)
|
||||
columns:[ //Define Table Columns
|
||||
{formatter:"rowSelection", titleFormatter:"rowSelection",clipboard:false, hozAlign:"center", width:50, headerSort:false, cellClick:function(e, cell){
|
||||
cell.getRow().toggleSelect();
|
||||
}}
|
||||
,{formatter:"rownum", hozAlign:"center" ,title:"No", hozAlign:"center", headerHozAlign:"center", width:100}
|
||||
,{title:"A", field:"A", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]}
|
||||
,{title:"B", field:"B", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]}
|
||||
,{title:"C", field:"C", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]}
|
||||
],
|
||||
validationFailed:function(cell, value, parameters){ // 유효성 체크 함수
|
||||
var valid = cell.isValid();
|
||||
if(!valid){
|
||||
alert("양식에 맞지 않는 정보가 입력되었습니다.");
|
||||
|
||||
//해당 셀 데이터 삭제
|
||||
cell.setValue("");
|
||||
}
|
||||
return value % parameters.phone;
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
|
||||
$tableClip = new Tabulator("#tabulator_clip", {
|
||||
height:"255px",
|
||||
width:"100%",
|
||||
layout:"fitColumns",
|
||||
editor:true,
|
||||
headerHozAlign:"center",
|
||||
validationMode:"highlight",
|
||||
placeholder:"복사(Ctrl+C)한 내용을 여기에 붙여넣기(Ctrl+V) 해주세요.", //fit columns to width of table (optional)
|
||||
// clipboard:true, // 클립보드 기능 활성화
|
||||
clipboardPasteAction:"update", // insert, update, replace
|
||||
columns: [
|
||||
{formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", width:50, headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) {
|
||||
cell.getRow().toggleSelect();
|
||||
}},
|
||||
{formatter:"rownum", hozAlign:"center" ,title:"No", hozAlign:"center", headerHozAlign:"center", width:100}
|
||||
,{title:"A", field:"A", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]}
|
||||
,{title:"B", field:"B", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]}
|
||||
,{title:"C", field:"C", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]}
|
||||
/*,{title:"D", field:"D", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]}
|
||||
,{title:"E", field:"E", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]}
|
||||
,{title:"F", field:"F", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]}
|
||||
,{title:"G", field:"G", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]}*/
|
||||
],
|
||||
validationFailed: function(cell, value, parameters) {
|
||||
var valid = cell.isValid();
|
||||
if (!valid) {
|
||||
alert("양식에 맞지 않는 정보가 입력되었습니다.");
|
||||
cell.setValue(""); // 해당 셀 데이터 삭제
|
||||
}
|
||||
return false; // 유효하지 않은 경우 false 반환
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
|
||||
//Tabulator AJAX Data Loading
|
||||
$tableError = new Tabulator("#tabulator_error", {
|
||||
height:"255px",
|
||||
width:"100%",
|
||||
layout:"fitColumns",
|
||||
autoColumns:false,
|
||||
headerHozAlign:"center",
|
||||
validationMode:"highlight",
|
||||
clipboard:false,
|
||||
clipboardCopySelector:"table",
|
||||
clipboardPasteAction:"insert", // insert, update, replace
|
||||
placeholder:"등록 팝업에서 팩스번호를 선택 후 확인해주세요.", //fit columns to width of table (optional)
|
||||
columns:[ //Define Table Columns
|
||||
{title:"이름", field:"name", hozAlign:"center", headerHozAlign: "center", width:125},
|
||||
{title:"팩스번호", field:"phone", hozAlign:"center", headerHozAlign: "center", width:158},
|
||||
{title:"미등록 결과", field:"result", hozAlign:"center", headerHozAlign: "center", width:125}
|
||||
]
|
||||
});
|
||||
|
||||
// 타뷸레이터 width값 변경 시 위에 select width 값 변경
|
||||
var titleArray = ["A","B","C","D","E","F","G"];
|
||||
|
||||
$tableExcel.on("columnWidth",function(column){
|
||||
var titleIndex = titleArray.indexOf(column._column.definition.title);
|
||||
titleIndex += 1;
|
||||
if(titleIndex != 0){
|
||||
$('.tableExcel .select_adr_hd>div').eq(titleIndex).css('width', column._column.width);
|
||||
}else{
|
||||
$('.tableExcel .select_adr_hd>div').eq(0).css('width', column._column.width + 40);
|
||||
}
|
||||
});
|
||||
|
||||
$tableExcel.on("scrollHorizontal",function(left){
|
||||
$(".tableExcel .adr_excel").scrollLeft(left);
|
||||
})
|
||||
|
||||
$(".tableExcel .adr_excel").on("scroll",function(){
|
||||
$(".tableExcel .tabulator-tableholder").scrollLeft($(this).scrollLeft());
|
||||
});
|
||||
|
||||
|
||||
|
||||
$tableClip.on("columnWidth",function(column){
|
||||
var titleIndex = titleArray.indexOf(column._column.definition.title);
|
||||
titleIndex += 1;
|
||||
if(titleIndex != 0){
|
||||
$('.tableClip .select_adr_hd>div').eq(titleIndex).css('width', column._column.width);
|
||||
}else{
|
||||
$('.tableClip .select_adr_hd>div').eq(0).css('width', column._column.width + 40);
|
||||
}
|
||||
});
|
||||
|
||||
$tableClip.on("scrollHorizontal",function(left){
|
||||
$(".tableClip .adr_excel").scrollLeft(left);
|
||||
})
|
||||
|
||||
$(".tableClip .adr_excel").on("scroll",function(){
|
||||
$(".tableClip .tabulator-tableholder").scrollLeft($(this).scrollLeft());
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
function fn_selfmakeTable(){
|
||||
|
||||
var tableData = [];
|
||||
for (var i = 0; i < 1000; i++) {
|
||||
tableData.push({addrNm: "", addrPhoneNo: "", addrInfo1: "", addrInfo2: "", addrInfo3: "", addrInfo4: "", addrComment: ""});
|
||||
}
|
||||
|
||||
// 테이블 초기화
|
||||
$tableSelf = new Tabulator("#tabulator_self", {
|
||||
height: "255px",
|
||||
width: "100%",
|
||||
layout: "fitColumns",
|
||||
clipboardPasteAction: "update",
|
||||
keybindings: {
|
||||
"navRight": "tab", // Tab 키를 누르면 오른쪽 셀로 이동
|
||||
"navLeft": "shift+tab",
|
||||
"editNext": false // Tab 키를 누를 때 편집 모드를 종료하지 않도록 설정
|
||||
},
|
||||
data: tableData,
|
||||
columns: [
|
||||
{formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) {
|
||||
cell.getRow().toggleSelect();
|
||||
}},
|
||||
{formatter:"rownum", hozAlign:"center" ,title:"No", headerHozAlign:"center", width:40},
|
||||
{title:"이름", field:"addrNm", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"},
|
||||
{title:"휴대폰", field:"addrPhoneNo", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"
|
||||
, cellEdited:function(cell){
|
||||
var currentValue = cell.getValue();
|
||||
console.log('cell.getValue() : ', currentValue);
|
||||
|
||||
// 현재 값이 null 또는 undefined가 아니고, 값이 변경된 경우에만 처리
|
||||
if (currentValue !== null
|
||||
&& currentValue !== ''
|
||||
) {
|
||||
var newValue = fn_selfUpdataCount(currentValue);
|
||||
|
||||
// 값이 실제로 변경된 경우에만 setValue 호출
|
||||
if (currentValue !== newValue) {
|
||||
cell.setValue(newValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{title:"[*1*]", field:"addrInfo1", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"},
|
||||
{title:"[*2*]", field:"addrInfo2", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"},
|
||||
{title:"[*3*]", field:"addrInfo3", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"},
|
||||
{title:"[*4*]", field:"addrInfo4", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"},
|
||||
{title:"메모", field:"addrComment", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}
|
||||
],
|
||||
navigation: true // 키보드 탐색 활성화
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user