Ver Fonte

Merge branch 'master' of https://git.7in6.com/Minong/mes-admin-backend-ui

zck há 1 ano atrás
pai
commit
f8b1d0ece6
1 ficheiros alterados com 168 adições e 28 exclusões
  1. 168 28
      src/view/yunyin/shengchanguanli/shebeiyunxing.vue

+ 168 - 28
src/view/yunyin/shengchanguanli/shebeiyunxing.vue

@@ -1716,7 +1716,7 @@
 			      <el-input v-model="JPformdata['工序号']" style="width: 110px;" id="工序号"  placeholder="Enter回车"  @blur="JPgetGXsubmit()" @keydown="JPent($event)"/>
 			      <el-input v-model="JPformdata['工序号']" style="width: 110px;" id="工序号"  placeholder="Enter回车"  @blur="JPgetGXsubmit()" @keydown="JPent($event)"/>
 			    </el-form-item>
 			    </el-form-item>
 				<el-form-item label="工序名称" prop="customerName" class="mab" label-width="100">
 				<el-form-item label="工序名称" prop="customerName" class="mab" label-width="100">
-				  <el-input v-model="JPformdata['工序名称']" readonly style="width: 260px;" id="工序名称" />
+				  <el-input v-model="JPformdata['工序名称']" readonly style="width: 300px;" id="工序名称" />
 				</el-form-item>
 				</el-form-item>
 				<el-form-item label="检验类别:" prop="customerCode" class="mab" label-width="90">
 				<el-form-item label="检验类别:" prop="customerCode" class="mab" label-width="90">
 					<el-input v-model="JPformdata['检验类别']"  placeholder="Enter回车" style="width: 100px;" id="检验类别" @keydown="JPent($event)"/>
 					<el-input v-model="JPformdata['检验类别']"  placeholder="Enter回车" style="width: 100px;" id="检验类别" @keydown="JPent($event)"/>
@@ -1732,7 +1732,7 @@
 						style="width: 110px;" />
 						style="width: 110px;" />
 					</el-form-item>
 					</el-form-item>
 					<el-form-item label="机器:" prop="customerCode" class="mab" label-width="100">
 					<el-form-item label="机器:" prop="customerCode" class="mab" label-width="100">
-						<el-input v-model="JPformdata['机器']" style="width: 70px;" id="机器" @keydown="JPent($event)"/>
+						<el-input v-model="JPformdata['机器']" style="width: 110px;"  placeholder="Enter回车"  id="机器" @keydown="JPent($event)"/>
 					</el-form-item>
 					</el-form-item>
 					<el-form-item label="流程标牌:" prop="customerCode" class="mab" label-width="100">
 					<el-form-item label="流程标牌:" prop="customerCode" class="mab" label-width="100">
 						<el-input v-model="JPformdata['流程标牌']" style="width: 80px;" id="流程标牌" @keydown="JPent($event)"/>
 						<el-input v-model="JPformdata['流程标牌']" style="width: 80px;" id="流程标牌" @keydown="JPent($event)"/>
@@ -1752,7 +1752,7 @@
 				<el-form-item label="换膜补产工时" prop="customerCode" class="mab" label-width="110">
 				<el-form-item label="换膜补产工时" prop="customerCode" class="mab" label-width="110">
 				  <el-input v-model="JPformdata['换膜补产工时']" style="width: 100px;" id="换膜总工时" @keydown="JPent($event)"/>
 				  <el-input v-model="JPformdata['换膜补产工时']" style="width: 100px;" id="换膜总工时" @keydown="JPent($event)"/>
 				</el-form-item>
 				</el-form-item>
-				<el-form-item label="保养工时:" prop="customerCode" class="mab" label-width="250">
+				<el-form-item label="保养工时:" prop="customerCode" class="mab" label-width="290">
 				  <el-input v-model="JPformdata['保养工时']" style="width: 100px;" id="保养工时" @keydown="JPent($event)"/>
 				  <el-input v-model="JPformdata['保养工时']" style="width: 100px;" id="保养工时" @keydown="JPent($event)"/>
 				</el-form-item>
 				</el-form-item>
 			  </el-row>
 			  </el-row>
@@ -1764,7 +1764,7 @@
 				  <el-form-item label="异常类型:" prop="customerCode" class="mab" label-width="110">
 				  <el-form-item label="异常类型:" prop="customerCode" class="mab" label-width="110">
 				    <el-input v-model="JPformdata['异常类型']" style="width: 100px;" id="异常类型" @keydown="JPent($event)"/>
 				    <el-input v-model="JPformdata['异常类型']" style="width: 100px;" id="异常类型" @keydown="JPent($event)"/>
 				  </el-form-item>
 				  </el-form-item>
-				  <el-form-item label="异常补贴工时:" prop="customerCode" class="mab" label-width="250">
+				  <el-form-item label="异常补贴工时:" prop="customerCode" class="mab" label-width="290">
 				    <el-input v-model="JPformdata['异常补贴工时']" style="width: 100px;" id="异常补贴工时" @keydown="JPent($event)"/>
 				    <el-input v-model="JPformdata['异常补贴工时']" style="width: 100px;" id="异常补贴工时" @keydown="JPent($event)"/>
 				  </el-form-item>
 				  </el-form-item>
 				<el-form-item label="通电工时" prop="customerCode" class="mab" label-width="100">
 				<el-form-item label="通电工时" prop="customerCode" class="mab" label-width="100">
@@ -1774,7 +1774,7 @@
 			  
 			  
 			  <el-row :gutter="24">
 			  <el-row :gutter="24">
 				<el-form-item label="定额代号:" prop="customerCode" class="mab" label-width="90">
 				<el-form-item label="定额代号:" prop="customerCode" class="mab" label-width="90">
-				  <el-input v-model="JPformdata['定额代号']" style="width: 160px;" id="定额代号" @keydown="JPent($event)"/>
+				  <el-input v-model="JPformdata['定额代号']" style="width: 160px;"  placeholder="Enter回车"  id="定额代号" @keydown="JPent($event)"/>
 				</el-form-item>
 				</el-form-item>
 			  </el-row>
 			  </el-row>
 			  
 			  
@@ -1797,7 +1797,7 @@
 			          <!-- 空列,用于对齐 -->
 			          <!-- 空列,用于对齐 -->
 			        </el-col>
 			        </el-col>
 			        <el-col v-for="i in 10" :key="i" :span="2">
 			        <el-col v-for="i in 10" :key="i" :span="2">
-			          <el-input v-model="JPformdata['组员' + i]['姓名']" :id="'xm' + i" @keydown="JPent($event)"/>
+			          <el-input v-model="JPformdata['组员' + i]['姓名']" :id="'xm' + i" readonly/>
 			        </el-col>
 			        </el-col>
 			      </el-row>
 			      </el-row>
 			      
 			      
@@ -1806,7 +1806,7 @@
 			          <!-- 空列,用于对齐 -->
 			          <!-- 空列,用于对齐 -->
 			        </el-col>
 			        </el-col>
 			        <el-col v-for="i in 10" :key="i" :span="2">
 			        <el-col v-for="i in 10" :key="i" :span="2">
-			          <el-input v-model="JPformdata['组员' + i]['比例']" :id="'bl' + i" @keydown="JPent($event)" />
+			          <el-input v-model="JPformdata['组员' + i]['比例']" :id="'bl' + i" @keydown="JPent($event,i,'比例')" />
 			        </el-col>
 			        </el-col>
 			      </el-row>
 			      </el-row>
 		    </el-form>
 		    </el-form>
@@ -1832,6 +1832,15 @@
             </el-table>
             </el-table>
           </el-dialog>
           </el-dialog>
 		  
 		  
+		  <!-- JP检品独立  机台机器-->
+			<el-dialog v-model="JPdialogVisible_JT" title="机台机器选择" destroy-on-close width="600px" style="height: 600px;" @keydown="JPselect_JT($event)">
+			  <el-table tooltip-effect="dark" :data="JPselectData_JT" row-key="ID" highlight-current-row="true"
+						border style="width:100%" ref="table_JT" :row-style="{ height: '20px' }" :cell-style="{ padding: '0px' }"
+						:header-row-style="{ height: '20px' }" :header-cell-style="{ padding: '0px' }" @row-dblclick="JPhandleSelectClick_JT">
+				<el-table-column prop="机台" label="机台" />
+			  </el-table>
+			</el-dialog>
+			
 		  
 		  
 		  <!-- JP检品独立 新增印件选择 -->
 		  <!-- JP检品独立 新增印件选择 -->
 		  <el-dialog v-model="JPdialogSelectVisible_Gx" title="选择" destroy-on-close width="600px" style="margin-top: 2%;" @keydown="JPselect_xz($event)" >
 		  <el-dialog v-model="JPdialogSelectVisible_Gx" title="选择" destroy-on-close width="600px" style="margin-top: 2%;" @keydown="JPselect_xz($event)" >
@@ -3191,6 +3200,7 @@ const JPgytableDatadoubleClick = async (row) => {
 	// Object.assign(JPformdataedit,row);
 	// Object.assign(JPformdataedit,row);
 	JPchanliangVisibleedit.value = true
 	JPchanliangVisibleedit.value = true
 }
 }
+
 //当日上报产量确定
 //当日上报产量确定
 const JPenterDialogedit = async () => {
 const JPenterDialogedit = async () => {
 	// console.log(JPformdataedit)
 	// console.log(JPformdataedit)
@@ -3305,7 +3315,6 @@ const JPformdata = reactive({
 
 
 //班组产量提报 JP检品机 班组产量提报确定
 //班组产量提报 JP检品机 班组产量提报确定
 const JPenterDialog = async() => {
 const JPenterDialog = async() => {
-	// console.log(JPformdata)
 	const JPformattedData = {
 	const JPformattedData = {
 	  sczl_jtbh:JTMC+'#',
 	  sczl_jtbh:JTMC+'#',
 	  sczl_gdbh: JPformdata['工单编号'],
 	  sczl_gdbh: JPformdata['工单编号'],
@@ -3380,6 +3389,7 @@ const JPenterDialog = async() => {
 		JPformdata['异常类型'] = ''
 		JPformdata['异常类型'] = ''
 		JPformdata['异常补贴工时'] = ''
 		JPformdata['异常补贴工时'] = ''
 		JPformdata['通电工时'] = ''
 		JPformdata['通电工时'] = ''
+		JPformdata['计件箱数'] = ''
 	} else {
 	} else {
 	  ElMessage({type: 'error',message: '添加失败'})
 	  ElMessage({type: 'error',message: '添加失败'})
 	}
 	}
@@ -3711,6 +3721,52 @@ const JPentedit = async (event,key,val) => {
 
 
 
 
 
 
+/*
+	机台机器选择
+*/
+const JPdialogVisible_JT = ref(false)  // 弹窗
+const JPselectData_JT = reactive([])  // table data
+const currentIndex_JT = ref(0);
+//双击事件
+const JPhandleSelectClick_JT = async (row) => {
+	// 使用 split() 截取 '机器' 字符串中 '-->' 前面的部分
+	const machineName = row['机台'].split('-->')[0]; 
+	JPformdata['机器'] = machineName;
+}
+// 键盘事件
+const JPselect_JT = async (event) => {
+  if (event.keyCode === 40) { // 向下箭头
+    if (currentIndex_JT.value < JPselectData_JT.length - 1) {
+      currentIndex_JT.value++;
+      setCurrent_JT(JPselectData_JT[currentIndex_JT.value]);
+    } else {
+      currentIndex_JT.value = 0;
+      setCurrent_JT(JPselectData_JT[currentIndex_JT.value]); // 到达最后一行时回到第一行
+    }
+  } else if (event.keyCode === 38) { // 向上箭头
+    if (currentIndex_JT.value > 0) {
+      currentIndex_JT.value--;
+      setCurrent_JT(JPselectData_JT[currentIndex_JT.value]);
+    } else {
+      currentIndex_JT.value = JPselectData_JT.length - 1;
+      setCurrent_JT(JPselectData_JT[currentIndex_JT.value]); // 到达第一行时回到最后一行
+    }
+  } else if (event.keyCode === 13) { // 回车键
+    JPdialogVisible_JT.value = false;
+  }
+}
+
+// ref属性
+const table_JT = ref();
+
+const setCurrent_JT = (row) => {
+  setTimeout(() => {
+    table_JT.value?.setCurrentRow(row);
+	// 使用 split() 截取 '机器' 字符串中 '-->' 前面的部分
+	const machineName = row['机台'].split('-->')[0];
+	JPformdata['机器'] = machineName;
+  });
+}
 
 
 
 
 
 
@@ -3728,7 +3784,8 @@ const onADD = async() => {
 		getMachineReportInfos();
 		getMachineReportInfos();
 		
 		
 		//默认显示清空
 		//默认显示清空
-		JPformdata['机器'] = JTMC+'#'
+		// JPformdata['机器'] = JTMC+'#'
+		
 		// JPformdata['换膜补产工时'] = ''
 		// JPformdata['换膜补产工时'] = ''
 	} else {
 	} else {
 	  type2.value="create"
 	  type2.value="create"
@@ -3990,28 +4047,84 @@ const rqHandleFocus = () => {
 	}
 	}
 }
 }
 
 
+//回车事件
 const JPent = async (event,key,val) => {
 const JPent = async (event,key,val) => {
 	if(event.keyCode === 13){
 	if(event.keyCode === 13){
 		//组员及比例分配
 		//组员及比例分配
-		if(event.keyCode === 13 && val === '1'){
-			let bzyg=''
-			bzyg=`组员${key}`
-			let bzxm=''
-			bzxm=`组员${key}`
-			if(JPformdata[bzyg]['编号']){
-				const getYg_response = await getYg({sczl_bh:JPformdata[bzyg]['编号']});
-				console.log(getYg_response)
-				if (getYg_response.code === 0) {
-				  if(getYg_response.data.length === 1){
-					JPformdata[bzyg]['姓名'] = getYg_response.data[0].ygxm
-					JPformdata[bzyg]['编号'] = getYg_response.data[0].员工编号
-				  }else{
-					JPblModellist.value = true;
-					JPemployeeDatalist.value = getYg_response.data // 假设响应数据是数组
-				  }
+		 if (val === '1') {
+		      let bzyg = `组员${key}`;
+		
+		      if (JPformdata[bzyg] && JPformdata[bzyg]['编号']) {
+		        try {
+		          const getYg_response = await getYg({ sczl_bh: JPformdata[bzyg]['编号'] });
+		          console.log(getYg_response);
+		
+		          if (getYg_response.code === 0) {
+		            if (getYg_response.data.length === 1) {
+		              JPformdata[bzyg]['姓名'] = getYg_response.data[0].ygxm;
+		              JPformdata[bzyg]['编号'] = getYg_response.data[0].员工编号;
+		            } else {
+		              // 显示员工选择列表
+		              JPblModellist.value = true;
+		              JPemployeeDatalist.value = getYg_response.data;
+		            }
+		          }
+		        } catch (error) {
+		          console.error("获取员工信息失败", error);
+		        }
+		      }
+		
+		      // 阻止回车键的默认行为
+		      event.preventDefault();
+		      event.stopPropagation();
+		
+		      // 获取所有以 "bh" 开头的输入框
+		      const inputs = document.querySelectorAll('input[id^="bh"]');
+		      const currentIndex = Array.from(inputs).indexOf(event.target); // 获取当前触发事件的input索引
+		
+		      // 判断是否是最后一个输入框
+		      if (currentIndex === inputs.length - 1) {
+		        console.log('当前是最后一个输入框');
+				if(JPblModellist.value === false){
+					// 弹出存盘确认框
+					ElMessageBox.confirm('数据存盘?', '提示', {
+					  confirmButtonText: '确定',
+					  cancelButtonText: '取消',
+					  type: 'warning'
+					}).then(() => {
+					  // 用户点击“确定”,执行存盘操作
+					  JPenterDialog(); // 存盘函数
+					}).catch(() => {
+					  console.log('用户取消了存盘操作');
+					});
 				}
 				}
-			}
-		}
+		       
+		      }
+		    }
+		// if (event.keyCode === 13 && val === '比例') {
+		//     event.preventDefault();  // 阻止回车键的默认行为
+		//     event.stopPropagation(); // 阻止事件冒泡
+		
+		//     // 获取所有 input 元素
+		//     const inputs = document.querySelectorAll('input'); // 假设所有的input元素都在文档中
+		//     const currentIndex = Array.from(inputs).indexOf(event.target); // 获取当前触发事件的input索引
+		    
+		//     // 判断是否是最后一个 input
+		//     if (currentIndex === inputs.length - 1) {
+		//         console.log('当前是最后一个输入框');
+		//         ElMessageBox.confirm('数据存盘?', '提示', {
+		//             confirmButtonText: '确定',
+		//             cancelButtonText: '取消',
+		//             type: 'warning'
+		//         }).then(() => {
+		//             // console.log("保存");
+		// 			JPenterDialog()
+		//         }).catch(() => {
+		//             console.log('用户取消了存盘操作');
+		//         });
+		//     }
+		// }
+
 		if(event.target.id === '检验类别'){
 		if(event.target.id === '检验类别'){
 			JPdialogSelectVisible_LX.value = true
 			JPdialogSelectVisible_LX.value = true
 		}
 		}
@@ -4049,7 +4162,7 @@ const JPent = async (event,key,val) => {
 		if(event.target.id === '工序号'){
 		if(event.target.id === '工序号'){
 			document.getElementById('工序名称').style.color = 'red';
 			document.getElementById('工序名称').style.color = 'red';
 			//弹出选择
 			//弹出选择
-			ChanliangProcessDetail({gdbh:JPformdata['工单编号'],yjno:JPformdata['印件号'],machine:''}).then(response=>{
+			ChanliangProcessDetail({gdbh:JPformdata['工单编号'],yjno:JPformdata['印件号'],machine: CJMC.value}).then(response=>{
 				// console.log(response)
 				// console.log(response)
 				if (response.code === 0) {
 				if (response.code === 0) {
 					if(response.data){
 					if(response.data){
@@ -4069,6 +4182,33 @@ const JPent = async (event,key,val) => {
 				}
 				}
 			})
 			})
 		}
 		}
+		if (event.target.id === '机器') {
+		  // 获取当前输入框的值
+		  const machineInputValue = JPformdata['机器'];
+		  
+		  // 调用接口获取机台数据
+		  const MachineListdata = await gdzl_MachineList({ address: CJMC.value });
+		  console.log("MachineListdata", MachineListdata);
+		  
+		  //机台列表数据
+		  JPselectData_JT.value = MachineListdata.data.map((item, index) => ({
+			ID: index + 1,
+			机台: item,
+		  }));
+		  JPselectData_JT.splice(0, JPselectData_JT.length, ...JPselectData_JT.value);
+		
+		  // 检查输入的机器名称是否存在于接口返回的数据中
+		  const isMachineValid = JPselectData_JT.value.some(item => item.机台 === machineInputValue);
+		  //完全匹配时,输入错误在弹窗
+		  // const isMachineValid = JPselectData_JT.value.some(item => item.机台.split('-->')[0] === machineInputValue);
+		  if (!isMachineValid) {
+		    // 如果机器名称无效,则弹出弹窗
+			JPdialogVisible_JT.value = true;
+			// console.log('输入的机器不在列表中,弹出弹窗');
+		  } else {
+			// console.log('输入的机器匹配列表,弹窗不显示');
+		  }
+		}
 	}
 	}
 	
 	
    const inputs = document.getElementsByTagName('input');
    const inputs = document.getElementsByTagName('input');