liuhairui 1 year ago
parent
commit
e9d49313a2

+ 45 - 0
src/api/mes/job.js

@@ -314,3 +314,48 @@ export const FieldInspectionRecord = (params) => {
     params
   })
 }
+
+/*
+	工单生产批次信息查询
+*/
+
+//工单查询接口
+export const StaGetOrderList = (params) => {
+  return service({
+    url: '/mes_server/Production_lot/GetOrderList',
+    method: 'get',
+    params
+  })
+}
+//获取左侧菜单栏
+export const StaGetList = (params) => {
+  return service({
+    url: '/mes_server/Production_lot/GetList',
+    method: 'get',
+    params
+  })
+}
+//获取工单数据接口
+export const StaGetOrderDetail = (params) => {
+  return service({
+    url: '/mes_server/Production_lot/GetOrderDetail',
+    method: 'get',
+    params
+  })
+}
+// 工艺及生产班组
+export const StaProcessList = (params) => {
+  return service({
+    url: '/mes_server/Production_lot/ProcessList',
+    method: 'get',
+    params
+  })
+}
+//制程异常记录
+export const StaProcessAnomaly = (params) => {
+  return service({
+    url: '/mes_server/Production_lot/ProcessAnomaly',
+    method: 'get',
+    params
+  })
+}

+ 286 - 103
src/view/performance/06-packingDocuments/index.vue

@@ -58,41 +58,32 @@
 					<!-- 弹出框 -->
 					<div>
 						<el-dialog v-model="dialogFormVisible" :title="type" destroy-on-close width="1400px">
-							<el-form id="detail-form" :model="detailData" inline label-position="left"
-								@keyup="moveFocus">
+							<el-form id="detail-form" :model="detailData" inline label-position="left">
 								<el-form-item label="日期">
-									<el-input type="date" max="9999-12-31" @focus="rqHandleFocus()"
+									<el-input type="date" max="9999-12-31" @focus="rqHandleFocus()" @keyup="moveFocus"
 										v-model="detailData.sczl_rq" style="width: 120px;" />
 								</el-form-item>
 
 								<el-form-item label="员工编号">
-									<el-input v-model="detailData.sczl_bh" style="width: 100px;"
+									<el-input v-model="detailData.sczl_bh" style="width: 100px;" @keyup="moveFocus"
 										placeholder="Enter回车" 
 										 />
 									<el-input v-model="detailData.name" style="width: 100px; padding-left: 5px;"
-										@click="selectvalue($event)" readonly />
+										@keyup="moveFocus" @click="selectvalue($event)" readonly />
 								</el-form-item>
 
 								<el-form-item label="组别">
-									<!-- <el-select v-model="detailData.sczl_bzdh" placeholder=" " style="width: 80px" >
-									  <el-option  label="A班" value="A班" />
-									  <el-option label="B班" value="B班" />
-									</el-select> -->
-									<el-input v-model="detailData.sczl_bzdh" style="width: 80px;" @keydown="getBzsubmit($event)" />
+									<el-input v-model="detailData.sczl_bzdh" style="width: 80px;" @keyup="moveFocus" @keydown="getBzsubmit($event)" />
 								</el-form-item>
 								<br>
 
 								<el-form-item label="计时时数" style="padding-left: 195px;">
-									<el-input v-model="detailData.sczl_jsss" style="width: 100px;"
+									<el-input v-model="detailData.sczl_jsss" style="width: 100px;" @keyup="moveFocus"
 										@click="selectvalue($event)" />
 								</el-form-item>
 
 								<el-form-item label="冲月定额">
-									<!-- <el-select v-model="detailData.sczl_冲定额" placeholder=" " style="width: 100px">
-										<el-option label="" value="" />
-										<el-option label="是" value="是" />
-									</el-select> -->
-									<el-input v-model="detailData.sczl_冲定额" style="width: 80px;" @keydown="getBzsubmit2($event)" />
+									<el-input v-model="detailData.sczl_冲定额" @keyup="moveFocus" style="width: 80px;" @keydown="getBzsubmit2($event)" />
 								</el-form-item>
 
 								<el-table :data="detailData.table" border tooltip-effect="dark"
@@ -102,31 +93,31 @@
 									<el-table-column label="工单编号" width="120">
 										<template #default="{ row, $index }">
 											<el-input v-model="row.sczl_gdbh" placeholder="Enter回车"
-												@keyup.enter="handleEnter($index, row)" @keyup  ="movefous($event,row)" />
+												@keydown="handleEnter($event,$index, row)" @keyup="movefous3($event,row)" />
 										</template>
 									</el-table-column>
 
 									<el-table-column label="印件工序" width="100">
 										<template #default="{ row }">
-											<el-input v-model="row.sczl_yjGx" readonly />
+											<el-input v-model="row.sczl_yjGx" @keyup="moveFocus" readonly />
 										</template>
 									</el-table-column>
 
 									<el-table-column label="工序名称" width="100">
 										<template #default="{ row }">
-											<el-input v-model="row.sczl_gxmc" readonly />
+											<el-input v-model="row.sczl_gxmc" @keyup="moveFocus" readonly />
 										</template>
 									</el-table-column>
 
 									<el-table-column label="印件名称" width="310">
 										<template #default="{ row }">
-											<el-input v-model="row.Gd_cpmc" readonly />
+											<el-input v-model="row.Gd_cpmc" @keyup="moveFocus" readonly />
 										</template>
 									</el-table-column>
 									
 									<el-table-column label="核算标准">
 										<template #default="{ row }">
-											<el-select v-model="row.hsbz"  placeholder="请选择" popper-class="dropdown" >
+											<el-select v-model="row.hsbz" @keyup="moveFocus"  placeholder="请选择" popper-class="dropdown" >
 												<el-option label="1000" value="1000" ></el-option>
 												<el-option label="2500" value="2500"></el-option>
 											</el-select>
@@ -135,39 +126,40 @@
 
 									<el-table-column label="包装产量" width="100">
 										<template #default="{ row }">
-											<el-input v-model="row.sczl_cl" />
+											<el-input v-model="row.sczl_cl" @keyup="moveFocus" />
 										</template>
 									</el-table-column>
 
 									<el-table-column label="返工产量" width="95">
 										<template #default="{ row }">
-											<el-input v-model="row.sczl_返工产量" />
+											<el-input v-model="row.sczl_返工产量" @keyup="moveFocus" />
 										</template>
 									</el-table-column>
 
 									<el-table-column label="每箱数量" width="100">
 										<template #default="{ row }">
-											<el-input v-model="row.sczl_PgCl" />
+											<el-input v-model="row.sczl_PgCl" @keyup="moveFocus" />
 										</template>
 									</el-table-column>
 
 									<el-table-column label="计产系数" width="95">
 										<template #default="{ row }">
-											<el-input v-model="row.sczl_计产系数" />
+											<el-input v-model="row.sczl_计产系数" @keyup="moveFocus" />
 										</template>
 									</el-table-column>
 
 									<el-table-column label="来源" width="95">
 										<template #default="{ row }">
-											<el-input v-model="row.sczl_Jtbh1" 
+											<el-input v-model="row.sczl_Jtbh1"  
 											@keyup  ="movefous2($event,row)"/>
 										</template>
 									</el-table-column>
 
 									<el-table-column label="定额代号" width="130">
 										<template #default="{ row, $index }">
-											<el-input id="input" v-model="row.sczl_dedh"
-												@keyup.enter="getDedhsubmit($index, row)" />
+											<el-input id="input" v-model="row.sczl_dedh" @keyup="moveFocus"
+												@keydown="getDedhsubmit($event,$index, row)" />
+												
 										</template>
 									</el-table-column>
 
@@ -190,7 +182,22 @@
 
 
 						<!-- 新增定额代号 -->
-						<el-dialog v-model="dedhsearchModel" :before-close="() => dedhsearchModel = false" @opened="focusFirstNode">
+						<el-dialog v-model="dedhsearchModel" id="tableFplb" @keydown="ent($event)" style="margin-top: 5%;"  >
+							<el-form>
+									<el-form-item label="选择定额代号" class="mab" prop="keyOrder"></el-form-item>
+									<div style="border:1px solid #eee; width:100%; height: 600px; overflow-y: auto;">
+										<el-tree :data="dedhtreeData" ref="table_fplb" 
+											@keydown="handleTreeKeydown" 
+											:props="{ children: 'children',label: 'label'}"
+											node-key="id" @node-click="dedhhandleNodeClick">
+										</el-tree>
+									</div>
+							</el-form>
+						</el-dialog>
+						
+						
+						
+						<!-- <el-dialog v-model="dedhsearchModel" :before-close="() => dedhsearchModel = false" @opened="focusFirstNode">
 							<el-form>
 								<div>
 									<el-form-item label="定额代号 :" class="mab" prop="keyOrder">
@@ -206,7 +213,7 @@
 
 								</div>
 							</el-form>
-						</el-dialog>
+						</el-dialog> -->
 
 
 						<!-- 弹出选项框 -->
@@ -1007,15 +1014,21 @@ const SelectClickBz = (row, column, event) => {
 	}
 	
 	// 处理选择框回车操作
-	const handleEnter = (index, row) => {
-		detailData.table[index].sczl_dedh = '030002002'
-		detailData.table[index].sczl_计产系数 = '1.000'
-		if (row.sczl_gdbh === '') {
-			detailData.table[index].sczl_yjGx = ''
-			detailData.table[index].sczl_gxmc = ''
-			detailData.table[index].Gd_cpmc = ''
-		} else {
-			getTableGxMc(index, row)
+	const handleEnter = (event,index, row) => {
+		const inputs = document.getElementsByTagName("input");
+		const currentIndex = Array.from(inputs).indexOf(event.target);
+		// console.log(inputs)
+		if(event.keyCode === 13){
+			console.log("回车")
+			detailData.table[index].sczl_dedh = '030002002'
+			detailData.table[index].sczl_计产系数 = '1.000'
+			if (row.sczl_gdbh === '') {
+				detailData.table[index].sczl_yjGx = ''
+				detailData.table[index].sczl_gxmc = ''
+				detailData.table[index].Gd_cpmc = ''
+			} else {
+				getTableGxMc(index, row)
+			}
 		}
 	}
 
@@ -1100,61 +1113,217 @@ const SelectClickBz = (row, column, event) => {
 	}
 
 
-	//新增定额代号
-	const dedhsearchModel = ref(false)
-	const dedhtreeData = ref([])
-	const table_dedh =ref()
+	/*
+		定额代号
+	*/
+	const dedhtreeData = reactive([]);
+	const treeRef = ref(null);
+	const dedhsearchModel = ref(false);
+	const table_fplb = ref(null); // el-tree 的 ref
+	const defaultExpandedKey = ref(null); // 默认展开的节点 key
+	const selectIndex = ref(0); // 当前选中的索引
 	const _index = ref(null)
-	// 定额代号回车事件
-	const getDedhsubmit = async (index, row) => {
-		if(detailData.table[index].sczl_dedh == '030002002'){
-			return
-		}
-		_index.value = index
-		dedhsearchModel.value = true;
-		const getPieceWorks = await getDedh();
-		console.log(getPieceWorks);
-	if (getPieceWorks.code === 0) {
-		const transformItems = (items,indexs) => {
-	        return items.map((item,index) => ({
-	            id: `${indexs}-${index}`,
-	            label: `${item.sys_mc}【${item.sys_bh}】`,
-	            params: {
-	                code: item.sys_bh
-	            },
-	            children: item.bh_mc ? transformItems(item.bh_mc) : []
-	        }));
-	    };
 	
-	    const transformedData2 = getPieceWorks.data.map((topItem,indexs) => ({
-			id: indexs,
-	        label: `${topItem.sys_mc}【${topItem.sys_bh}】`,
-	        params: {
-	            code: topItem.sys_bh
-	        },
-	        children: topItem.bh_mc ? transformItems(topItem.bh_mc,indexs) : []
-	    }));
+	const getDedhsubmit = async (event,index, row) => {
+	  try {
+	    // 如果当前值是特殊值,直接跳到下一行
+	    if (detailData.table[index].sczl_dedh === "030002002") {
+	      jumpToNextRow(index);
+	      return;
+	    }
 	
-	    dedhtreeData.value = transformedData2;
-		console.log(transformedData2);
-		  nextTick(() => {
-		    // 手动设置选中节点,如果默认选中不生效,可以使用此方法
-		    if (table_dedh.value) {
-			  const tree = table_dedh.value?.$el; // 访问组件实例的 $el
-			    if (tree) {
-			      // 通过DOM选择器查找节点
-			      const node = tree.querySelector('[data-key="0"]');
-			      if (node) {
-			        node.scrollIntoView();
-			        node.focus(); // 假设节点是可聚焦的
-			      }
-			    }
-				
-		    }
-		  });
-	}
+	    // 请求数据
+	    const response = await getDedh();
+	    if (response.code === 0) {
+	      const treeData = response.data;
+	
+	      // 判断当前行的值是否存在于返回数据中
+	      const isValueExist = checkIfValueExist(treeData, row.sczl_dedh);
+	      if (isValueExist) {
+	        console.log("匹配成功,跳转到下一行");
+	        jumpToNextRow(index); // 跳转到下一行
+	      } else {
+			  if (event.keyCode === 13) {
+				  // 如果不匹配,弹出弹窗
+				  dedhsearchModel.value = true; 
+				  _index.value = index; // 保存当前行索引
+				  	
+				  // 构建树形数据
+				  dedhtreeData.splice(0, dedhtreeData.length, ...treeData.map((node) => buildTree(node)));
+				  	
+				  nextTick(() => {
+				    const tree = table_fplb.value;
+				    if (tree) {
+				      const firstNode = tree.getNode(0);
+				      if (firstNode) {
+				        firstNode.expanded = true; 
+				        firstNode.el.scrollIntoView();
+				        firstNode.el.focus();
+				      }
+				    }
+				  });
+			  }
+	      }
+	    }
+	  } catch (error) {
+	    console.error("获取数据出错:", error);
+	  }
+	};
+	
+	// 判断当前值是否存在于树数据中
+	const checkIfValueExist = (data, targetValue) => {
+	  let found = false;
+	
+	  const search = (nodes) => {
+	    for (const node of nodes) {
+	      if (node.sys_bh === targetValue) {
+	        found = true;
+	        break;
+	      }
+	      if (Array.isArray(node.bh_mc)) {
+	        search(node.bh_mc); // 递归搜索
+	      }
+	    }
+	  };
+	
+	  search(data);
+	  return found;
+	};
+	
+	// 构建树形数据
+	const buildTree = (node, parentIndex = "") => {
+	  return {
+	    id: parentIndex ? `${parentIndex}-${node.sys_bh}` : node.sys_bh,
+	    label: `${node.sys_mc}【${node.sys_bh}】`,
+	    params: { code: node.sys_bh },
+	    children: Array.isArray(node.bh_mc)
+	      ? node.bh_mc.map((child) => buildTree(child, node.sys_bh))
+	      : [],
+	  };
+	};
+	
+	// 跳转到下一行的工单编号
+	const jumpToNextRow = (currentIndex) => {
+	  const nextRowIndex = currentIndex + 1;
+	  if (nextRowIndex < detailData.table.length) {
+	    nextTick(() => {
+	      const nextInput = document.querySelector(
+	        `[data-index="${nextRowIndex}"] input`
+	      );
+	      if (nextInput) {
+	        nextInput.focus(); // 聚焦到下一行的工单编号输入框
+	      }
+	    });
+	  }
 	};
 
+	
+	
+	//键盘事件
+	const handleTreeKeydown = (event, index) => {
+	  // _index.value = index; // 保存当前行索引
+	  const tree = table_fplb.value; // 获取树实例
+	  if (!tree) {
+	    console.error("树组件未加载");
+	    return;
+	  }
+	
+	  const focusedElement = document.activeElement;
+	  const focusedNodeId = focusedElement?.getAttribute("data-key");
+	
+	  // 回车键(13)的处理
+	  if (event.keyCode === 13 && focusedNodeId) {
+	    tree.setCurrentKey(focusedNodeId);
+	    tree.$nextTick(() => {
+	      const currentNode = tree.getCurrentNode();
+	      if (!currentNode) {
+	        console.warn("没有选中的节点");
+	        return;
+	      }
+	
+	      // 清除上一次的选中状态
+	      clearPreviousSelection(tree);
+	
+	      // 收起所有其他节点
+	      Object.keys(tree.store.nodesMap).forEach((key) => {
+	        tree.store.nodesMap[key].expanded = false; // 收起所有节点
+	      });
+	
+	      // 展开当前节点
+	      tree.store.nodesMap[currentNode.id].expanded = true;
+	
+	      // 如果当前节点有子节点,选中第一个子节点
+	      if (currentNode.children && currentNode.children.length > 0) {
+	        const firstChild = currentNode.children[0];
+	        if (firstChild) {
+	          const firstChildKey = firstChild.id.toString();
+	          tree.setCurrentKey(firstChildKey);
+	          setTimeout(() => {
+	            const firstChildDom = tree.$el.querySelector(`[data-key="${firstChildKey}"]`);
+	            if (firstChildDom) {
+	              firstChildDom.focus();
+	              firstChildDom.scrollIntoView({ block: "nearest" });
+	            }
+	          });
+	        }
+	      } else {
+	        // 当前节点没有子节点的逻辑
+	        console.log("当前行索引:", _index.value); // 打印当前行索引
+	        console.log("当前子节点:", currentNode.label);
+	        const currentLabel = currentNode.label; 
+	        const code = currentLabel.split("【")[1]?.split("】")[0] || "";
+	
+	        // 赋值给当前行的字段
+	        detailData.table[_index.value].sczl_dedh = code;
+	        dedhsearchModel.value = false; // 关闭弹窗
+	      }
+	    });
+	  }
+	
+	  // 上下箭头键(38/40)的处理
+	  else if (event.keyCode === 38 || event.keyCode === 40) {
+	    const currentNode = tree.getCurrentNode();
+	    if (currentNode) {
+	      const currentNodeDom = tree.$el.querySelector(`[data-key="${currentNode.id}"]`);
+	      if (currentNodeDom) {
+	        currentNodeDom.focus();
+	      }
+	    }
+	  }
+	};
+
+	
+	// 清除之前的选中状态
+	const clearPreviousSelection = (tree) => {
+	  const selectedNodes = tree.getCheckedNodes();
+	  selectedNodes.forEach(node => {
+		tree.setChecked(node, false);
+	  });
+	  tree.setCurrentKey(null);
+	};
+	
+	
+	// 弹出框键盘事件
+	const ent = (event) => {
+	  if (document.activeElement.id === "tableFplb") {
+		if (table_fplb.value) {
+		  const tree = table_fplb.value?.$el;
+		  console.log(111, tree);
+		  if (tree) {
+			const node = tree.querySelector("[data-key]");
+			console.log(222, node);
+			if (event.keyCode === 13) {
+				/* 跳过 */
+			}
+			if (node) {
+			  node.scrollIntoView({ block: "nearest" }); // 确保节点可见
+			  node.focus(); // 确保焦点正确
+			}
+		  }
+		}
+	  }
+	};
+	
 	// 点击定额代号
 	const dedhhandleNodeClick = (node, check) => {
 		console.log(node);
@@ -1256,28 +1425,38 @@ const SelectClickBz = (row, column, event) => {
 			}
 	}
 	const movefous = (event,row,index)=>{
+		console.log(1)
 		const index2 = Array.from(formElements).indexOf(event.target)
 			if (row.sczl_dedh != '' & event.key === "ArrowLeft"){
 				event.stopPropagation();
-				console.log(11244)
 				formElements[index2-2].focus();
 				formElements[index2-2].select();
 			}
 			if(row.sczl_gdbh === '' && event.key === "Enter" ){
 				event.stopPropagation();
-				console.log(55644)
-			formElements[index2+11].focus();
-			formElements[index2+11].select();
-			row.sczl_yjGx = ""
-			row.sczl_gxmc = ""
-			row.Gd_cpmc = ""
-			row.hsbz = ""
-			row.sczl_cl = ""
-			row.sczl_返工产量 = ""
-			row.sczl_计产系数 = ""
-			row.sczl_PgCl = ""
-			row.sczl_Jtbh1 = ""
-			row.sczl_dedh = ""
+				formElements[index2+11].focus();
+				formElements[index2+11].select();
+				row.sczl_yjGx = ""
+				row.sczl_gxmc = ""
+				row.Gd_cpmc = ""
+				row.hsbz = ""
+				row.sczl_cl = ""
+				row.sczl_返工产量 = ""
+				row.sczl_计产系数 = ""
+				row.sczl_PgCl = ""
+				row.sczl_Jtbh1 = ""
+				row.sczl_dedh = ""
+			}
+	}
+	const movefous3 = (event,row,index)=>{
+		console.log(3333)
+		if (event.key === "Enter"){
+			const index2 = Array.from(formElements).indexOf(event.target)
+			event.stopPropagation();
+			formElements[index2+1].focus();
+			formElements[index2+1].select();
+		}else{
+			return
 		}
 	}
 
@@ -1357,4 +1536,8 @@ const SelectClickBz = (row, column, event) => {
 	.mab {
 		margin-bottom: 5px;
 	}
+	/* tree组件背景高亮 */
+	:deep(.el-tree-node:focus > .el-tree-node__content){
+			background: #ff80ff !important;
+		}
 </style>

+ 296 - 18
src/view/quality/orderstatus.vue

@@ -1,21 +1,173 @@
 <template>
-  <div>
-    <el-container>
-      <el-aside width="200px">
-        <div class="JKWTree-tree">
-          <h3>工单生产批次信息查询</h3>
-          <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
-        </div>
-      </el-aside>
-      <el-container>
-		  
-        <el-main>
-
-        </el-main>
-      </el-container>
-    </el-container>
-  </div>
+	<h3>工单生产批次信息查询</h3>
+	
+	<div 
+	  style="
+	    width: 60%; 
+	    height: 450px; 
+	    position: fixed; 
+	    left: 25%; 
+	    padding: 20px; 
+	    border-radius: 8px; 
+	    background-color: #fff; 
+	    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);">
+	  <div style="margin-top: 10px;">
+	    <!-- 提示信息 -->
+	    <hr>
+	    <p style="font-size: 14px; color: red; margin: 10px 0;">搜索栏目为空,则从最近2周完工的工单中选择</p>
+	    <p style="font-size: 14px; color: red; margin: 10px 0;">否则,以栏目值为关键字,从工单编号、产品名称、客户名称中选择</p>
+	    <hr>
+	    
+	    <!-- 输入框和按钮 -->
+	    <div style="display: flex; align-items: center; margin-top: 10px;">
+	      <el-input v-model="searchInfo" placeholder="搜索工单编号" @keydown="Enterkeysearch" id="searchInfo" style="flex: 1; margin-right: 10px;"></el-input>
+	      <el-button type="primary" title="搜索" icon="el-icon-search"  @click="onSubmit" >刷新</el-button>
+	    </div>
+	    
+	    <!-- 表格展示区域 -->
+	    <div class="gva-table-box" style="margin-top: 15px;">
+	      <el-table 
+	        ref="multipleTable"
+	        style="width: 100%; height: 30vh; verflow: auto;" 
+			:row-style="{ height: '0px' }"
+			:cell-style="{ padding: '0px' }" :header-row-style="{ height: '0px' }"
+			:header-cell-style="{ padding: '0px' }"
+	        :data="tableData" 
+	        :border="true" 
+	        :tooltip-effect="'dark'"
+	        row-key="ID"
+	        highlight-current-row
+	        @row-click="tableRowClick"
+	        @row-dblclick="updateCompanyFunc"
+	        @selection-change="handleSelectionChange">
+			
+			<el-table-column align="left"  label="工单编号" 	  width="100"	prop="Gd_gdbh" />
+			<el-table-column align="left"  label="行号" 	  width="60"	prop="行号" />
+			<el-table-column align="left"  label="工序名称" 	  width="560"	prop="Gd_cpmc"  />
+			
+	        <!-- <el-table-column prop="工单" label="工单编号-行号-工序名称" align="left" sortable show-overflow-tooltipmin-width="300"/> -->
+			
+	      </el-table>
+	    </div>
+	  </div>
+	</div>
+	
+	<!-- 机台生产日报表维护弹窗 -->
+	<el-dialog v-model="popdialog" title="机台生产日报表维护" destroy-on-close width="90%" style="height: 90%; margin-left: 5%; margin-top: 2%;">
+	  <div>
+	    <!-- 顶层布局 -->
+	    <layout>
+	      <!-- 顶部的搜索区域 -->
+	      <layout-header>
+	        <el-form ref="elSearchFormRef" class="demo-form-inline" :rules="searchRule">
+	          <!-- 添加按钮 -->
+			  <el-button type="primary" icon="edit"   @click="ontuicclick"  class="bt" title="退出">退出</el-button>
+	        </el-form>
+	      </layout-header>
+	
+	      <!-- 左右布局 -->
+	      <layout style="height: calc(100% - 50px); display: flex;">
+	        <!-- 左侧树形区域 -->
+	        <layout-sider style="width: 170px; margin-right: 10px; overflow: hidden;height: 730px;">
+	          <div class="JKWTree-tree" style="height: 100%; max-height: 100vh; overflow-y: auto;">
+	            <h3></h3>
+	            <el-tree
+	              :data="treeData"
+	              node-key="num"
+	              highlight-current
+	              :props="defaultProps"
+	              @node-click="handleNodeClick"
+	            />
+	          </div>
+	        </layout-sider>
+
+	
+	        <!-- 右侧表格区域 -->
+	        <layout-content style="flex: 1; overflow: auto;">
+	          <el-main>
+				 <div style="width: 100%; font-family: Arial, sans-serif; font-size: 14px;">
+					 <div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
+					   <p style="flex: 0.4; margin: 0;">工单编号:<span style="color: red;">{{ _GetorderDetail['Gd_gdbh'] }}</span></p>
+					   <p style="flex: 0.3; margin: 0;">产品代号:<span style="color: red;">{{ _GetorderDetail['Gd_cpdh'] }}</span></p>
+					   <p style="flex: 1; margin: 0;">产品名称:<span style="color: red;">{{ _GetorderDetail['Gd_cpmc'] }}</span></p>
+					 </div>
+					 <div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
+					   <p style="flex: 0.4; margin: 0;">订单数量:<span style="color: red;">{{ _GetorderDetail['订单数量'] }}</span></p>
+					   <p style="flex: 0.3; margin: 0;">实际投料:<span style="color: red;">{{ _GetorderDetail['实际投料'] }}</span></p>
+					   <p style="flex: 1; margin: 0;">
+						 单位:<span style="color: red;">{{ _GetorderDetail['计量单位'] }}</span> 
+						 目标合格率:<span style="color: red;">{{ _GetorderDetail['投料率'] }}</span>
+					   </p>
+					 </div>
+				   </div>
+				  
+				  <el-tabs v-model="activeName" @tab-click="handleClick">
+						<el-tab-pane label="工艺及生产班组"  @click="showTable('工艺及生产班组')"  name="first">
+						  <el-table tooltip-effect="dark" :data="lcdtableData" row-key="ID"
+						    highlight-current-row="true"
+						    :row-style="{ height: '0px' }" :header-cell-style="{ padding: '0px' }"
+						    :cell-style="{ padding: '0px' }" :header-row-style="{ height: '0px' }"
+						    border :show-overflow-tooltip="true" :cell-class-name="planUsageCellClass"
+						    style="width: 100%;height: 65vh" ref="tablesczl_gxmc"
+						    @row-dblclick="gyscbzSelectClick">
+						    <el-table-column align="left"  label="流程单号" 	  width="81"	prop="流程单号" />
+						    <el-table-column align="left"  label="工序号" 	  width="68"	prop="工序号" />
+						    <el-table-column align="left"  label="工序名称" 	  width="240"	prop="工序名称"  />
+						    <el-table-column align="left"  label="生产日期" 	  width="120"	prop="生产日期"  />
+						    <el-table-column align="left"  label="机台编号" 	  width="81"	prop="机台编号"  />
+						    <el-table-column align="left"  label="班组人员01"  width="105"  :formatter="(row) => `${row.sczl_bh1 || ''} ${row.name1 || ''}`"/>
+						    <el-table-column align="left"  label="班组人员02"  width="105"  :formatter="(row) => `${row.sczl_bh2 || ''} ${row.name2 || ''}`"/>
+						    <el-table-column align="left"  label="班组人员03"  width="105"  :formatter="(row) => `${row.sczl_bh3 || ''} ${row.name3 || ''}`"/>
+						    <el-table-column align="left"  label="班组人员04"  width="105"  :formatter="(row) => `${row.sczl_bh4 || ''} ${row.name4 || ''}`"/>
+						    <el-table-column align="left"  label="班组人员05"  width="105"  :formatter="(row) => `${row.sczl_bh5 || ''} ${row.name5 || ''}`"/>
+						    <el-table-column align="left"  label="班组人员06"  width="105"  :formatter="(row) => `${row.sczl_bh6 || ''} ${row.name6 || ''}`"/>
+						    <el-table-column align="left"  label="班组人员07"  width="105"  :formatter="(row) => `${row.sczl_bh7 || ''} ${row.name7 || ''}`"/>
+						    <el-table-column align="left"  label="班组人员08"  width="105"  :formatter="(row) => `${row.sczl_bh8 || ''} ${row.name8 || ''}`"/>
+						    <el-table-column align="left"  label="班组人员09"  width="105"  :formatter="(row) => `${row.sczl_bh9 || ''} ${row.name9 || ''}`"/>
+						    <el-table-column align="left"  label="班组人员10"  width="105"  :formatter="(row) => `${row.sczl_bh10 || ''} ${row.name10 || ''}`"/>
+						  </el-table>
+						</el-tab-pane>
+						
+						<el-tab-pane label="制程异常记录"  @click="showTable('制程异常记录')"  name="second">
+						  <el-table tooltip-effect="dark" :data="zcycjltableData" row-key="ID"
+						    highlight-current-row="true"
+						    :row-style="{ height: '0px' }" :header-cell-style="{ padding: '0px' }"
+						    :cell-style="{ padding: '0px' }" :header-row-style="{ height: '0px' }"
+						    border :show-overflow-tooltip="true" :cell-class-name="planUsageCellClass"
+						    style="width: 100%;height: 65vh" ref="tablzcycjl_gxmc"
+						    @row-dblclick="zcycjlSelectClick">
+						    <el-table-column align="left"  label="流程单号" 	  width="100"	prop="流程单号" />
+						    <el-table-column align="left"  label="数量" 	  	  width="100"	prop="数量" />
+						    <el-table-column align="left"  label="异常备注" 	  width="400"	prop="缺陷备注"  />
+						    <el-table-column align="left"  label="用户" 	  	  width="160"	prop="用户"  />
+						  </el-table>
+						</el-tab-pane>
+
+				  </el-tabs>
+	          </el-main>
+	        </layout-content>
+	      </layout>
+	    </layout>
+	  </div>
+	</el-dialog>
+
+	
 </template>
+<script>
+//点击按钮显示下方表格
+export default {
+  data() {
+    return {
+      currentTable: '', // 当前展示的表格
+      activeName: 'first',
+	  _GetorderDetail:'',
+    };
+  },
+  methods: {
+    
+  }
+};
+</script>
 <script setup>
 import {
   getDepartment,
@@ -33,23 +185,143 @@ import {
 import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { ref, reactive } from 'vue'
+import {
+  StaGetOrderList,
+  StaGetList,
+  StaProcessList,
+  StaGetOrderDetail,
+  StaProcessAnomaly,
+} from '@/api/mes/job'
+//获取当前登录用户信息
 import { useUserStore } from '@/pinia/modules/user'
 const userStore = useUserStore()
 const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
+
 defineOptions({
     name: 'Company'
 })
 
+//进入页面默认光标加载
+setTimeout(() => {
+	const inputElement = document.getElementById('searchInfo');
+	if (inputElement) {
+		inputElement.focus();		
+	}
+}, 100);
+			
+//搜索
+const searchInfo = ref('');
+const tableData = reactive([])
+//查询按钮
+const onSubmit = () => {
+  _StaGetOrderList()
+};
+//搜索回车
+const Enterkeysearch = (event) => {
+   if (event.key === 'Enter') {
+      _StaGetOrderList();
+    }
+};
+//调用接口
+const _StaGetOrderList = async (node) => {
+  const search = searchInfo.value;
+  console.log(search)
+  const StaGetOrderListdata = await StaGetOrderList({search:search});
+  console.log(StaGetOrderListdata)
+  if(StaGetOrderListdata.data.length === 0){
+    ElMessage({type: 'warning',message: '未搜索具体查询条件'})
+  }
+  tableData.splice(0,tableData.length,...StaGetOrderListdata.data);//表格数据
+};
+
+// 树形节点属性映射
+const treeData = reactive([]);
+const defaultProps = {
+  label: '流程单',
+  children: 'children',
+};
+//全局调用工单编号、印件号
+const _Gd_gdbh = ref(null)
+const _Gd_yjno = ref(null)
+const _GetorderDetail = ref(null)
+
+
+/*
+	弹窗页面
+*/
+const popdialog = ref(false);
+//双击
+const updateCompanyFunc = async (row) => {
+	console.log("双击",row)
+	_Gd_gdbh.value = row['Gd_gdbh']
+	_Gd_yjno.value =row['行号']
+	
+	const StaGetOrderDetaildata = await StaGetOrderDetail({ gdbh: row['Gd_gdbh'], yjno: row['行号'] });
+	let resultData = StaGetOrderDetaildata.data;
+	// 遍历对象,将 null 值替换为空字符串
+	Object.keys(resultData).forEach((key) => {
+	  if (resultData[key] === null) {
+	    resultData[key] = '';
+	  }
+	});
+	_GetorderDetail.value = resultData;
+	console.log("_GetorderDetail.value", _GetorderDetail.value);
+	
+	_StaGetList(row)
+	
+}
+
+//左侧树形节点点击事件
+const handleNodeClick = (node) => {
+  _StaProcessList(node['num'])
+  _StaProcessAnomaly()
+};
+
+//获取左侧菜单栏
+const _StaGetList = async (row) => {
+  const StaGetListdata = await StaGetList({gdbh:row['Gd_gdbh'],yjno:row['行号']});
+  console.log(StaGetListdata.msg)
+  if(StaGetListdata.msg === '成功'){
+	  treeData.splice(0, treeData.length, ...StaGetListdata.data);
+	  popdialog.value = true
+  }else{
+	  console.log(StaGetListdata.msg)
+	  ElMessage({type: 'warning',message: StaGetListdata.msg})
+  }
+};
+
+//工艺及生产班组
+const lcdtableData = reactive([])
+const _StaProcessList = async (node) => {
+  const StaProcessListdata = await StaProcessList({gdbh:_Gd_gdbh.value,yjno:_Gd_yjno.value,num:node});
+  lcdtableData.splice(0,lcdtableData.length,...StaProcessListdata.data);
+};
+
+//制程异常记录
+const zcycjltableData = reactive([])
+const _StaProcessAnomaly = async () => {
+  const StaProcessAnomalydata = await StaProcessAnomaly({gdbh:_Gd_gdbh.value,yjno:_Gd_yjno.value});
+  zcycjltableData.splice(0,zcycjltableData.length,...StaProcessAnomalydata.data);
+};
+
+//退出按钮
+const ontuicclick = async () => {
+  popdialog.value = false
+};
+
+
+
 </script>
 
-<style>
+<style scoped>
 .JKWTree-container {
   display: flex;
 }
 /* 选中某行时的背景色*/
-.el-table__body tr.current-row>td {
+:deep(.el-table__body tr.current-row>td) {
   background: #ff80ff !important;
 }
+
 .JKWTree-tree {
   width: 300px;
   background-color: #fff;
@@ -67,3 +339,9 @@ defineOptions({
   flex: 1;
 }
 </style>
+<style scoped>
+/* tree组件背景高亮 */
+:deep(.el-tree-node:focus > .el-tree-node__content){
+	background: #ff80ff !important;
+}
+</style>

+ 2 - 0
src/view/yunyin/shengchanguanli/gongdanshengchan.vue

@@ -906,6 +906,7 @@ const onjrpcClick = async () => {
       params.machine = _machine.value;
       params.printCode = _PC_yjno.value;
       params.processCode =  _PC_gxh.value;
+	  console.log(params)
       const ProductionSchedulingAdd_add = await ProductionSchedulingAdd(params);
       if (ProductionSchedulingAdd_add.code === 0) {
         const  pc_zc_table = await MachineWorkOrderList({machine:_machine.value});
@@ -930,6 +931,7 @@ const onztwgClick = async () => {
     params.machine = _machine.value;
     params.printCode = _ZC_yjno.value;
     params.processCode =  _ZC_gxh.value;
+	console.log(params)
     const ProductionSchedulingAdd_stop = await ProductionSchedulingPause(params);
     if (ProductionSchedulingAdd_stop.code === 0) {
       const pc_zc_table = await MachineWorkOrderList({machine:_machine.value});