Browse Source

工单核检单工单号回车事件优化 / 关联工资核算优化

曹鹤洋 1 year ago
parent
commit
386dc298d9
2 changed files with 200 additions and 115 deletions
  1. 33 5
      src/view/job/related/related.vue
  2. 167 110
      src/view/performance/09-workOrderVerification/index.vue

+ 33 - 5
src/view/job/related/related.vue

@@ -566,10 +566,17 @@ const onrelevancy = () => {
 	if(time.value!=undefined && code.value!=undefined){
 		Setting(time.value,code.value)
 	}else{
-		ElMessage({
-		  type: 'error',
-		  message: '请选择树形目录中的节点后,再操作此功能!'
-		})
+		relevancyselectData.value = []
+		// formData.value.日期 = res.data[0].日期.replace(/\./g, "-")
+		// formData.value.关联人员工号 = res.data[0].关联人员工号
+		// formData.value.关联人员姓名 = res.data[0].关联人员姓名
+		// formData.value.日关联人数 = res.data[0].日关联人数
+		// formData.value.日关联系数 = res.data[0].日关联系数
+		dialogFormVisible.value = true
+		// ElMessage({
+		//   type: 'error',
+		//   message: '请选择树形目录中的节点后,再操作此功能!'
+		// })
 	}
 	
 }
@@ -753,7 +760,28 @@ const WeightDetail = async (date,code) => {
 
 
 // 批量添加
-const batchadd = () => {
+const batchadd = () => {
+	if(!formData.value.关联人员工号){
+		ElMessage({
+		  type: 'warning',
+		  message: '请填写关联人员工号'
+		})
+		return
+	}
+	if(!formData.value.日期){
+		ElMessage({
+		  type: 'warning',
+		  message: '请选择日期'
+		})
+		return
+	}
+	if(!formData.value.日关联系数 ){
+		ElMessage({
+		  type: 'warning',
+		  message: '请填写关联系数'
+		})
+		return
+	}
 	BatchAddLst()
 }
 const batchaddselectData=ref([])

+ 167 - 110
src/view/performance/09-workOrderVerification/index.vue

@@ -127,63 +127,44 @@
           </div>
 
           <!-- 弹出框 -->
-          <el-dialog
-            v-model="dialogFormVisible"
-            :before-close="closeDialog"
-            :title="type"
-            destroy-on-close
-            width="70%"
-            style="position: fixed; top: 35%; left: 50%; transform: translate(-50%, -50%);"
+          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog"
+            :title="type" destroy-on-close width="1000px"
           >
 
-            <el-form
-              ref="elFormRef"
-              :model="detailData"
-              inline
-              label-position="left"
-              :rules="rule"
-			  id="detail-form"
-			  @keyup="moveFocus"
-            >
-              <el-form-item
-                label="日期"
-              >
-                <el-date-picker
-                  v-model="detailData.qczl_rq"
-                  type="date"
-                  style="width: 150px;"
-				  
-                />
-                <!--                <el-input
-                  v-model="detailData.qczl_rq"
-                  style="width: 120px;"
-                />-->
-              </el-form-item>
-              <el-form-item
-                label="工单编号"
-              >
-                <el-input
-                  v-model="detailData.qczl_gdbh"
-                  style="width: 100px;"
-                  @keyup.enter="handleGdbhEnter"
-                  placeholder="Enter回车"
-                />
-              </el-form-item>
-              <el-form-item label="拼印主工单">
-                <el-input
-                  v-model="detailData.qczl_Pygd"
-                  style="width: 100px;"
-                />
-              </el-form-item>
-              <el-form-item
-                label="产品名称"
-              >
-                <el-input
-                  v-model="detailData.Gd_cpmc"
-                  style="width: 400px;"
-                  readonly
-                />
-              </el-form-item>
+            <el-form ref="elFormRef" :model="detailData"
+              inline label-position="right"
+              :rules="rule" id="detail-form"
+            >
+			<el-row :gutter="30">
+				<el-col :span="5">
+					<el-form-item label="日期" >
+						<el-date-picker v-model="detailData.qczl_rq" type="date" style="width: 150px;" />
+					</el-form-item>
+				</el-col>
+				<el-col :span="5">
+					<el-form-item label="工单编号" >
+					  <el-input  v-model="detailData.qczl_gdbh"
+						style="width: 150px;"
+						@keyup.enter="handleGdbhEnter"
+						placeholder="Enter回车"
+					  />
+					</el-form-item>
+				</el-col>
+				<el-col :span="5">
+					<el-form-item label="拼印主工单">
+					  <el-input
+					    v-model="detailData.qczl_Pygd"
+					    style="width: 150px;"
+					  />
+					</el-form-item>
+				</el-col>
+				<el-col :span="6">
+					<el-form-item label="产品名称" >
+					  <el-input v-model="detailData.Gd_cpmc"
+					    style="width: 300px;" readonly />
+					</el-form-item>
+				</el-col>
+			</el-row>
               <br>
               <el-form-item
                 label="印件号"
@@ -207,7 +188,7 @@
                 label="废品总数"
               >
                 <el-input
-                  v-model="detailData.qczl_fp"
+                  v-model="detailData.qczl_fp" id="废品总数"
                   style="width: 100px;"
                 />
               </el-form-item>
@@ -426,7 +407,18 @@
               />
             </el-table>
           </el-dialog>
-
+
+<el-dialog v-model="dialogSelectVisible" title="选择" destroy-on-close width="1000px" @keydown="selectGX($event)" >
+            <el-table tooltip-effect="dark" :data="selectData_gd"
+              row-key="ID" highlight-current-row="true"
+              border style="width:100%"
+              @row-dblclick="handleSelectClick_gd" ref="table_gd"
+            >
+              <el-table-column prop="Gd_cpmc" label="工单名称" width="430" />
+			  <el-table-column prop="yj_Yjno" label="印件号" width="100" />
+              <el-table-column prop="yj_yjmc" label="印件名称" width="430" />			 
+            </el-table>
+          </el-dialog>
           <el-dialog
             v-model="GetjtbhVisible"
             title="选择"
@@ -741,15 +733,80 @@ const getDetailData = async(id) => {
 }
 
 // 工单编号回车
-const handleGdbhEnter = async() => {
-  const res = await getOrderInfo({ order: detailData.qczl_gdbh })
-  if (res.code === 0) {
-    const { Gd_cpmc, yj_Yjno, yj_yjmc } = res.data
-    detailData.Gd_cpmc = Gd_cpmc
-    detailData.qczl_yjno = yj_Yjno
-    detailData.yj_yjmc = yj_yjmc
-  }
-}
+const handleGdbhEnter = async() => {
+	if(detailData.qczl_gdbh!=''){
+		const res = await getOrderInfo({ order: detailData.qczl_gdbh })
+		if (res.code === 0) {
+			  if(res.data.length==0){
+			    ElMessage({
+					type: 'error',
+					message: '查无此编号的工单,请仔细检查后重新输入'
+			    })
+			    //设置输入框的值为空
+			    detailData.Gd_cpmc = ''
+			    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
+			  }else if(res.data.length>1){
+				  document.getElementById('废品总数').focus()
+				  selectData_gd.splice(0, selectData_gd.length, ...res.data)
+				  setGXCurrent(selectData_gd[0])
+				  dialogSelectVisible.value=true
+			  }
+		  
+		}
+	}else{
+		detailData.Gd_cpmc = ''
+		detailData.qczl_yjno = ''
+		detailData.yj_yjmc = ''
+	}
+  
+}
+const dialogSelectVisible = ref(false)
+const selectData_gd = reactive([])
+// 处理选择框
+const handleSelectClick_gd = (row, column, event) => {
+  detailData.Gd_cpmc = row.Gd_cpmc
+  detailData.qczl_yjno = row.yj_Yjno
+  detailData.yj_yjmc = row.yj_yjmc
+  dialogSelectVisible.value = false
+}
+const currentIndex = ref(0);
+const GXCurrent = ref(0);
+const selectGX = (event) => {
+    if (event.keyCode === 40) { // 向下箭头
+        if (currentIndex.value < selectData_gd.length - 1) {
+            currentIndex.value++;
+            setGXCurrent(selectData_gd[currentIndex.value]);
+        } else {
+            currentIndex.value = 0;
+            setGXCurrent(selectData_gd[currentIndex.value]); // 到达最后一行时回到第一行			
+        }
+    } else if (event.keyCode === 38) { // 向上箭头
+        if (currentIndex.value > 0) {
+            currentIndex.value--;
+            setGXCurrent(selectData_gd[currentIndex.value]);
+        } else {
+            currentIndex.value = selectData_gd.length - 1;
+            setGXCurrent(selectData_gd[currentIndex.value]); // 到达第一行时回到最后一行
+        }
+    } else if (event.keyCode === 13) { // 回车键
+        dialogSelectVisible.value = false;
+    }
+}
+const table_gd = ref()
+const setGXCurrent = (row) => {
+  setTimeout(()=>{
+	  table_gd.value?.setCurrentRow(row) 
+	  detailData.Gd_cpmc = row.Gd_cpmc
+	  detailData.qczl_yjno = row.yj_Yjno
+	  detailData.yj_yjmc = row.yj_yjmc
+  })
+}
 
 // 废品类别回车
 const handleFplbEnter = async(index, row) => {
@@ -1122,50 +1179,50 @@ const showDialog = () => {
   }, 0)
 }
 
-let formElements
-const moveFocus = (event) => {
-  const index = Array.from(formElements).indexOf(event.target)
-  const key = event.key
-  event.preventDefault()
-  switch (index) {
-    case 0:
-      if (key === 'ArrowDown') {
-        formElements[1].focus()
-		formElements[1].select();
-      } else if (key === 'ArrowUp') {
-        formElements[formElements.length - 1].focus()
-      } else if (key === 'Enter') {
-        formElements[1].focus()
-		formElements[1].select();
-      }
-      break
-
-    case formElements.length - 1 :
-      if (key === 'ArrowDown') {
-        formElements[0].focus()
-		formElements[0].select();
-      } else if (key === 'ArrowUp') {
-        formElements[index - 1].focus()
-      } else if (key === 'Enter') {
-        formElements[0].focus()
-		formElements[0].select();
-      }
-      break
-
-    default:
-      if (key === 'ArrowDown') {
-        formElements[index + 1].focus()
-		formElements[index + 1].select();
-      } else if (key === 'ArrowUp') {
-        formElements[index - 1].focus()
-		formElements[index + 1].select();
-      } else if (key === 'Enter') {
-        formElements[index + 1].focus()
-		formElements[index + 1].select();
-      }
-      break
-  }
-}
+// let formElements
+// const moveFocus = (event) => {
+//   const index = Array.from(formElements).indexOf(event.target)
+//   const key = event.key
+//   event.preventDefault()
+//   switch (index) {
+//     case 0:
+//       if (key === 'ArrowDown') {
+//         formElements[1].focus()
+// 		formElements[1].select();
+//       } else if (key === 'ArrowUp') {
+//         formElements[formElements.length - 1].focus()
+//       } else if (key === 'Enter') {
+//         formElements[1].focus()
+// 		formElements[1].select();
+//       }
+//       break
+
+//     case formElements.length - 1 :
+//       if (key === 'ArrowDown') {
+//         formElements[0].focus()
+// 		formElements[0].select();
+//       } else if (key === 'ArrowUp') {
+//         formElements[index - 1].focus()
+//       } else if (key === 'Enter') {
+//         formElements[0].focus()
+// 		formElements[0].select();
+//       }
+//       break
+
+//     default:
+//       if (key === 'ArrowDown') {
+//         formElements[index + 1].focus()
+// 		formElements[index + 1].select();
+//       } else if (key === 'ArrowUp') {
+//         formElements[index - 1].focus()
+// 		formElements[index + 1].select();
+//       } else if (key === 'Enter') {
+//         formElements[index + 1].focus()
+// 		formElements[index + 1].select();
+//       }
+//       break
+//   }
+// }
 </script>
 
 <style scoped>