--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
... | ... | @@ -4688,8 +4688,19 @@ |
| 4688 | 4688 |
// 보유 금액이 충분한지 확인하는 메서드 |
| 4689 | 4689 |
private boolean isCashSufficient(MjonMsgVO mjonMsgVO) throws Exception {
|
| 4690 | 4690 |
String userMoney = priceAndPoint.getBefCash(mjonMsgVO.getUserId()); |
| 4691 |
+ // 쉼표 제거 |
|
| 4692 |
+ userMoney = userMoney.replace(",", "");
|
|
| 4693 |
+ |
|
| 4694 |
+ String totalPrice = mjonMsgVO.getTotPrice(); |
|
| 4695 |
+ // 쉼표 제거 |
|
| 4696 |
+ totalPrice = totalPrice.replace(",", "");
|
|
| 4697 |
+ |
|
| 4691 | 4698 |
BigDecimal befCash = new BigDecimal(userMoney).setScale(2, RoundingMode.HALF_EVEN); |
| 4692 |
- BigDecimal totMsgPrice = new BigDecimal(mjonMsgVO.getTotPrice()).setScale(2, RoundingMode.HALF_EVEN); |
|
| 4699 |
+ BigDecimal totMsgPrice = new BigDecimal(totalPrice).setScale(2, RoundingMode.HALF_EVEN); |
|
| 4700 |
+ |
|
| 4701 |
+// String userMoney = priceAndPoint.getBefCash(mjonMsgVO.getUserId()); |
|
| 4702 |
+// BigDecimal befCash = new BigDecimal(userMoney).setScale(2, RoundingMode.HALF_EVEN); |
|
| 4703 |
+// BigDecimal totMsgPrice = new BigDecimal(mjonMsgVO.getTotPrice()).setScale(2, RoundingMode.HALF_EVEN); |
|
| 4693 | 4704 |
|
| 4694 | 4705 |
return befCash.compareTo(totMsgPrice) >= 0; |
| 4695 | 4706 |
} |
--- src/main/resources/egovframework/sqlmap/let/fax/addr/Fax_AddrGroup_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/fax/addr/Fax_AddrGroup_SQL_Mysql.xml
... | ... | @@ -9,7 +9,7 @@ |
| 9 | 9 |
SELECT |
| 10 | 10 |
COUNT(1) OVER() AS totCnt |
| 11 | 11 |
,A.ADDR_GRP_ID AS addrGrpId |
| 12 |
- ,A.MBER_ID AS mberId |
|
| 12 |
+ ,A.MBER_ID AS mberId |
|
| 13 | 13 |
,A.ADDR_GRP_NM AS addrGrpNm |
| 14 | 14 |
,DATE_FORMAT(A.FRST_REGIST_PNTTM, '%Y-%m-%d %T' ) AS frstRegistPnttm |
| 15 | 15 |
,A.DELETE_YN AS deleteYn |
... | ... | @@ -26,6 +26,7 @@ |
| 26 | 26 |
<isNotEmpty property="mberId"> |
| 27 | 27 |
AND A.MBER_ID = #mberId# |
| 28 | 28 |
</isNotEmpty> |
| 29 |
+ AND A.DELETE_YN = 'N' |
|
| 29 | 30 |
<isNotEmpty property="searchKeyword"> |
| 30 | 31 |
<isEqual property="searchCondition" compareValue=""> |
| 31 | 32 |
AND ( A.MBER_ID LIKE CONCAT ('%', #searchKeyword#,'%')
|
--- src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
... | ... | @@ -293,35 +293,11 @@ |
| 293 | 293 |
|
| 294 | 294 |
//저장 |
| 295 | 295 |
function SetAddrMassSave(){
|
| 296 |
- |
|
| 297 |
- |
|
| 298 |
- |
|
| 299 |
- |
|
| 300 |
- |
|
| 301 |
- |
|
| 302 |
- |
|
| 303 |
- |
|
| 304 | 296 |
|
| 305 | 297 |
var $objTabul = fn_utils_getTabulator(); |
| 306 | 298 |
var tabulNm = fn_utils_getTabulatorNm(); |
| 307 | 299 |
var tabluC = '.'+tabulNm |
| 308 | 300 |
|
| 309 |
- /* console.log('$objTabul : ', $objTabul.getData());
|
|
| 310 |
- if(tabulNm == 'tableSelf'){
|
|
| 311 |
- console.log('????');
|
|
| 312 |
- |
|
| 313 |
- var allRows = $objTabul.getData(); // 테이블의 모든 데이터를 가져옴 |
|
| 314 |
- |
|
| 315 |
- // addrPhoneNo 값이 있는 행만 필터링 |
|
| 316 |
- var rowsWithPhoneNumbers = allRows.filter(function(row) {
|
|
| 317 |
- return row.addrPhoneNo && row.addrPhoneNo.trim() !== ''; // 값이 존재하고 공백이 아닌 경우 |
|
| 318 |
- }); |
|
| 319 |
- $objTabul = rowsWithPhoneNumbers; |
|
| 320 |
- console.log('rowsWithPhoneNumbers : ', rowsWithPhoneNumbers);
|
|
| 321 |
- console.log('$objTabul : ', $objTabul.getData());
|
|
| 322 |
- return false; |
|
| 323 |
- } */ |
|
| 324 |
- |
|
| 325 | 301 |
if($objTabul.getData().length < 1){
|
| 326 | 302 |
alert("한 개 이상의 연락처를 입력하세요");
|
| 327 | 303 |
return false; |
... | ... | @@ -385,64 +361,6 @@ |
| 385 | 361 |
|
| 386 | 362 |
} |
| 387 | 363 |
} |
| 388 |
-/* |
|
| 389 |
-// 주소록 등록 old |
|
| 390 |
-function setSenderList_old(){
|
|
| 391 |
- |
|
| 392 |
- // tab에 해당하는 타블레이터 가져오기 |
|
| 393 |
- |
|
| 394 |
- var tabulNm = fn_utils_getTabulatorNm(); |
|
| 395 |
- var tabluC = '.'+tabulNm |
|
| 396 |
- |
|
| 397 |
- var $objTabul = fn_utils_getTabulator(); |
|
| 398 |
- var dataToSend = $objTabul.getData(); |
|
| 399 |
- var addrGrpIdInfo = $(tabluC+" #addrGrpIdInfo option:selected").val(); |
|
| 400 |
- var addrGrpNmInfo = $(tabluC+" #addrGrpNm").val(); |
|
| 401 |
- |
|
| 402 |
- var updateData = dataToSend.map(row => {
|
|
| 403 |
- row.addrGrpId = addrGrpIdInfo; |
|
| 404 |
- row.addrGrpNm = addrGrpNmInfo; |
|
| 405 |
- return row; |
|
| 406 |
- }); |
|
| 407 |
- |
|
| 408 |
- console.log('updateData : ', updateData);
|
|
| 409 |
- $.ajax({
|
|
| 410 |
- type: "POST", |
|
| 411 |
- url: "/web/mjon/addr/addrMassInsertByTempAjax_advc.do", |
|
| 412 |
- data: JSON.stringify(updateData), |
|
| 413 |
- dataType: 'json', |
|
| 414 |
- contentType: 'application/json', |
|
| 415 |
- async: true, |
|
| 416 |
- success: function (data) {
|
|
| 417 |
- console.log('data : ', data);
|
|
| 418 |
- |
|
| 419 |
- |
|
| 420 |
- if (data.status == 'OK') {
|
|
| 421 |
- alert(data.message); |
|
| 422 |
- // 데이터 비우기 |
|
| 423 |
- SetClear($objTabul); |
|
| 424 |
- setAddrMassClose(); |
|
| 425 |
- var selectMassVal = $("#addrGrpIdInfo option:selected").val();
|
|
| 426 |
- } |
|
| 427 |
- else {
|
|
| 428 |
- alert("오류 알림 : :: "+data.message);
|
|
| 429 |
- } |
|
| 430 |
- }, |
|
| 431 |
- error: function (e) {
|
|
| 432 |
- alert("저장에 실패하였습니다.");
|
|
| 433 |
- alert("ERROR : " + JSON.stringify(e));
|
|
| 434 |
- }, |
|
| 435 |
- beforeSend : function(xmlHttpRequest) {
|
|
| 436 |
- //로딩창 show |
|
| 437 |
- $('.loading_layer').addClass('active');
|
|
| 438 |
- }, |
|
| 439 |
- complete : function(xhr, textStatus) {
|
|
| 440 |
- //로딩창 hide |
|
| 441 |
- $('.loading_layer').removeClass('active');
|
|
| 442 |
- } |
|
| 443 |
- }); |
|
| 444 |
-} |
|
| 445 |
- */ |
|
| 446 | 364 |
|
| 447 | 365 |
function setSenderList_advc(){
|
| 448 | 366 |
|
--- src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforClipboard.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforClipboard.jsp
... | ... | @@ -22,117 +22,12 @@ |
| 22 | 22 |
$("#funcAddrGroupSelect").load("/web/addr/selectAddrGroupAjax.do", function(response, status, xhr){});
|
| 23 | 23 |
} |
| 24 | 24 |
|
| 25 |
- |
|
| 26 |
-function insertAddrGroupAjax() {
|
|
| 27 |
- var form = document.addrGrpInsertForm; |
|
| 28 |
- if(form.addrGrpNm.value == "") {
|
|
| 29 |
- alert("주소록 그룹명을 입력해주세요.");
|
|
| 30 |
- return; |
|
| 31 |
- } |
|
| 32 |
- if(!confirm("주소록 그룹을 추가하시겠습니까?")) {
|
|
| 33 |
- return; |
|
| 34 |
- } |
|
| 35 |
- var data = new FormData(form); |
|
| 36 |
- |
|
| 37 |
- $.ajax({
|
|
| 38 |
- cache : false, |
|
| 39 |
- url : "<c:url value='/web/addr/insertAddrGroupAjax.do' />", |
|
| 40 |
- type : 'POST', |
|
| 41 |
- data : data, |
|
| 42 |
- dataType:'json', |
|
| 43 |
- processData: false, |
|
| 44 |
- contentType: false, |
|
| 45 |
- success : function(returnData, status){
|
|
| 46 |
- if(status == "success") {
|
|
| 47 |
- if("fail"==returnData.result){
|
|
| 48 |
- alert(returnData.message); |
|
| 49 |
- return; |
|
| 50 |
- } else if("dupl"==returnData.result) {
|
|
| 51 |
- alert("중복된 그룹명입니다.");
|
|
| 52 |
- return; |
|
| 53 |
- } |
|
| 54 |
- alert("등록되었습니다.");
|
|
| 55 |
- listAddrGrp(); |
|
| 56 |
- addrGroupLoadAjax(); |
|
| 57 |
- |
|
| 58 |
- }else{ alert("ERROR!");return;}
|
|
| 59 |
- }, |
|
| 60 |
- error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
| 61 |
- }); |
|
| 62 |
- |
|
| 63 |
-} |
|
| 64 |
- |
|
| 65 |
-function insertAddrAjax() {
|
|
| 66 |
- var selectVal = $("#addrRegistSelect option:selected").val();
|
|
| 67 |
- //alert(selectVal); |
|
| 68 |
- |
|
| 69 |
- var form = document.addrInsertForm; |
|
| 70 |
- /* |
|
| 71 |
- //필수값 아니어서 뺐음 |
|
| 72 |
- if(form.addrNm.value == "") {
|
|
| 73 |
- alert("주소록 이름을 입력하세요");
|
|
| 74 |
- return; |
|
| 75 |
- } |
|
| 76 |
- */ |
|
| 77 |
- if(form.addrPhoneNo.value == "") {
|
|
| 78 |
- alert("주소록 번호를 입력하세요");
|
|
| 79 |
- return; |
|
| 80 |
- } |
|
| 81 |
- //if(!confirm("주소록을 추가하시겠습니까?")) {
|
|
| 82 |
- // return; |
|
| 83 |
- //} |
|
| 84 |
- |
|
| 85 |
- if(!checkHpNum(form.addrPhoneNo.value)){//휴대폰 유효성 검사
|
|
| 86 |
- if(!checkNorPhoneNum(form.addrPhoneNo.value)){//일반전화 유효성 검사
|
|
| 87 |
- |
|
| 88 |
- alert("잘못된 휴대폰번호 또는 일반전화 번호 입니다.");
|
|
| 89 |
- return false; |
|
| 90 |
- |
|
| 91 |
- } |
|
| 92 |
- |
|
| 93 |
- } |
|
| 94 |
- |
|
| 95 |
- var data = new FormData(form); |
|
| 96 |
- |
|
| 97 |
- $.ajax({
|
|
| 98 |
- cache : false, |
|
| 99 |
- url : "<c:url value='/web/mjon/addr/insertAddrAjax.do' />", |
|
| 100 |
- type : 'POST', |
|
| 101 |
- data : data, |
|
| 102 |
- dataType:'json', |
|
| 103 |
- processData: false, |
|
| 104 |
- contentType: false, |
|
| 105 |
- success : function(returnData, status){
|
|
| 106 |
- if(status == "success") {
|
|
| 107 |
- if("fail"==returnData.result){
|
|
| 108 |
- alert(returnData.message); |
|
| 109 |
- return; |
|
| 110 |
- } else if("dupl"==returnData.result){
|
|
| 111 |
- alert("해당 그룹에 중복된 번호가 있습니다.");
|
|
| 112 |
- return; |
|
| 113 |
- } |
|
| 114 |
- //alert("저장 되었습니다.");
|
|
| 115 |
- |
|
| 116 |
- listAddrGrp(); |
|
| 117 |
- addrGroupLoadAjax(); |
|
| 118 |
- addrLoadAjax(); |
|
| 119 |
- |
|
| 120 |
- // 주소록그룹 콤보박스 유지 |
|
| 121 |
- setTimeout(setSelectSetting, 500, selectVal); |
|
| 122 |
- |
|
| 123 |
- }else{ alert("ERROR!");return;}
|
|
| 124 |
- }, |
|
| 125 |
- error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
| 126 |
- }); |
|
| 127 |
- |
|
| 128 |
-} |
|
| 129 |
- |
|
| 130 | 25 |
// 주소록그룹 콤보박스 유지 |
| 131 | 26 |
function setSelectSetting(selectVal) {
|
| 132 | 27 |
$("#addrRegistSelect").val(selectVal).prop("selected", true);
|
| 133 | 28 |
} |
| 134 | 29 |
|
| 135 |
-function linkPage(pageNo){
|
|
| 30 |
+/* function linkPage(pageNo){
|
|
| 136 | 31 |
if ($('#searchKeywordAddr').val() != "" && $('#searchKeywordAddr').val() != null && $('#searchKeywordAddr').val() != undefined) {
|
| 137 | 32 |
// 문자전송 검색용 |
| 138 | 33 |
$("#msgStartKeyword").val("");
|
... | ... | @@ -149,7 +44,7 @@ |
| 149 | 44 |
$("#adr1_right").load("/web/mjon/addr/selectAddrAjax.do", sendData, function(response, status, xhr){tableAllChk();});
|
| 150 | 45 |
addrGroupLoadAjax(); |
| 151 | 46 |
} |
| 152 |
- |
|
| 47 |
+ */ |
|
| 153 | 48 |
|
| 154 | 49 |
|
| 155 | 50 |
//############################################################################################# |
--- src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp
... | ... | @@ -22,45 +22,6 @@ |
| 22 | 22 |
} |
| 23 | 23 |
|
| 24 | 24 |
|
| 25 |
-function insertAddrGroupAjax() {
|
|
| 26 |
- var form = document.addrGrpInsertForm; |
|
| 27 |
- if(form.addrGrpNm.value == "") {
|
|
| 28 |
- alert("주소록 그룹명을 입력해주세요.");
|
|
| 29 |
- return; |
|
| 30 |
- } |
|
| 31 |
- if(!confirm("주소록 그룹을 추가하시겠습니까?")) {
|
|
| 32 |
- return; |
|
| 33 |
- } |
|
| 34 |
- var data = new FormData(form); |
|
| 35 |
- |
|
| 36 |
- $.ajax({
|
|
| 37 |
- cache : false, |
|
| 38 |
- url : "<c:url value='/web/addr/insertAddrGroupAjax.do' />", |
|
| 39 |
- type : 'POST', |
|
| 40 |
- data : data, |
|
| 41 |
- dataType:'json', |
|
| 42 |
- processData: false, |
|
| 43 |
- contentType: false, |
|
| 44 |
- success : function(returnData, status){
|
|
| 45 |
- if(status == "success") {
|
|
| 46 |
- if("fail"==returnData.result){
|
|
| 47 |
- alert(returnData.message); |
|
| 48 |
- return; |
|
| 49 |
- } else if("dupl"==returnData.result) {
|
|
| 50 |
- alert("중복된 그룹명입니다.");
|
|
| 51 |
- return; |
|
| 52 |
- } |
|
| 53 |
- alert("등록되었습니다.");
|
|
| 54 |
- listAddrGrp(); |
|
| 55 |
- addrGroupLoadAjax(); |
|
| 56 |
- |
|
| 57 |
- }else{ alert("ERROR!");return;}
|
|
| 58 |
- }, |
|
| 59 |
- error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
| 60 |
- }); |
|
| 61 |
- |
|
| 62 |
-} |
|
| 63 |
- |
|
| 64 | 25 |
|
| 65 | 26 |
// 주소록그룹 콤보박스 유지 |
| 66 | 27 |
function setSelectSetting(selectVal) {
|
... | ... | @@ -140,10 +101,6 @@ |
| 140 | 101 |
updateTableField(selectedField, newValue); |
| 141 | 102 |
} |
| 142 | 103 |
}); |
| 143 |
- |
|
| 144 |
- |
|
| 145 |
- |
|
| 146 |
- |
|
| 147 | 104 |
|
| 148 | 105 |
}); |
| 149 | 106 |
|
... | ... | @@ -282,14 +239,10 @@ |
| 282 | 239 |
{title: "F", field: "F", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]},
|
| 283 | 240 |
{title: "G", field: "G", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]}
|
| 284 | 241 |
]); |
| 285 |
- |
|
| 286 |
- console.log(' :: $tableExcel.setData(tableData) :: ');
|
|
| 287 | 242 |
$tableExcel.setData(tableData).then(() => {
|
| 288 | 243 |
// rowTotCnt 업데이트 |
| 289 | 244 |
document.getElementById("rowTotCnt").innerText = tableData.length;
|
| 290 | 245 |
}); |
| 291 |
- |
|
| 292 |
- console.log(' :: fn_loadRemoveActive :: ');
|
|
| 293 | 246 |
fn_loadRemoveActive(); |
| 294 | 247 |
} |
| 295 | 248 |
|
... | ... | @@ -297,37 +250,6 @@ |
| 297 | 250 |
//############################################################################################# |
| 298 | 251 |
//등록 |
| 299 | 252 |
//############################################################################################# |
| 300 |
- |
|
| 301 |
- |
|
| 302 |
- |
|
| 303 |
-// 주소록 그룹 중복체크 |
|
| 304 |
-function getAddrGroupDuplCheckAjax() {
|
|
| 305 |
- var isReturn = true; |
|
| 306 |
- |
|
| 307 |
- $.ajax({
|
|
| 308 |
- url : "<c:url value='/web/addr/getAddrGroupDuplCheckAjax.do' />", |
|
| 309 |
- type : 'POST', |
|
| 310 |
- data : {"addrGrpNm" : $("#addrGrpNm").val()},
|
|
| 311 |
- dataType:'json', |
|
| 312 |
- async: false, // 동기 |
|
| 313 |
- success : function(data, status){
|
|
| 314 |
- if(data.isSuccess == true) {
|
|
| 315 |
- if(data.isDupl == true) {
|
|
| 316 |
- //alert("중복된 그룹명입니다.");
|
|
| 317 |
- isReturn = false; |
|
| 318 |
- } |
|
| 319 |
- } |
|
| 320 |
- else {
|
|
| 321 |
- //alert("Message : " + msg);
|
|
| 322 |
- } |
|
| 323 |
- }, |
|
| 324 |
- error: function (e) {
|
|
| 325 |
- //alert("주소록 중복체크에 실패했습니다.");
|
|
| 326 |
- } |
|
| 327 |
- }); |
|
| 328 |
- |
|
| 329 |
- return isReturn; |
|
| 330 |
-} |
|
| 331 | 253 |
|
| 332 | 254 |
|
| 333 | 255 |
//############################################################################################# |
... | ... | @@ -353,33 +275,6 @@ |
| 353 | 275 |
|
| 354 | 276 |
|
| 355 | 277 |
|
| 356 |
-//중복 연락처 => 저장시 |
|
| 357 |
-// 해당 그룹 |
|
| 358 |
-/* function GetAddrMassSaveDupli() {
|
|
| 359 |
- var sHtml = ""; |
|
| 360 |
- sHtml += "<div class='' style='overflow-x:auto; height:350px;'>"; |
|
| 361 |
- sHtml += "<table class='tType4'>"; |
|
| 362 |
- sHtml += " <colgroup>"; |
|
| 363 |
- sHtml += " <col style='width:auto' />"; |
|
| 364 |
- sHtml += " </colgroup>"; |
|
| 365 |
- sHtml += " <thead>"; |
|
| 366 |
- sHtml += " <tr>"; |
|
| 367 |
-// sHtml += " <th>중복 휴대폰번호 (" + numberWithCommas(addrMassDupliSaveList.length) + "개)</th>";
|
|
| 368 |
- sHtml += " <th>중복 휴대폰번호 (10개)</th>"; |
|
| 369 |
- sHtml += " </tr>"; |
|
| 370 |
- sHtml += " </thead>"; |
|
| 371 |
- sHtml += " <tbody>"; |
|
| 372 |
- for (var i = 0; i < addrMassDupliSaveList.length; i++) {
|
|
| 373 |
- sHtml += " <tr>"; |
|
| 374 |
- sHtml += " <td>" + addrMassDupliSaveList[i].addrPhoneNo + "</td>"; |
|
| 375 |
- sHtml += " </tr>"; |
|
| 376 |
- } |
|
| 377 |
- sHtml += " </tbody>"; |
|
| 378 |
- sHtml += " </table>"; |
|
| 379 |
- sHtml += " </div>"; |
|
| 380 |
- |
|
| 381 |
- $("#addrMassSaveDupli_layer").html(sHtml);
|
|
| 382 |
-} */ |
|
| 383 | 278 |
|
| 384 | 279 |
</script> |
| 385 | 280 |
|
... | ... | @@ -435,13 +330,7 @@ |
| 435 | 330 |
/ 오류 <span class="c_002c9a fwBold" id="rowErrorCnt">0</span>건 |
| 436 | 331 |
<button type="button" class="btn_list_detail" data-tooltip="adr_popup14"><img src="/publish/images/search.png"></button> |
| 437 | 332 |
</p> |
| 438 |
-<!-- <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> --> |
|
| 439 | 333 |
|
| 440 |
-<!-- <button type="button" class="btnType btnType6" data-tooltip="addrMassDupli_layer" onclick="GetAddrMassDupli()" id="btnAddrMassDupli">중복번호</button> --> |
|
| 441 |
-<!-- <button type="button" class="btnType btnType6" data-tooltip="addrMassDupli_layer" id="tableExcelDupliBtn">중복번호</button> --> |
|
| 442 |
-<!-- --> |
|
| 443 |
-<!-- <button type="button" class="btnType btnType6" data-tooltip="addrMassSaveDupli_layer" onclick="GetAddrMassSaveDupli()" id="btnAddrMassSaveDupli">중복번호</button> --> |
|
| 444 |
-<!-- <button type="button" class="btnType btnType6 addCallToF">번호추가</button> --> |
|
| 445 | 334 |
</div> |
| 446 | 335 |
|
| 447 | 336 |
|
--- src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrList.jsp
... | ... | @@ -7,8 +7,10 @@ |
| 7 | 7 |
|
| 8 | 8 |
<script type="text/javascript" src="<c:url value='/publish/js/content.js'/>"></script> |
| 9 | 9 |
<script type="text/javascript" src="https://oss.sheetjs.com/sheetjs/xlsx.full.min.js"></script> |
| 10 |
-<script type="text/javascript" src="<c:url value='/js/user/fax/addr/faxTabulator.js'/>?v=20241031"></script> |
|
| 11 |
-<script type="text/javascript" src="<c:url value='/js/user/fax/addr/faxEvent.js'/>?v=20241031"></script> |
|
| 10 |
+<%-- <script type="text/javascript" src="<c:url value='/js/user/fax/addr/faxTabulator.js'/>?v=20241031"></script> --%> |
|
| 11 |
+<script type="text/javascript" src="<c:url value='/js/user/fax/addr/init.js'/>?v=20241031"></script> |
|
| 12 |
+<%-- <script type="text/javascript" src="<c:url value='/js/user/fax/addr/faxEvent.js'/>?v=20241031"></script> --%> |
|
| 13 |
+<script type="text/javascript" src="<c:url value='/js/user/fax/addr/event.js'/>?v=20241031"></script> |
|
| 12 | 14 |
<script type="text/javascript" src="<c:url value='/js/web/addr/cmn.js?date=202409021440'/>"></script> |
| 13 | 15 |
<script type="text/javascript" src="<c:url value='/js/web/addr/utils.js'/>?v=20240919"></script> |
| 14 | 16 |
|
... | ... | @@ -166,229 +168,6 @@ |
| 166 | 168 |
if(type == "addrMob") location.href="/web/mjon/addr/addrMobGuide.do"; |
| 167 | 169 |
if(type == "addrApply") location.href="/web/mjon/addragency/selectAddrAgencyList.do"; |
| 168 | 170 |
} |
| 169 |
- |
|
| 170 |
- |
|
| 171 |
- |
|
| 172 |
-//############################################################################################# |
|
| 173 |
-//Tabulator |
|
| 174 |
-//############################################################################################# |
|
| 175 |
-var tableR = null; //우측 주소록 불러오기 Tabulator 변수 |
|
| 176 |
- |
|
| 177 |
-/* 파일등록 */ |
|
| 178 |
-var _fileIdx = 0; |
|
| 179 |
-var _fileForm2 = new Array(); |
|
| 180 |
-var fileExt = ""; // 첨부파일 확장자 |
|
| 181 |
-var excelAddr = []; //엑셀 불러오기에서 내용 저장하는 배열 변수 |
|
| 182 |
- |
|
| 183 |
-$(document).ready(function(){
|
|
| 184 |
- //Tabulator AJAX Data Loading |
|
| 185 |
- |
|
| 186 |
- //tableR.setData(tabledata); |
|
| 187 |
- |
|
| 188 |
- //받는사람 번호 버튼 클릭시 Tabulator에 데이터 넣어주기 |
|
| 189 |
- $('.addCallToF').click(function(){
|
|
| 190 |
- var recTableData = tableR.getRows(); // 받는사람 리스트의 전체 목록을 저장 |
|
| 191 |
- var tableData = []; |
|
| 192 |
- |
|
| 193 |
- //빈 Row 한줄을 상단에 먼저 추가해준다. |
|
| 194 |
- tableData.push({phone: ""});
|
|
| 195 |
- |
|
| 196 |
- //기존 받는사람 리스트를 배열에 미리 담아둔다. |
|
| 197 |
- if(recTableData.length > 0){
|
|
| 198 |
- for(var j=0; j < recTableData.length; j++){
|
|
| 199 |
- tableData.push({name: recTableData[j].getData().name, phone: removeDash(recTableData[j].getData().phone.trim()), memo: recTableData[j].getData().memo});
|
|
| 200 |
- } |
|
| 201 |
- } |
|
| 202 |
- |
|
| 203 |
- //연락처 추가해 주기 |
|
| 204 |
- //addPhoneInfo(tabledata); |
|
| 205 |
- |
|
| 206 |
- tableR.setData(tableData); |
|
| 207 |
- |
|
| 208 |
- //전체 데이터 갯수 구하기 |
|
| 209 |
- totRows = tableR.getRows().length; |
|
| 210 |
- updateTotCnt(totRows); |
|
| 211 |
- }); |
|
| 212 |
- |
|
| 213 |
- //받는사람 오류번호 삭제 처리해주기 |
|
| 214 |
- $('.chkVali_del').click(function(){
|
|
| 215 |
- //기존 연락처 모두 불러오기 |
|
| 216 |
- var data = tableR.getRows(); |
|
| 217 |
- var tableData = []; |
|
| 218 |
- var totLen = tableR.getRows().length; |
|
| 219 |
- var errCnt = 0; |
|
| 220 |
- |
|
| 221 |
- if(totLen > 0){
|
|
| 222 |
- if(confirm("올바르지 않은 연락처 정보를 삭제 하시겠습니까?")){
|
|
| 223 |
- for(var i=0; i < totLen; i++){
|
|
| 224 |
- var phone = data[i].getData().phone; |
|
| 225 |
- var valiCheck = checkFaxNum(phone); |
|
| 226 |
- if(valiCheck){//팩스 번호인 것만 저장해 준다.
|
|
| 227 |
- tableData.push({name: data[i].getData().name.trim(), phone: data[i].getData().phone.trim(), memo:data[i].getData().memo});
|
|
| 228 |
- }else{
|
|
| 229 |
- errCnt++; |
|
| 230 |
- } |
|
| 231 |
- } |
|
| 232 |
- |
|
| 233 |
- var removeDuplData = dupliPhoneData(tableData); |
|
| 234 |
- |
|
| 235 |
- tableR.setData(removeDuplData); |
|
| 236 |
- |
|
| 237 |
- //총 받는사람 수 계산 |
|
| 238 |
- totRows = tableR.getRows().length; |
|
| 239 |
- updateTotCnt(totRows); |
|
| 240 |
- |
|
| 241 |
- if(errCnt > 0){
|
|
| 242 |
- alert(errCnt + " 건의 연락처를 삭제하였습니다."); |
|
| 243 |
- return false; |
|
| 244 |
- }else{
|
|
| 245 |
- alert("오류가 있는 연락처가 없습니다.");
|
|
| 246 |
- } |
|
| 247 |
- } |
|
| 248 |
- }else{
|
|
| 249 |
- alert("연락처 정보를 입력해 주세요.");
|
|
| 250 |
- return false; |
|
| 251 |
- } |
|
| 252 |
- }); |
|
| 253 |
- |
|
| 254 |
- |
|
| 255 |
- // 오류검사 항목 중복제거 |
|
| 256 |
- function SetTableErrorDupliCheck(sVal) {
|
|
| 257 |
- var isDuplicate = false; |
|
| 258 |
- if (tableErrorCheckData.length == 0) {
|
|
| 259 |
- tableErrorCheckData.push(sVal); |
|
| 260 |
- } |
|
| 261 |
- else {
|
|
| 262 |
- for (var i = 0; i < tableErrorCheckData.length; i++) |
|
| 263 |
- {
|
|
| 264 |
- if (tableErrorCheckData[i] == sVal) {
|
|
| 265 |
- isDuplicate = true; |
|
| 266 |
- } |
|
| 267 |
- } |
|
| 268 |
- |
|
| 269 |
- if (isDuplicate) {
|
|
| 270 |
- return; |
|
| 271 |
- } |
|
| 272 |
- else {
|
|
| 273 |
- tableErrorCheckData.push(sVal); |
|
| 274 |
- } |
|
| 275 |
- } |
|
| 276 |
- } |
|
| 277 |
- |
|
| 278 |
- |
|
| 279 |
- // 오류검사 항목 중복제거 |
|
| 280 |
- function SetTableErrorDupliCheck(sVal) {
|
|
| 281 |
- var isDuplicate = false; |
|
| 282 |
- if (tableErrorCheckData.length == 0) {
|
|
| 283 |
- tableErrorCheckData.push(sVal); |
|
| 284 |
- } |
|
| 285 |
- else {
|
|
| 286 |
- for (var i = 0; i < tableErrorCheckData.length; i++) |
|
| 287 |
- {
|
|
| 288 |
- if (tableErrorCheckData[i] == sVal) {
|
|
| 289 |
- isDuplicate = true; |
|
| 290 |
- } |
|
| 291 |
- } |
|
| 292 |
- |
|
| 293 |
- if (isDuplicate) {
|
|
| 294 |
- return; |
|
| 295 |
- } |
|
| 296 |
- else {
|
|
| 297 |
- tableErrorCheckData.push(sVal); |
|
| 298 |
- } |
|
| 299 |
- } |
|
| 300 |
- } |
|
| 301 |
- |
|
| 302 |
- $('.check_validity').click(function(){
|
|
| 303 |
- tableErrorCheckData.length = 0; // 오류 번호 배열 초기화 |
|
| 304 |
- |
|
| 305 |
- var data = tableR.getRows(); |
|
| 306 |
- var invalid = tableR.getInvalidCells(); //오류 데이터 체크 |
|
| 307 |
- var dataLen = tableR.getRows().length; //연락처 데이터 갯수 |
|
| 308 |
- var totLen = invalid.length; //오류 데이터 갯수 |
|
| 309 |
- var errMsg = ""; //최종 alert에 표시할 메시지 저장 변수 |
|
| 310 |
- |
|
| 311 |
- if(dataLen > 0) { //연락처 정보가 있으면 수행
|
|
| 312 |
- if(totLen > 0) { //내용에 오류가 있으면 수행
|
|
| 313 |
- //오류 데이터 값 저장 |
|
| 314 |
- for(var i=0; i < totLen; i++) {
|
|
| 315 |
- var cellValue = invalid[i].getValue(); |
|
| 316 |
- SetTableErrorDupliCheck(cellValue); |
|
| 317 |
- } |
|
| 318 |
- |
|
| 319 |
- for(var i=0; i < dataLen; i++){
|
|
| 320 |
- // 팩스번호 체크 |
|
| 321 |
- var phone = data[i].getData().phone; |
|
| 322 |
- var valiCheck = checkFaxNum(phone); |
|
| 323 |
- if(!valiCheck){
|
|
| 324 |
- SetTableErrorDupliCheck(phone); |
|
| 325 |
- } |
|
| 326 |
- } |
|
| 327 |
- } |
|
| 328 |
- else {
|
|
| 329 |
- for(var i=0; i < dataLen; i++){
|
|
| 330 |
- // 팩스번호 체크 |
|
| 331 |
- var phone = data[i].getData().phone; |
|
| 332 |
- var valiCheck = checkFaxNum(phone); |
|
| 333 |
- if(!valiCheck){
|
|
| 334 |
- SetTableErrorDupliCheck(phone); |
|
| 335 |
- } |
|
| 336 |
- } |
|
| 337 |
- } |
|
| 338 |
- } |
|
| 339 |
- else {
|
|
| 340 |
- alert("연락처를 입력해 주세요.");
|
|
| 341 |
- return false; |
|
| 342 |
- } |
|
| 343 |
- |
|
| 344 |
- if (tableErrorCheckData.length > 0) {
|
|
| 345 |
- for (var i = 0; i < tableErrorCheckData.length; i++) |
|
| 346 |
- {
|
|
| 347 |
- errMsg += tableErrorCheckData[i]; |
|
| 348 |
- if ((tableErrorCheckData.length - 1) > i) {
|
|
| 349 |
- errMsg += ", "; |
|
| 350 |
- } |
|
| 351 |
- } |
|
| 352 |
- alert(errMsg + "의 내용에 오류가 있습니다."); |
|
| 353 |
- } |
|
| 354 |
- else {
|
|
| 355 |
- alert("오류 데이터가 없습니다.");
|
|
| 356 |
- } |
|
| 357 |
- |
|
| 358 |
- return false; |
|
| 359 |
- }); |
|
| 360 |
- |
|
| 361 |
- |
|
| 362 |
- $('.addExcelDw').click(function(){
|
|
| 363 |
- var data = tableR.getRows(); |
|
| 364 |
- if(data.length > 0){
|
|
| 365 |
- tableR.download("xlsx", "recieveAddr.xlsx", {sheetName:"recieveAddr"});
|
|
| 366 |
- }else{
|
|
| 367 |
- alert("입력된 연락처 정보가 없습니다.");
|
|
| 368 |
- return false; |
|
| 369 |
- } |
|
| 370 |
- }); |
|
| 371 |
- |
|
| 372 |
- //받는사람 중복 삭제 |
|
| 373 |
- $('.duple_del').click(function(){
|
|
| 374 |
- //기존 연락처 모두 불러오기 |
|
| 375 |
- var data = tableR.getRows(); |
|
| 376 |
- var tableData = []; |
|
| 377 |
- var dpCnt = 0; |
|
| 378 |
- var totLen = tableR.getRows().length; |
|
| 379 |
- |
|
| 380 |
- for(var i=0; i < totLen; i++){
|
|
| 381 |
- tableData.push({name: data[i].getData().name.trim(), phone: data[i].getData().phone.trim()});
|
|
| 382 |
- } |
|
| 383 |
- |
|
| 384 |
- var removeDuplData = dupliPhoneData(tableData); |
|
| 385 |
- tableR.setData(removeDuplData); |
|
| 386 |
- |
|
| 387 |
- //총 받는사람 수 계산 |
|
| 388 |
- totRows = tableR.getRows().length; |
|
| 389 |
- updateTotCnt(totRows); |
|
| 390 |
- }); |
|
| 391 |
-}); |
|
| 392 | 171 |
|
| 393 | 172 |
|
| 394 | 173 |
//전체 데이터 갯수 구하는 함수 |
... | ... | @@ -681,6 +460,7 @@ |
| 681 | 460 |
|
| 682 | 461 |
// 주소록 그룹 중복체크 |
| 683 | 462 |
function getAddrGroupDuplCheckAjax(addrGrpNm) {
|
| 463 |
+ console.log('addrGrpNm : ', addrGrpNm);
|
|
| 684 | 464 |
var isReturn = true; |
| 685 | 465 |
|
| 686 | 466 |
$.ajax({
|
... | ... | @@ -714,13 +494,7 @@ |
| 714 | 494 |
var $objTabul = fn_utils_getTabulator(); |
| 715 | 495 |
var tabulNm = fn_utils_getTabulatorNm(); |
| 716 | 496 |
var tabluC = '.'+tabulNm |
| 717 |
- |
|
| 718 |
- var loginVO = '${LoginVO}';
|
|
| 719 |
- if(loginVO == "" || loginVO == null){
|
|
| 720 |
- alert("로그인 후 이용이 가능합니다.");
|
|
| 721 |
- return false; |
|
| 722 |
- } |
|
| 723 |
- |
|
| 497 |
+ |
|
| 724 | 498 |
if($objTabul.getData().length < 1){
|
| 725 | 499 |
alert("한 개 이상의 연락처를 입력하세요");
|
| 726 | 500 |
return false; |
... | ... | @@ -728,6 +502,13 @@ |
| 728 | 502 |
|
| 729 | 503 |
if($objTabul.getData().length > 300000){
|
| 730 | 504 |
alert("30만개 까지 등록 가능합니다.");
|
| 505 |
+ return false; |
|
| 506 |
+ } |
|
| 507 |
+ |
|
| 508 |
+ |
|
| 509 |
+ var loginVO = '${LoginVO}';
|
|
| 510 |
+ if(fn_utils_isEmpty(loginVO)){
|
|
| 511 |
+ alert("로그인 후 이용이 가능합니다.");
|
|
| 731 | 512 |
return false; |
| 732 | 513 |
} |
| 733 | 514 |
|
... | ... | @@ -758,16 +539,13 @@ |
| 758 | 539 |
console.log('addrGrpNm : ', addrGrpNm);
|
| 759 | 540 |
|
| 760 | 541 |
//주소록 중복체크 |
| 761 |
- if (getAddrGroupDuplCheckAjax() == false) {
|
|
| 542 |
+ if (getAddrGroupDuplCheckAjax(addrGrpNm) == false) {
|
|
| 762 | 543 |
alert("중복된 그룹명입니다. 새 그룹명을 입력해주세요.");
|
| 763 | 544 |
return false; |
| 764 | 545 |
} |
| 765 | 546 |
} |
| 766 | 547 |
|
| 767 | 548 |
//수신번호 리스트 체크하기 |
| 768 |
- var phoneList = []; |
|
| 769 |
- var nameList = []; |
|
| 770 |
- var memoList = []; |
|
| 771 | 549 |
var confirmMsg = "저장하시겠습니까?\n이름 20byte, 메모 250byte 초과 글자는 절사됩니다."; |
| 772 | 550 |
if (confirm(confirmMsg)) {
|
| 773 | 551 |
//로딩창 show |
--- src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforClipboard.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforClipboard.jsp
... | ... | @@ -23,110 +23,6 @@ |
| 23 | 23 |
} |
| 24 | 24 |
|
| 25 | 25 |
|
| 26 |
-function insertAddrGroupAjax() {
|
|
| 27 |
- var form = document.addrGrpInsertForm; |
|
| 28 |
- if(form.addrGrpNm.value == "") {
|
|
| 29 |
- alert("주소록 그룹명을 입력해주세요.");
|
|
| 30 |
- return; |
|
| 31 |
- } |
|
| 32 |
- if(!confirm("주소록 그룹을 추가하시겠습니까?")) {
|
|
| 33 |
- return; |
|
| 34 |
- } |
|
| 35 |
- var data = new FormData(form); |
|
| 36 |
- |
|
| 37 |
- $.ajax({
|
|
| 38 |
- cache : false, |
|
| 39 |
- url : "<c:url value='/web/addr/insertAddrGroupAjax.do' />", |
|
| 40 |
- type : 'POST', |
|
| 41 |
- data : data, |
|
| 42 |
- dataType:'json', |
|
| 43 |
- processData: false, |
|
| 44 |
- contentType: false, |
|
| 45 |
- success : function(returnData, status){
|
|
| 46 |
- if(status == "success") {
|
|
| 47 |
- if("fail"==returnData.result){
|
|
| 48 |
- alert(returnData.message); |
|
| 49 |
- return; |
|
| 50 |
- } else if("dupl"==returnData.result) {
|
|
| 51 |
- alert("중복된 그룹명입니다.");
|
|
| 52 |
- return; |
|
| 53 |
- } |
|
| 54 |
- alert("등록되었습니다.");
|
|
| 55 |
- listAddrGrp(); |
|
| 56 |
- addrGroupLoadAjax(); |
|
| 57 |
- |
|
| 58 |
- }else{ alert("ERROR!");return;}
|
|
| 59 |
- }, |
|
| 60 |
- error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
| 61 |
- }); |
|
| 62 |
- |
|
| 63 |
-} |
|
| 64 |
- |
|
| 65 |
-function insertAddrAjax() {
|
|
| 66 |
- var selectVal = $("#addrRegistSelect option:selected").val();
|
|
| 67 |
- //alert(selectVal); |
|
| 68 |
- |
|
| 69 |
- var form = document.addrInsertForm; |
|
| 70 |
- /* |
|
| 71 |
- //필수값 아니어서 뺐음 |
|
| 72 |
- if(form.addrNm.value == "") {
|
|
| 73 |
- alert("주소록 이름을 입력하세요");
|
|
| 74 |
- return; |
|
| 75 |
- } |
|
| 76 |
- */ |
|
| 77 |
- if(form.addrPhoneNo.value == "") {
|
|
| 78 |
- alert("주소록 번호를 입력하세요");
|
|
| 79 |
- return; |
|
| 80 |
- } |
|
| 81 |
- //if(!confirm("주소록을 추가하시겠습니까?")) {
|
|
| 82 |
- // return; |
|
| 83 |
- //} |
|
| 84 |
- |
|
| 85 |
- if(!checkHpNum(form.addrPhoneNo.value)){//휴대폰 유효성 검사
|
|
| 86 |
- if(!checkNorPhoneNum(form.addrPhoneNo.value)){//일반전화 유효성 검사
|
|
| 87 |
- |
|
| 88 |
- alert("잘못된 휴대폰번호 또는 일반전화 번호 입니다.");
|
|
| 89 |
- return false; |
|
| 90 |
- |
|
| 91 |
- } |
|
| 92 |
- |
|
| 93 |
- } |
|
| 94 |
- |
|
| 95 |
- var data = new FormData(form); |
|
| 96 |
- |
|
| 97 |
- $.ajax({
|
|
| 98 |
- cache : false, |
|
| 99 |
- url : "<c:url value='/web/mjon/addr/insertAddrAjax.do' />", |
|
| 100 |
- type : 'POST', |
|
| 101 |
- data : data, |
|
| 102 |
- dataType:'json', |
|
| 103 |
- processData: false, |
|
| 104 |
- contentType: false, |
|
| 105 |
- success : function(returnData, status){
|
|
| 106 |
- if(status == "success") {
|
|
| 107 |
- if("fail"==returnData.result){
|
|
| 108 |
- alert(returnData.message); |
|
| 109 |
- return; |
|
| 110 |
- } else if("dupl"==returnData.result){
|
|
| 111 |
- alert("해당 그룹에 중복된 번호가 있습니다.");
|
|
| 112 |
- return; |
|
| 113 |
- } |
|
| 114 |
- //alert("저장 되었습니다.");
|
|
| 115 |
- |
|
| 116 |
- listAddrGrp(); |
|
| 117 |
- addrGroupLoadAjax(); |
|
| 118 |
- addrLoadAjax(); |
|
| 119 |
- |
|
| 120 |
- // 주소록그룹 콤보박스 유지 |
|
| 121 |
- setTimeout(setSelectSetting, 500, selectVal); |
|
| 122 |
- |
|
| 123 |
- }else{ alert("ERROR!");return;}
|
|
| 124 |
- }, |
|
| 125 |
- error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
| 126 |
- }); |
|
| 127 |
- |
|
| 128 |
-} |
|
| 129 |
- |
|
| 130 | 26 |
// 주소록그룹 콤보박스 유지 |
| 131 | 27 |
function setSelectSetting(selectVal) {
|
| 132 | 28 |
$("#addrRegistSelect").val(selectVal).prop("selected", true);
|
... | ... | @@ -312,7 +208,8 @@ |
| 312 | 208 |
return false; |
| 313 | 209 |
} |
| 314 | 210 |
|
| 315 |
- let keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; |
|
| 211 |
+// let keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; |
|
| 212 |
+ let keys = ['A', 'B', 'C']; |
|
| 316 | 213 |
let data = {};
|
| 317 | 214 |
splitData.forEach((item, index) => {
|
| 318 | 215 |
data[keys[index]] = item.trim() || ""; // 빈 문자열로 기본값 설정 |
... | ... | @@ -324,8 +221,11 @@ |
| 324 | 221 |
console.log('Tabulator data before getData:', $tableClip.getData());
|
| 325 | 222 |
// $tableClip.clearData(); |
| 326 | 223 |
$tableClip.setData([{
|
| 327 |
- A: "", B: "", C: "", D: "", E: "", F: "", G: "" |
|
| 224 |
+ A: "", B: "", C: "" |
|
| 328 | 225 |
}]); // 초기 데이터로 복원 |
| 226 |
+// $tableClip.setData([{
|
|
| 227 |
+// A: "", B: "", C: "", D: "", E: "", F: "", G: "" |
|
| 228 |
+// }]); // 초기 데이터로 복원 |
|
| 329 | 229 |
$tableClip.setData(realPhone); |
| 330 | 230 |
var totRows = $tableClip.getDataCount(); |
| 331 | 231 |
updateTotCnt(totRows); |
... | ... | @@ -454,99 +354,34 @@ |
| 454 | 354 |
<div class="adr_excel" style="margin-top: 13px; overflow-x: auto;"> |
| 455 | 355 |
<!-- thead --> |
| 456 | 356 |
<div class="adr_hd select_adr_hd" data-group="tableClip"> |
| 457 |
- <div style="width: 80px;"></div> |
|
| 458 |
- <div style="width: 125px;"> |
|
| 357 |
+ <div style="width:80px;"></div> |
|
| 358 |
+ <div style="width:240px;"> |
|
| 459 | 359 |
<label for="" class="label"></label> |
| 460 | 360 |
<select class="field-selector"> |
| 461 | 361 |
<option value="">선택하기</option> |
| 462 | 362 |
<option value="addrNm">이름</option> |
| 463 |
- <option value="addrPhoneNo">휴대폰</option> |
|
| 464 |
- <option value="addrInfo1">[*1*]</option> |
|
| 465 |
- <option value="addrInfo2">[*2*]</option> |
|
| 466 |
- <option value="addrInfo3">[*3*]</option> |
|
| 467 |
- <option value="addrInfo4">[*4*]</option> |
|
| 363 |
+ <option value="addrPhoneNo">팩스번호</option> |
|
| 468 | 364 |
<option value="addrComment">메모</option> |
| 469 | 365 |
</select> |
| 470 | 366 |
</div> |
| 471 |
- <div style="width: 125px;"> |
|
| 367 |
+ <div style="width:240px;"> |
|
| 472 | 368 |
<label for="" class="label"></label> |
| 473 | 369 |
<select class="field-selector"> |
| 474 | 370 |
<option value="">선택하기</option> |
| 475 | 371 |
<option value="addrNm">이름</option> |
| 476 |
- <option value="addrPhoneNo">휴대폰</option> |
|
| 477 |
- <option value="addrInfo1">[*1*]</option> |
|
| 478 |
- <option value="addrInfo2">[*2*]</option> |
|
| 479 |
- <option value="addrInfo3">[*3*]</option> |
|
| 480 |
- <option value="addrInfo4">[*4*]</option> |
|
| 372 |
+ <option value="addrPhoneNo">팩스번호</option> |
|
| 481 | 373 |
<option value="addrComment">메모</option> |
| 482 | 374 |
</select> |
| 483 | 375 |
</div> |
| 484 |
- <div style="width: 125px;"> |
|
| 376 |
+ <div style="width:240px;"> |
|
| 485 | 377 |
<label for="" class="label"></label> |
| 486 | 378 |
<select class="field-selector"> |
| 487 | 379 |
<option value="">선택하기</option> |
| 488 | 380 |
<option value="addrNm">이름</option> |
| 489 |
- <option value="addrPhoneNo">휴대폰</option> |
|
| 490 |
- <option value="addrInfo1">[*1*]</option> |
|
| 491 |
- <option value="addrInfo2">[*2*]</option> |
|
| 492 |
- <option value="addrInfo3">[*3*]</option> |
|
| 493 |
- <option value="addrInfo4">[*4*]</option> |
|
| 381 |
+ <option value="addrPhoneNo">팩스번호</option> |
|
| 494 | 382 |
<option value="addrComment">메모</option> |
| 495 | 383 |
</select> |
| 496 | 384 |
</div> |
| 497 |
- <div style="width: 125px;"> |
|
| 498 |
- <label for="" class="label"></label> |
|
| 499 |
- <select class="field-selector"> |
|
| 500 |
- <option value="">선택하기</option> |
|
| 501 |
- <option value="addrNm">이름</option> |
|
| 502 |
- <option value="addrPhoneNo">휴대폰</option> |
|
| 503 |
- <option value="addrInfo1">[*1*]</option> |
|
| 504 |
- <option value="addrInfo2">[*2*]</option> |
|
| 505 |
- <option value="addrInfo3">[*3*]</option> |
|
| 506 |
- <option value="addrInfo4">[*4*]</option> |
|
| 507 |
- <option value="addrComment">메모</option> |
|
| 508 |
- </select> |
|
| 509 |
- </div> |
|
| 510 |
- <div style="width: 125px;"> |
|
| 511 |
- <label for="" class="label"></label> |
|
| 512 |
- <select class="field-selector"> |
|
| 513 |
- <option value="">선택하기</option> |
|
| 514 |
- <option value="addrNm">이름</option> |
|
| 515 |
- <option value="addrPhoneNo">휴대폰</option> |
|
| 516 |
- <option value="addrInfo1">[*1*]</option> |
|
| 517 |
- <option value="addrInfo2">[*2*]</option> |
|
| 518 |
- <option value="addrInfo3">[*3*]</option> |
|
| 519 |
- <option value="addrInfo4">[*4*]</option> |
|
| 520 |
- <option value="addrComment">메모</option> |
|
| 521 |
- </select> |
|
| 522 |
- </div> |
|
| 523 |
- <div style="width: 125px;"> |
|
| 524 |
- <label for="" class="label"></label> |
|
| 525 |
- <select class="field-selector"> |
|
| 526 |
- <option value="">선택하기</option> |
|
| 527 |
- <option value="addrNm">이름</option> |
|
| 528 |
- <option value="addrPhoneNo">휴대폰</option> |
|
| 529 |
- <option value="addrInfo1">[*1*]</option> |
|
| 530 |
- <option value="addrInfo2">[*2*]</option> |
|
| 531 |
- <option value="addrInfo3">[*3*]</option> |
|
| 532 |
- <option value="addrInfo4">[*4*]</option> |
|
| 533 |
- <option value="addrComment">메모</option> |
|
| 534 |
- </select> |
|
| 535 |
- </div> |
|
| 536 |
- <div style="width: 125px;"> |
|
| 537 |
- <label for="" class="label"></label> |
|
| 538 |
- <select class="field-selector"> |
|
| 539 |
- <option value="">선택하기</option> |
|
| 540 |
- <option value="addrNm">이름</option> |
|
| 541 |
- <option value="addrPhoneNo">휴대폰</option> |
|
| 542 |
- <option value="addrInfo1">[*1*]</option> |
|
| 543 |
- <option value="addrInfo2">[*2*]</option> |
|
| 544 |
- <option value="addrInfo3">[*3*]</option> |
|
| 545 |
- <option value="addrInfo4">[*4*]</option> |
|
| 546 |
- <option value="addrComment">메모</option> |
|
| 547 |
- </select> |
|
| 548 |
- </div> |
|
| 549 |
- </div> |
|
| 550 | 385 |
</div> |
| 551 | 386 |
|
| 552 | 387 |
<div class="drag_drop_wrap callList_box" id="tabulator_clip"> |
--- src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp
... | ... | @@ -16,45 +16,6 @@ |
| 16 | 16 |
} |
| 17 | 17 |
|
| 18 | 18 |
|
| 19 |
-function insertAddrGroupAjax() {
|
|
| 20 |
- var form = document.addrGrpInsertForm; |
|
| 21 |
- if(form.addrGrpNm.value == "") {
|
|
| 22 |
- alert("주소록 그룹명을 입력해주세요.");
|
|
| 23 |
- return; |
|
| 24 |
- } |
|
| 25 |
- |
|
| 26 |
- if(!confirm("주소록 그룹을 추가하시겠습니까?")) {
|
|
| 27 |
- return; |
|
| 28 |
- } |
|
| 29 |
- var data = new FormData(form); |
|
| 30 |
- |
|
| 31 |
- $.ajax({
|
|
| 32 |
- cache : false, |
|
| 33 |
- url : "<c:url value='/web/addr/insertAddrGroupAjax.do' />", |
|
| 34 |
- type : 'POST', |
|
| 35 |
- data : data, |
|
| 36 |
- dataType:'json', |
|
| 37 |
- processData: false, |
|
| 38 |
- contentType: false, |
|
| 39 |
- success : function(returnData, status){
|
|
| 40 |
- if(status == "success") {
|
|
| 41 |
- if("fail"==returnData.result){
|
|
| 42 |
- alert(returnData.message); |
|
| 43 |
- return; |
|
| 44 |
- } else if("dupl"==returnData.result) {
|
|
| 45 |
- alert("중복된 그룹명입니다.");
|
|
| 46 |
- return; |
|
| 47 |
- } |
|
| 48 |
- alert("등록되었습니다.");
|
|
| 49 |
- listAddrGrp(); |
|
| 50 |
- addrGroupLoadAjax(); |
|
| 51 |
- |
|
| 52 |
- }else{ alert("ERROR!");return;}
|
|
| 53 |
- }, |
|
| 54 |
- error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
| 55 |
- }); |
|
| 56 |
-} |
|
| 57 |
- |
|
| 58 | 19 |
|
| 59 | 20 |
// 주소록그룹 콤보박스 유지 |
| 60 | 21 |
function setSelectSetting(selectVal) {
|
... | ... | @@ -252,7 +213,6 @@ |
| 252 | 213 |
document.getElementById("rowTotCnt").innerText = tableData.length;
|
| 253 | 214 |
}); |
| 254 | 215 |
|
| 255 |
- console.log(' :: fn_loadRemoveActive :: ');
|
|
| 256 | 216 |
fn_loadRemoveActive(); |
| 257 | 217 |
} |
| 258 | 218 |
|
... | ... | @@ -261,34 +221,6 @@ |
| 261 | 221 |
//등록 |
| 262 | 222 |
//############################################################################################# |
| 263 | 223 |
|
| 264 |
-// 주소록 그룹 중복체크 |
|
| 265 |
-function getAddrGroupDuplCheckAjax() {
|
|
| 266 |
- var isReturn = true; |
|
| 267 |
- |
|
| 268 |
- $.ajax({
|
|
| 269 |
- url : "<c:url value='/web/addr/getAddrGroupDuplCheckAjax.do' />", |
|
| 270 |
- type : 'POST', |
|
| 271 |
- data : {"addrGrpNm" : $("#addrGrpNm").val()},
|
|
| 272 |
- dataType:'json', |
|
| 273 |
- async: false, // 동기 |
|
| 274 |
- success : function(data, status){
|
|
| 275 |
- if(data.isSuccess == true) {
|
|
| 276 |
- if(data.isDupl == true) {
|
|
| 277 |
- //alert("중복된 그룹명입니다.");
|
|
| 278 |
- isReturn = false; |
|
| 279 |
- } |
|
| 280 |
- } |
|
| 281 |
- else {
|
|
| 282 |
- //alert("Message : " + msg);
|
|
| 283 |
- } |
|
| 284 |
- }, |
|
| 285 |
- error: function (e) {
|
|
| 286 |
- //alert("주소록 중복체크에 실패했습니다.");
|
|
| 287 |
- } |
|
| 288 |
- }); |
|
| 289 |
- |
|
| 290 |
- return isReturn; |
|
| 291 |
-} |
|
| 292 | 224 |
|
| 293 | 225 |
|
| 294 | 226 |
//############################################################################################# |
--- src/main/webapp/js/user/fax/addr/faxEvent.js
+++ src/main/webapp/js/user/fax/addr/event.js
... | ... | @@ -358,10 +358,10 @@ |
| 358 | 358 |
|
| 359 | 359 |
// 초기 필드(A, B, C, D 등)를 위한 열 설정 |
| 360 | 360 |
var columns = [ |
| 361 |
- {formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) {
|
|
| 361 |
+ {formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, width:50, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) {
|
|
| 362 | 362 |
cell.getRow().toggleSelect(); |
| 363 | 363 |
}}, |
| 364 |
- {formatter:"rownum", align:"center", title:"No", hozAlign:"center", headerHozAlign:"center", width:40}
|
|
| 364 |
+ {formatter:"rownum", align:"center", title:"No", hozAlign:"center", headerHozAlign:"center", width:100}
|
|
| 365 | 365 |
]; |
| 366 | 366 |
|
| 367 | 367 |
// 기본 필드로 열 구성 |
... | ... | @@ -372,7 +372,7 @@ |
| 372 | 372 |
hozAlign: "center", |
| 373 | 373 |
headerHozAlign: "center", |
| 374 | 374 |
editor: false, // 편집 비활성화 |
| 375 |
- width: 240, |
|
| 375 |
+ width: 260, |
|
| 376 | 376 |
validator: ["maxLength:100", "string"] |
| 377 | 377 |
}); |
| 378 | 378 |
}); |
+++ src/main/webapp/js/user/fax/addr/init.js
... | ... | @@ -0,0 +1,209 @@ |
| 1 | + | |
| 2 | + | |
| 3 | +var tableErrorData = []; | |
| 4 | +var tableErrorCheckData = []; | |
| 5 | +var addrMassDupliSaveList = null; | |
| 6 | + | |
| 7 | +var gArrRestartIndex = 0; //배열 재시작카운드 | |
| 8 | +var gNameList = []; //치환문자 이름 | |
| 9 | +var gPhoneList = []; //받는사람 | |
| 10 | +var gMemoList = []; //메모 | |
| 11 | + | |
| 12 | +var $tableExcel = null; //엑셀입력 탭 | |
| 13 | +var $tableClip = null; //붙여넣기 탭 | |
| 14 | +var $tableSelf = null; //직접입력 탭 | |
| 15 | +var $tableError = null; //에러 팝업 영역 | |
| 16 | + | |
| 17 | + | |
| 18 | +$(document).ready(function(){ | |
| 19 | + | |
| 20 | + //excel 파일 불러오기 tabulator | |
| 21 | + $tableExcel = new Tabulator("#tabulator_excel", { | |
| 22 | + height:"255px", | |
| 23 | + width:"100%", | |
| 24 | + layout:"fitColumns", | |
| 25 | + autoColumns:false, | |
| 26 | + headerHozAlign:"center", | |
| 27 | + validationMode:"highlight", | |
| 28 | + clipboard:false, | |
| 29 | + clipboardCopySelector:"table", | |
| 30 | + clipboardPasteAction:"insert", // insert, update, replace | |
| 31 | + placeholder:"Excel 파일을 업로드 해주세요.", //fit columns to width of table (optional) | |
| 32 | + columns:[ //Define Table Columns | |
| 33 | + {formatter:"rowSelection", titleFormatter:"rowSelection",clipboard:false, hozAlign:"center", width:50, headerSort:false, cellClick:function(e, cell){ | |
| 34 | + cell.getRow().toggleSelect(); | |
| 35 | + }} | |
| 36 | + ,{formatter:"rownum", hozAlign:"center" ,title:"No", hozAlign:"center", headerHozAlign:"center", width:100} | |
| 37 | + ,{title:"A", field:"A", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} | |
| 38 | + ,{title:"B", field:"B", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} | |
| 39 | + ,{title:"C", field:"C", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} | |
| 40 | + ], | |
| 41 | + validationFailed:function(cell, value, parameters){ // 유효성 체크 함수 | |
| 42 | + var valid = cell.isValid(); | |
| 43 | + if(!valid){ | |
| 44 | + alert("양식에 맞지 않는 정보가 입력되었습니다."); | |
| 45 | + | |
| 46 | + //해당 셀 데이터 삭제 | |
| 47 | + cell.setValue(""); | |
| 48 | + } | |
| 49 | + return value % parameters.phone; | |
| 50 | + }, | |
| 51 | + }); | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + $tableClip = new Tabulator("#tabulator_clip", { | |
| 56 | + height:"255px", | |
| 57 | + width:"100%", | |
| 58 | + layout:"fitColumns", | |
| 59 | + editor:true, | |
| 60 | + headerHozAlign:"center", | |
| 61 | + validationMode:"highlight", | |
| 62 | + placeholder:"복사(Ctrl+C)한 내용을 여기에 붙여넣기(Ctrl+V) 해주세요.", //fit columns to width of table (optional) | |
| 63 | +// clipboard:true, // 클립보드 기능 활성화 | |
| 64 | + clipboardPasteAction:"update", // insert, update, replace | |
| 65 | + columns: [ | |
| 66 | + {formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", width:50, headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) { | |
| 67 | + cell.getRow().toggleSelect(); | |
| 68 | + }}, | |
| 69 | + {formatter:"rownum", hozAlign:"center" ,title:"No", hozAlign:"center", headerHozAlign:"center", width:100} | |
| 70 | + ,{title:"A", field:"A", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} | |
| 71 | + ,{title:"B", field:"B", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} | |
| 72 | + ,{title:"C", field:"C", hozAlign:"center", headerHozAlign: "center", width:260, validator:["maxLength:100", "string"]} | |
| 73 | + /*,{title:"D", field:"D", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]} | |
| 74 | + ,{title:"E", field:"E", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]} | |
| 75 | + ,{title:"F", field:"F", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]} | |
| 76 | + ,{title:"G", field:"G", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]}*/ | |
| 77 | + ], | |
| 78 | + validationFailed: function(cell, value, parameters) { | |
| 79 | + var valid = cell.isValid(); | |
| 80 | + if (!valid) { | |
| 81 | + alert("양식에 맞지 않는 정보가 입력되었습니다."); | |
| 82 | + cell.setValue(""); // 해당 셀 데이터 삭제 | |
| 83 | + } | |
| 84 | + return false; // 유효하지 않은 경우 false 반환 | |
| 85 | + }, | |
| 86 | + }); | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + //Tabulator AJAX Data Loading | |
| 91 | + $tableError = new Tabulator("#tabulator_error", { | |
| 92 | + height:"255px", | |
| 93 | + width:"100%", | |
| 94 | + layout:"fitColumns", | |
| 95 | + autoColumns:false, | |
| 96 | + headerHozAlign:"center", | |
| 97 | + validationMode:"highlight", | |
| 98 | + clipboard:false, | |
| 99 | + clipboardCopySelector:"table", | |
| 100 | + clipboardPasteAction:"insert", // insert, update, replace | |
| 101 | + placeholder:"등록 팝업에서 팩스번호를 선택 후 확인해주세요.", //fit columns to width of table (optional) | |
| 102 | + columns:[ //Define Table Columns | |
| 103 | + {title:"이름", field:"name", hozAlign:"center", headerHozAlign: "center", width:125}, | |
| 104 | + {title:"팩스번호", field:"phone", hozAlign:"center", headerHozAlign: "center", width:158}, | |
| 105 | + {title:"미등록 결과", field:"result", hozAlign:"center", headerHozAlign: "center", width:125} | |
| 106 | + ] | |
| 107 | + }); | |
| 108 | + | |
| 109 | + // 타뷸레이터 width값 변경 시 위에 select width 값 변경 | |
| 110 | + var titleArray = ["A","B","C","D","E","F","G"]; | |
| 111 | + | |
| 112 | + $tableExcel.on("columnWidth",function(column){ | |
| 113 | + var titleIndex = titleArray.indexOf(column._column.definition.title); | |
| 114 | + titleIndex += 1; | |
| 115 | + if(titleIndex != 0){ | |
| 116 | + $('.tableExcel .select_adr_hd>div').eq(titleIndex).css('width', column._column.width); | |
| 117 | + }else{ | |
| 118 | + $('.tableExcel .select_adr_hd>div').eq(0).css('width', column._column.width + 40); | |
| 119 | + } | |
| 120 | + }); | |
| 121 | + | |
| 122 | + $tableExcel.on("scrollHorizontal",function(left){ | |
| 123 | + $(".tableExcel .adr_excel").scrollLeft(left); | |
| 124 | + }) | |
| 125 | + | |
| 126 | + $(".tableExcel .adr_excel").on("scroll",function(){ | |
| 127 | + $(".tableExcel .tabulator-tableholder").scrollLeft($(this).scrollLeft()); | |
| 128 | + }); | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + $tableClip.on("columnWidth",function(column){ | |
| 133 | + var titleIndex = titleArray.indexOf(column._column.definition.title); | |
| 134 | + titleIndex += 1; | |
| 135 | + if(titleIndex != 0){ | |
| 136 | + $('.tableClip .select_adr_hd>div').eq(titleIndex).css('width', column._column.width); | |
| 137 | + }else{ | |
| 138 | + $('.tableClip .select_adr_hd>div').eq(0).css('width', column._column.width + 40); | |
| 139 | + } | |
| 140 | + }); | |
| 141 | + | |
| 142 | + $tableClip.on("scrollHorizontal",function(left){ | |
| 143 | + $(".tableClip .adr_excel").scrollLeft(left); | |
| 144 | + }) | |
| 145 | + | |
| 146 | + $(".tableClip .adr_excel").on("scroll",function(){ | |
| 147 | + $(".tableClip .tabulator-tableholder").scrollLeft($(this).scrollLeft()); | |
| 148 | + }); | |
| 149 | + | |
| 150 | + | |
| 151 | +}); | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | +function fn_selfmakeTable(){ | |
| 156 | + | |
| 157 | + var tableData = []; | |
| 158 | + for (var i = 0; i < 1000; i++) { | |
| 159 | + tableData.push({addrNm: "", addrPhoneNo: "", addrInfo1: "", addrInfo2: "", addrInfo3: "", addrInfo4: "", addrComment: ""}); | |
| 160 | + } | |
| 161 | + | |
| 162 | + // 테이블 초기화 | |
| 163 | + $tableSelf = new Tabulator("#tabulator_self", { | |
| 164 | + height: "255px", | |
| 165 | + width: "100%", | |
| 166 | + layout: "fitColumns", | |
| 167 | + clipboardPasteAction: "update", | |
| 168 | + keybindings: { | |
| 169 | + "navRight": "tab", // Tab 키를 누르면 오른쪽 셀로 이동 | |
| 170 | + "navLeft": "shift+tab", | |
| 171 | + "editNext": false // Tab 키를 누를 때 편집 모드를 종료하지 않도록 설정 | |
| 172 | + }, | |
| 173 | + data: tableData, | |
| 174 | + columns: [ | |
| 175 | + {formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) { | |
| 176 | + cell.getRow().toggleSelect(); | |
| 177 | + }}, | |
| 178 | + {formatter:"rownum", hozAlign:"center" ,title:"No", headerHozAlign:"center", width:40}, | |
| 179 | + {title:"이름", field:"addrNm", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}, | |
| 180 | + {title:"휴대폰", field:"addrPhoneNo", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input" | |
| 181 | + , cellEdited:function(cell){ | |
| 182 | + var currentValue = cell.getValue(); | |
| 183 | + console.log('cell.getValue() : ', currentValue); | |
| 184 | + | |
| 185 | + // 현재 값이 null 또는 undefined가 아니고, 값이 변경된 경우에만 처리 | |
| 186 | + if (currentValue !== null | |
| 187 | + && currentValue !== '' | |
| 188 | + ) { | |
| 189 | + var newValue = fn_selfUpdataCount(currentValue); | |
| 190 | + | |
| 191 | + // 값이 실제로 변경된 경우에만 setValue 호출 | |
| 192 | + if (currentValue !== newValue) { | |
| 193 | + cell.setValue(newValue); | |
| 194 | + } | |
| 195 | + } | |
| 196 | + } | |
| 197 | + }, | |
| 198 | + {title:"[*1*]", field:"addrInfo1", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}, | |
| 199 | + {title:"[*2*]", field:"addrInfo2", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}, | |
| 200 | + {title:"[*3*]", field:"addrInfo3", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}, | |
| 201 | + {title:"[*4*]", field:"addrInfo4", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"}, | |
| 202 | + {title:"메모", field:"addrComment", hozAlign:"center", headerHozAlign: "center", width:119, validator:["maxLength:100"], editor:"input"} | |
| 203 | + ], | |
| 204 | + navigation: true // 키보드 탐색 활성화 | |
| 205 | + }); | |
| 206 | +} | |
| 207 | + | |
| 208 | + | |
| 209 | + |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?