--- src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
... | ... | @@ -333,6 +333,8 @@ |
| 333 | 333 |
setSenderList_advc(); |
| 334 | 334 |
} |
| 335 | 335 |
} |
| 336 |
+ |
|
| 337 |
+// 주소록 등록 advc |
|
| 336 | 338 |
function setSenderList_advc(){
|
| 337 | 339 |
|
| 338 | 340 |
// tab에 해당하는 타블레이터 가져오기 |
--- src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforClipboard.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforClipboard.jsp
... | ... | @@ -159,11 +159,6 @@ |
| 159 | 159 |
$(document).ready(function(){
|
| 160 | 160 |
//Tabulator AJAX Data Loading |
| 161 | 161 |
|
| 162 |
- // 파일 선택 버튼 클릭 이벤트 |
|
| 163 |
- $("#file-load-trigger").on("click", function() {
|
|
| 164 |
- $("#excelFile").click();
|
|
| 165 |
- }); |
|
| 166 |
- |
|
| 167 | 162 |
//받는사람 전체삭제 버튼 처리 |
| 168 | 163 |
$('.all_del').click(function(){
|
| 169 | 164 |
var data = $tableClip.getRows(); |
... | ... | @@ -180,33 +175,7 @@ |
| 180 | 175 |
}); |
| 181 | 176 |
|
| 182 | 177 |
|
| 183 |
- // 받는사람 선택삭제 버튼 처리해주기 |
|
| 184 |
- $('.select_del').click(function(){
|
|
| 185 |
- $("#rowDupCnt").text(0); //중복건수 수정
|
|
| 186 |
- dupliPhoneDataRealList.length = 0; // 중복 휴대폰번호 초기화 |
|
| 187 |
- |
|
| 188 |
- if($tableClip == null || $tableClip == ""){
|
|
| 189 |
- alert("받는사람을 추가해 주세요.");
|
|
| 190 |
- return false; |
|
| 191 |
- } |
|
| 192 |
- |
|
| 193 |
- var selectedData = $tableClip.getSelectedRows(); |
|
| 194 |
- |
|
| 195 |
- if(selectedData == "" || selectedData == null){
|
|
| 196 |
- alert("받는 사람을 선택해 주세요.");
|
|
| 197 |
- return false; |
|
| 198 |
- }else{ // 선택한 Row 데이터 삭제하기
|
|
| 199 |
- for(var i=0; i < selectedData.length; i++){
|
|
| 200 |
- selectedData[i].delete(); |
|
| 201 |
- } |
|
| 202 |
- } |
|
| 203 |
- |
|
| 204 |
- totRows = $tableClip.getRows().length; |
|
| 205 |
- |
|
| 206 |
- updateTotCnt(totRows); |
|
| 207 |
- }); |
|
| 208 |
- |
|
| 209 |
- //받는사람 오류번호 삭제 처리해주기 |
|
| 178 |
+// 받는사람 오류번호 삭제 처리해주기 |
|
| 210 | 179 |
$('.chkVali_del').click(function(){
|
| 211 | 180 |
//기존 연락처 모두 불러오기 |
| 212 | 181 |
var data = $tableClip.getRows(); |
... | ... | @@ -234,6 +203,7 @@ |
| 234 | 203 |
|
| 235 | 204 |
//총 받는사람 수 계산 |
| 236 | 205 |
totRows = $tableClip.getRows().length; |
| 206 |
+ console.log('totRows : ', totRows);
|
|
| 237 | 207 |
updateTotCnt(totRows); |
| 238 | 208 |
|
| 239 | 209 |
if(errCnt > 0){
|
... | ... | @@ -249,7 +219,15 @@ |
| 249 | 219 |
} |
| 250 | 220 |
}); |
| 251 | 221 |
|
| 222 |
+ //전체 데이터 갯수 구하는 함수 |
|
| 223 |
+ function updateTotCnt(data){
|
|
| 252 | 224 |
|
| 225 |
+ var tabulNm = fn_utils_getTabulatorNm(); |
|
| 226 |
+ var tabluC = '.'+tabulNm |
|
| 227 |
+ |
|
| 228 |
+ $(tabluC+" #rowTotCnt").text(data); |
|
| 229 |
+ |
|
| 230 |
+ } |
|
| 253 | 231 |
|
| 254 | 232 |
|
| 255 | 233 |
|
... | ... | @@ -382,6 +360,84 @@ |
| 382 | 360 |
}); |
| 383 | 361 |
|
| 384 | 362 |
|
| 363 |
+ |
|
| 364 |
+ |
|
| 365 |
+ |
|
| 366 |
+ |
|
| 367 |
+ |
|
| 368 |
+ //받는 사람 리스트 영역에 클립보드 데이터 가져와보기 |
|
| 369 |
+ // 붙여넣기 기능 |
|
| 370 |
+ $('#tabulator_clip').on('paste', function (e) {
|
|
| 371 |
+ var element = e.originalEvent.clipboardData.getData('text'); // 클립보드에 복사한 데이터 가져오기
|
|
| 372 |
+ var elmSplit = element.split("\n");
|
|
| 373 |
+ var elmLen = elmSplit.length; |
|
| 374 |
+ console.log('elmSplit : ', elmSplit);
|
|
| 375 |
+ |
|
| 376 |
+ if(elmLen < 0){
|
|
| 377 |
+ alert("붙여넣을 연락처를 복사해주세요.");
|
|
| 378 |
+ return false; |
|
| 379 |
+ } |
|
| 380 |
+ if (elmLen > 20001) {
|
|
| 381 |
+ alert("2만줄 이상의 업로드는 데이터 부하로 업로드 할수 없습니다.");
|
|
| 382 |
+ return false; |
|
| 383 |
+ } |
|
| 384 |
+ |
|
| 385 |
+ tableErrorData.length = 0; // 오류 번호 배열 초기화 |
|
| 386 |
+ |
|
| 387 |
+ var realPhone = []; |
|
| 388 |
+ |
|
| 389 |
+ for(var i = 0; i < elmLen; i++){
|
|
| 390 |
+ var splitStr = elmSplit[i]; |
|
| 391 |
+ var tabData = splitStr.split("\t"); // 탭 구분으로 데이터 분할
|
|
| 392 |
+ var comData = splitStr.split(","); // 콤마 구분으로 데이터 분할
|
|
| 393 |
+ var splitData = (tabData.length >= 2) ? tabData : comData; |
|
| 394 |
+ |
|
| 395 |
+ if(splitData.length == 0){ // 데이터가 없는 경우
|
|
| 396 |
+ alert("탭으로 구분하여 데이터를 복사해 주세요.");
|
|
| 397 |
+ return false; |
|
| 398 |
+ } |
|
| 399 |
+ |
|
| 400 |
+ if(splitData.length == 1){
|
|
| 401 |
+ realPhone.push({ A: splitData[0].trim() });
|
|
| 402 |
+ } else {
|
|
| 403 |
+ let keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; |
|
| 404 |
+ let data = {};
|
|
| 405 |
+ splitData.forEach((item, index) => {
|
|
| 406 |
+ data[keys[index]] = item.trim(); |
|
| 407 |
+ }); |
|
| 408 |
+ realPhone.push(data); |
|
| 409 |
+ } |
|
| 410 |
+ } |
|
| 411 |
+ console.log('realPhone : ', realPhone);
|
|
| 412 |
+ |
|
| 413 |
+ var recTableData = $tableClip.getRows().map(row => createDataObject(row.getData())); |
|
| 414 |
+ console.log('recTableData : ', recTableData);
|
|
| 415 |
+ var tableData = recTableData.concat(realPhone); |
|
| 416 |
+ |
|
| 417 |
+ // 중복 연락처 제거 작업 (필요에 따라 적용) |
|
| 418 |
+ // var removeDuplPhone = dupliPhoneData(tableData); |
|
| 419 |
+ var removeDuplPhone = tableData; // 현재 중복 제거하지 않음 |
|
| 420 |
+ |
|
| 421 |
+ // 기존 데이터를 유지하고 새 데이터를 추가한 결과를 테이블에 반영 |
|
| 422 |
+ $tableClip.setData(removeDuplPhone); |
|
| 423 |
+ |
|
| 424 |
+ var totRows = $tableClip.getRows().length; |
|
| 425 |
+ updateTotCnt(totRows); // 전체 데이터 갯수 구하기 |
|
| 426 |
+ |
|
| 427 |
+ if (tableErrorData.length > 0) {
|
|
| 428 |
+ alert("데이터를 확인해 주세요.");
|
|
| 429 |
+ } |
|
| 430 |
+ }); |
|
| 431 |
+ |
|
| 432 |
+ |
|
| 433 |
+ |
|
| 434 |
+ |
|
| 435 |
+ |
|
| 436 |
+ |
|
| 437 |
+ |
|
| 438 |
+ |
|
| 439 |
+ |
|
| 440 |
+ |
|
| 385 | 441 |
}); |
| 386 | 442 |
|
| 387 | 443 |
|
... | ... | @@ -396,6 +452,19 @@ |
| 396 | 452 |
$("input[name=addrCheck]:checkbox").prop("checked", isChecked);
|
| 397 | 453 |
}); |
| 398 | 454 |
|
| 455 |
+//데이터 객체를 생성하는 함수 |
|
| 456 |
+function createDataObject(data) {
|
|
| 457 |
+ console.log('createDataObject : ', data);
|
|
| 458 |
+ return {
|
|
| 459 |
+ A: data.A, |
|
| 460 |
+ B: data.B, |
|
| 461 |
+ C: data.C, |
|
| 462 |
+ D: data.D, |
|
| 463 |
+ E: data.E, |
|
| 464 |
+ F: data.F, |
|
| 465 |
+ G: data.G |
|
| 466 |
+ }; |
|
| 467 |
+} |
|
| 399 | 468 |
|
| 400 | 469 |
|
| 401 | 470 |
// 중복 연락처 |
--- src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp
... | ... | @@ -80,52 +80,14 @@ |
| 80 | 80 |
$("#excelFile").on("change", function(event) {
|
| 81 | 81 |
var fileInfo = event.target.files; |
| 82 | 82 |
if(fileInfo.length > 0){
|
| 83 |
-// fn_loadAddActive(); |
|
| 84 | 83 |
excelFileChange(fileInfo[0]); |
| 85 |
- } |
|
| 84 |
+ } else {
|
|
| 85 |
+ fn_loadRemoveActive(); // 파일이 선택되지 않은 경우 로딩 상태 제거 |
|
| 86 |
+ setTimeout(() => { $(this).val(''); }, 0); // 파일 선택 초기화
|
|
| 87 |
+ } |
|
| 86 | 88 |
}); |
| 87 |
- |
|
| 88 |
- |
|
| 89 |
- //받는사람 전체삭제 버튼 처리 |
|
| 90 |
- $('.all_del').click(function(){
|
|
| 91 |
- var data = $tableExcel.getRows(); |
|
| 92 |
- if(data == null || data == ""){
|
|
| 93 |
- alert("받는사람을 추가해 주세요.");
|
|
| 94 |
- return false; |
|
| 95 |
- }else{
|
|
| 96 |
- $tableExcel.clearData(); |
|
| 97 |
- $("#rowTotCnt").text(0); //총건수 수정
|
|
| 98 |
- $("#rowDupCnt").text(0); //중복건수 수정
|
|
| 99 |
- dupliPhoneDataRealList.length = 0; // 중복 휴대폰번호 초기화 |
|
| 100 |
- } |
|
| 101 |
- }); |
|
| 102 | 89 |
|
| 103 | 90 |
|
| 104 |
- // 받는사람 선택삭제 버튼 처리해주기 |
|
| 105 |
- $('.select_del').click(function(){
|
|
| 106 |
- $("#rowDupCnt").text(0); //중복건수 수정
|
|
| 107 |
- dupliPhoneDataRealList.length = 0; // 중복 휴대폰번호 초기화 |
|
| 108 |
- |
|
| 109 |
- if($tableExcel == null || $tableExcel == ""){
|
|
| 110 |
- alert("받는사람을 추가해 주세요.");
|
|
| 111 |
- return false; |
|
| 112 |
- } |
|
| 113 |
- |
|
| 114 |
- var selectedData = $tableExcel.getSelectedRows(); |
|
| 115 |
- |
|
| 116 |
- if(selectedData == "" || selectedData == null){
|
|
| 117 |
- alert("받는 사람을 선택해 주세요.");
|
|
| 118 |
- return false; |
|
| 119 |
- }else{ // 선택한 Row 데이터 삭제하기
|
|
| 120 |
- for(var i=0; i < selectedData.length; i++){
|
|
| 121 |
- selectedData[i].delete(); |
|
| 122 |
- } |
|
| 123 |
- } |
|
| 124 |
- |
|
| 125 |
- totRows = $tableExcel.getRows().length; |
|
| 126 |
- |
|
| 127 |
- updateTotCnt(totRows); |
|
| 128 |
- }); |
|
| 129 | 91 |
|
| 130 | 92 |
//받는사람 오류번호 삭제 처리해주기 |
| 131 | 93 |
$('.chkVali_del').click(function(){
|
... | ... | @@ -315,18 +277,6 @@ |
| 315 | 277 |
|
| 316 | 278 |
|
| 317 | 279 |
|
| 318 |
-// 데이터 객체를 생성하는 함수 |
|
| 319 |
-function createDataObject(data) {
|
|
| 320 |
- return {
|
|
| 321 |
- A: data.A, |
|
| 322 |
- B: data.B, |
|
| 323 |
- C: data.C, |
|
| 324 |
- D: data.D, |
|
| 325 |
- E: data.E, |
|
| 326 |
- F: data.F, |
|
| 327 |
- G: data.G |
|
| 328 |
- }; |
|
| 329 |
-} |
|
| 330 | 280 |
|
| 331 | 281 |
//############################################################################################# |
| 332 | 282 |
//파일업로드 드래그앤 드롭 |
... | ... | @@ -400,8 +350,8 @@ |
| 400 | 350 |
var totalRows = data.length - 2; // 전체 데이터 수 (1, 2행 제외) |
| 401 | 351 |
|
| 402 | 352 |
|
| 403 |
- // 3번째 행부터 입력 |
|
| 404 |
- data.slice(2).forEach((row, index) => {
|
|
| 353 |
+ // 1번째 행부터 입력 |
|
| 354 |
+ data.forEach((row, index) => {
|
|
| 405 | 355 |
var rowData = {};
|
| 406 | 356 |
keys.forEach((key, idx) => { // index 변수명 변경 (내부와 외부에서 사용되므로 충돌 방지)
|
| 407 | 357 |
rowData[key] = row[idx] ? row[idx].trim() : ""; // 각 컬럼에 대해 기본값을 설정 |
--- src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforSelf.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforSelf.jsp
... | ... | @@ -187,48 +187,6 @@ |
| 187 | 187 |
}); |
| 188 | 188 |
|
| 189 | 189 |
|
| 190 |
- //받는사람 전체삭제 버튼 처리 |
|
| 191 |
- $('.all_del').click(function(){
|
|
| 192 |
- var data = $tableClip.getRows(); |
|
| 193 |
- if(data == null || data == ""){
|
|
| 194 |
- alert("받는사람을 추가해 주세요.");
|
|
| 195 |
- return false; |
|
| 196 |
- }else{
|
|
| 197 |
- $tableClip.clearData(); |
|
| 198 |
- $("#rowTotCnt").text(0); //총건수 수정
|
|
| 199 |
- $("#rowDupCnt").text(0); //중복건수 수정
|
|
| 200 |
- dupliPhoneDataRealList.length = 0; // 중복 휴대폰번호 초기화 |
|
| 201 |
- } |
|
| 202 |
- |
|
| 203 |
- }); |
|
| 204 |
- |
|
| 205 |
- |
|
| 206 |
- // 받는사람 선택삭제 버튼 처리해주기 |
|
| 207 |
- $('.select_del').click(function(){
|
|
| 208 |
- $("#rowDupCnt").text(0); //중복건수 수정
|
|
| 209 |
- dupliPhoneDataRealList.length = 0; // 중복 휴대폰번호 초기화 |
|
| 210 |
- |
|
| 211 |
- if($tableClip == null || $tableClip == ""){
|
|
| 212 |
- alert("받는사람을 추가해 주세요.");
|
|
| 213 |
- return false; |
|
| 214 |
- } |
|
| 215 |
- |
|
| 216 |
- var selectedData = $tableClip.getSelectedRows(); |
|
| 217 |
- |
|
| 218 |
- if(selectedData == "" || selectedData == null){
|
|
| 219 |
- alert("받는 사람을 선택해 주세요.");
|
|
| 220 |
- return false; |
|
| 221 |
- }else{ // 선택한 Row 데이터 삭제하기
|
|
| 222 |
- for(var i=0; i < selectedData.length; i++){
|
|
| 223 |
- selectedData[i].delete(); |
|
| 224 |
- } |
|
| 225 |
- } |
|
| 226 |
- |
|
| 227 |
- totRows = $tableClip.getRows().length; |
|
| 228 |
- |
|
| 229 |
- updateTotCnt(totRows); |
|
| 230 |
- }); |
|
| 231 |
- |
|
| 232 | 190 |
//받는사람 오류번호 삭제 처리해주기 |
| 233 | 191 |
$('.chkVali_del').click(function(){
|
| 234 | 192 |
//기존 연락처 모두 불러오기 |
--- src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
... | ... | @@ -54,12 +54,11 @@ |
| 54 | 54 |
|
| 55 | 55 |
$("#excelFile").on("change", function(event) {
|
| 56 | 56 |
var fileInfo = event.target.files; |
| 57 |
- console.log('fileInfo.length : ', fileInfo.length);
|
|
| 58 | 57 |
if(fileInfo.length > 0){
|
| 59 | 58 |
excelFileChange(fileInfo[0]); |
| 60 | 59 |
} else {
|
| 61 | 60 |
fn_loadRemoveActive(); // 파일이 선택되지 않은 경우 로딩 상태 제거 |
| 62 |
- $(this).val(''); // 파일 선택 초기화
|
|
| 61 |
+ setTimeout(() => { $(this).val(''); }, 0); // 파일 선택 초기화
|
|
| 63 | 62 |
} |
| 64 | 63 |
}); |
| 65 | 64 |
|
... | ... | @@ -407,10 +406,28 @@ |
| 407 | 406 |
// ASCII 문자 코드 사용 - 65=A, 66=B ... |
| 408 | 407 |
var field = String.fromCharCode(65 + index); |
| 409 | 408 |
if (selectedField) {
|
| 410 |
- columns.push({title: field, field: selectedField, hozAlign: "center", headerHozAlign: "center", editor: "input", width: 125, validator: ["maxLength:100", "string"]});
|
|
| 409 |
+ columns.push({
|
|
| 410 |
+ title: field |
|
| 411 |
+ , field: selectedField |
|
| 412 |
+ , hozAlign: "center" |
|
| 413 |
+ , headerHozAlign: "center" |
|
| 414 |
+// , editor: "input" |
|
| 415 |
+ , editor: false |
|
| 416 |
+ , width: 125 |
|
| 417 |
+ , validator: ["maxLength:100", "string"] |
|
| 418 |
+ }); |
|
| 411 | 419 |
fieldMapping.push(selectedField); |
| 412 | 420 |
} else {
|
| 413 |
- columns.push({title: field, field: field, hozAlign: "center", headerHozAlign: "center", editor: "input", width: 125, validator: ["maxLength:100", "string"]});
|
|
| 421 |
+ columns.push({
|
|
| 422 |
+ title: field |
|
| 423 |
+ , field: field |
|
| 424 |
+ , hozAlign: "center" |
|
| 425 |
+ , headerHozAlign: "center" |
|
| 426 |
+ , editor: false |
|
| 427 |
+// , editor: "input" |
|
| 428 |
+ , width: 125 |
|
| 429 |
+ , validator: ["maxLength:100", "string"] |
|
| 430 |
+ }); |
|
| 414 | 431 |
fieldMapping.push(field); |
| 415 | 432 |
} |
| 416 | 433 |
}); |
--- src/main/webapp/js/web/addr/event.js
+++ src/main/webapp/js/web/addr/event.js
... | ... | @@ -105,6 +105,57 @@ |
| 105 | 105 |
$(tabluC+" #rowTotCnt").text(rowsToKeep.length); |
| 106 | 106 |
} |
| 107 | 107 |
|
| 108 |
+ //받는사람 전체삭제 버튼 처리 |
|
| 109 |
+ $('.all_del').click(function(){
|
|
| 110 |
+ |
|
| 111 |
+ var tabulNm = fn_utils_getTabulatorNm(); |
|
| 112 |
+ var tabluC = '.'+tabulNm |
|
| 113 |
+ |
|
| 114 |
+ var $objTabul = fn_utils_getTabulator(); |
|
| 115 |
+ |
|
| 116 |
+ var data = $objTabul.getRows(); |
|
| 117 |
+ $objTabul.clearData(); |
|
| 118 |
+ $(tabluC+" #rowTotCnt").text(0); //총건수 수정 |
|
| 119 |
+ $(tabluC+" #rowDupCnt").text(0); //중복건수 수정 |
|
| 120 |
+ dupliPhoneDataRealList.length = 0; // 중복 휴대폰번호 초기화 |
|
| 121 |
+ }); |
|
| 122 |
+ |
|
| 123 |
+ // 받는사람 선택삭제 버튼 처리해주기 |
|
| 124 |
+ $('.select_del').click(function(){
|
|
| 125 |
+ |
|
| 126 |
+ var tabulNm = fn_utils_getTabulatorNm(); |
|
| 127 |
+ var tabluC = '.'+tabulNm |
|
| 128 |
+ |
|
| 129 |
+ var $objTabul = fn_utils_getTabulator(); |
|
| 130 |
+ |
|
| 131 |
+ $(tabluC+" #rowDupCnt").text(0); //중복건수 수정 |
|
| 132 |
+ dupliPhoneDataRealList.length = 0; // 중복 휴대폰번호 초기화 |
|
| 133 |
+ var selectedData = $objTabul.getSelectedRows(); |
|
| 134 |
+ |
|
| 135 |
+ if(selectedData == "" || selectedData == null){
|
|
| 136 |
+ alert("삭제할 데이터를 선택해 주세요.");
|
|
| 137 |
+ return false; |
|
| 138 |
+ }else{ // 선택한 Row 데이터 삭제하기
|
|
| 139 |
+ for(var i=0; i < selectedData.length; i++){
|
|
| 140 |
+ selectedData[i].delete(); |
|
| 141 |
+ } |
|
| 142 |
+ } |
|
| 143 |
+ |
|
| 144 |
+ totRows = $objTabul.getRows().length; |
|
| 145 |
+ |
|
| 146 |
+ updateTotCnt(totRows); |
|
| 147 |
+ }); |
|
| 148 |
+ |
|
| 149 |
+ //전체 데이터 갯수 구하는 함수 |
|
| 150 |
+ function updateTotCnt(data){
|
|
| 151 |
+ |
|
| 152 |
+ var tabulNm = fn_utils_getTabulatorNm(); |
|
| 153 |
+ var tabluC = '.'+tabulNm |
|
| 154 |
+ |
|
| 155 |
+ $(tabluC+" #rowTotCnt").text(data); |
|
| 156 |
+ |
|
| 157 |
+ } |
|
| 158 |
+ |
|
| 108 | 159 |
/* |
| 109 | 160 |
* 타이틀 select 선택할때마다 실행해서 |
| 110 | 161 |
* 데이터테이블 필드값 수정 |
... | ... | @@ -124,10 +175,28 @@ |
| 124 | 175 |
// ASCII 문자 코드 사용 - 65=A, 66=B ... |
| 125 | 176 |
var field = String.fromCharCode(65 + index); |
| 126 | 177 |
if (selectedField) {
|
| 127 |
- columns.push({title: field, field: selectedField, hozAlign: "center", headerHozAlign: "center", editor: "input", width: 125, validator: ["maxLength:100", "string"]});
|
|
| 178 |
+ columns.push({
|
|
| 179 |
+ title: field |
|
| 180 |
+ , field: selectedField |
|
| 181 |
+ , hozAlign: "center" |
|
| 182 |
+ , headerHozAlign: "center" |
|
| 183 |
+// , editor: "input" |
|
| 184 |
+ , editor: false |
|
| 185 |
+ , width: 125 |
|
| 186 |
+ , validator: ["maxLength:100", "string"] |
|
| 187 |
+ }); |
|
| 128 | 188 |
fieldMapping.push(selectedField); |
| 129 | 189 |
} else {
|
| 130 |
- columns.push({title: field, field: field, hozAlign: "center", headerHozAlign: "center", editor: "input", width: 125, validator: ["maxLength:100", "string"]});
|
|
| 190 |
+ columns.push({
|
|
| 191 |
+ title: field |
|
| 192 |
+ , field: field |
|
| 193 |
+ , hozAlign: "center" |
|
| 194 |
+ , headerHozAlign: "center" |
|
| 195 |
+// , editor: "input" |
|
| 196 |
+ , editor: false |
|
| 197 |
+ , width: 125 |
|
| 198 |
+ , validator: ["maxLength:100", "string"] |
|
| 199 |
+ }); |
|
| 131 | 200 |
fieldMapping.push(field); |
| 132 | 201 |
} |
| 133 | 202 |
}); |
--- src/main/webapp/js/web/addr/init.js
+++ src/main/webapp/js/web/addr/init.js
... | ... | @@ -71,30 +71,45 @@ |
| 71 | 71 |
validationMode:"highlight", |
| 72 | 72 |
placeholder:"복사(Ctrl+C)한 내용을 여기에 붙여넣기(Ctrl+V) 해주세요.", //fit columns to width of table (optional) |
| 73 | 73 |
clipboard:true, // 클립보드 기능 활성화 |
| 74 |
- clipboardPasteAction:"insert", // insert, update, replace |
|
| 74 |
+ clipboardPasteAction:"update", // insert, update, replace |
|
| 75 | 75 |
clipboardPasteParser: function(clipboard) {
|
| 76 |
- |
|
| 77 |
- // clipboard 기능 |
|
| 78 |
- var rows = clipboard.split('\n').map(row => row.split(/[\t,]+/).map(cell => cell.trim()));
|
|
| 79 |
- console.log('rows : ', rows);
|
|
| 80 |
- var tableData = rows.map(row => {
|
|
| 81 |
- return {
|
|
| 82 |
- A: row[0] || "", |
|
| 83 |
- B: row[1] || "", |
|
| 84 |
- C: row[2] || "", |
|
| 85 |
- D: row[3] || "", |
|
| 86 |
- E: row[4] || "", |
|
| 87 |
- F: row[5] || "", |
|
| 88 |
- G: row[6] || "" |
|
| 89 |
- }; |
|
| 90 |
- }); |
|
| 91 |
- return tableData; |
|
| 92 |
- }, |
|
| 76 |
+ /*console.log('clipboard: ', clipboard); // 클립보드의 원본 내용 확인
|
|
| 77 |
+ |
|
| 78 |
+ var rows = clipboard.split('\n').map(row => {
|
|
| 79 |
+ var cells = row.split(/[\t,]+/).map(cell => cell.trim()); |
|
| 80 |
+ return cells; |
|
| 81 |
+ }).filter(row => Array.isArray(row) && row.some(cell => cell !== "")); |
|
| 82 |
+ |
|
| 83 |
+ console.log('파싱된 rows: ', rows); // 파싱된 행 데이터 확인
|
|
| 84 |
+ |
|
| 85 |
+ var tableData = rows.map(row => {
|
|
| 86 |
+ return {
|
|
| 87 |
+ A: row[0] || "", |
|
| 88 |
+ B: row[1] || "", |
|
| 89 |
+ C: row[2] || "", |
|
| 90 |
+ D: row[3] || "", |
|
| 91 |
+ E: row[4] || "", |
|
| 92 |
+ F: row[5] || "", |
|
| 93 |
+ G: row[6] || "" |
|
| 94 |
+ }; |
|
| 95 |
+ }); |
|
| 96 |
+ |
|
| 97 |
+ console.log('새로 추가될 데이터: ', tableData); // 추가될 데이터 확인
|
|
| 98 |
+ |
|
| 99 |
+ // 기존 테이블 데이터를 가져와서 병합 |
|
| 100 |
+ var existingData = $tableClip.getData(); // 기존 데이터를 가져옴 |
|
| 101 |
+ console.log('기존 : ', existingData);
|
|
| 102 |
+ var combinedData = existingData.concat(tableData); // 기존 데이터에 새로운 데이터 추가 |
|
| 103 |
+ console.log('병합 : ', combinedData);
|
|
| 104 |
+ |
|
| 105 |
+ return combinedData; // 병합된 데이터를 반환하여 기존 데이터 아래에 추가되도록 함 |
|
| 106 |
+*/ }, |
|
| 93 | 107 |
columns: [ |
| 94 | 108 |
{formatter: "rowSelection", titleFormatter: "rowSelection", clipboard: false, hozAlign: "center", headerHozAlign: "center", headerSort: false, cellClick: function(e, cell) {
|
| 95 | 109 |
cell.getRow().toggleSelect(); |
| 96 | 110 |
}}, |
| 97 |
- {title:"A", field:"A", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]},
|
|
| 111 |
+ {formatter:"rownum", align:"center" ,title:"No", hozAlign:"center", headerHozAlign:"center", width:40},
|
|
| 112 |
+ {title:"A", field:"A", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]},
|
|
| 98 | 113 |
{title:"B", field:"B", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]},
|
| 99 | 114 |
{title:"C", field:"C", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]},
|
| 100 | 115 |
{title:"D", field:"D", hozAlign:"center", headerHozAlign: "center", width:125, validator:["maxLength:100", "string"]},
|
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?