Prechádzať zdrojové kódy

工序大废品印件号回车事件 制程废选中 员工回车事件优化

曹鹤洋 1 rok pred
rodič
commit
06a46b855a

+ 198 - 51
src/view/job/rewards/rewards.vue

@@ -389,7 +389,7 @@
                 </el-form-item>
                 <el-form-item>
                   <el-checkbox
-                    v-model="detailData"
+                    v-model="detailData.sczl_fplxB"
                     style="width: 30px;"
 					 @keydown="ent1($event)"
                   >制程废</el-checkbox>
@@ -895,24 +895,42 @@
 		  
 		  
 		  
-		  <el-dialog v-model="dialogSelectVisible" title="选择" destroy-on-close width="800px" @keydown="selectGX($event)">
+		  <el-dialog v-model="dialogSelectVisible" title="选择" destroy-on-close width="500px" @keydown="selectGX($event)">
 		    <el-table tooltip-effect="dark" :data="selectData" row-key="ID" 
 			highlight-current-row="true" border style="width:100%" @row-dblclick="handleSelectClick" ref="table2">
-		      <el-table-column label="工序名称" width="225">
+		      <el-table-column label="工序名称" width="460">
 		        <template v-slot="{ row }">
 		          {{ row }}
 		        </template>
 		      </el-table-column>
 		    </el-table>
 		  </el-dialog>
-		  
-		  
-		  <el-dialog v-model="JtbhVisible" title="选择" destroy-on-close width="800px" >
+		  <el-dialog v-model="dialogSelectVisible_Yj" title="选择" destroy-on-close width="600px" @keydown="selectGX_Yj($event)" >
+		              <el-table tooltip-effect="dark" :data="selectData_Yj"
+		                row-key="ID" highlight-current-row="true"
+		                border style="width:100%"
+		                @row-dblclick="handleSelectClick_Yj" ref="table_Yj"
+		              >
+		  			  <el-table-column prop="印件号" label="印件号" width="100" />
+		                <el-table-column prop="印件名称" label="印件名称" width="460" />			 
+		              </el-table>
+		            </el-dialog>
+		  <el-dialog v-model="dialogSelectVisible_Yg" title="选择" destroy-on-close width="300px" @keydown="selectGX_Yg($event)" >
+		              <el-table tooltip-effect="dark" :data="selectData_Yg"
+		                row-key="ID" highlight-current-row="true"
+		                border style="width:100%"
+		                @row-dblclick="handleSelectClick_Yg" ref="table_Yg"
+		              >
+		  			  <el-table-column prop="员工编号" label="员工编号" width="100" />
+		                <el-table-column prop="ygxm" label="员工姓名" width="200" />			 
+		              </el-table>
+		            </el-dialog>
+		  <el-dialog v-model="JtbhVisible" title="选择" destroy-on-close width="200px" >
 		    <el-table tooltip-effect="dark" :data="selectDataJtbh" row-key="ID"
 		      highlight-current-row="true" border style="width:100%"
 		      @row-dblclick="SelectClickJtbh"
 		    >
-		      <el-table-column prop="设备编号" label="设备编号" width="150" />			        	 			        	 
+		      <el-table-column prop="设备编号" label="设备编号" width="160" />			        	 			        	 
 		    </el-table>
 		  </el-dialog>
 
@@ -1149,36 +1167,68 @@ const getCPMCsubmit = () => {
 	}
 }
 //印件号失去焦点事件
-// const getYJMCsubmit = () => {
-//  if(detailData.sczl_gdbh!='' && formData.value.sczl_yjno!=''){
-//  	//获取印件名称
-// 	productionYjmc({gdbh:formData.value.sczl_gdbh,yjno:formData.value.sczl_yjno}).then(response=>{
-//  	  if (response.code === 0) {
-//  		  formData.value.yj_yjmc = response.data.yj_yjmc
-//  		  gxmc.value = response.data.gxmc
-// 		  formData.value.sczl_gxmc = gxmc.value.sczl_gxmc;
-// 		  setColorReadonly('印件名称')
+const getYJMCsubmit = () => {
+ if(detailData.sczl_gdbh!=''){
+ 	//获取印件名称
+	PrintCodeList({workorder:detailData.sczl_gdbh}).then(response=>{
+ 	  if (response.code === 0) {
+		  if(response.data.length==1){
+			  detailData.sczl_yjno = response.data[0]['印件号']
+			  detailData.yj_yjmc = response.data[0]['印件名称']
+		  }else if(response.data.length > 1){
+			  selectData_Yj.splice(0, selectData_Yj.length, ...response.data)
+			  setGXCurrent_Yj(selectData_Yj[0])
+			  dialogSelectVisible_Yj.value=true
+		  }else{
+ 			detailData.sczl_yjno = ''
+ 			detailData.yj_yjmc = ''
+		  }
+ 		  
 		  
-//  		}else{
-//  			ElMessage({
-//  			  type: 'error',
-//  			  message: '印件编号不存在, 将恢复默认值, 请仔细确认数据准确性!'
-//  			})
-//  			formData.value.sczl_yjno = yjnoArr.value[0];
-//  			formData.value.yj_yjmc = '';
-// 			gxmc.value = '';
-//  		}
-//  	});
-//  }else{
-//  	ElMessage({
-//  	  type: 'error',
-//  	  message: '印件编号不存在, 将恢复默认值, 请仔细确认数据准确性!'
-//  	})
-// 	formData.value.sczl_yjno = yjnoArr.value[0];
-// 	formData.value.yj_yjmc = '';
-// 	gxmc.value = '';
-//  }
-// }
+ 		}
+ 	});
+ }
+}
+const dialogSelectVisible_Yj = ref(false)
+const selectData_Yj = reactive([])
+// 处理选择框
+const handleSelectClick_Yj = (row, column, event) => {
+  detailData.sczl_yjno = row.印件号
+  detailData.yj_yjmc = row.印件名称
+  dialogSelectVisible_Yj.value = false
+}
+const currentIndex_Yj = ref(0);
+const GXCurrent_Yj = ref(0);
+const selectGX_Yj = (event) => {
+    if (event.keyCode === 40) { // 向下箭头
+        if (currentIndex_Yj.value < selectData_Yj.length - 1) {
+            currentIndex_Yj.value++;
+            setGXCurrent_Yj(selectData_Yj[currentIndex_Yj.value]);
+        } else {
+            currentIndex_Yj.value = 0;
+            setGXCurrent_Yj(selectData_Yj[currentIndex_Yj.value]); // 到达最后一行时回到第一行			
+        }
+    } else if (event.keyCode === 38) { // 向上箭头
+        if (currentIndex_Yj.value > 0) {
+            currentIndex_Yj.value--;
+            setGXCurrent_Yj(selectData_Yj[currentIndex_Yj.value]);
+        } else {
+            currentIndex_Yj.value = selectData_Yj.length - 1;
+            setGXCurrent_Yj(selectData_Yj[currentIndex_Yj.value]); // 到达第一行时回到最后一行
+        }
+    } else if (event.keyCode === 13) { // 回车键
+        dialogSelectVisible_Yj.value = false;
+    }
+}
+const table_Yj = ref()
+const setGXCurrent_Yj = (row) => {
+  setTimeout(()=>{
+	  table_Yj.value?.setCurrentRow(row) 
+	  detailData.sczl_yjno = row.印件号
+	  detailData.yj_yjmc = row.印件名称
+  })
+}
+
 const dialogSelectVisible=ref(false)
 const selectData=reactive([])
 //工序失去焦点事件
@@ -1225,29 +1275,126 @@ const getJtbhsubmit = (value) => {
 		JtbhVisible.value=true				  
 		}
 	})
-}
+}
+
+let num = '';
+let flag_Yg = true;
 //获取员工信息
 const GetYg = (event, inputName) => {
-  console.log(inputName);
-  var num = parseInt(inputName) - 1;
+  num = parseInt(inputName) - 1;
   if (num >= 1 && num <= 10) {
-	  if(detailData['JL_bh' + num]==undefined){
+	  if(detailData['JL_bh' + num]==undefined || detailData['JL_bh' + num]==''){
+		  detailData['jlname' + num] = '';
+		  detailData['JL_bh' + num] = '';
 		  return
-	  }
-    getYg({ sczl_bh: detailData['JL_bh' + num] }).then(response => {
-      detailData['jlname' + num] = response.data[0].ygxm;
-      detailData['JL_bh' + num] = response.data[0].员工编号;
+	  }
+	  flag_Yg = true;
+    getYg({ sczl_bh: detailData['JL_bh' + num] }).then(response => {
+		if(response.code==0){
+			if(response.data.length==1){
+				detailData['jlname' + num] = response.data[0].ygxm;
+				detailData['JL_bh' + num] = response.data[0].员工编号;
+			}else if(response.data.length>1){
+				selectData_Yg.splice(0, selectData_Yg.length, ...response.data)
+				setGXCurrent_Yg(selectData_Yg[0])
+				dialogSelectVisible_Yg.value=true
+			}else{
+				ElMessage({
+				  type: 'warning',
+				  message: '未查询到该员工'
+				})
+				detailData['jlname' + num] = '';
+				detailData['JL_bh' + num] = '';
+			}
+		}else{
+			detailData['jlname' + num] = '';
+			detailData['JL_bh' + num] = '';
+		}
+      
     });
   } else if (num >= 10 && num <= 21) {
-	  if(detailData['sczl_bh' + (num - 11)]==undefined){
-	  		  return
-	  }
+	  if(detailData['sczl_bh' + (num - 11)]==undefined || detailData['sczl_bh' + (num - 11)]==''){
+	  	detailData['zrname' + (num - 11)] = '';
+	  	detailData['sczl_bh' + (num - 11)] = '';
+		return
+	  }
+	  flag_Yg = false;
     getYg({ sczl_bh: detailData['sczl_bh' + (num - 11)] }).then(response => {
-      detailData['zrname' + (num - 11)] = response.data[0].ygxm;
-      detailData['sczl_bh' + (num - 11)] = response.data[0].员工编号;
+      if(response.code==0){
+      	if(response.data.length==1){
+      		detailData['zrname' + (num - 11)] = response.data[0].ygxm;
+      		detailData['sczl_bh' + (num - 11)] = response.data[0].员工编号;
+      	}else if(response.data.length>1){
+      		selectData_Yg.splice(0, selectData_Yg.length, ...response.data)
+      		setGXCurrent_Yg(selectData_Yg[0])
+      		dialogSelectVisible_Yg.value=true
+      	}else{
+			ElMessage({
+			  type: 'warning',
+			  message: '未查询到该员工'
+			})
+			detailData['zrname' + (num - 11)] = '';
+			detailData['sczl_bh' + (num - 11)] = '';
+		}
+      }else{
+		  detailData['zrname' + (num - 11)] = '';
+		  detailData['sczl_bh' + (num - 11)] = '';
+	  }
+	  // detailData['zrname' + (num - 11)] = response.data[0].ygxm;
+   //    detailData['sczl_bh' + (num - 11)] = response.data[0].员工编号;
     });
   }
-};
+};
+
+const dialogSelectVisible_Yg = ref(false)
+const selectData_Yg = reactive([])
+// 处理选择框
+const handleSelectClick_Yg = (row, column, event) => {
+	if(flag_Yg){
+		detailData['jlname' + (num - 1)] = row.ygxm
+		detailData['JL_bh' + (num - 1)] = row.员工编号
+	}else{
+		detailData['zrname' + (num - 12)] = row.ygxm
+		detailData['sczl_bh' + (num - 12)] = row.员工编号
+	}
+  dialogSelectVisible_Yg.value = false
+}
+const currentIndex_Yg = ref(0);
+const GXCurrent_Yg = ref(0);
+const selectGX_Yg = (event) => {
+    if (event.keyCode === 40) { // 向下箭头
+        if (currentIndex_Yg.value < selectData_Yg.length - 1) {
+            currentIndex_Yg.value++;
+            setGXCurrent_Yg(selectData_Yg[currentIndex_Yg.value]);
+        } else {
+            currentIndex_Yg.value = 0;
+            setGXCurrent_Yg(selectData_Yg[currentIndex_Yg.value]); // 到达最后一行时回到第一行			
+        }
+    } else if (event.keyCode === 38) { // 向上箭头
+        if (currentIndex_Yg.value > 0) {
+            currentIndex_Yg.value--;
+            setGXCurrent_Yg(selectData_Yg[currentIndex_Yg.value]);
+        } else {
+            currentIndex_Yg.value = selectData_Yg.length - 1;
+            setGXCurrent_Yg(selectData_Yg[currentIndex_Yg.value]); // 到达第一行时回到最后一行
+        }
+    } else if (event.keyCode === 13) { // 回车键
+        dialogSelectVisible_Yg.value = false;
+    }
+}
+const table_Yg = ref()
+const setGXCurrent_Yg = (row) => {
+  setTimeout(()=>{
+	  table_Yg.value?.setCurrentRow(row) 
+	  if(flag_Yg){
+	  	detailData['jlname' + (num - 1)] = row.ygxm
+	  	detailData['JL_bh' + (num - 1)] = row.员工编号
+	  }else{
+	  	detailData['zrname' + (num - 12)] = row.ygxm
+	  	detailData['sczl_bh' + (num - 12)] = row.员工编号
+	  }
+  })
+}
 // ============== 表格控制部分结束 ===============
 
 // 获取需要的字典 可能为空 按需保留
@@ -1560,7 +1707,7 @@ const enterDialog = async() => {
  	 sczl_rq: detailData.sczl_rq,
  		sczl_ls: detailData.sczl_ls,
  		sczl_fplxA: detailData.sczl_fplxA,
- 		sczl_fplxB: '0',
+ 		sczl_fplxB: detailData.sczl_fplxB==true ? 1 : 0,
  		责任部门: detailData.责任部门,
  		sczl_cl: detailData.sczl_cl,
  		jl_jtbh: detailData.jl_jtbh,

+ 3 - 4
src/view/performance/09-workOrderVerification/index.vue

@@ -747,10 +747,9 @@ const handleGdbhEnter = async() => {
 			    detailData.qczl_yjno = ''
 			    detailData.yj_yjmc = ''
 			  }else if(res.data.length==1){
-				  const { Gd_cpmc, yj_Yjno, yj_yjmc } = res.data
-				  detailData.Gd_cpmc = Gd_cpmc
-				  detailData.qczl_yjno = yj_Yjno
-				  detailData.yj_yjmc = yj_yjmc
+				  detailData.Gd_cpmc = res.data[0]['Gd_cpmc']
+				  detailData.qczl_yjno = res.data[0]['yj_Yjno']
+				  detailData.yj_yjmc = res.data[0]['yj_yjmc']
 			  }else if(res.data.length>1){
 				  document.getElementById('废品总数').focus()
 				  selectData_gd.splice(0, selectData_gd.length, ...res.data)