1
0
Fork 0
This commit is contained in:
sychoi 2024-05-02 08:42:51 +09:00
parent 7314c3994d
commit ed862562da
6 changed files with 410 additions and 11 deletions

View File

@ -8,8 +8,8 @@
</div> </div>
<div class="input-box flex-1"> <div class="input-box flex-1">
<label for="">설비</label> <label for="">공정</label>
<input v-model="formData.FACLT_CD" type="text" id="" name="" class="form-control form-control-sm" /> <input v-model="formData.OP_CD" type="text" id="" name="" class="form-control form-control-sm" />
</div> </div>
</div> </div>

View File

@ -0,0 +1,61 @@
<?php
include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
?>
<!-- file upload popup <첨부파일 등록> -->
<!-- 첨부파일 등록 팝업 -->
<div id="popup_file_upload">
<div class="awn-popup-confirm awn-partner custom-popup">
<div class="awn-popup-title"><i class="bi bi-card-heading"></i> 작업표준서</div>
<div class="awn-popup-search mb-block btn-ksmain-inject-block">
<!-- <div class="s_exp"> 더블클릭으로 선택/반영 합니다.</div>-->
<div class="s_fld form-inline d-block">
<!-- <label for="sgrp">오더번호: </label>
<select id="sgrp" name="sgrp" class="form-control form-select w100">
</select> -->
<!-- <label for="stxt">오더번호: </label>-->
<!-- <input type="text" class="form-control d-inline w120 align-bottom">-->
<!-- <label for="stxt">공정: </label>-->
<!-- <input type="text" name="stxt" id="stxt" class="form-control d-inline w120 align-bottom">-->
<!-- |
<button type="button" id="ptReset" class="btn btn-danger">
<i class="fa-regular fa-window-restore"></i>
초기화
</button> -->
</div>
</div>
<div class="awn-popup-content" style="padding: 10px 10px;">
<div class="table-box flex-1" id="main_table">
<!-- 테이블 헤더 (제목, 추가, 삭제, 저장) -->
<div class="table-title">
<p class="tilte"></p>
<!-- 버튼 -->
<!-- <div class="button-box">-->
<!-- <button class="add-btn reverse-btn">-->
<!-- --><?php //include _SVC_INC_PATH_ . '/img/add.php' ?>
<!-- 추가-->
<!-- </button>-->
<!-- <button class="remove-btn reverse-btn">-->
<!-- --><?php //include _SVC_INC_PATH_ . '/img/delete.php' ?>
<!-- 삭제-->
<!-- </button>-->
<!-- </div>-->
<!-- 버튼 종료 // -->
</div>
<!-- 테이블 헤더 종료 // -->
<!-- 테이블 -->
<div class="hy-table"></div>
<!-- 테이블 종료 // -->
</div>
<!-- 테이블 박스 종료 // -->
</div>
</div>
</div>
<!-- file upload popup <첨부파일 등록> -->
<script src="/sts_order_prod/reg_prod_result.js"></script>

View File

@ -16,7 +16,7 @@ if( !_notAuth("R") ){/************ 권한체크*/
// 가동 vs 비가동 // 가동 vs 비가동
case "getWokerInfo": case "getWokerInfo":
$sql = "USP_P_REG_PROD_RESULT_S10"; $sql = "USP_P_REG_PROD_POP_S10";
$params = array( $params = array(
'WO_NO' => $_REQUEST["WO_NO"] ?: "", 'WO_NO' => $_REQUEST["WO_NO"] ?: "",
@ -117,7 +117,68 @@ if( !_notAuth("R") ){/************ 권한체크*/
$retval['mesg'] = $_REQUEST['RS_MSG']; $retval['mesg'] = $_REQUEST['RS_MSG'];
} }
break; break;
case 'getRoutingList':
$sql = "USP_B_ROUTING_S10";
$params = Array(
"ITEM_CD" => $_REQUEST['ITEM_CD']?:"",
);
$rst = $baseObj->DB->exec($sql,$params);
$rows = array();
if( $rst ){
while( $row = $baseObj->DB->fetch_array($rst) ){
$rows[] = $row;
};
$retval['code'] = true;
$retval['data'] = $rows;
// print_r($retval['data']);
$retval['mesg'] = '정상 동작 되었습니다.';
}else{
$retval['code'] = false;
}
break;
case 'getDrawList':
$sql = "USP_B_ITEM_DRAW_S10";
$params = Array(
"ITEM_CD" => $_REQUEST['ITEM_CD'],
);
$rst = $baseObj->DB->exec($sql,$params);
$rows = array();
if( $rst ){
while( $row = $baseObj->DB->fetch_array($rst) ){
$rows[] = $row;
};
$retval['code'] = true;
$retval['data'] = $rows;
$retval['mesg'] = '정상 동작 되었습니다.';
}else{
$retval['code'] = false;
}
break;
case 'getDefHst':
$sql = "USP_P_REG_PROD_DEF_HST_S10";
$params = Array(
"ITEM_CD" => $_REQUEST['ITEM_CD'],
"OP_CD" => $_REQUEST['OP_CD']
);
$rst = $baseObj->DB->exec($sql,$params);
$rows = array();
if( $rst ){
while( $row = $baseObj->DB->fetch_array($rst) ){
$rows[] = $row;
};
$retval['code'] = true;
$retval['data'] = $rows;
$retval['mesg'] = '정상 동작 되었습니다.';
}else{
$retval['code'] = false;
}
break;
} }
} }

View File

@ -1,3 +1,8 @@
class SimpleTable { class SimpleTable {
constructor(fields, getmode, putmode, formData){ constructor(fields, getmode, putmode, formData){
// ajax // ajax
@ -202,9 +207,9 @@ class FieldPop {
tableField : { tableField : {
isDefHst : [ isDefHst : [
{ field: "DEF_NO", formatter:"rownum", title: "순번", width: 50}, { field: "DEF_NO", formatter:"rownum", title: "순번", width: 50},
{ field: "DEF_FACLT_CD", title: "설비", width: '23%'}, // { field: "OP_CD", title: "", width: '23%'},
{ field: "DEF_CD", title: "불량원인", width: '23%'}, { field: "DEF_NM", title: "불량원인", width: '23%'},
{ field: "DEF_QTY", title: "불량수량", width: '23%'}, { field: "DEF_TOT", title: "불량수량", width: '23%'},
{ field: "DEF_PRICE", title: "불량단가", width: '23%'}, { field: "DEF_PRICE", title: "불량단가", width: '23%'},
@ -212,8 +217,8 @@ class FieldPop {
isWorker : [ isWorker : [
{ field: "", formatter:"rownum", title: "순번", width: 50}, { field: "", formatter:"rownum", title: "순번", width: 50},
{ field: "", title: "실적 등록 시간", minWidth: 150, width:'26%'}, { field: "", title: "실적 등록 시간", minWidth: 150, width:'26%'},
{ field: "", title: "오더 번호", minWidth: 150, width:'25%'}, { field: "WO_NO", title: "오더 번호", minWidth: 150, width:'25%'},
{ field: "", title: "실적 수량", minWidth: 100, width:'20%', { field: "PRD_QTY", title: "실적 수량", minWidth: 100, width:'20%',
bottomCalc: "sum", bottomCalc: "sum",
bottomCalcFormatter:"money", bottomCalcFormatter:"money",
bottomCalcFormatterParams:{ decimal:".", precision:0 } bottomCalcFormatterParams:{ decimal:".", precision:0 }
@ -377,6 +382,17 @@ class FieldPop {
}); });
break;
case 'isDefHst':
this.getMode = 'getDefHst';
this.putMode = '';
this.callTable(com,{
ITEM_CD : this.formData.ITEM_CD,
OP_CD : this.formData.OP_CD,
});
break; break;
default: default:
this.callTable(com); this.callTable(com);
@ -387,7 +403,75 @@ class FieldPop {
}, },
getFileUrl(DRAW_NO, SID, FILE_ID, FILE_NM,down){
let urlStr = '/include/getFile.php'+"?gubun=draw&nid="
+ DRAW_NO +
"&sid="+ SID +
"&file_id="+ FILE_ID+
"&name="+FILE_NM
if(down == true){
location.href = urlStr;
}
return urlStr;
},
popDrawSTD(text){
const item_cd = document.getElementById("ITEM_CD").value;
if(text === '작업표준서 조회'){
// const wo_no = document.getElementById("WO_NO").value;
vnLoad("", "./sts_order_pop_util.inc.php", "", (loadHtml) => {
this.modal = kuls_modal(loadHtml);
const draw_std = new Tb_draw_std_class("#sub_table", item_cd);
draw_std.init();
});
}else{
let _this = this;
// let talert = window.setTimeout(()=> { this.tbList.alert("Loading ...") }, 1000);
ajax_json({
url: './reg_prod_result.ajax.php',
data: { mode : "getDrawList", ITEM_CD : item_cd},
success: (data) => {
console.log(data.data[0]);
const drawData = data.data[0]
// _this.getFileUrl(
// drawData.DRAW_NO,
// drawData.SID,
// drawData.FILE_ID,
// drawData.FILE_NM,
// true
// );
pop_filedown(
_this.getFileUrl(
drawData.DRAW_NO,
drawData.SID,
drawData.FILE_ID,
drawData.FILE_NM,
), drawData.FILE_NM.split(".").pop()
);
},
error: (req, status, err) => {
kuls_alert(err.message);
},
complete: () => {
// window.clearTimeout(talert);
// this.getMainList();
// this.tbList.clearAlert();
// this.setFilter();
},
});
}
},
// 클릭시 탭메뉴 활성화 // 클릭시 탭메뉴 활성화
isChangeTab(com) { isChangeTab(com) {
Object.keys(this.isTab).map( (key) => { Object.keys(this.isTab).map( (key) => {
@ -411,3 +495,135 @@ class FieldPop {
} }
class Tb_draw_std_class {
constructor(container,item_cd) {
this.ajaxUrl = "./reg_prod_result.ajax.php";
this.container = document.querySelector(container);
this.item_cd = item_cd;
this.table = this.container.querySelector(".hy-table");
this.addBtn = this.container.querySelector(".add-btn") || "";
this.removeBtn = this.container.querySelector(".remove-btn") || "";
console.log(this.container);
}
getMainList(){
let _this = this;
let talert = window.setTimeout(()=> { this.tbList.alert("Loading ...") }, 1000);
ajax_json({
url: this.ajaxUrl,
data: { mode: "getRoutingList", ITEM_CD :this.item_cd},
success: (data) => {
// console.log(data.data);
this.tbList.setData(data.data);
},
error: (req, status, err) => {
kuls_alert(err.message);
},
complete: () => {
window.clearTimeout(talert);
// this.tbList.clearAlert();
// this.setFilter();
},
});
}
downloadIcon = function(cell, formatterParams, onRendered){ //plain text value
if(!cell.getRow().getData().FILE_NM){
// kuls_alert("");
return "<button class='reverse-btn disabled-btn' disabled>다운</button>";
}
return "<button class='reverse-btn'>다운</button>";
};
previewIcon = function(cell, formatterParams, onRendered){ //plain text value
if(!cell.getRow().getData().FILE_NM){
// kuls_alert("");
return "<button class='reverse-btn disabled-btn' diabled>미리보기</button>";
}
// console.log(cell.getRow().getData().FILE_NM);
return "<button class='reverse-btn'>미리보기</button>";
};
init(){
let _this = this;
const fields = [
{ formatter: "rownum", title: "NO", width: 50 },
{ field: "OP_CD", title: "공정코드", width: 100 },
{ field: "OP_NM", title: "공정명", width: 150 },
{ title: "작업 표준서", cssClass:"width-230", columns:[
{ field: "SID", visible:false},
{ field: "FILE_ID", visible:false},
{ field:"FILE_NM", width:100, formatter: this.previewIcon, cellClick:function(e,cell){
pop_filedown(
_this.getFileUrl(
cell.getRow().getData().ITEM_CD,
cell.getRow().getData().ROUT_SQNO,
cell.getRow().getData().FILE_NM,
"",
"rout",
// cell.getRow().getData().FILE_NM,
false
), cell.getRow().getData().FILE_NM.split(".").pop()
);
}
},
{ field:"DOWNLOAD", width:100, formatter: this.downloadIcon,
cellClick:function(e, cell){
_this.getFileUrl(
cell.getRow().getData().ITEM_CD,
cell.getRow().getData().ROUT_SQNO,
cell.getRow().getData().FILE_NM,
"",
"rout",
true
);
// location.href = '/include/getFile.php'+"?gubun=draw&nid="
// + cell.getRow().getData().DRAW_NO
// + "&sid="+cell.getRow().getData().SID
// + "&file_id="+cell.getRow().getData().FILE_ID
}},
// {field:"REGISTER", width:50,editor: _this.fileEditor}
// {field:"REGISTER", width:50,formatter: function(cell,formatterParams){
// if(cell.getRow().getData().FILE_NM){
// return "<button class='reverse-btn disabled-btn' disabled>업로드</button>";
// }
// return _this.uploadButton(cell)}
// },
// {field:"DELETE", width:50,formatter: function(cell,formatterParams){return _this.deleteButton(cell)}}
]
},
];
const commonFieldData = {
headerSort: true,
vertAlign: "middle",
hozAlign: "center",
resizable: "header", //Resize 는 헤더에서만 가능
headerHozAlign: "center", //헤더 정렬
headerSortTristate: true, //데이터 정렬 => 정/역/초기화
};
this.tbList = new Tabulator(this.table, {
layout: "fitColumns",
data: [], //기본 데이터
columns: fields, //컬럼 설정
columnDefaults: commonFieldData,
headerSortElement: "<i class='bi'></i>", //정렬 아이콘
// validationMode: "highlight",
});
/*
* @Overview 테이블 만들어지면 데이터 불러오기
* @Parameter 없음
*/
this.tbList.on("tableBuilt", () => {
this.getMainList();
});
}
}

View File

@ -21,7 +21,7 @@ include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
</div> --> </div> -->
<div class="form-button-box flexrow gap06 flex-3 min-width-572"> <div class="form-button-box flexrow gap06 flex-3 min-width-572">
<button type="button" v-for="(tab, idx) in tabs1" :key="idx" :class="{ on : activeTab === tab}" @click="activeTab === tab" >{{ tab }}</button> <button type="button" v-for="(tab, idx) in tabs1" :key="idx" :class="{ on : activeTab === tab}" @click="popDrawSTD(`${tab}`)" >{{ tab }}</button>
</div> </div>
<div class="form-button-box flexrow gap06 flex-5 flexend"> <div class="form-button-box flexrow gap06 flex-5 flexend">
<button type="button" v-for="(tab, idx) in tabs2" :key="idx" :disabled="isDisabled[idx]" :class="{ on : activeTab === tab.name }" @click="showComponent(tab.id, tab.name)" >{{ tab.name }}</button> <button type="button" v-for="(tab, idx) in tabs2" :key="idx" :disabled="isDisabled[idx]" :class="{ on : activeTab === tab.name }" @click="showComponent(tab.id, tab.name)" >{{ tab.name }}</button>

View File

@ -0,0 +1,61 @@
<?php
include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
?>
<!-- file upload popup <첨부파일 등록> -->
<!-- 작업표준서 조회 팝업 -->
<div id="popup_file_upload">
<div class="awn-popup-confirm awn-partner custom-popup">
<div class="awn-popup-title"><i class="bi bi-card-heading"></i> 작업표준서</div>
<div class="awn-popup-search mb-block btn-ksmain-inject-block">
<!-- <div class="s_exp"> 더블클릭으로 선택/반영 합니다.</div>-->
<div class="s_fld form-inline d-block">
<!-- <label for="sgrp">오더번호: </label>
<select id="sgrp" name="sgrp" class="form-control form-select w100">
</select> -->
<!-- <label for="stxt">오더번호: </label>-->
<!-- <input type="text" class="form-control d-inline w120 align-bottom">-->
<!-- <label for="stxt">공정: </label>-->
<!-- <input type="text" name="stxt" id="stxt" class="form-control d-inline w120 align-bottom">-->
<!-- |
<button type="button" id="ptReset" class="btn btn-danger">
<i class="fa-regular fa-window-restore"></i>
초기화
</button> -->
</div>
</div>
<div class="awn-popup-content" style="padding: 10px 10px;">
<div class="table-box flex-1" id="sub_table">
<!-- 테이블 헤더 (제목, 추가, 삭제, 저장) -->
<div class="table-title">
<p class="tilte"></p>
<!-- 버튼 -->
<!-- <div class="button-box">-->
<!-- <button class="add-btn reverse-btn">-->
<!-- --><?php //include _SVC_INC_PATH_ . '/img/add.php' ?>
<!-- 추가-->
<!-- </button>-->
<!-- <button class="remove-btn reverse-btn">-->
<!-- --><?php //include _SVC_INC_PATH_ . '/img/delete.php' ?>
<!-- 삭제-->
<!-- </button>-->
<!-- </div>-->
<!-- 버튼 종료 // -->
</div>
<!-- 테이블 헤더 종료 // -->
<!-- 테이블 -->
<div class="hy-table"></div>
<!-- 테이블 종료 // -->
</div>
<!-- 테이블 박스 종료 // -->
</div>
</div>
</div>
<!-- file upload popup <첨부파일 등록> -->
<script src="./reg_prod_result.js"></script>