161 lines
4.6 KiB
JavaScript
161 lines
4.6 KiB
JavaScript
/*
|
|
* @Overview 팝업 생성
|
|
* @Function 다가오는 공정
|
|
* 재사용 불가 Tb_oper 사용
|
|
*/
|
|
|
|
class CreateMonitor {
|
|
constructor(options) {
|
|
const {
|
|
container,
|
|
fields,
|
|
columns,
|
|
selectKey,
|
|
mode,
|
|
setFilter,
|
|
} = options;
|
|
|
|
this.container = container;
|
|
this.fields = fields;
|
|
this.columns = columns;
|
|
this.selectKey = selectKey;
|
|
this.mode = mode;
|
|
|
|
// 콜백 함수
|
|
this.setFilter = setFilter;
|
|
}
|
|
|
|
init() {
|
|
vnLoad('', this.container, '', (loadHtml) => {
|
|
this.modal = kuls_modal(loadHtml);
|
|
this.setSelectOption();
|
|
|
|
|
|
//컬럼 공통 규칙
|
|
const commonFieldData = {
|
|
vertAlign: "middle",
|
|
hozAlign: "center",
|
|
resizable: "header",
|
|
headerHozAlign: "center",
|
|
headerSortTristate: true,
|
|
};
|
|
|
|
// 테이블 생성
|
|
this.tbModal = new Tabulator(".awn-popup-confirm .hy-table", {
|
|
layout: "fitColumns",
|
|
columns: this.fields, //컬럼 설정
|
|
columnDefaults: commonFieldData,
|
|
headerSortElement: "<i class='bi'></i>", //정렬 아이콘
|
|
});
|
|
|
|
this.textSearch = document.querySelector("#awn-popup-wrapper [name=stxt]") || false;
|
|
const selectSearch = document.querySelector("#awn-popup-wrapper [name=sgrp]") || false;
|
|
|
|
|
|
// popup.js의 createPopup 클래스와의 다른부분 (Tb_oper인 테이블이 있어야한다. 즉, 재사용xx)
|
|
if (this.textSearch) {
|
|
this.textSearch.value = Tb_oper.tbList.getSelectedData()[0]?.OP_CD // 공정코드 랜딩
|
|
this.textSearch.addEventListener("keyup", () => { //검색어 입력 이벤트
|
|
this.setFilter(this.tbModal);
|
|
});
|
|
}
|
|
|
|
if (this.selectKey) {
|
|
selectSearch.addEventListener("change", () => { //영업분류 변경 이벤트
|
|
this.setFilter(this.tbModal);
|
|
});
|
|
}
|
|
|
|
// 테이블 리스트 렌더링
|
|
this.tbModal.on("tableBuilt", () => { //초기 데이터 불러오기 이벤트
|
|
this.getPopList();
|
|
});
|
|
|
|
|
|
})
|
|
// vnload 끝
|
|
|
|
}
|
|
|
|
// 선택태그 옵션 생성
|
|
setSelectOption() {
|
|
// 선택태그 있으면
|
|
if (this.selectKey) {
|
|
const selectTag = document.querySelector('#sgrp');
|
|
selectTag.options.length = 0;
|
|
const opt = createOpt('', '- 전 체 -')
|
|
selectTag.add(opt);
|
|
|
|
Object.keys(this.selectKey).forEach(key => {
|
|
selectTag.add(createOpt(key, this.selectKey[key]));
|
|
});
|
|
}
|
|
}
|
|
|
|
// 데이터 렌더링
|
|
getPopList() {
|
|
|
|
ajax_json({
|
|
url: "./sts_order_prod.ajax.php",
|
|
data: {mode: this.mode, OP_CD: Tb_oper.tbList.getSelectedData()[0]?.OP_CD},
|
|
success: (data) => {
|
|
if (data.code) {
|
|
this.tbModal.setData(data.data);
|
|
}
|
|
},
|
|
error: (request, status, error) => {
|
|
kuls_alert(error.message);
|
|
},
|
|
});
|
|
};
|
|
|
|
}
|
|
|
|
/*
|
|
* @Overview 다가오는 공정 리스트
|
|
*/
|
|
const popComeOper = function () {
|
|
const fields = [
|
|
{field: "WO_SEQ", formatter: "rownum", title: "No", width: 50, headerSort: false, hozAlign: 'center',},
|
|
{field: "WO_NO", title: "생산오더", width: '100', hozAlign: 'center',},
|
|
{field: "ITEM_CD", title: "품목코드", width: '80', hozAlign: 'center',},
|
|
{field: "ITEM_NM", title: "품목명", width: '180', hozAlign: 'left',},
|
|
{field: "BP_NM", title: "업체명", width: '120', hozAlign: 'left',},
|
|
{field: "PROC_SEQ", title: "작업순서", width: '60',},
|
|
{field: "ORD_DT", title: "등록일", width: '100',},
|
|
{field: "DLVY_REQ_DT", title: "납기일", width: '100',},
|
|
{field: "ORD_STATUS", title: "상태", width: '80', formatter: tb_common_funtions.formatterSelect, formatterParams: {values: varsWO_STATUS,}},
|
|
];
|
|
// 공정 필드 넣기
|
|
for(let i = 1; i<15; i++){
|
|
if(i > 9){
|
|
fields.push({field: `G${i}`, title: `공정 <br>${i}`, width: '40', hozAlign: 'center',
|
|
formatter: tb_custom_formatter.status,
|
|
formatterParams: { selectValue: Tb_oper.tbList.getSelectedData()[0]?.OP_CD }
|
|
})
|
|
|
|
}else{
|
|
fields.push({field: `G0${i}`, title: `공정 <br>${i}`, width: '40', hozAlign: 'center',
|
|
formatter: tb_custom_formatter.status,
|
|
formatterParams: { selectValue: Tb_oper.tbList.getSelectedData()[0]?.OP_CD }
|
|
})
|
|
|
|
}
|
|
};
|
|
|
|
// 비고 필드 넣기
|
|
const Tb_modal = new CreateMonitor({
|
|
container: '/ksvc/site/sts_order_prod/popComponent/comingOper.php',
|
|
fields: fields,
|
|
selectKey: '',
|
|
mode: "getComingOper",
|
|
setFilter: false,
|
|
});
|
|
|
|
if(Tb_oper.tbList.getSelectedData()[0]){
|
|
Tb_modal.init();
|
|
}else{
|
|
kuls_alert("공정을 선택해주세요.")
|
|
}
|
|
|
|
} |