/* * @Overview 설비 관리 대장 */ let file = ""; class Tb_main_class { constructor(container) { let _this = this; _this.ajaxUrl = "./facility.ajax.php"; _this.clickData = ""; _this.file = ""; this.container = document.querySelector(container); this.table = this.container.querySelector(".hy-table"); // this.upBtn = this.container.querySelector(".up-btn") || ""; // this.downBtn = this.container.querySelector(".down-btn") || ""; this.addBtn = this.container.querySelector(".add-btn"); this.removeBtn = this.container.querySelector(".remove-btn"); // _this.FACLT_CD_Vaule =document.querySelector("form #FACLT_CD").value; _this.tbList = ""; } // tableBuild 되었을때 getManList getMainList() { let _this = this; let talert = window.setTimeout(() => { this.tbList.alert("Loading ..."); }, 1000); ajax_json({ url: _this.ajaxUrl, data: { mode: "getFacilityList" }, success: (data) => { this.tbList.setData(data.data); }, error: (req, status, err) => { kuls_alert(err.message); }, complete: () => { window.clearTimeout(talert); this.tbList.clearAlert(); // this.setFilter(); }, }); } putFacility() { let formData = new FormData(form); let _this = this; let postdata = ""; let selectData = _this.tbList.getSelectedData(); // 선택 데이터 let statFilterData = _this.tbList.getData().filter((row) => row._STATUS_); //Status가 존재하는 데이터 // 선택 데이터가 존재하고 row.status가 존재하지 않는 데이터 => if (selectData.length === 1 && statFilterData.length === 0) { postdata = { mode: "setFacility", reqdata: JSON.stringify([this.editRow()]), //오른쪽 form 데이터 통해 생성된 가상의 ROW file: file, }; } else { postdata = { mode: "putFacility", reqdata: JSON.stringify(statFilterData), file: file, }; } ajax_form({ url: _this.ajaxUrl, type: "POST", data: JSON.stringify(postdata), success: function (data) { if (data.code !== "0") { kuls_success("적용 되었습니다."); _this.getMainList(); } else { kuls_alert(data.msg); } }, error: function (request, status, error) { kuls_alert(error.message); }, complete: function () { _this.getMainList(); // _this.formInit(); }, }); } // formInit = () => { // var form = document.getElementById("form"); // var inputs = form.getElementsByTagName("input"); // for (var i = 0; i < inputs.length; i++) { // inputs[i].value = ""; // } // document.getElementById("FACLT_CD").readOnly = false; // }; setFilter() {} /* * @Overview 테이블 행 추가 함수 * @Parameter 없음 * @function 기본키, _STATUS_:I 값을 넣은 행 추가 */ addRow() { var form = document.getElementById("form"); let temdata = new FormData(form); let newdata = Object.fromEntries(temdata); //form데이터 newdata["_STATUS_"] = "I"; this.tbList.addRow(newdata); } /* * @Overview 팝업 오픈 * @Parameter 설비 추가 및 수정 */ modalPartner(rowData){ let _this = this; vnLoad("", "./facility_pop.inc.php", "", function (loadHtml) { _this.putPartnerModal = kuls_modal(loadHtml); // document.querySelector(".btn_close").addEventListener("click", ()=>_this.putpartnerModal.delete()); Tb_repair.init(rowData); }); }; editRow() { var form = document.getElementById("form"); let temdata = new FormData(form); let newdata = Object.fromEntries(temdata); //form데이터 console.log(newdata); newdata["_STATUS_"] = "U"; return newdata; } /* * @Overview 테이블 행 삭제 함수 * @Parameter 없음 * @function 선택된 모든 행 삭제 */ removeRow() { const selectedRows = this.tbList.getSelectedRows(); // 선택된 모든 행 가져오기 // 선택된 각 행 삭제 selectedRows.forEach((row) => { // STAUS D로 바꾸기 row.getData()._STATUS_ = row.getData()._STATUS_=="I"?null:"D"; const rowElement = row.getElement(); rowElement.classList.add("remove-row"); }); } //거래처등록 사진 업로드 putTempFile(file){ let _this = this; console.log(file); let formData = new FormData(); formData.append('upfile', file); formData.append('mode', "putTempFile"); jQuery.ajax({ url: _this.ajaxUrl, type: 'POST', data: formData, contentType: false, processData: false, success: (data)=>{ if(data.code !== "0") { kuls_success("적용 되었습니다."); let fdata = JSON.parse(data).data; let FILE_NAME = fdata['file_name']; let TMP_NAME = fdata['tmp_name']; let FILE_SIZE = fdata['file_size']; let FILE_TYPE = fdata['file_type']; _this.tbList.addRow({ _STATUS_:'I', // nid:_this.parData['SO_NO'], // sid:_this.parData['SO_SEQ'], FILE_NAME, TMP_NAME, FILE_SIZE, FILE_TYPE, gubun:'temp', }); console.log(_this.tbList.getData()); }else{ // this.tbList.getRows().forEach(row =>{ // if(data.data.includes(row.getData()['BIZ_AREA_CD'])){ // row.updata({_STATUS_:"U"}); // } // }); kuls_alert(data.msg); } }, error: (req, stat, err) => { kuls_alert(err.message); }, }); return true; } putFile(){ let _this = this; console.log("testFile"); if(this.tbList.getData().filter(row=> row._STATUS_).length == 0){ this.getMainList(); return false; } // const curdata = this.tbList.getData(); // // BIZ_AREA_CD 사번 // const dubbleDataCheck = curdata.map( data => data.DRAW_NO && data.DRAW_VER).filter(Boolean); // const noDubbleData = new Set(dubbleDataCheck); // if(noDubbleData.size !== dubbleDataCheck.length){ // kuls_alert("ㄴ"); // return false; // }; let rowData = this.tbList.getData().filter(row => row._STATUS_) // _STATUS_ 있는 데이터만 들고와서 PUT하기 const postData = { 'mode':'putImage', 'reqdata': JSON.stringify(rowData), }; ajax_json({ url: _this.ajaxUrl, data:postData, success: (data)=>{ if(data.code !== "0") { kuls_success("적용 되었습니다."); _this.getMainList(); }else{ // this.tbList.getRows().forEach(row =>{ // if(data.data.includes(row.getData()['BIZ_AREA_CD'])){ // row.updata({_STATUS_:"U"}); // } // }); kuls_alert(data.msg); } }, error: (req, stat, err) => { kuls_alert(err.message); }, }); return true; } /* * @Overview 테이블 행 순서 변경 함수 * @Parameter 방향 * @function 선택된 모든 행 순서 변경 */ upDownRow(dir) {} // 클릭 이벤트 rowClick(e, tgt) { let _this = this; if (tgt.isSelected()) { tgt.select(); // 삭제가 가능하도록 ROW SELECT let rowData = tgt._row.data; //row 클릭 시 rowData 설비에 입력 현재 MAPPING 하지 않은 상태 let { EDIT_USER_ID, EDIT_TM, FACLT_SPEC, INTNL_USE_DEPT_CD, INTNL_USE_DEPT_NM, MAJR_EMP_NM, MAKER_NM, MAKE_TM, MAKE_USER_ID, MINR_EMP_NM, PURPOS_USAGE, PUR_BP_NM, PUR_DT, PUR_PRSN_NM, PUR_REPRE_NM, PUR_TEL_NO, MANUL_FLG, USE_FLG, WRK_TEAM, ...otherData } = rowData; // for (let temp in otherData) { // if (document.getElementById(`${temp}`).value !== null) { // document.getElementById(`${temp}`).value = rowData[temp] ?? ""; // } // } // document.getElementById("FACLT_CD").readOnly = true; // Tb_process_info.getMainList(); } else { tgt.deselect(); // _this.formInit(); } //추후 수정 // const output = document.querySelector('.img-box'); // output.innerHTML = ` // 이미지 파일이 존재하지 않습니다 //
// //
// ` } /* * @Overview 테이블 행 더블 클릭시에 팝업----------------------------마무리안함!!!!!!!!!!! * @Parameter 이벤트, 타겟 행 */ rowDblClick = (e, tgt) => { // popClientEditor({ // // },tgt) let _this = this; let row = tgt._row; _this.modalPartner(row.data); }; cellClick(e, tgt) { // // 체크박스 클릭 // switch (tgt.getField()) { // case "현장직 필드명": // tgt.setValue(tgt.getValue() == "Y" ? null : "Y"); // break; // case "외주 필드명": // tgt.setValue(tgt.getValue() == "Y" ? null : "Y"); // break; // case "외주처 필드명": // // 팝업 열기(common이나 다른 파일에 팝업 함수 정의하고, html(popup.inc.php)만들기?) // break; // } } // 셀 수정 cellEdited(cell) { cell.getData()._STATUS_ = cell.getData()._STATUS_ || "U"; } putData() { // 기본키 중복 확인 및 방지 // _STATUS_ 있는 데이터만 들고와서 PUT하기 } previewImage = (event) => { for (var image of event.target.files) { var reader = new FileReader(); reader.onload = function (event) { var img = document.createElement("img"); img.setAttribute("src", event.target.result); document.querySelector("div#image_container").appendChild(img); }; reader.readAsDataURL(image); } }; /* * @Overview 최초 실행 함수 * @Parameter 없음 */ init() { let _this = this; // field 정의 const fields = [ { formatter: "rownum", title: "NO", width: 50 }, { field: "FACLT_CD", title: "설비코드", width: 100 }, { field: "FACLT_NM", title: "설비명", width: 150 }, //formatter : 숫자 EA { field: "WRK_TEAM", title: "소속", width: 100 }, ]; const commonFieldData = { headerSort: false, vertAlign: "middle", hozAlign: "center", resizable: "header", //Resize 는 헤더에서만 가능 headerHozAlign: "center", //헤더 정렬 headerSortTristate: true, //데이터 정렬 => 정/역/초기화 }; _this.tbList = new Tabulator(this.table, { layout: "fitColumns", selectableRows: 1, data: [], //기본 데이터 columns: fields, //컬럼 설정 columnDefaults: commonFieldData, }); // 데이터 불러오기 this.tbList.on("tableBuilt", () => { this.getMainList(); }); // row 클릭 시에 this.tbList.on("rowClick", (e, tgt) => { this.rowClick && this.rowClick(e, tgt); }); // row 클릭 시에 this.tbList.on("rowDblClick", (e, tgt) => { this.rowDblClick && this.rowDblClick(e, tgt); }); // cell 클릭 시에 this.tbList.on("cellClick", (e, tgt) => { this.cellClick && this.cellClick(e, tgt); }); // cell 수정 시에 this.tbList.on("cellEdited", (cell) => { this.cellEdited && this.cellEdited(cell); }); function tabWork(elementId, className) { var element = document.getElementById(elementId); if (!element || !element.classList) { return false; } return element.classList.contains(className); } // 추가 ["click", "keypress"].forEach((evt) => { this.addBtn.addEventListener(evt, () => { this.addRow && this.addRow(); }); }); // 삭제 ["click", "keypress"].forEach((evt) => { this.removeBtn.addEventListener(evt, () => { // 삭제 함수 this.removeRow && this.removeRow(); }); }); // 조회 ["click", "keypress"].forEach((evt) => { const filterBtn = document.querySelector("#filter_btn"); filterBtn.addEventListener(evt, () => { // setFilter 또는 setData }); }); // 저장 ["click", "keypress"].forEach((evt) => { let _this = this; const putBtn = document.querySelector("#put_item"); putBtn.addEventListener(evt, () => { // let base64String = document.getElementsByClassName("img-box")[0].outerHTML; // let firstSlice = base64String.indexOf("base64,")+1; // `=" alt` // console.log(base64String.substring(sliceLocation,)); let base64String = document.getElementsByClassName("img-box")[0].outerHTML; let firstSlice = base64String.indexOf("base64,") + 7; let lastSlice = base64String.indexOf('" alt='); file = base64String.substring(firstSlice, lastSlice); //탭 선택 따라 구분 동작 if (tabWork("first-tab", "on")) { _this.putFacility && _this.putFacility(); } else { Tb_process_info.putProcess && Tb_process_info.putProcess(); } }); }); } } class Tb_sub_class_2 { constructor(container) { let _this = this; this.ajaxUrl = "./facility.ajax.php"; this.container = document.querySelector(container); this.table = this.container.querySelector(".hy-table"); // this.upBtn = this.container.querySelector(".up-btn") || ""; // this.downBtn = this.container.querySelector(".down-btn") || ""; this.addBtn = this.container.querySelector(".add-btn"); this.removeBtn = this.container.querySelector(".remove-btn"); _this.tbList = ""; } // tableBuild 되었을때 getManList getMainList() { const selectData = Tb_facility.tbList.getSelectedData()[0]?.FACLT_CD; // console.log(Tb_facility.tbList.getSelectedData()[0]); //FACLT_CD : Tb_facility.selectRowgetSelectedData()[0].FACLT_CD let _this = this; let talert = window.setTimeout(() => { this.tbList.alert("Loading ..."); }, 1000); ajax_json({ url: this.ajaxUrl, data: { mode: "getprocess", FACLT_CD: selectData }, success: (data) => { _this.tbList.setData(data.data); }, error: (req, status, err) => { kuls_alert(err.message); }, complete: () => { window.clearTimeout(talert); this.tbList.clearAlert(); // this.setFilter(); }, }); } putProcess() { let formData = new FormData(form); let _this = this; let postdata = { mode: "putProcess", reqdata: JSON.stringify( _this.tbList.getData().filter((row) => row._STATUS_) ), }; ajax_form({ url: _this.ajaxUrl, type: "POST", data: JSON.stringify(postdata), success: function (data) { if (data.code) { kuls_success("적용 되었습니다."); //_this.getRepairInfo(formdata.get("FACLT_CD")); // Tb_funcs.putFacilityModal.delete(); _this.getMainList(); } else { kuls_alert(data.mesg); } }, error: function (request, status, error) { console.log(request); console.log(err); kuls_alert(error.message); }, complete: function () {}, }); } setFilter() {} /* * @Overview 테이블 행 추가 함수 * @Parameter 없음 * @function 기본키, _STATUS_:I 값을 넣은 행 추가 */ addRow() { this.tbList.addRow({ FACLT_CD: Tb_facility.tbList.getSelectedData()[0].FACLT_CD, _STATUS_: "I", }); } /* * @Overview 테이블 행 삭제 함수 * @Parameter 없음 * @function 선택된 모든 행 삭제 */ removeRow() { const selectedRows = this.tbList.getSelectedRows(); // 선택된 모든 행 가져오기 // 선택된 각 행 삭제 selectedRows.forEach((row) => { // STAUS D로 바꾸기 row.getData()._STATUS_ = row.getData()._STATUS_=="I"?null:"D"; const rowElement = row.getElement(); rowElement.classList.add("remove-row"); }); } /* * @Overview 테이블 행 순서 변경 함수 * @Parameter 방향 * @function 선택된 모든 행 순서 변경 */ upDownRow(dir) {} // 클릭 이벤트 rowClick(e, tgt) { // 삭제가 가능하도록 ROW SELECT // staus D로 바꾸기? } cellClick(e, tgt) { // // 체크박스 클릭 // switch (tgt.getField()) { // case "현장직 필드명": // tgt.setValue(tgt.getValue() == "Y" ? null : "Y"); // break; // case "외주 필드명": // tgt.setValue(tgt.getValue() == "Y" ? null : "Y"); // break; // case "외주처 필드명": // // 팝업 열기(common이나 다른 파일에 팝업 함수 정의하고, html(popup.inc.php)만들기?) // break; // } } // 셀 수정 cellEdited(cell) { cell.getData()._STATUS_ = cell.getData()._STATUS_ || "U"; } putData() { // 기본키 중복 확인 및 방지 // _STATUS_ 있는 데이터만 들고와서 PUT하기 } /* * @Overview 최초 실행 함수 * @Parameter 없음 */ init() { // field 정의 const fields = [ { formatter: "rownum", title: "NO", width: 50 }, { field: "OP_CD", title: "공정코드", width: 200, editor: "input", editable: (cell) => { let val = cell.getData(); return val._STATUS_ === "I"; }, }, { field: "OP_NM", title: "공정명", width: 200, editor: "input" }, { field: "USE_FLG", title: "사용", width: 50, editor: "input" }, { field: "REMK", title: "비고", width: 300, editor: "input" }, ]; const commonFieldData = { headerSort: false, vertAlign: "middle", hozAlign: "center", resizable: "header", //Resize 는 헤더에서만 가능 headerHozAlign: "center", //헤더 정렬 headerSortTristate: true, //데이터 정렬 => 정/역/초기화 }; this.tbList = new Tabulator(this.table, { layout: "fitColumns", selectableRows: true, data: [], //기본 데이터 columns: fields, //컬럼 설정 columnDefaults: commonFieldData, }); // 데이터 불러오기 this.tbList.on("tableBuilt", () => { // this.getMainList(); }); // row 클릭 시에 this.tbList.on("rowClick", (e, tgt) => { this.rowClick && this.rowClick(e, tgt); }); // cell 클릭 시에 this.tbList.on("cellClick", (e, tgt) => { this.cellClick && this.cellClick(e, tgt); }); // cell 수정 시에 this.tbList.on("cellEdited", (cell) => { this.cellEdited && this.cellEdited(cell); }); // 추가 ["click", "keypress"].forEach((evt) => { this.addBtn.addEventListener(evt, () => { // Tb_facility.addRow(); this.addRow && this.addRow(); }); }); // 삭제 ["click", "keypress"].forEach((evt) => { this.removeBtn.addEventListener(evt, () => { // 삭제 함수 this.removeRow && this.removeRow(); }); }); } } /* * @Overview 팝업 클래스 * @Parameter 없음 */ class facility_Pop_class{ constructor() { let _this = this; _this.ajaxUrl = "./partner.ajax.php"; _this.putOrSet = ""; _this.tblList = ""; } /* * @Overview 팝업 input 데이터 바인딩 * @Parameter 테이블에서 선택한 데이터 정보 */ getPartnerInfo = (rowData)=>{ let _this = this; let BP_CD = rowData?.BP_CD; let PUR_FLG = rowData?.PUR_FLG; let SAL_FLG = rowData?.SAL_FLG; let USE_FLG = rowData?.USE_FLG; // if(!rowData.BP_CD){ // BP_CD = rowData.BP_CD; // }else { // BP_CD =""; // } if(BP_CD) { //거래처 코드 있는 경우 => 수정 시 // _this.putOrSet = Tb_Partner.setPartner; document.getElementById("BP_CD").readOnly = true; _this.putOrSet = "set"; }else if(!BP_CD){ document.getElementById("BP_CD").readOnly = false; _this.putOrSet = "put"; return false; } let talert = window.setTimeout(function () { _this.tblList.alert("Loading ...") }, 1000); //1초 이상 지연되면 로딩 출력 ajax_json({ url: _this.ajaxUrl, data: { mode: 'getBPInfo', BP_CD : BP_CD, PUR_FLAG:PUR_FLG ,SAL_FLAG: SAL_FLG, USE_FLG: USE_FLG }, success: function (data) { console.log(data.data); if (data.code) { _this.tblList.setData(data.data.prsn); //팝업창 오픈 시 거래처 담당자 const {prsn, ...getData} = data.data; //거래처 담당자 제외 for(const dataName in getData){ if(dataName === "PUR_FLAG"||dataName ==="SAL_FLAG" ){ document.getElementById(`${dataName}`).checked = getData[dataName] == "Y" ? true :false ; }else{ document.getElementById(`${dataName}`).value = getData[dataName]; //input 태그에 가져온 데이터 위치 } // console.log(document.getElementById(`${dataName}`)); } // console.log(document.getElementById(`BP_NM`).value); }else{ kuls_alert(data.mesg); } }, error: function (request, status, error) { kuls_alert(error.message); }, complete: function () { window.clearTimeout(talert); _this.tblList.clearAlert(); // _this.setFilter(); } }); return true; } /* * @Overview 팝업 데이터 INSERT 함수 * @Parameter 없음/테이블 상 수정 또는 삭제되어 상태 변화된 ROW는 요청 후 PHP 상에서 가공 처리 */ putPartnerInfo = (e)=>{ e.preventDefault(); let _this = this; _this.formdata = form2Json(document.frmPartner); // _this.formdata['putOrSet'] = _this.putOrSet; let postdata = _this.tblList.getData().reduce( (nrow, mem, i) => { mem._STATUS_ && nrow.push({...mem}); return nrow; }, [] ); _this.formdata['PUR_FLAG'] = document.getElementById("PUR_FLG").checked?"Y":"N"; _this.formdata['SAL_FLAG'] = document.getElementById("SAL_FLG").checked?"Y":"N"; _this.formdata['PRSN'] = JSON.stringify(postdata); _this.formdata['mode'] = "putBPInfo"; _this.formdata['putOrSet'] = _this.putOrSet;// 수정 : set, 등록 : put 백에서 처리 console.log(_this.formdata); // console.log(postdata); ajax_json({ url: _this.ajaxUrl, // type: "POST", data: _this.formdata, success: function (data) { if( data.code ){ kuls_success("적용 되었습니다."); Tb_Partner.putPartnerModal.delete(); Tb_Partner.getMainList(); }else { kuls_alert(data.msg); } }, error: function (request, status, error) { kuls_alert(error.message); }, complete: function(){ } }); } /* * @Overview 삭제 버튼 클릭 후 상태 변화 * @Parameter 없음 */ removeRow = ()=> { let _this = this; const selectedRows = _this.tblList.getSelectedRows(); // 선택된 모든 행 가져오기 // 선택된 각 행 삭제 selectedRows.forEach((row) => { // STAUS D로 바꾸기 row.getData()._STATUS_ = row.getData()._STATUS_=="I"?null:"D"; const rowElement = row.getElement(); rowElement.classList.add("remove-row"); }); let postdata = _this.tblList.getData().reduce( (nrow, mem, i) => { // 상태 변화 있는 ROW에 대하여 변수 대입 mem._STATUS_ && nrow.push({...mem}); return nrow; }, [] ); _this.removeData = postdata; } /* * @Overview 선택한 ROW의 정보 또는 상태 변화에 활용하는 함수 * @Parameter 클릭한 row 데이터 */ rowClick = (e, tgt)=> { if (tgt.isSelected()) { tgt.deselect(); } else { let _this = this; tgt.select(); } } /* * @Overview 선택한 CELL의 정보 또는 상태 변화에 활용하는 함수 * @Parameter 클릭한 CELL 데이터 */ cellClick = (e, tgt)=> { var editor = tgt.getColumn().getDefinition().editor; //에디터 속성을 가진 컬럼 변수(컬럼에 editor : input 을 부여하면 수정 가능해진다) switch (tgt.getField()) { case "check": tgt.setValue(tgt.getValue() == "Y" ? "" : "Y"); this.clearRemove(tgt.getRow()) break; default: if (!editor) { this.rowClick && this.rowClick(e, tgt.getRow()); } break; } } init = (rowData) => { let _this = this; const fields = [ { formatter:"rownum", title: "No", width: 50, headerSort: false, hozAlign:'center', }, { field: "BP_PRSN_NM", title: "담당자명", width: 100, editor:"input", editable: (cell) => { const val = cell.getData(); return val._STATUS_ === "I"; },}, { field: "BP_PRSN_EMAIL", title: "이메일", width: 200, editor:"input", }, { field: "BP_PRSN_TEL_NO", title: "연락처", width: 150,editor:"input", }, { field: "BP_PRSN_CELL_NO", title: "휴대폰", width: 150, editor:"input",}, { field: "BP_PRSN_FAX_NO", title: "FAX NO", width: 150, editor:"input",}, { field: "REMK", title: "비고", width: 300,editor:"input", }, // { field: "", title: "메인", width: 50, formatter: tb_common_funtions.formatterCheckIcon2, formatterParams: {checkval:'Y'}}, ]; _this.tblList = new Tabulator("#tbl_partner_member",{ layout: "fitColumns", data: [], //기본 데이터 height: "100%", columns: fields, //컬럼 설정 columnDefaults: { //컬럼 공통 규칙 vertAlign: "middle", hozAlign: "center", resizable: "header",//Resize 는 헤더에서만 가능 headerHozAlign: "center", //헤더 정렬 headerSortTristate: true, //데이터 정렬 => 정/역/초기화 }, headerSortElement: "", //정렬 아이콘 }); _this.tblList.on("cellEdited", function(cell) { //Tabulator 초기 데이터 불러오기 이벤트 cell.getData()._STATUS_ = cell.getData()._STATUS_||'U'; }); _this.tblList.on("rowDeselected", (row) => { //Tabulator cell Deslected _this.revokeData && _this.revokeData(row); }); _this.tblList.on("tableBuilt", function(){ //Tabulator 초기 데이터 불러오기 이벤트 _this.getPartnerInfo(rowData); }); _this.tblList.on("cellClick", (e,tgt) => { this.cellClick && this.cellClick(e,tgt); }); /* * @Overview 행 추가 이벤트 * @Parameter 없음 */ ["click", "keypress"].forEach((evt) => { let _this = this; const addBtn = document.querySelector("#awn-popup-wrapper .add-btn") || ""; addBtn.addEventListener(evt, () => { _this.tblList.addRow({ _STATUS_:'I', USE_FLG:'Y'}); }); }); // 삭제 ["click", "keypress"].forEach((evt) => { let _this = this; const removeBtn = document.querySelector("#awn-popup-wrapper .remove-btn") || ""; removeBtn.addEventListener(evt, () => { // 삭제 함수 this.removeRow && this.removeRow(); }); }); /* * @Overview 거래처 정보 저장 * @Parameter 없음 * @function FORM 태그로 SERVER 요청 */ document.querySelector("form[name=frmPartner]").addEventListener("submit", Partner_Pop.putPartnerInfo); }; } const Tb_facility = new Tb_main_class("#main_table"); Tb_facility.init(); const Tb_process_info = new Tb_sub_class_2("#sub_table_2"); Tb_process_info.init(); const Tb_repair = new facility_Pop_class("#modal_table"); Tb_repair.init(); /* * @Overview form 이미지 등록/수정 및 미리 보기 * @Parameter event */ function previewImage(event) { let _this = this; const reader = new FileReader(); reader.onload = function () { const output = document.querySelector(".img-box"); output.innerHTML = ` 이미지 파일이 존재하지 않습니다
`; // 이미지 미리보기 설정 }; reader.readAsDataURL(event.target.files[0]); // file = event.target.files[0]; Tb_facility.putTempFile(); // console.log(event.target.files[0]); } /* * @Overview form 이미지 및 미리 보기 삭제 * @Parameter 없음 */ function removeImage() { // 입력된 파일 정보 지우기 // const inputBtn = document.querySelector("#file_input"); // inputBtn.value = ""; // 이미지 미리보기 제거 const output = document.querySelector(".img-box"); output.innerHTML = ""; } uploadFile=()=> { document.getElementById('file_input').click(); } document.getElementById('file_input').addEventListener('change', function() { // 파일 정보 가져오기 var file = this.files[0]; // Tb_pic.file = file; Tb_facility.putTempFile(file); }); function image(event) { previewImage(event); // 이미지 미리보기 uploadFile(); // 파일 업로드 }