팩스 주소록 진행중
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 {
|
private boolean isCashSufficient(MjonMsgVO mjonMsgVO) throws Exception {
|
||||||
String userMoney = priceAndPoint.getBefCash(mjonMsgVO.getUserId());
|
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 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;
|
return befCash.compareTo(totMsgPrice) >= 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
SELECT
|
SELECT
|
||||||
COUNT(1) OVER() AS totCnt
|
COUNT(1) OVER() AS totCnt
|
||||||
,A.ADDR_GRP_ID AS addrGrpId
|
,A.ADDR_GRP_ID AS addrGrpId
|
||||||
,A.MBER_ID AS mberId
|
,A.MBER_ID AS mberId
|
||||||
,A.ADDR_GRP_NM AS addrGrpNm
|
,A.ADDR_GRP_NM AS addrGrpNm
|
||||||
,DATE_FORMAT(A.FRST_REGIST_PNTTM, '%Y-%m-%d %T' ) AS frstRegistPnttm
|
,DATE_FORMAT(A.FRST_REGIST_PNTTM, '%Y-%m-%d %T' ) AS frstRegistPnttm
|
||||||
,A.DELETE_YN AS deleteYn
|
,A.DELETE_YN AS deleteYn
|
||||||
@ -26,6 +26,7 @@
|
|||||||
<isNotEmpty property="mberId">
|
<isNotEmpty property="mberId">
|
||||||
AND A.MBER_ID = #mberId#
|
AND A.MBER_ID = #mberId#
|
||||||
</isNotEmpty>
|
</isNotEmpty>
|
||||||
|
AND A.DELETE_YN = 'N'
|
||||||
<isNotEmpty property="searchKeyword">
|
<isNotEmpty property="searchKeyword">
|
||||||
<isEqual property="searchCondition" compareValue="">
|
<isEqual property="searchCondition" compareValue="">
|
||||||
AND ( A.MBER_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
AND ( A.MBER_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
||||||
|
|||||||
@ -293,35 +293,11 @@ function getAddrGroupDuplCheckAjax(addrGrpNm) {
|
|||||||
|
|
||||||
//저장
|
//저장
|
||||||
function SetAddrMassSave(){
|
function SetAddrMassSave(){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var $objTabul = fn_utils_getTabulator();
|
var $objTabul = fn_utils_getTabulator();
|
||||||
var tabulNm = fn_utils_getTabulatorNm();
|
var tabulNm = fn_utils_getTabulatorNm();
|
||||||
var tabluC = '.'+tabulNm
|
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){
|
if($objTabul.getData().length < 1){
|
||||||
alert("한 개 이상의 연락처를 입력하세요");
|
alert("한 개 이상의 연락처를 입력하세요");
|
||||||
return false;
|
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(){
|
function setSenderList_advc(){
|
||||||
|
|
||||||
|
|||||||
@ -22,117 +22,12 @@ function addrGroupLoadAjax(){
|
|||||||
$("#funcAddrGroupSelect").load("/web/addr/selectAddrGroupAjax.do", function(response, status, xhr){});
|
$("#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) {
|
function setSelectSetting(selectVal) {
|
||||||
$("#addrRegistSelect").val(selectVal).prop("selected", true);
|
$("#addrRegistSelect").val(selectVal).prop("selected", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function linkPage(pageNo){
|
/* function linkPage(pageNo){
|
||||||
if ($('#searchKeywordAddr').val() != "" && $('#searchKeywordAddr').val() != null && $('#searchKeywordAddr').val() != undefined) {
|
if ($('#searchKeywordAddr').val() != "" && $('#searchKeywordAddr').val() != null && $('#searchKeywordAddr').val() != undefined) {
|
||||||
// 문자전송 검색용
|
// 문자전송 검색용
|
||||||
$("#msgStartKeyword").val("");
|
$("#msgStartKeyword").val("");
|
||||||
@ -149,7 +44,7 @@ function linkPage(pageNo){
|
|||||||
$("#adr1_right").load("/web/mjon/addr/selectAddrAjax.do", sendData, function(response, status, xhr){tableAllChk();});
|
$("#adr1_right").load("/web/mjon/addr/selectAddrAjax.do", sendData, function(response, status, xhr){tableAllChk();});
|
||||||
addrGroupLoadAjax();
|
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) {
|
function setSelectSetting(selectVal) {
|
||||||
@ -140,10 +101,6 @@ $(document).ready(function(){
|
|||||||
updateTableField(selectedField, newValue);
|
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: "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"]}
|
{title: "G", field: "G", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
console.log(' :: $tableExcel.setData(tableData) :: ');
|
|
||||||
$tableExcel.setData(tableData).then(() => {
|
$tableExcel.setData(tableData).then(() => {
|
||||||
// rowTotCnt 업데이트
|
// rowTotCnt 업데이트
|
||||||
document.getElementById("rowTotCnt").innerText = tableData.length;
|
document.getElementById("rowTotCnt").innerText = tableData.length;
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log(' :: fn_loadRemoveActive :: ');
|
|
||||||
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>
|
</script>
|
||||||
|
|
||||||
@ -435,13 +330,7 @@ $(document).on("click", "#duplicationChkAll", function(e) {
|
|||||||
/ 오류 <span class="c_002c9a fwBold" id="rowErrorCnt">0</span>건
|
/ 오류 <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>
|
<button type="button" class="btn_list_detail" data-tooltip="adr_popup14"><img src="/publish/images/search.png"></button>
|
||||||
</p>
|
</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>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -7,8 +7,10 @@
|
|||||||
|
|
||||||
<script type="text/javascript" src="<c:url value='/publish/js/content.js'/>"></script>
|
<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="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/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/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/cmn.js?date=202409021440'/>"></script>
|
||||||
<script type="text/javascript" src="<c:url value='/js/web/addr/utils.js'/>?v=20240919"></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){
|
function updateTotCnt(data){
|
||||||
var rowTotCnt = data;
|
var rowTotCnt = data;
|
||||||
@ -681,6 +460,7 @@ function fn_rowDataClear(){
|
|||||||
|
|
||||||
// 주소록 그룹 중복체크
|
// 주소록 그룹 중복체크
|
||||||
function getAddrGroupDuplCheckAjax(addrGrpNm) {
|
function getAddrGroupDuplCheckAjax(addrGrpNm) {
|
||||||
|
console.log('addrGrpNm : ', addrGrpNm);
|
||||||
var isReturn = true;
|
var isReturn = true;
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@ -714,13 +494,7 @@ function SetAddrMassSave(){
|
|||||||
var $objTabul = fn_utils_getTabulator();
|
var $objTabul = fn_utils_getTabulator();
|
||||||
var tabulNm = fn_utils_getTabulatorNm();
|
var tabulNm = fn_utils_getTabulatorNm();
|
||||||
var tabluC = '.'+tabulNm
|
var tabluC = '.'+tabulNm
|
||||||
|
|
||||||
var loginVO = '${LoginVO}';
|
|
||||||
if(loginVO == "" || loginVO == null){
|
|
||||||
alert("로그인 후 이용이 가능합니다.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($objTabul.getData().length < 1){
|
if($objTabul.getData().length < 1){
|
||||||
alert("한 개 이상의 연락처를 입력하세요");
|
alert("한 개 이상의 연락처를 입력하세요");
|
||||||
return false;
|
return false;
|
||||||
@ -730,6 +504,13 @@ function SetAddrMassSave(){
|
|||||||
alert("30만개 까지 등록 가능합니다.");
|
alert("30만개 까지 등록 가능합니다.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var loginVO = '${LoginVO}';
|
||||||
|
if(fn_utils_isEmpty(loginVO)){
|
||||||
|
alert("로그인 후 이용이 가능합니다.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
var columns = $objTabul.getColumns();
|
var columns = $objTabul.getColumns();
|
||||||
var isAddrPhoneNoSelected = columns.some(column => column.getField() === 'addrPhoneNo');
|
var isAddrPhoneNoSelected = columns.some(column => column.getField() === 'addrPhoneNo');
|
||||||
@ -758,16 +539,13 @@ function SetAddrMassSave(){
|
|||||||
console.log('addrGrpNm : ', addrGrpNm);
|
console.log('addrGrpNm : ', addrGrpNm);
|
||||||
|
|
||||||
//주소록 중복체크
|
//주소록 중복체크
|
||||||
if (getAddrGroupDuplCheckAjax() == false) {
|
if (getAddrGroupDuplCheckAjax(addrGrpNm) == false) {
|
||||||
alert("중복된 그룹명입니다. 새 그룹명을 입력해주세요.");
|
alert("중복된 그룹명입니다. 새 그룹명을 입력해주세요.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//수신번호 리스트 체크하기
|
//수신번호 리스트 체크하기
|
||||||
var phoneList = [];
|
|
||||||
var nameList = [];
|
|
||||||
var memoList = [];
|
|
||||||
var confirmMsg = "저장하시겠습니까?\n이름 20byte, 메모 250byte 초과 글자는 절사됩니다.";
|
var confirmMsg = "저장하시겠습니까?\n이름 20byte, 메모 250byte 초과 글자는 절사됩니다.";
|
||||||
if (confirm(confirmMsg)) {
|
if (confirm(confirmMsg)) {
|
||||||
//로딩창 show
|
//로딩창 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) {
|
function setSelectSetting(selectVal) {
|
||||||
$("#addrRegistSelect").val(selectVal).prop("selected", true);
|
$("#addrRegistSelect").val(selectVal).prop("selected", true);
|
||||||
@ -312,7 +208,8 @@ $(document).ready(function(){
|
|||||||
return false;
|
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 = {};
|
let data = {};
|
||||||
splitData.forEach((item, index) => {
|
splitData.forEach((item, index) => {
|
||||||
data[keys[index]] = item.trim() || ""; // 빈 문자열로 기본값 설정
|
data[keys[index]] = item.trim() || ""; // 빈 문자열로 기본값 설정
|
||||||
@ -324,8 +221,11 @@ $(document).ready(function(){
|
|||||||
console.log('Tabulator data before getData:', $tableClip.getData());
|
console.log('Tabulator data before getData:', $tableClip.getData());
|
||||||
// $tableClip.clearData();
|
// $tableClip.clearData();
|
||||||
$tableClip.setData([{
|
$tableClip.setData([{
|
||||||
A: "", B: "", C: "", D: "", E: "", F: "", G: ""
|
A: "", B: "", C: ""
|
||||||
}]); // 초기 데이터로 복원
|
}]); // 초기 데이터로 복원
|
||||||
|
// $tableClip.setData([{
|
||||||
|
// A: "", B: "", C: "", D: "", E: "", F: "", G: ""
|
||||||
|
// }]); // 초기 데이터로 복원
|
||||||
$tableClip.setData(realPhone);
|
$tableClip.setData(realPhone);
|
||||||
var totRows = $tableClip.getDataCount();
|
var totRows = $tableClip.getDataCount();
|
||||||
updateTotCnt(totRows);
|
updateTotCnt(totRows);
|
||||||
@ -454,99 +354,34 @@ function GetAddrMassDupli() {
|
|||||||
<div class="adr_excel" style="margin-top: 13px; overflow-x: auto;">
|
<div class="adr_excel" style="margin-top: 13px; overflow-x: auto;">
|
||||||
<!-- thead -->
|
<!-- thead -->
|
||||||
<div class="adr_hd select_adr_hd" data-group="tableClip">
|
<div class="adr_hd select_adr_hd" data-group="tableClip">
|
||||||
<div style="width: 80px;"></div>
|
<div style="width:80px;"></div>
|
||||||
<div style="width: 125px;">
|
<div style="width:240px;">
|
||||||
<label for="" class="label"></label>
|
<label for="" class="label"></label>
|
||||||
<select class="field-selector">
|
<select class="field-selector">
|
||||||
<option value="">선택하기</option>
|
<option value="">선택하기</option>
|
||||||
<option value="addrNm">이름</option>
|
<option value="addrNm">이름</option>
|
||||||
<option value="addrPhoneNo">휴대폰</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>
|
<option value="addrComment">메모</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 125px;">
|
<div style="width:240px;">
|
||||||
<label for="" class="label"></label>
|
<label for="" class="label"></label>
|
||||||
<select class="field-selector">
|
<select class="field-selector">
|
||||||
<option value="">선택하기</option>
|
<option value="">선택하기</option>
|
||||||
<option value="addrNm">이름</option>
|
<option value="addrNm">이름</option>
|
||||||
<option value="addrPhoneNo">휴대폰</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>
|
<option value="addrComment">메모</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 125px;">
|
<div style="width:240px;">
|
||||||
<label for="" class="label"></label>
|
<label for="" class="label"></label>
|
||||||
<select class="field-selector">
|
<select class="field-selector">
|
||||||
<option value="">선택하기</option>
|
<option value="">선택하기</option>
|
||||||
<option value="addrNm">이름</option>
|
<option value="addrNm">이름</option>
|
||||||
<option value="addrPhoneNo">휴대폰</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>
|
<option value="addrComment">메모</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</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>
|
||||||
|
|
||||||
<div class="drag_drop_wrap callList_box" id="tabulator_clip">
|
<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) {
|
function setSelectSetting(selectVal) {
|
||||||
@ -252,7 +213,6 @@ function updateTable(tableData) {
|
|||||||
document.getElementById("rowTotCnt").innerText = tableData.length;
|
document.getElementById("rowTotCnt").innerText = tableData.length;
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log(' :: fn_loadRemoveActive :: ');
|
|
||||||
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 등)를 위한 열 설정
|
// 초기 필드(A, B, C, D 등)를 위한 열 설정
|
||||||
var columns = [
|
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();
|
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",
|
hozAlign: "center",
|
||||||
headerHozAlign: "center",
|
headerHozAlign: "center",
|
||||||
editor: false, // 편집 비활성화
|
editor: false, // 편집 비활성화
|
||||||
width: 240,
|
width: 260,
|
||||||
validator: ["maxLength:100", "string"]
|
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