--- src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
... | ... | @@ -329,10 +329,11 @@ |
| 329 | 329 |
// $('.loading_layer').addClass('active');
|
| 330 | 330 |
|
| 331 | 331 |
// setTimeout(setSenderList_advc, 1000); |
| 332 |
+ $('.loading_layer').addClass('active');
|
|
| 332 | 333 |
setSenderList_advc(); |
| 333 | 334 |
} |
| 334 | 335 |
} |
| 335 |
- |
|
| 336 |
+/* |
|
| 336 | 337 |
function setSenderList_advc(){
|
| 337 | 338 |
|
| 338 | 339 |
// tab에 해당하는 타블레이터 가져오기 |
... | ... | @@ -362,33 +363,10 @@ |
| 362 | 363 |
|
| 363 | 364 |
if (data.status == 'OK') {
|
| 364 | 365 |
alert(data.message); |
| 365 |
-// alert("저장에 성공했습니다.\n저장 : " + returnData.resultCnt + "건"
|
|
| 366 |
-// +", 중복 : " + returnData.dupliCnt + "건" |
|
| 367 |
-// +", 휴대폰번호 오류 : " + returnData.errPhoneCnt + "건"); |
|
| 368 |
- |
|
| 369 |
- // 중복번호 Hide |
|
| 370 |
-// $("#btnAddrMassDupli").hide();
|
|
| 371 |
-// $("#btnAddrMassSaveDupli").hide();
|
|
| 372 |
- |
|
| 373 |
- // 중복건이 있을경우 |
|
| 374 |
- |
|
| 375 |
-// if (returnData.dupliCnt > 0) {
|
|
| 376 |
- //alert(returnData.addrMassDupliList.length); |
|
| 377 |
- |
|
| 378 |
- // 중복번호(해당 그룹) Show |
|
| 379 |
-// $("#btnAddrMassSaveDupli").show();
|
|
| 380 |
- |
|
| 381 |
-// addrMassDupliSaveList = returnData.addrMassDupliList; |
|
| 382 |
- //$("#btnAddrMassSaveDupli").trigger("click");
|
|
| 383 |
-// } |
|
| 384 |
- |
|
| 385 | 366 |
// 데이터 비우기 |
| 386 | 367 |
SetClear($objTabul); |
| 387 | 368 |
|
| 388 | 369 |
var selectMassVal = $("#addrGrpIdInfo option:selected").val();
|
| 389 |
- |
|
| 390 |
- // 주소록그룹 콤보박스 유지 |
|
| 391 |
-// setTimeout(setSelectMassSetting, 500, selectMassVal); |
|
| 392 | 370 |
} |
| 393 | 371 |
else {
|
| 394 | 372 |
alert("오류 알림 : :: "+data.message);
|
... | ... | @@ -408,183 +386,77 @@ |
| 408 | 386 |
} |
| 409 | 387 |
}); |
| 410 | 388 |
} |
| 411 |
-/* |
|
| 412 |
-function setSenderList() {
|
|
| 413 |
- var selectedData = tableR.getRows(); |
|
| 414 |
- for (var i=gArrRestartIndex; i < selectedData.length; i++) {
|
|
| 415 |
- var name = tableR.getRows()[i].getData().name; |
|
| 416 |
- var phone = removeDash(tableR.getRows()[i].getData().phone); |
|
| 417 |
- var info1 = tableR.getRows()[i].getData().info1; |
|
| 418 |
- var info2 = tableR.getRows()[i].getData().info2; |
|
| 419 |
- var info3 = tableR.getRows()[i].getData().info3; |
|
| 420 |
- var info4 = tableR.getRows()[i].getData().info4; |
|
| 421 |
- var memo = tableR.getRows()[i].getData().memo; |
|
| 422 |
- |
|
| 423 |
- gPhoneList[i] = phone; |
|
| 424 |
- // name |
|
| 425 |
- if (name == "" || name == null || name == undefined) {
|
|
| 426 |
- gNameList[i] = ""; |
|
| 427 |
- } |
|
| 428 |
- else {
|
|
| 429 |
- if(!addrEmojiCheck(name)){//이모지 체크 해주기
|
|
| 430 |
- return false; |
|
| 431 |
- } |
|
| 432 |
- |
|
| 433 |
- gNameList[i] = name.replace(/,/g,"§"); |
|
| 434 |
- } |
|
| 435 |
- |
|
| 436 |
- // info1 |
|
| 437 |
- if (info1 == "" || info1 == null || info1 == undefined) {
|
|
| 438 |
- gInfo1List[i] = ""; |
|
| 439 |
- } |
|
| 440 |
- else {
|
|
| 441 |
- if(!addrEmojiCheck(info1)){//이모지 체크 해주기
|
|
| 442 |
- return false; |
|
| 443 |
- } |
|
| 444 |
- |
|
| 445 |
- gInfo1List[i] = info1.replace(/,/g,"§"); |
|
| 446 |
- } |
|
| 447 |
- // info2 |
|
| 448 |
- if (info2 == "" || info2 == null || info2 == undefined) {
|
|
| 449 |
- gInfo2List[i] = ""; |
|
| 450 |
- } |
|
| 451 |
- else {
|
|
| 452 |
- if(!addrEmojiCheck(info2)){//이모지 체크 해주기
|
|
| 453 |
- return false; |
|
| 454 |
- } |
|
| 455 |
- |
|
| 456 |
- gInfo2List[i] = info2.replace(/,/g,"§"); |
|
| 457 |
- } |
|
| 458 |
- // info3 |
|
| 459 |
- if (info3 == "" || info3 == null || info3 == undefined) {
|
|
| 460 |
- gInfo3List[i] = ""; |
|
| 461 |
- } |
|
| 462 |
- else {
|
|
| 463 |
- if(!addrEmojiCheck(info3)){//이모지 체크 해주기
|
|
| 464 |
- return false; |
|
| 465 |
- } |
|
| 466 |
- gInfo3List[i] = info3.replace(/,/g,"§"); |
|
| 467 |
- } |
|
| 468 |
- // info4 |
|
| 469 |
- if (info4 == "" || info4 == null || info4 == undefined) {
|
|
| 470 |
- gInfo4List[i] = ""; |
|
| 471 |
- } |
|
| 472 |
- else {
|
|
| 473 |
- if(!addrEmojiCheck(info4)){//이모지 체크 해주기
|
|
| 474 |
- return false; |
|
| 475 |
- } |
|
| 476 |
- gInfo4List[i] = info4.replace(/,/g,"§"); |
|
| 477 |
- } |
|
| 478 |
- // memo |
|
| 479 |
- if (memo == "" || memo == null || memo == undefined) {
|
|
| 480 |
- gMemoList[i] = ""; |
|
| 481 |
- } |
|
| 482 |
- else {
|
|
| 483 |
- if(!addrEmojiCheck(memo)){//이모지 체크 해주기
|
|
| 484 |
- return false; |
|
| 485 |
- } |
|
| 486 |
- gMemoList[i] = memo.replace(/,/g,"§"); |
|
| 487 |
- } |
|
| 488 |
- |
|
| 489 |
- //브라우저 대기 메세지 안나오게 하기위한 처리 |
|
| 490 |
- var reStartArray = [10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000, 100000, 110000, 120000, 130000, 140000, 150000, 160000, 170000, 180000, 190000, 200000]; |
|
| 491 |
- |
|
| 492 |
- if (reStartArray.includes(i, 0)) {
|
|
| 493 |
- gArrRestartIndex = i+1; |
|
| 494 |
- |
|
| 495 |
- if (selectedData.length > gArrRestartIndex) {
|
|
| 496 |
- setTimeout(setSenderList, 500); |
|
| 497 |
- break; |
|
| 498 |
- } |
|
| 499 |
- } |
|
| 500 |
- } |
|
| 501 |
- |
|
| 502 |
- if (gPhoneList.length == selectedData.length) {
|
|
| 503 |
- //console.log(new Date()); |
|
| 504 |
- //console.log("gPhoneList.length : " + gPhoneList.length);
|
|
| 505 |
- //console.log("selectedData.length : " + selectedData.length);
|
|
| 506 |
- |
|
| 507 |
- SetAddrMassSave_Step2(); |
|
| 508 |
- } |
|
| 509 |
-} |
|
| 510 | 389 |
*/ |
| 511 |
-//저장 |
|
| 512 |
-/* function SetAddrMassSave_Step2(){
|
|
| 513 |
- var form = document.addrMassForm; |
|
| 514 |
- form.phoneList.value = gPhoneList; |
|
| 515 |
- form.nameList.value = gNameList; |
|
| 516 |
- form.info1List.value = gInfo1List; |
|
| 517 |
- form.info2List.value = gInfo2List; |
|
| 518 |
- form.info3List.value = gInfo3List; |
|
| 519 |
- form.info4List.value = gInfo4List; |
|
| 520 |
- form.memoList.value = gMemoList; |
|
| 521 |
- form.addrGrpId.value = $("#addrGrpIdInfo").val();
|
|
| 522 |
- |
|
| 523 |
- var data = new FormData(form); |
|
| 524 |
- |
|
| 525 |
- url = "/web/mjon/addr/addrMassInsertByTempAjax.do"; |
|
| 526 |
- |
|
| 527 |
- $.ajax({
|
|
| 528 |
- type: "POST", |
|
| 529 |
- url: url, |
|
| 530 |
- data: data, |
|
| 531 |
- dataType:'json', |
|
| 532 |
- async: true, |
|
| 533 |
- processData: false, |
|
| 534 |
- contentType: false, |
|
| 535 |
- cache: false, |
|
| 536 |
- success: function (returnData) {
|
|
| 537 |
- //로딩창 hide |
|
| 538 |
- $('.loading_layer').removeClass('active');
|
|
| 539 |
- |
|
| 540 |
- if (returnData.isSuccess) {
|
|
| 541 |
- alert("저장에 성공했습니다.\n저장 : " + returnData.resultCnt + "건, 중복 : " + returnData.dupliCnt + "건, 휴대폰번호 오류 : " + returnData.errPhoneCnt + "건");
|
|
| 390 |
+ |
|
| 391 |
+ |
|
| 392 |
+ |
|
| 393 |
+function setSenderList_advc(){
|
|
| 394 |
+ var $objTabul = fn_utils_getTabulator(); |
|
| 395 |
+ var dataToSend = $objTabul.getData(); |
|
| 396 |
+ var addrGrpIdInfo = $("#addrGrpIdInfo").val();
|
|
| 397 |
+ var addrGrpNmInfo = $("#addrGrpNm").val();
|
|
| 542 | 398 |
|
| 543 |
- // 중복번호 Hide |
|
| 544 |
- $("#btnAddrMassDupli").hide();
|
|
| 545 |
- $("#btnAddrMassSaveDupli").hide();
|
|
| 546 |
- |
|
| 547 |
- // 중복건이 있을경우 |
|
| 548 |
- if (returnData.dupliCnt > 0) {
|
|
| 549 |
- //alert(returnData.addrMassDupliList.length); |
|
| 399 |
+ var batchSize = 20000; // 배치 크기 |
|
| 400 |
+ var totalBatches = Math.ceil(dataToSend.length / batchSize); // 총 배치 수 |
|
| 401 |
+ var currentBatch = 0; // 현재 배치 인덱스 |
|
| 550 | 402 |
|
| 551 |
- // 중복번호(해당 그룹) Show |
|
| 552 |
- $("#btnAddrMassSaveDupli").show();
|
|
| 553 |
- |
|
| 554 |
- addrMassDupliSaveList = returnData.addrMassDupliList; |
|
| 555 |
- //$("#btnAddrMassSaveDupli").trigger("click");
|
|
| 556 |
- } |
|
| 557 |
- |
|
| 558 |
- // 데이터 비우기 |
|
| 559 |
- SetClear(); |
|
| 560 |
- |
|
| 561 |
- var selectMassVal = $("#addrGrpIdInfo option:selected").val();
|
|
| 562 |
- |
|
| 563 |
- // 주소록그룹 콤보박스 유지 |
|
| 564 |
- setTimeout(setSelectMassSetting, 500, selectMassVal); |
|
| 565 |
- } |
|
| 566 |
- else {
|
|
| 567 |
- alert("오류 알림 : " + returnData.msg);
|
|
| 568 |
- } |
|
| 569 |
- }, |
|
| 570 |
- error: function (e) {
|
|
| 571 |
- //로딩창 hide |
|
| 572 |
- $('.loading_layer').removeClass('active');
|
|
| 573 |
- |
|
| 574 |
- alert("저장에 실패하였습니다.");
|
|
| 575 |
- alert("ERROR : " + JSON.stringify(e));
|
|
| 576 |
- }, |
|
| 577 |
- beforeSend : function(xmlHttpRequest) {
|
|
| 578 |
- //로딩창 show |
|
| 579 |
- $('.loading_layer').addClass('active');
|
|
| 580 |
- }, |
|
| 581 |
- complete : function(xhr, textStatus) {
|
|
| 582 |
- //로딩창 hide |
|
| 583 |
- $('.loading_layer').removeClass('active');
|
|
| 584 |
- } |
|
| 585 |
- }); |
|
| 586 |
-} */ |
|
| 403 |
+ fn_loadAddActive(); |
|
| 404 |
+ |
|
| 587 | 405 |
|
| 406 |
+ function sendBatch() {
|
|
| 407 |
+ if (currentBatch < totalBatches) {
|
|
| 408 |
+ var start = currentBatch * batchSize; |
|
| 409 |
+ var end = Math.min(start + batchSize, dataToSend.length); |
|
| 410 |
+ var batchData = dataToSend.slice(start, end); |
|
| 411 |
+ |
|
| 412 |
+ var updateData = batchData.map(row => {
|
|
| 413 |
+ row.addrGrpId = addrGrpIdInfo; |
|
| 414 |
+ row.addrGrpNm = addrGrpNmInfo; |
|
| 415 |
+ return row; |
|
| 416 |
+ }); |
|
| 417 |
+ |
|
| 418 |
+ $.ajax({
|
|
| 419 |
+ type: "POST", |
|
| 420 |
+ url: "/web/mjon/addr/addrMassInsertByTempAjax_advc.do", |
|
| 421 |
+ data: JSON.stringify(updateData), |
|
| 422 |
+ dataType: 'json', |
|
| 423 |
+ contentType: 'application/json', |
|
| 424 |
+ async: true, |
|
| 425 |
+ success: function (data) {
|
|
| 426 |
+ console.log('Batch ' + (currentBatch + 1) + ' success: ', data);
|
|
| 427 |
+ if (data.status == 'OK') {
|
|
| 428 |
+ if (currentBatch === totalBatches - 1) {
|
|
| 429 |
+ alert("모든 데이터가 성공적으로 저장되었습니다.");
|
|
| 430 |
+ // 데이터 비우기 |
|
| 431 |
+ SetClear($objTabul); |
|
| 432 |
+ } else {
|
|
| 433 |
+ currentBatch++; |
|
| 434 |
+ sendBatch(); // 다음 배치 전송 |
|
| 435 |
+ } |
|
| 436 |
+ } else {
|
|
| 437 |
+ alert("오류 알림 : " + data.message);
|
|
| 438 |
+ } |
|
| 439 |
+ }, |
|
| 440 |
+ error: function (e) {
|
|
| 441 |
+ alert("배치 전송에 실패하였습니다.");
|
|
| 442 |
+ console.error("ERROR: ", JSON.stringify(e));
|
|
| 443 |
+ }, |
|
| 444 |
+ beforeSend: function(xmlHttpRequest) {
|
|
| 445 |
+ }, |
|
| 446 |
+ complete: function(xhr, textStatus) {
|
|
| 447 |
+ console.log('end : ', end);
|
|
| 448 |
+ $('#lodingTxt').text(end);
|
|
| 449 |
+ } |
|
| 450 |
+ }); |
|
| 451 |
+ } |
|
| 452 |
+ } |
|
| 453 |
+ // 첫 번째 배치 전송 시작 |
|
| 454 |
+ sendBatch(); |
|
| 455 |
+ $('.loading_layer').removeClass('active');
|
|
| 456 |
+} |
|
| 457 |
+ |
|
| 458 |
+ |
|
| 459 |
+ |
|
| 588 | 460 |
//주소록그룹 콤보박스 유지 |
| 589 | 461 |
function setSelectMassSetting(selectMassVal) {
|
| 590 | 462 |
$("#addrGrpIdInfo").val(selectMassVal).prop("selected", true);
|
... | ... | @@ -612,7 +484,6 @@ |
| 612 | 484 |
// AddrListAjax.jsp에서 호출 |
| 613 | 485 |
$(document).on('click', '#btnAddrMassRegCall', function() {
|
| 614 | 486 |
getAddrGroupList(); |
| 615 |
- console.log('??');
|
|
| 616 | 487 |
}); |
| 617 | 488 |
|
| 618 | 489 |
|
... | ... | @@ -765,7 +636,9 @@ |
| 765 | 636 |
<div class="loading_layer"> |
| 766 | 637 |
<div class="loading_container"> |
| 767 | 638 |
<div class="bar"></div> |
| 768 |
- <div class="text">Loading</div> |
|
| 639 |
+ <div class="text" id="lodingTxt"> |
|
| 640 |
+ Loading |
|
| 641 |
+ </div> |
|
| 769 | 642 |
</div> |
| 770 | 643 |
</div> |
| 771 | 644 |
|
--- src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp
... | ... | @@ -80,7 +80,7 @@ |
| 80 | 80 |
$("#excelFile").on("change", function(event) {
|
| 81 | 81 |
var fileInfo = event.target.files; |
| 82 | 82 |
if(fileInfo.length > 0){
|
| 83 |
- fn_loadAddActive(); |
|
| 83 |
+// fn_loadAddActive(); |
|
| 84 | 84 |
excelFileChange(fileInfo[0]); |
| 85 | 85 |
} |
| 86 | 86 |
}); |
... | ... | @@ -342,7 +342,7 @@ |
| 342 | 342 |
e.preventDefault(); |
| 343 | 343 |
}); |
| 344 | 344 |
$(document).on("drop",".upload_area",function(e){
|
| 345 |
- fn_loadAddActive(); |
|
| 345 |
+// fn_loadAddActive(); |
|
| 346 | 346 |
e.preventDefault(); |
| 347 | 347 |
var files = e.originalEvent.dataTransfer.files; |
| 348 | 348 |
excelFileChange(files[0]); |
... | ... | @@ -353,8 +353,8 @@ |
| 353 | 353 |
e.preventDefault(); |
| 354 | 354 |
}); |
| 355 | 355 |
$(document).on('dragover', function (e){
|
| 356 |
-e.stopPropagation(); |
|
| 357 |
-e.preventDefault(); |
|
| 356 |
+ e.stopPropagation(); |
|
| 357 |
+ e.preventDefault(); |
|
| 358 | 358 |
//objDragAndDrop.css('border', '2px dotted #0B85A1');
|
| 359 | 359 |
}); |
| 360 | 360 |
$(document).on('drop', function (e){
|
... | ... | @@ -365,22 +365,25 @@ |
| 365 | 365 |
|
| 366 | 366 |
function excelFileChange(file) {
|
| 367 | 367 |
if (file) {
|
| 368 |
+ fn_loadAddActive(); |
|
| 368 | 369 |
var reader = new FileReader(); |
| 369 | 370 |
var extension = file.name.split('.').pop().toLowerCase();
|
| 370 |
- |
|
| 371 | 371 |
reader.onload = function(e) {
|
| 372 |
- if (extension === 'xlsx') {
|
|
| 373 |
- var data = new Uint8Array(e.target.result); |
|
| 374 |
- var workbook = XLSX.read(data, {type: 'array'});
|
|
| 375 |
- var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
|
| 376 |
- var jsonData = XLSX.utils.sheet_to_json(firstSheet, {header: 1});
|
|
| 377 |
- processExcelData(jsonData); |
|
| 378 |
- } else if (extension === 'txt') {
|
|
| 379 |
- var textData = e.target.result; |
|
| 380 |
- processTextData(textData); |
|
| 381 |
- } else {
|
|
| 382 |
- alert('지원되지 않는 파일 형식입니다.');
|
|
| 383 |
- } |
|
| 372 |
+ setTimeout(() => { // 파일 읽기 완료 후 실행되도록 함
|
|
| 373 |
+ if (extension === 'xlsx') {
|
|
| 374 |
+ var data = new Uint8Array(e.target.result); |
|
| 375 |
+ var workbook = XLSX.read(data, {type: 'array'});
|
|
| 376 |
+ var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
|
| 377 |
+ var jsonData = XLSX.utils.sheet_to_json(firstSheet, {header: 1});
|
|
| 378 |
+ processExcelData(jsonData); |
|
| 379 |
+ } else if (extension === 'txt') {
|
|
| 380 |
+ var textData = e.target.result; |
|
| 381 |
+ processTextData(textData); |
|
| 382 |
+ } else {
|
|
| 383 |
+ alert('지원되지 않는 파일 형식입니다.');
|
|
| 384 |
+ } |
|
| 385 |
+ fn_loadRemoveActive(); |
|
| 386 |
+ }, 0); // 지연 없이 즉시 실행되도록 0ms 지연을 설정 |
|
| 384 | 387 |
}; |
| 385 | 388 |
|
| 386 | 389 |
if (extension === 'xlsx') {
|
... | ... | @@ -398,19 +401,22 @@ |
| 398 | 401 |
function processExcelData(data) {
|
| 399 | 402 |
var keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; |
| 400 | 403 |
var tableData = []; |
| 404 |
+ var totalRows = data.length - 2; // 전체 데이터 수 (1, 2행 제외) |
|
| 405 |
+ |
|
| 401 | 406 |
|
| 402 | 407 |
// 3번째 행부터 입력 |
| 403 |
- // 1, 2행은 예시와 타이틀이라 입력안함 |
|
| 404 |
- data.slice(2).forEach(row => {
|
|
| 408 |
+ data.slice(2).forEach((row, index) => {
|
|
| 405 | 409 |
var rowData = {};
|
| 406 |
- keys.forEach((key, index) => {
|
|
| 407 |
- rowData[key] = row[index] ? row[index].trim() : ""; // 각 컬럼에 대해 기본값을 설정 |
|
| 410 |
+ keys.forEach((key, idx) => { // index 변수명 변경 (내부와 외부에서 사용되므로 충돌 방지)
|
|
| 411 |
+ rowData[key] = row[idx] ? row[idx].trim() : ""; // 각 컬럼에 대해 기본값을 설정 |
|
| 408 | 412 |
}); |
| 409 | 413 |
tableData.push(rowData); |
| 414 |
+ |
|
| 410 | 415 |
}); |
| 411 | 416 |
|
| 412 | 417 |
updateTable(tableData); |
| 413 |
-} |
|
| 418 |
+} |
|
| 419 |
+ |
|
| 414 | 420 |
|
| 415 | 421 |
// 텍스트 데이터 처리 함수 |
| 416 | 422 |
function processTextData(text) {
|
... | ... | @@ -436,13 +442,13 @@ |
| 436 | 442 |
{formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) {
|
| 437 | 443 |
cell.getRow().toggleSelect(); |
| 438 | 444 |
}}, |
| 439 |
- {title: "A", hozAlign: "center", headerHozAlign: "center", field: "A", editor: "input", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 440 |
- {title: "B", hozAlign: "center", headerHozAlign: "center", field: "B", editor: "input", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 441 |
- {title: "C", hozAlign: "center", headerHozAlign: "center", field: "C", editor: "input", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 442 |
- {title: "D", hozAlign: "center", headerHozAlign: "center", field: "D", editor: "input", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 443 |
- {title: "E", hozAlign: "center", headerHozAlign: "center", field: "E", editor: "input", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 444 |
- {title: "F", hozAlign: "center", headerHozAlign: "center", field: "F", editor: "input", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 445 |
- {title: "G", hozAlign: "center", headerHozAlign: "center", field: "G", editor: "input", width: 125, validator: ["maxLength:100", "string"]}
|
|
| 445 |
+ {title: "A", field: "A", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 446 |
+ {title: "B", field: "B", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 447 |
+ {title: "C", field: "C", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 448 |
+ {title: "D", field: "D", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 449 |
+ {title: "E", field: "E", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 450 |
+ {title: "F", field: "F", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]},
|
|
| 451 |
+ {title: "G", field: "G", hozAlign: "center", headerHozAlign: "center", width: 125, validator: ["maxLength:100", "string"]}
|
|
| 446 | 452 |
]); |
| 447 | 453 |
|
| 448 | 454 |
$tableExcel.setData(tableData).then(() => {
|
--- src/main/webapp/js/web/addr/init.js
+++ src/main/webapp/js/web/addr/init.js
... | ... | @@ -37,13 +37,13 @@ |
| 37 | 37 |
cell.getRow().toggleSelect(); |
| 38 | 38 |
} |
| 39 | 39 |
}, |
| 40 |
- {title:"A", hozAlign:"center", headerHozAlign: "center", field:"A", editor:"input", width:125, validator:["maxLength:100", "string"]},
|
|
| 41 |
- {title:"B", hozAlign:"center", headerHozAlign: "center", field:"B", editor:"input", width:125, validator:["maxLength:100", "string"]},
|
|
| 42 |
- {title:"C", hozAlign:"center", headerHozAlign: "center", field:"C", editor:"input", width:125, validator:["maxLength:100", "string"]},
|
|
| 43 |
- {title:"D", hozAlign:"center", headerHozAlign: "center", field:"D", editor:"input", width:125, validator:["maxLength:100", "string"]},
|
|
| 44 |
- {title:"E", hozAlign:"center", headerHozAlign: "center", field:"E", editor:"input", width:125, validator:["maxLength:100", "string"]},
|
|
| 45 |
- {title:"F", hozAlign:"center", headerHozAlign: "center", field:"F", editor:"input", width:125, validator:["maxLength:100", "string"]},
|
|
| 46 |
- {title:"G", hozAlign:"center", headerHozAlign: "center", field:"G", editor:"input", width:125, validator:["maxLength:100", "string"]}
|
|
| 40 |
+ {title:"A", field:"A", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]},
|
|
| 41 |
+ {title:"B", field:"B", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]},
|
|
| 42 |
+ {title:"C", field:"C", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]},
|
|
| 43 |
+ {title:"D", field:"D", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]},
|
|
| 44 |
+ {title:"E", field:"E", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]},
|
|
| 45 |
+ {title:"F", field:"F", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]},
|
|
| 46 |
+ {title:"G", field:"G", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]}
|
|
| 47 | 47 |
], |
| 48 | 48 |
validationFailed:function(cell, value, parameters){ // 유효성 체크 함수
|
| 49 | 49 |
var valid = cell.isValid(); |
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?