forked from HANYANG/HANYANG_MES
fix: 데이터없을 시에 셀 없어짐 개선
This commit is contained in:
parent
edcaf330a0
commit
260c00791a
|
|
@ -156,12 +156,12 @@ include_once _SVC_INC_PATH_ . "/header.php";
|
||||||
<tbody>
|
<tbody>
|
||||||
<template v-for="(code, idx) in codeList">
|
<template v-for="(code, idx) in codeList">
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan="5">{{code?.WO_NO}}<br>{{code?.ORD_DT.date}}</td>
|
<td rowspan="5">{{code.WO_NO}}<br>{{code.ORD_DT.date}}</td>
|
||||||
<td rowspan="5">{{code?.ITEM_CD}}<br>{{code?.DRAW_NO}}<br>{{code?.BP_CD}}</td>
|
<td rowspan="5">{{code.ITEM_CD}}<br>{{code.DRAW_NO}}<br>{{code.BP_CD}}</td>
|
||||||
<td rowspan="5">{{code?.DLVY_REQ_DT.date}}</td>
|
<td rowspan="5">{{code.DLVY_REQ_DT.date}}</td>
|
||||||
<td rowspan="5">{{code?.WO_SEQ}}</td>
|
<td rowspan="5">{{code.WO_SEQ}}</td>
|
||||||
<td rowspan="5">{{code.완료}}</td>
|
<td rowspan="5">{{code.완료}}</td>
|
||||||
<td colspan="2" v-for="index in 10" :key="`process-${index}`">{{ code.OP_CD ? code.OP_CD.OP_CD ? code.OP_CD.OP_CD: '' : '' }}</td>
|
<td colspan="2" v-for="index in 10" :key="`process-${index}`">{{ code.OP_CD?.OP_CD }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td v-for="n in 20" :key="`plan-${n}`">
|
<td v-for="n in 20" :key="`plan-${n}`">
|
||||||
|
|
@ -174,7 +174,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2" v-for="index in 10" :key="`pre-${index}`">{{ code.OP_CD ? code.OP_CD.예상종료시간 ? code.OP_CD.예상종료시간: '' : '' }}</td>
|
<td colspan="2" v-for="index in 10" :key="`pre-${index}`">{{ code.OP_CD?.예상종료시간 }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td v-for="n in 20" :key="`fa-${n}`">
|
<td v-for="n in 20" :key="`fa-${n}`">
|
||||||
|
|
|
||||||
|
|
@ -31,30 +31,36 @@ if( !_notAuth("R") ){/************ 권한체크*/
|
||||||
$retval['code'] = false;
|
$retval['code'] = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "getOrderList":
|
// 생산오더별 진행현황
|
||||||
|
case 'getStsList':
|
||||||
|
|
||||||
|
|
||||||
|
$squl = "USP_P_WO_OPER_RSLT_S40";
|
||||||
|
|
||||||
|
$params = array(
|
||||||
|
"date_st" => $_REQUEST["order_date_st"] ?: "2024-04-01",
|
||||||
|
// "date_st" => "2024-04-16" ?: "",
|
||||||
|
"date_ed" => $_REQUEST["order_date_ed"] ?: "2024-05-31",
|
||||||
|
"WO_NO" => $_REQUEST["P_WO_NO"] ?: "",
|
||||||
|
"ITEM_CD" => $_REQUEST["ITEM_CD"] ?: "",
|
||||||
|
"OP_CD" => $_REQUEST["OP_CD"] ?: "",
|
||||||
|
"FACLT_CD " => $_REQUEST["FACLT_CD_P"] ?: "",
|
||||||
|
"EMP_NO" => $_REQUEST["EMP_NO"] ?: ""
|
||||||
|
);
|
||||||
|
$rst = $baseObj->DB->exec($squl, $params);
|
||||||
|
|
||||||
|
$rows = array();
|
||||||
|
if ($rst) {
|
||||||
$retval['code'] = true;
|
$retval['code'] = true;
|
||||||
// $sql = "USP_B_OPERATION_S10";
|
while ($row = $baseObj->DB->fetch_array($rst)) {
|
||||||
|
$rows[] = $row;
|
||||||
|
};
|
||||||
|
$retval['data'] = $rows;
|
||||||
|
$retval['mesg'] = '정상 동작 되었습니다.';
|
||||||
|
} else {
|
||||||
|
$retval['code'] = false;
|
||||||
|
}
|
||||||
|
|
||||||
// $params = array(
|
|
||||||
// "OP_NM" => "",
|
|
||||||
// "USE_FLG" => "Y"
|
|
||||||
// );
|
|
||||||
|
|
||||||
// $rst = $baseObj->DB->exec($sql,$params);
|
|
||||||
|
|
||||||
// $rows = array();
|
|
||||||
// if( $rst ){
|
|
||||||
// $retval['code'] = true;
|
|
||||||
// while( $row = $baseObj->DB->fetch_array($rst) ){
|
|
||||||
// // $row['OP_CD_OLD'] = $row['OP_CD'];
|
|
||||||
|
|
||||||
// $rows[] = $row;
|
|
||||||
// }
|
|
||||||
// $retval['data'] = $rows;
|
|
||||||
// $retval['mesg'] = "정상적으로 작동하였습니다.";
|
|
||||||
// }else{
|
|
||||||
// $retval['code'] = false;
|
|
||||||
// }
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Tb_oper_class {
|
class Tb_oper_class {
|
||||||
constructor(container){
|
constructor(container){
|
||||||
this.ajaxUrl = "./sts_order_prod.ajax.php";
|
this.ajaxUrl = "./sts_order_prod.ajax.php";
|
||||||
|
|
@ -220,13 +221,13 @@ class Tb_oper_class {
|
||||||
const VueOperStatusCode = createApp({
|
const VueOperStatusCode = createApp({
|
||||||
data(){
|
data(){
|
||||||
return {
|
return {
|
||||||
ajaxUrl: './sts_oper_prod.ajax.php',
|
ajaxUrl: './sts_order_prod.ajax.php',
|
||||||
codeList: [],
|
codeList: [],
|
||||||
isHover: {}
|
isHover: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted(){
|
mounted(){
|
||||||
this.getCodeList();
|
this.getMainList("getStsList", "P_WO_NO");
|
||||||
},
|
},
|
||||||
// computed: {
|
// computed: {
|
||||||
|
|
||||||
|
|
@ -245,14 +246,14 @@ const VueOperStatusCode = createApp({
|
||||||
if(operData){
|
if(operData){
|
||||||
finalDataList.push(
|
finalDataList.push(
|
||||||
{
|
{
|
||||||
공정명: operData.공정 ,
|
OP_CD: operData.OP_CD ,
|
||||||
계획수량: operData.계획수량,
|
PLAN_QTY: operData.PLAN_QTY,
|
||||||
실적수량 : operData.실적수량,
|
PRD_QTY : operData.PRD_QTY,
|
||||||
투입시간:operData.투입시간,
|
ST_TM:operData.ST_TM,
|
||||||
종료시간 : operData.종료시간,
|
ED_TM : operData.ED_TM,
|
||||||
예상종료시간 : operData.예상종료시간 ,
|
예상종료시간 : operData.예상종료시간 ,
|
||||||
설비: operData.설비,
|
FACLT_CD: operData.FACLT_CD,
|
||||||
작업자: operData.작업자
|
EMP_NM: operData.EMP_NM
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}else{
|
}else{
|
||||||
|
|
@ -270,25 +271,112 @@ const VueOperStatusCode = createApp({
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
getCodeList() {
|
|
||||||
// 임의의 데이터 직접 입력 [데이터 이렇게 php로 전처리...]
|
|
||||||
let temp = [
|
|
||||||
{생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 1, 공정 : '소재', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
|
||||||
,{생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 2, 공정 : 'M', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
|
||||||
,{생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 4, 공정 : 'G', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
|
||||||
,{생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 3, 공정 : 'F', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
|
||||||
,{생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 5, 공정 : 'H', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
|
||||||
,{생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 6, 공정 : 'M', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
|
||||||
,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 1, 공정 : '소재', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
|
||||||
,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 2, 공정 : 'M', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
|
||||||
,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 4, 공정 : 'G', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
|
||||||
,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 3, 공정 : 'F', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
|
||||||
,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 5, 공정 : 'H', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
|
||||||
,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 6, 공정 : 'M', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
|
||||||
];
|
|
||||||
|
|
||||||
const group = Object.values(Object.groupBy(temp, ({생산오더}) => 생산오더))
|
|
||||||
console.log(group);
|
// tableBuild 되었을때 getManList
|
||||||
|
getMainList(mode,...test) {
|
||||||
|
const talert= window.setTimeout(()=> { this.tbList.alert("Loading ...") }, 1000);
|
||||||
|
let arr = test;
|
||||||
|
// let testList = new Array();
|
||||||
|
let data = new Object();
|
||||||
|
for(let i=0; i < arr.length; i++){
|
||||||
|
let temp = [arr[i]]
|
||||||
|
console.log();
|
||||||
|
if(document.getElementById(arr[i])?.type !== "checkbox"){
|
||||||
|
data[temp] = document.getElementById(temp)?.value
|
||||||
|
}else{
|
||||||
|
data[temp] = document.getElementById(temp)?.checked?"Y":"N";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data.mode = mode
|
||||||
|
// let USEFLAG = document.getElementById("USE_FLG").checked?"Y":"N"; //사용여부
|
||||||
|
ajax_json({
|
||||||
|
url: this.ajaxUrl,
|
||||||
|
data: data,
|
||||||
|
|
||||||
|
success: (data) => {
|
||||||
|
if(data.code) {
|
||||||
|
console.log(data.data);
|
||||||
|
this.getCodeList(data.data)
|
||||||
|
}else{
|
||||||
|
kuls_alert(data.mesg);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: (req, status, err) => {
|
||||||
|
kuls_alert(err.message);
|
||||||
|
},
|
||||||
|
complete: () => {
|
||||||
|
window.clearTimeout(talert);
|
||||||
|
|
||||||
|
// this.setFilter();
|
||||||
|
// this.tbList.getRows().forEach(row=>{
|
||||||
|
// row.getCell("WO_NO").getElement().addEventListener("click",(e)=>{
|
||||||
|
// this.rowClick(e,row);
|
||||||
|
// })
|
||||||
|
// });
|
||||||
|
},
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
getCodeList(temp) {
|
||||||
|
console.log(temp)
|
||||||
|
|
||||||
|
|
||||||
|
let realTemp = [];
|
||||||
|
console.log(Object.values(Object.groupBy(temp,( {WO_NO} )=>WO_NO)));
|
||||||
|
let group = Object.values(Object.groupBy(temp,( {WO_NO,WO_SEQ} )=>WO_NO && WO_SEQ));
|
||||||
|
|
||||||
|
for(let i = 0; i < group.length; i++) {
|
||||||
|
|
||||||
|
|
||||||
|
group[i][0].OP_CD = group[i].map(function (element) {
|
||||||
|
return {
|
||||||
|
OP_CD: element?.OP_CD,
|
||||||
|
계획수량: element?.계획수량,
|
||||||
|
PRD_QTY: element?.PRD_QTY,
|
||||||
|
ST_TM: element?.ST_TM,
|
||||||
|
ED_TM: element?.ED_TM,
|
||||||
|
예상종료시간: element?.예상종료시간,
|
||||||
|
FACLT_CD: element?.FACLT_CD,
|
||||||
|
EMP_NM: element?.EMP_NM
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
console.log(group[i][0]);
|
||||||
|
realTemp.push(group[i][0]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 임의의 데이터 직접 입력 [데이터 이렇게 php로 전처리...]
|
||||||
|
// let temp = [
|
||||||
|
// {생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 1, 공정 : '소재', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
||||||
|
// ,{생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 2, 공정 : 'M', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
||||||
|
// ,{생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 4, 공정 : 'G', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
||||||
|
// ,{생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 3, 공정 : 'F', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
||||||
|
// ,{생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 5, 공정 : 'H', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
||||||
|
// ,{생산오더: 'P15998', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 6, 공정 : 'M', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'최창희'}
|
||||||
|
// ,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 1, 공정 : '소재', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
||||||
|
// ,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 2, 공정 : 'M', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
||||||
|
// ,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 4, 공정 : 'G', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
||||||
|
// ,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 3, 공정 : 'F', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
||||||
|
// ,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 5, 공정 : 'H', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
||||||
|
// ,{생산오더: 'P15968', 등록일: '2023.01.02', 품목:'PT01105', 도면번호:'P9900021580/000', 업체명:'현대로보틱스', 판매오더수량:"(20)", 납기일:'2023.01.27', 작업순서: 1, 공정순서 : 6, 공정 : 'M', 계획수량 : 20, 실적수량 : 20, 투입시간: '01.27 15:00', 종료시간 :'01.27 15:00', 예상종료시간 :'01.27 18:00', 설비:'L5', 작업자 :'이창희'}
|
||||||
|
// ];
|
||||||
|
|
||||||
|
// const group = Object.values(Object.groupBy(temp, ({WO_NO}) => WO_NO))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
this.codeList = realTemp
|
||||||
|
|
||||||
|
|
||||||
this.initData(group);
|
this.initData(group);
|
||||||
|
|
||||||
// 실제 데이터 입력함수
|
// 실제 데이터 입력함수
|
||||||
|
|
@ -306,21 +394,23 @@ const VueOperStatusCode = createApp({
|
||||||
// kuls_alert(err.message);
|
// kuls_alert(err.message);
|
||||||
// }
|
// }
|
||||||
// })
|
// })
|
||||||
|
return this.codeList;
|
||||||
},
|
},
|
||||||
|
|
||||||
openPop(data, idx) {
|
openPop(data, idx) {
|
||||||
const process = data['공정'][idx]
|
const process = data['OP_CD'][idx]
|
||||||
const bindingData = {
|
const bindingData = {
|
||||||
WO_NO: data['생산오더'],
|
WO_NO: data['WO_NO'],
|
||||||
// 상태: data[상태],
|
// 상태: data[상태],
|
||||||
DRAW_NO: data['도면번호'],
|
DRAW_NO: data['DRAW_NO'],
|
||||||
ITEM_CD: data['품목'],
|
ITEM_CD: data['ITEM_CD'],
|
||||||
OP_CD: process['공정명'],
|
OP_CD: process['OP_CD'],
|
||||||
EMP_NM: process['작업자'],
|
EMP_NO: process['EMP_NO'],
|
||||||
FACLT_CD: process['설비'],
|
FACLT_CD: process['FACLT_CD'],
|
||||||
종료시간: process['종료시간'],
|
ED_TM: process['ED_TM'],
|
||||||
실적수량: process['실적수량'],
|
PRD_QTY: process['PRD_QTY'],
|
||||||
}
|
}
|
||||||
|
console.log(bindingData)
|
||||||
const pop = new FieldPop(bindingData);
|
const pop = new FieldPop(bindingData);
|
||||||
pop.init();
|
pop.init();
|
||||||
}
|
}
|
||||||
|
|
@ -489,7 +579,7 @@ class Tb_order_class {
|
||||||
|
|
||||||
// 데이터 불러오기
|
// 데이터 불러오기
|
||||||
this.tbList.on("tableBuilt", () => {
|
this.tbList.on("tableBuilt", () => {
|
||||||
this.getMainList();
|
// this.getMainList();
|
||||||
});
|
});
|
||||||
// // row 클릭 시에
|
// // row 클릭 시에
|
||||||
// this.tbList.on("rowClick", (e, tgt) => {
|
// this.tbList.on("rowClick", (e, tgt) => {
|
||||||
|
|
@ -521,7 +611,7 @@ class Tb_order_class {
|
||||||
["click", "keypress"].forEach((evt) => {
|
["click", "keypress"].forEach((evt) => {
|
||||||
const filterBtn = document.querySelector("#filter_btn");
|
const filterBtn = document.querySelector("#filter_btn");
|
||||||
filterBtn.addEventListener(evt, () => {
|
filterBtn.addEventListener(evt, () => {
|
||||||
this.getMainList();
|
// this.getMainList();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
// // 저장
|
// // 저장
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
|
||||||
<label for="">생산오더</label>
|
<label for="">생산오더</label>
|
||||||
<div>
|
<div>
|
||||||
<div class="input-box">
|
<div class="input-box">
|
||||||
<input type="text" id="">
|
<input type="text" id="P_WO_NO">
|
||||||
<?php // include _SVC_INC_PATH_ . '/img/popupIcon.php' ?>
|
<?php // include _SVC_INC_PATH_ . '/img/popupIcon.php' ?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -61,7 +61,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
|
||||||
<!-- 조회 및 저장 버튼 -->
|
<!-- 조회 및 저장 버튼 -->
|
||||||
<div class="button-container">
|
<div class="button-container">
|
||||||
<div class="button-box">
|
<div class="button-box">
|
||||||
<button class="point-btn" id="filter_btn" @click="getCodeList()">조회</button>
|
<button class="point-btn" id="filter_btn" @click="getMainList('getStsList', 'P_WO_NO')">조회</button>
|
||||||
<button class="point-btn disabled-btn" id="put_btn" disabled>저장</button>
|
<button class="point-btn disabled-btn" id="put_btn" disabled>저장</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -143,33 +143,34 @@ include_once _SVC_INC_PATH_ . "/header.php";
|
||||||
<tbody>
|
<tbody>
|
||||||
<template v-for="(code, idx) in codeList">
|
<template v-for="(code, idx) in codeList">
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan="5">{{code.생산오더}}<br>{{code.등록일}}</td>
|
<td rowspan="5">{{code.WO_NO}}<br>{{code.등록일}}</td>
|
||||||
<td rowspan="5">{{code.품목}}<br>{{code.도면번호}}<br>{{code.업체명}}</td>
|
<td rowspan="5">{{code.ITEM_CD}}<br>{{code.DRAW_NO}}<br>{{code.BP_CD}}</td>
|
||||||
<td rowspan="5">{{code.판매오더수량}}</td>
|
<td rowspan="5">{{code.판매오더수량}}</td>
|
||||||
<td rowspan="5">{{code.납기일}}</td>
|
<td rowspan="5">{{code.DLVY_REQ_DT}}</td>
|
||||||
<td rowspan="5">{{code.작업순서}}</td>
|
<td rowspan="5">{{code.WO_SEQ}}</td>
|
||||||
<td rowspan="5">{{code.완료}}</td>
|
<td rowspan="5">{{code.완료}}</td>
|
||||||
<td colspan="2" v-for="(process, index) in code.공정" :key="`process-${index}`" @click="openPop(code, index)" @mouseenter="isHover[idx][index] = true" @mouseleave="isHover[idx][index] = false" :class="{'on':isHover[idx][index], 'blue-back':process.stats=='P', 'green-back':process.stats=='C', 'orange-back':process.stats=='D', 'gray-back':process.stats=='W' }">
|
<td colspan="2" v-for="index in 10" :key="`process-${index}`" @click="openPop(code, index)" @mouseenter="isHover[idx][index] = true" @mouseleave="isHover[idx][index] = false" :class="{'on':isHover[idx][index] }">
|
||||||
{{ process.공정명 }}
|
{{ code.OP_CD?.OP_CD }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td v-for="n in 20" :key="`plan-${n}`" @click="openPop(code, Math.round(n / 2)-1)" @mouseenter="isHover[idx][Math.round(n / 2)-1] = true" @mouseleave="isHover[idx][Math.round(n / 2)-1] = false" :class="{'on':isHover[idx][Math.round(n / 2)-1]}">
|
<td v-for="n in 20" :key="`plan-${n}`" @click="openPop(code, Math.round(n / 2)-1)" @mouseenter="isHover[idx][Math.round(n / 2)-1] = true" @mouseleave="isHover[idx][Math.round(n / 2)-1] = false" :class="{'on':isHover[idx][Math.round(n / 2)-1]}">
|
||||||
{{ n % 2 === 0 ? code['공정'][n/2-1].실적수량 : code['공정'][(n-1)/2].계획수량 }}
|
{{ n % 2 === 0 ? code['OP_CD'][n/2-1]?.PRD_QTY : code['OP_CD'][(n-1)/2]?.PLAN_QTY }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td v-for="n in 20" :key="`tm-${n}`" @click="openPop(code, Math.round(n / 2)-1)" @mouseenter="isHover[idx][Math.round(n / 2)-1] = true" @mouseleave="isHover[idx][Math.round(n / 2)-1] = false" :class="{'on':isHover[idx][Math.round(n / 2)-1]}">
|
<td v-for="n in 20" :key="`tm-${n}`" @click="openPop(code, Math.round(n / 2)-1)" @mouseenter="isHover[idx][Math.round(n / 2)-1] = true" @mouseleave="isHover[idx][Math.round(n / 2)-1] = false" :class="{'on':isHover[idx][Math.round(n / 2)-1]}">
|
||||||
{{ n % 2 === 0 ? code['공정'][n/2-1].종료시간 : code['공정'][(n-1)/2].투입시간 }}
|
{{ n % 2 === 0 ? code['OP_CD'][n/2-1]?.ED_TM : code['OP_CD'][(n-1)/2]?.ST_TM }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2" v-for="(process, index) in code.공정" :key="`pre-${index}`" @click="openPop(process)" @mouseenter="isHover[idx][index] = true" @mouseleave="isHover[idx][index] = false" :class="{'on':isHover[idx][index]}">{{ process.예상종료시간 }}
|
<td colspan="2" v-for="index in 10" :key="`pre-${index}`" @click="openPop(process)" @mouseenter="isHover[idx][index] = true" @mouseleave="isHover[idx][index] = false" :class="{'on':isHover[idx][index]}">
|
||||||
|
{{ code.예상종료시간?.예상종료시간 }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td v-for="n in 20" :key="`fa-${n}`" @click="openPop(code, Math.round(n / 2)-1)" @mouseenter="isHover[idx][Math.round(n / 2)-1] = true" @mouseleave="isHover[idx][Math.round(n / 2)-1] = false" :class="{'on':isHover[idx][Math.round(n / 2)-1]}">
|
<td v-for="n in 20" :key="`fa-${n}`" @click="openPop(code, Math.round(n / 2)-1)" @mouseenter="isHover[idx][Math.round(n / 2)-1] = true" @mouseleave="isHover[idx][Math.round(n / 2)-1] = false" :class="{'on':isHover[idx][Math.round(n / 2)-1]}">
|
||||||
{{ n % 2 === 0 ? code['공정'][n/2-1].작업자 : code['공정'][(n-1)/2].설비 }}
|
{{ n % 2 === 0 ? code['OP_CD'][n/2-1]?.EMP_NM : code['OP_CD'][(n-1)/2]?.FACLT_CD }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue