1
0
Fork 0
HANYANG_MES/home_dir/www/ksvc/base/facility/facility.js

1002 lines
29 KiB
JavaScript

/*
* @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 = `
// <img src=" http://hypt.kuls.co.kr/home_dir/upload_files/faclt/${rowData.FACLT_CD}.png" alt="이미지 파일이 존재하지 않습니다" style="max-width: 100%; height: auto;">
// <div class="img-cover">
// <input type="submit" value="삭제" class="btn-danger" onClick="removeImage()" />
// </div>
// `
}
/*
* @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: "<i class='bi'></i>", //정렬 아이콘
});
_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 = `
<img src="${reader.result}" alt="이미지 파일이 존재하지 않습니다" style="max-width: 100%; height: auto;">
<div class="img-cover">
<input type="submit" value="삭제" class="btn-danger" onClick="removeImage()" />
</div>
`; // 이미지 미리보기 설정
};
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(); // 파일 업로드
}