1
0
Fork 0

feat: 가동 비가동 활성화 비활성화

This commit is contained in:
sychoi 2024-04-30 18:08:03 +09:00
parent 366cef22cd
commit 7314c3994d
9 changed files with 359 additions and 116 deletions

View File

@ -128,16 +128,16 @@ button {
// } // }
// } // }
.disabled-btn { .disabled-btn, button[disabled] {
background-color: rgba(255, 255, 255, 0.973); background-color: rgba(255, 255, 255, 0.973) !important;
color: #dddddd; color: #dddddd !important;
border-color: #e9e9e9; border-color: #e9e9e9 !important;
cursor: default; cursor: default !important;
&:hover { &:hover {
background-color: rgba(255, 255, 255, 0.973); background-color: rgba(255, 255, 255, 0.973) !important;
color: #dddddd; color: #dddddd !important;
border-color: #e9e9e9; border-color: #e9e9e9 !important;
} }
} }

View File

@ -102,16 +102,16 @@ button {
color: #cf5b5b; color: #cf5b5b;
} }
.disabled-btn { .disabled-btn, button[disabled] {
background-color: rgba(255, 255, 255, 0.973); background-color: rgba(255, 255, 255, 0.973) !important;
color: #dddddd; color: #dddddd !important;
border-color: #e9e9e9; border-color: #e9e9e9 !important;
cursor: default; cursor: default !important;
} }
.disabled-btn:hover { .disabled-btn:hover, button[disabled]:hover {
background-color: rgba(255, 255, 255, 0.973); background-color: rgba(255, 255, 255, 0.973) !important;
color: #dddddd; color: #dddddd !important;
border-color: #e9e9e9; border-color: #e9e9e9 !important;
} }
.tab-btn { .tab-btn {

File diff suppressed because one or more lines are too long

View File

@ -4,9 +4,10 @@
class Tb_main_class { class Tb_main_class {
constructor(container) { constructor(container) {
let _this = this;
this.ajaxUrl = "./reg_plan.ajax.php"; this.ajaxUrl = "./reg_plan.ajax.php";
this.tbList = ""; this.tbList = "";
this.lastGroupId = 1; _this.lastGroupId = 0;
this.container = document.querySelector(container); this.container = document.querySelector(container);
this.table = this.container.querySelector(".hy-table"); this.table = this.container.querySelector(".hy-table");
// this.upBtn = this.container.querySelector(".up-btn") || ""; // this.upBtn = this.container.querySelector(".up-btn") || "";
@ -16,14 +17,14 @@ class Tb_main_class {
} }
/*
* @Overview 생산계획등록
* @Parameter DATABASE로부터 받은 데이터
* @function DB 데이터 가공하여 바인딩.
*/
manageData(data) { manageData(data) {
// console.log(data); // console.log(data);
let _this = this;
let arr = new Array(); let arr = new Array();
const result = Object.groupBy(data.data, ({ SEQ_NO }) => SEQ_NO) const result = Object.groupBy(data.data, ({ SEQ_NO }) => SEQ_NO)
@ -43,6 +44,7 @@ class Tb_main_class {
tempITEM[`AM_PLAN_QTY_${date}`] = rst.AMITEM tempITEM[`AM_PLAN_QTY_${date}`] = rst.AMITEM
tempITEM[`PM_PLAN_QTY_${date}`] = rst.PMITEM tempITEM[`PM_PLAN_QTY_${date}`] = rst.PMITEM
tempITEM[`NI_PLAN_QTY_${date}`] = rst.NIITEM tempITEM[`NI_PLAN_QTY_${date}`] = rst.NIITEM
_this.lastGroupId = parseInt(rst.SEQ_NO);
return tempITEM; return tempITEM;
}) })
@ -52,11 +54,12 @@ class Tb_main_class {
let arr = new Array(); let arr = new Array();
tempQTY['SEQ_NO'] = rst.SEQ_NO tempQTY['SEQ_NO'] = rst.SEQ_NO
tempQTY['SEPER'] = "계획" tempQTY['SEPER'] = "계획"
tempQTY['PLAN_FACLT_CD'] = rst.PLAN_FACLT_CD tempQTY['PLAN_FACLT_CD'] = rst.PLAN_FACLT_CD
tempQTY['WRK_TEAM'] = rst.WRK_TEAM tempQTY['WRK_TEAM'] = rst.WRK_TEAM
tempQTY[`AM_PLAN_QTY_${date}`] = rst.AMQTY tempQTY[`AM_PLAN_QTY_${date}`] = rst.AMQTY
tempQTY[`PM_PLAN_QTY_${date}`] = rst.PMQTY tempQTY[`PM_PLAN_QTY_${date}`] = rst.PMQTY
tempQTY[`NI_PLAN_QTY_${date}`] = rst.NIQTY tempQTY[`NI_PLAN_QTY_${date}`] = rst.NIQTY
_this.lastGroupId = parseInt(rst.SEQ_NO);
return tempQTY; return tempQTY;
}) })
@ -71,6 +74,7 @@ class Tb_main_class {
tempPRD[`AM_PLAN_QTY_${date}`] = rst.AMPRD tempPRD[`AM_PLAN_QTY_${date}`] = rst.AMPRD
tempPRD[`PM_PLAN_QTY_${date}`] = rst.PMPRD tempPRD[`PM_PLAN_QTY_${date}`] = rst.PMPRD
tempPRD[`NI_PLAN_QTY_${date}`] = rst.NIPRD tempPRD[`NI_PLAN_QTY_${date}`] = rst.NIPRD
_this.lastGroupId = parseInt(rst.SEQ_NO);
return tempPRD; return tempPRD;
}) })
@ -164,12 +168,15 @@ class Tb_main_class {
* @Parameter 없음 * @Parameter 없음
*/ */
setFilter() { setFilter() {
this.tbList ="";
this.init(); this.init();
this.getMainList( this.getMainList(
"getPlanList", "getPlanList",
"team_pop", "team_pop",
"product_pop", "product_pop",
"sub_product_pop" "sub_product_pop",
"plan_date"
); );
} }
@ -179,27 +186,31 @@ class Tb_main_class {
* @function 기본키, _STATUS_:I 값을 넣은 추가 * @function 기본키, _STATUS_:I 값을 넣은 추가
*/ */
addRow() { addRow() {
console.log("test");
this.lastGroupId += 1;
// Tabulator 인스턴스에 데이터 추가 // Tabulator 인스턴스에 데이터 추가
this.tbList.addRow({ this.tbList.addRow({
groupId: this.lastGroupId + 1, SEQ_NO: this.lastGroupId,
SEPER: "그룹", SEPER: "그룹",
_STATUS_: "I", _STATUS_: "I",
SEPER_ID: "GRP", SEPER_ID: "GRP",
}); });
this.tbList.addRow({ this.tbList.addRow({
groupId: this.lastGroupId + 1, SEQ_NO: this.lastGroupId,
SEPER: "계획", SEPER: "계획",
_STATUS_: "I", _STATUS_: "I",
SEPER_ID: "PLAN", SEPER_ID: "PLAN",
}); });
this.tbList.addRow({ this.tbList.addRow({
groupId: this.lastGroupId + 1, SEQ_NO: this.lastGroupId,
SEPER: "실적", SEPER: "실적",
_STATUS_: "I", _STATUS_: "I",
SEPER_ID: "RST", SEPER_ID: "RST",
}); });
this.lastGroupId += 1;
} }
/* /*
@ -288,9 +299,78 @@ class Tb_main_class {
* @function _STATUS_ 값이 있는 데이터만 추려서 없으면 생성, 있으면 수정하기 * @function _STATUS_ 값이 있는 데이터만 추려서 없으면 생성, 있으면 수정하기
*/ */
putData() { putData() {
// let _this = this;
console.log(this.tbList.getData().filter((row) => row._STATUS_));
// 저장 시 상태 변화 없는 row 요청 X
if (this.tbList.getData().filter((row) => row._STATUS_).length == 0) {
this.getMainList();
return false;
}
// 기본키 중복 확인 및 방지 const blankObj = [];
// _STATUS_ 있는 데이터만 들고와서 PUT하기 const reqData = [];
this.tbList.getRows().forEach((row) => {
// console.log(row.getData('_STATUS_'))
if (row.getData()["_STATUS_"]) {
if (
Object.keys(row._row.data)
.filter((key) => key !== "_STATUS_" && key !== "USE_FLG")
.every((key) => {
const value = row._row.data[key];
return value === undefined || value === "";
})
) {
blankObj.push(row);
} else {
reqData.push(row.getData());
}
}
});
let postdata = {
mode: "getOrderList",
reqdata: JSON.stringify(
this.tbList.getData().filter((row) => row._STATUS_)
),
};
if (blankObj.length !== 0) {
kuls_confirm(
"비어있는 행을 무시하고 진행하시겠습니까?",
"",
() => {
ajax_json({
url: this.ajaxUrl,
data: postdata,
success: function (data) {
if (data.code) {
kuls_success("저장되었습니다.");
this.getMainList();
Tb_insp_list.getMainList();
} else {
this.tbList.getRows().forEach((row) => {
//일부 적용된 열 update 처리
if (data.data.includes(row.getData()["PLANT_CD"])) {
row.update({ _STATUS_: "U" });
}
});
kuls_alert(data.mesg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function () {},
});
},
() => {
blankObj.forEach((row) => {
row.getElement().classList.add("blank-row");
});
console.log(blankObj);
}
);
}
} }
/* /*
@ -357,17 +437,18 @@ class Tb_main_class {
* @Parameter 없음 * @Parameter 없음
*/ */
init() { init() {
let fields = "";
// field 정의 // field 정의
const fields = [ fields = [
{ field: "id", title: "id", width: 100, visible: false }, { field: "SEQ_NO", title: "id", width: 100, visible: false },
{ field: "WRK_TEAM", title: "팀", width: 100, editor: "input" }, { field: "WRK_TEAM", title: "팀", width: 100, editor: "input" },
{ field: "PLAN_FACLT_CD", title: "설비", width: 100, editor: "input" }, { field: "PLAN_FACLT_CD", title: "설비", width: 100, editor: "input" },
{ field: "SEPER", title: "구분", width: 100 }, { field: "SEPER", title: "구분", width: 100 },
// 날짜 필드 동적으로 넣을것 오늘부터 7일까지 // 날짜 필드 동적으로 넣을것 오늘부터 7일까지
...this.getDate(), ...this.getDate(),
]; ];
let commonFieldData = "";
const commonFieldData = { commonFieldData = {
headerSort: false, headerSort: false,
vertAlign: "middle", vertAlign: "middle",
hozAlign: "center", hozAlign: "center",
@ -375,7 +456,7 @@ class Tb_main_class {
headerHozAlign: "center", //헤더 정렬 headerHozAlign: "center", //헤더 정렬
headerSortTristate: true, //데이터 정렬 => 정/역/초기화 headerSortTristate: true, //데이터 정렬 => 정/역/초기화
}; };
this.tbList ="";
this.tbList = new Tabulator(this.table, { this.tbList = new Tabulator(this.table, {
layout: "fitColumns", layout: "fitColumns",
// data: [ // data: [
@ -415,7 +496,8 @@ class Tb_main_class {
// 추가 // 추가
["click", "keypress"].forEach((evt) => { ["click", "keypress"].forEach((evt) => {
this.addBtn.addEventListener(evt, () => { this.addBtn.addEventListener(evt, () => {
this.addRow(); console.log("test");
this.addRow && this.addRow();
}); });
}); });
// 삭제 // 삭제
@ -430,6 +512,7 @@ class Tb_main_class {
const filterBtn = document.querySelector("#filter_btn"); const filterBtn = document.querySelector("#filter_btn");
filterBtn.addEventListener(evt, () => { filterBtn.addEventListener(evt, () => {
// setFilter 또는 setData // setFilter 또는 setData
this.getDate();
this.setFilter(); this.setFilter();
// this.getMainList("getPlanList","team_pop","product_pop","sub_product_pop"); // this.getMainList("getPlanList","team_pop","product_pop","sub_product_pop");
}); });

View File

@ -11,8 +11,8 @@
<div class="input-container flexcol gap06"> <div class="input-container flexcol gap06">
<div class="input-box flexrow flexend flex-1"> <div class="input-box flexrow flexend flex-1">
<label for="" style="width:80px;">가동시작시간</label> <label for="run-time" style="width:80px;">가동시작시간</label>
<input type="text" id="" name="" class="form-control form-control-sm" /> <input v-model='dateTime' type="text" id="run-time" name="" class="form-control form-control-sm" />
</div> </div>
</div> </div>

View File

@ -15,10 +15,12 @@ if( !_notAuth("R") ){/************ 권한체크*/
// 설비 고장등록 조회 // 설비 고장등록 조회
// 가동 vs 비가동 // 가동 vs 비가동
case "": case "getWokerInfo":
$sql = ""; $sql = "USP_P_REG_PROD_RESULT_S10";
$params = array( $params = array(
'WO_NO' => $_REQUEST["WO_NO"] ?: "",
'OP_SEQ' => $_REQUEST["OP_SEQ"] ?: ""
); );
$rst = $baseObj->DB->exec($sql,$params); $rst = $baseObj->DB->exec($sql,$params);
@ -38,8 +40,84 @@ if( !_notAuth("R") ){/************ 권한체크*/
break; break;
case "o": case "getRunInfo":
$sql = "USP_P_REG_PROD_RUN_S10";
$params = array(
'WO_NO' => $_REQUEST["WO_NO"] ?: "",
'WO_SEQ' => $_REQUEST["WO_SEQ"] ?: "",
'EMP_NO' => $_REQUEST["EMP_NO"] ?: "",
);
$rst = $baseObj->DB->exec($sql, $params);
$rows = array();
if( $rst ){
$retval['code'] = true;
while( $row = $baseObj->DB->fetch_array($rst) ){
$rows[] = $row;
}
$retval['data'] = $rows;
$retval['mesg'] = "정상적으로 작동하였습니다.";
}else{
$retval['code'] = false;
}
break; break;
case "putRunInfo":
if (_notAuth("W")){ break; }
$_REQUEST["reqdata"] = json_decode($_REQUEST['reqdata']);
foreach ($_REQUEST['reqdata'] as $data) {
$data = (array) $data;
if($data['_STATUS_'] == 'U'){
$sql = 'USP_P_REG_PROD_RUN_U10';
$params = array(
// "FACLT_CD" => $data['DEPT_CD']?:"",
// "WO_NO" => $data['DEPT_NM']?:"",
// "WO_SEQ" => $data['BIZ_AREA_CD'] ?: "",
// "WORK_DT" => $data['PAR_DEPT_CD']?:"",
// "RUNSTOP_GB" => $data['EMP_NO']?:"",
// "STOP_CD" => $data['USE_FLG'] ?: "",
// "OPER_ST_TM" => $data['USE_FLG'] ?: "",
// "EMP_NO" => $data['USE_FLG'] ?: "",
// "MAKE_USER_ID" => $GLOBALS['_Umem']['member_id'],
);
}else{
$sql = 'USP_P_REG_PROD_RUN_I10';
$params = array(
"FACLT_CD" => $data['FACLT_CD']?:"",
"WO_NO" => $data['WO_NO']?:"",
"WO_SEQ" => $data['WO_SEQ'] ?: "",
"WORK_DT" => $data['WORK_DT']?:"",
"RUNSTOP_GB" => $data['RUNSTOP_GB']?:"",
"STOP_CD" => $data['STOP_CD'] ?: "",
"OPER_ST_TM" => $data['OPER_ST_TM'] ?: "",
"EMP_NO" => $data['EMP_NO'] ?: "",
"MAKE_USER_ID" => $GLOBALS['_Umem']['member_id'],
);
}
$rst = $baseObj->DB->exec($sql, $params);
}
if ($rst && !$_REQUEST['RS_CODE']) {
$retval['code'] = true;
} else {
$retval['code'] = false;
$retval['mesg'] = $_REQUEST['RS_MSG'];
}
break;
} }
} }

View File

@ -1,23 +1,70 @@
class SimpleTable { class SimpleTable {
constructor(fields, getmode, putmode){ constructor(fields, getmode, putmode, formData){
this.field = fields; // ajax
this.ajaxUrl = './reg_prod_result.ajax.php'; this.ajaxUrl = './reg_prod_result.ajax.php';
this.getmode = getmode?getmode:''; this.getMode = getmode?getmode:'';
this.putmode = putmode?putmode:''; this.putMode = putmode?putmode:'';
// data
this.field = fields;
this.formData = formData;
// element
this.container = document.querySelector(".detail-contents"); this.container = document.querySelector(".detail-contents");
this.table = this.container?.querySelector(".hy-table"); this.table = this.container?.querySelector(".hy-table");
this.addBtn = this.container?.querySelector(".add-btn");
} }
getMainList(){ getMainList(){
// ajax_json({ return ajax_json({
url: this.ajaxUrl,
data: {
mode: this.getMode,
...this.formData
},
success:( data ) => {
if( data.code ){
this.tbList.setData(data.data);
}else{
console.log(data)
}
},
error: (request, status, error)=>{
kuls_alert(error.message);
// }) },
})
} }
addRow(){} // addRow(data){
putData(){ // this.tbList.addRow({...data})
// ajax_json({}) // }
putData(addData, updateData){
const postData = {
mode : this.putMode,
reqdata : JSON.stringify([{...this.formData, ...addData}])
};
ajax_json({
url: this.ajaxUrl,
data: postData,
success: (data)=>{
if (data.code) {
kuls_success("저장되었습니다.");
this.getMainList();
}else{
kuls_alert(data.mesg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function () {
pop
}
})
} }
init(){ init(addData, updateData){
const commonFieldData = { const commonFieldData = {
headerSort: false, headerSort: false,
vertAlign: "middle", vertAlign: "middle",
@ -62,7 +109,18 @@ class SimpleTable {
}) })
this.tbList.on("tableBuilt", () => { this.tbList.on("tableBuilt", () => {
this.getMainList(); this.getMainList().then(()=>{
if(addData){
this.tbList.addRow({...addData});
};
if(updateData){
this.tbList.update(updateData);
};
})
})
this.addBtn?.addEventListener('click', ()=>{
this.putData(addData,false);
}) })
// 행선택 // 행선택
@ -115,10 +173,32 @@ class FieldPop {
tabs1: [ '작업표준서 조회', '도면 조회' ], //popup 띄우기 tabs1: [ '작업표준서 조회', '도면 조회' ], //popup 띄우기
tabs2: [{ isDefHst : '과거불량이력 조회' }, { isFacltBreak : '설비 고장등록' }, {isRun : '가동'}, {isNoRun : '비가동'} ], tabs2: [
{
id : 'isDefHst',
name : '과거불량이력 조회'
},
{ id : 'isFacltBreak',
name : '설비 고장등록'
},
{ id : 'isRun',
name : '가동'
},
{ id : 'isNoRun',
name : '비가동'
}
],
activeTab : '', activeTab : '',
isDisabled : [false, false, false, true],
dateTime : '00:00',
getMode : '',
putMode : '',
tableField : { tableField : {
isDefHst : [ isDefHst : [
{ field: "DEF_NO", formatter:"rownum", title: "순번", width: 50}, { field: "DEF_NO", formatter:"rownum", title: "순번", width: 50},
@ -161,12 +241,12 @@ class FieldPop {
{ field: "", title: "작업자", minWidth: 100, width:'20%'} { field: "", title: "작업자", minWidth: 100, width:'20%'}
], ],
isRun : [ isRun : [
{ field: "", formatter:"rownum", title: "순번", width: 50}, { field:"FACLT_OPER_NO", formatter:"rownum", title: "순번", width: 50},
{ field: "", title: "생산 오더", minWidth: 100, width:'18%',}, { field: "WO_NO", title: "생산 오더", minWidth: 100, width:'18%',},
{ field: "", title: "구분", minWidth: 80, width:'15%',}, { field: "RUNSTOP_GB", title: "구분", minWidth: 80, width:'15%',},
{ field: "", title: "비가동 사유", minWidth: 100, width:'18%',}, { field: "STOP_CD", title: "비가동 사유", minWidth: 100, width:'18%',},
{ field: "", title: "시작시간", minWidth: 120, width:'20%',}, { field: "OPER_ST_TM", title: "시작시간", minWidth: 120, width:'20%',},
{ field: "", title: "종료시간", minWidth: 120, width:'20%',} { field: "OPER_ED_TM", title: "종료시간", minWidth: 120, width:'20%',}
], ],
isNoRun : [ isNoRun : [
{ field: "", formatter:"rownum", title: "순번", width: 50}, { field: "", formatter:"rownum", title: "순번", width: 50},
@ -244,16 +324,16 @@ class FieldPop {
modal.delete(); modal.delete();
}, },
callTable(com){ callTable(com, addData=false, updateData=false ){
this.$nextTick(()=>{ this.$nextTick(()=>{
// 여기서 mode 명 동적으로 정의할것 (com을 사용)
const getmode = '';
const putmode = '';
const table = new SimpleTable(this.tableField[com], getmode, putmode);
table.init();
const table = new SimpleTable(this.tableField[com], this.getMode, this.putMode, this.formData);
table.init(addData, updateData);
}) })
}, },
@ -266,19 +346,51 @@ class FieldPop {
this.isComponent[key] = com == key ? true : false; this.isComponent[key] = com == key ? true : false;
}); });
if(com=='isInsp'){ switch(com){
this.isTab = { case 'isWorker':
isInsp: true, this.getMode = 'getWokerInfo';
isFile: false this.putMode = '';
}
}; this.callTable(com);
this.callTable(com); break;
case 'isInsp':
this.isTab = {
isInsp: true,
isFile: false
}
this.callTable(com);
break;
case 'isRun':
const now = new Date();
this.dateTime = now.getHours() + ":"
+ ( now.getMinutes()<10 ? '0' + now.getMinutes() : now.getMinutes() ) + ":"
+ ( now.getSeconds()<10 ? '0' + now.getSeconds() : now.getSeconds() );
this.getMode = 'getRunInfo';
this.putMode = 'putRunInfo';
this.callTable(com,{
WO_NO: this.formData.WO_NO,
RUNSTOP_GB: 'R',
OPER_ST_TM : this.dateTime,
_STATUS_ : 'I'
});
break;
default:
this.callTable(com);
break;
}
}, },
// 클릭시 탭메뉴 활성화 // 클릭시 탭메뉴 활성화
isChangeTab(com) { isChangeTab(com) {
Object.keys(this.isTab).map((key)=>{ Object.keys(this.isTab).map( (key) => {
this.isTab[key] = com == key ? true : false; this.isTab[key] = com == key ? true : false;
}); });

View File

@ -24,7 +24,7 @@ include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
<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="activeTab === 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" :class="{ on : activeTab === tab[Object.keys(tab)[0]] }" @click="showComponent(Object.keys(tab)[0], tab[Object.keys(tab)[0]])" >{{ tab[Object.keys(tab)[0]] }}</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>
</div> </div>
</div> </div>

View File

@ -236,42 +236,6 @@ const VueOperStatusCode = createApp({
// } // }
// }, // },
methods:{ methods:{
initData(group){
for(let i = 0; i < group.length; i++){
finalDataList = []
for(let j=0;j<10;j++){
const operData = group[i][j];
// console.log(operData)
if(operData){
finalDataList.push(
{
OP_CD: operData.OP_CD ,
PLAN_QTY: operData.PLAN_QTY,
PRD_QTY : operData.PRD_QTY,
ST_TM:operData.ST_TM,
ED_TM : operData.ED_TM,
예상종료시간 : operData.예상종료시간 ,
FACLT_CD: operData.FACLT_CD,
EMP_NM: operData.EMP_NM
}
)
}else{
finalDataList.push({})
}
}
group[i][0].공정 = finalDataList
this.codeList.push(group[i][0]);
for(let i=0; i<this.codeList.length; i++){
this.isHover[i] = []
}
}
},
// tableBuild 되었을때 getManList // tableBuild 되었을때 getManList
getMainList(mode,...test) { getMainList(mode,...test) {
@ -332,10 +296,12 @@ const VueOperStatusCode = createApp({
group[i][0].OP_CD = group[i].map(function (element) { group[i][0].OP_CD = group[i].map(function (element) {
return { return {
OP_CD: element?.OP_CD, OP_CD: element?.OP_CD,
OP_SEQ: element?.OP_SEQ,
계획수량: element?.계획수량, 계획수량: element?.계획수량,
PRD_QTY: element?.PRD_QTY, PRD_QTY: element?.PRD_QTY,
ST_TM: element?.ST_TM, ST_TM: element?.ST_TM,
ED_TM: element?.ED_TM, ED_TM: element?.ED_TM,
EMP_NO: element?.WRK_EMP_NO,
예상종료시간: element?.예상종료시간, 예상종료시간: element?.예상종료시간,
FACLT_CD: element?.FACLT_CD, FACLT_CD: element?.FACLT_CD,
EMP_NM: element?.EMP_NM EMP_NM: element?.EMP_NM
@ -374,10 +340,12 @@ const VueOperStatusCode = createApp({
this.codeList = realTemp this.codeList = realTemp;
this.initData(group); for(let i=0; i<this.codeList.length; i++){
this.isHover[i] = []
}
// 실제 데이터 입력함수 // 실제 데이터 입력함수
// ajax_json({ // ajax_json({
@ -401,9 +369,11 @@ const VueOperStatusCode = createApp({
const process = data['OP_CD'][idx] const process = data['OP_CD'][idx]
const bindingData = { const bindingData = {
WO_NO: data['WO_NO'], WO_NO: data['WO_NO'],
WO_SEQ: data['WO_SEQ'],
// 상태: data[상태], // 상태: data[상태],
DRAW_NO: data['DRAW_NO'], DRAW_NO: data['DRAW_NO'],
ITEM_CD: data['ITEM_CD'], ITEM_CD: data['ITEM_CD'],
OP_SEQ: process['OP_SEQ'],
OP_CD: process['OP_CD'], OP_CD: process['OP_CD'],
EMP_NO: process['EMP_NO'], EMP_NO: process['EMP_NO'],
FACLT_CD: process['FACLT_CD'], FACLT_CD: process['FACLT_CD'],