Browse Source

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

WizDax 1 year ago
parent
commit
4f6d2ae268

+ 8 - 0
src/api/jixiaoguanli/jitairibaobiao.js

@@ -565,6 +565,14 @@ export const  finishedadd= (data) => {
 	data
   })
 }
+//修改
+export const  finishedEdit= (data) => {
+  return service({
+    url:'/mes_server/finished_product_warehousing/edit',
+    method: 'post',
+	data
+  })
+}
 //各日统计
 export const  getDayList= (params) => {
   return service({

+ 8 - 0
src/api/mes_api_gty/otherDocuments.js

@@ -90,4 +90,12 @@ export const add = (data) => {
     method: 'post',
     data
   })
+}
+// 删除
+export const del = (data) => {
+  return service({
+    url: '/mes_server/other_count_document/del',
+    method: 'post',
+    data
+  })
 }

+ 26 - 0
src/api/yunyin/yunying.js

@@ -800,6 +800,14 @@ export const getCouplet = (params) => {
         method: 'get',
         params
     })
+}
+//获取开数联数
+export const ProductgetCouplet = (params) => {
+    return service({
+        url: '/mes_server/product/getCouplet',
+        method: 'get',
+        params
+    })
 }
 //班组人员及分配比例
 export const Team = (params) => {
@@ -976,4 +984,22 @@ export const ProcessEdit = (data) => {
         method: 'post',
         data
     })
+}
+
+
+// 工单生产进程
+export const jcgetTab = (params) => {
+    return service({
+        url: '/mes_server/course/getTab',
+        method: 'get',
+        params
+    })
+}
+
+export const workOrderDetail = (params) => {
+    return service({
+        url: '/mes_server/course/workOrderDetail',
+        method: 'get',
+        params
+    })
 }

+ 10 - 9
src/view/job/related/related.vue

@@ -577,10 +577,7 @@ const onrelevancy = () => {
 const Setting = async (date,code) => {
 
   const res = await setting({date:date,code:code})
-  if (res.code === 0) {
-	  if(!res.data.length){
-		  return
-	  }
+  if (res.code === 0) {
 	  relevancyselectData.value = res.data
 	  formData.value.日期 = res.data[0].日期.replace(/\./g, "-")
 	  formData.value.关联人员工号 = res.data[0].关联人员工号
@@ -599,9 +596,9 @@ const GetYg = async () => {
   const response = await getYg({sczl_bh:formData.value.关联人员工号});
   console.log(response) 
   if (response.code === 0) {
-	console.log(response.data.ygxm) 
-	formData.value.关联人员姓名=response.data.ygxm
-	formData.value.关联人员工号=response.data.员工编号
+	formData.value.关联人员姓名=response.data[0].ygxm
+	formData.value.关联人员工号=response.data[0].员工编号
+	Setting(formData.value.日期,formData.value.关联人员工号)
   }
 }
 function onflushed() {
@@ -798,8 +795,12 @@ const batchup = () => {
  BatchAdd()
 }
 //提交数组
-const BatchAdd= async () => {
-  const response = await batchAdd(batchaddSelection.value);
+const BatchAdd= async () => {
+	
+	const batch = batchaddSelection.value.map((item) => {
+			return { sys_id: sys_id, ...item}; 
+	});
+  const response = await batchAdd(batch);
   if (response.code === 0) {
 	  Setting(formData.value.日期,formData.value.关联人员工号)
 	  batchaddshow.value=false

+ 137 - 162
src/view/performance/06-packingDocuments/index.vue

@@ -47,86 +47,33 @@
 
         <!-- 弹出框 -->
         <div>
-          <el-dialog
-            v-model="dialogFormVisible"
-            :title="type"
-            destroy-on-close
-            width="1200px"
-          >
-
-            <el-form
-              id="detail-form"
-              :model="detailData"
-              inline
-              label-position="left"
-              @keyup="moveFocus"
-            >
-              <el-form-item
-                label="日期"
-              >
-                <el-input
-				type="date" max="9999-12-31" 
-				@focus="rqHandleFocus()"
-                  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.name"
-                  style="width: 100px; padding-left: 5px;"
-				   @click="selectvalue($event)"
-                  readonly
-                />
-              </el-form-item>
+          <el-dialog v-model="dialogFormVisible" :title="type" destroy-on-close width="1200px" >
+            <el-form id="detail-form" :model="detailData" inline label-position="left" @keyup="moveFocus" >
+              <el-form-item  label="日期" >
+                <el-input type="date" max="9999-12-31"  @focus="rqHandleFocus()" 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.name"  style="width: 100px; padding-left: 5px;" @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-form-item>
-              <br>
-              <el-form-item
-                label="计时时数"
-                style="padding-left: 195px;"
-              >
-                <el-input
-                  v-model="detailData.sczl_jsss"
-                  style="width: 100px;"
-				  @click="selectvalue($event)"
-                />
-              </el-form-item>
+                <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-form-item>
+              <br>
+			  
+              <el-form-item label="计时时数" style="padding-left: 195px;" >
+                <el-input  v-model="detailData.sczl_jsss" style="width: 100px;" @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 v-model="detailData.sczl_冲定额" placeholder=" "  style="width: 100px" >
+                  <el-option label="" value="" />
+                  <el-option label="是" value="是" />
                 </el-select>
               </el-form-item>
 
@@ -137,109 +84,71 @@
                 :row-style="{ height: '20px' }"
                 :cell-style="{ padding: '0px' }"
                 :header-row-style="{ height: '20px' }"
-                :header-cell-style="{ padding: '0px' }"
-              >
-                <el-table-column
-                  label="工单编号"
-                  width="100"
-				  
-                >
+                :header-cell-style="{ padding: '0px' }"  >
+				
+                <el-table-column  label="工单编号"  width="100" >
                   <template #default="{ row, $index }">
-                    <el-input
-                      v-model="row.sczl_gdbh"
-                      @keyup.enter="handleEnter($index, row)"
-					  
-                    />
+                    <el-input v-model="row.sczl_gdbh" @keyup.enter="handleEnter($index, row)" />
                   </template>
                 </el-table-column>
 
-                <el-table-column
-                  label="印件工序"
-                  width="100"
-                >
+                <el-table-column label="印件工序" width="100" >
                   <template #default="{ row }">
-                    <el-input
-                      v-model="row.sczl_yjGx"
-                      readonly
-                    />
+                    <el-input v-model="row.sczl_yjGx" readonly />
                   </template>
-                </el-table-column>
-                <el-table-column
-                  label="工序名称"
-                  width="100"
-                >
+                </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" readonly />
                   </template>
-                </el-table-column>
+                </el-table-column>
+				
                 <el-table-column label="印件名称">
                   <template #default="{ row }">
-                    <el-input
-                      v-model="row.Gd_cpmc"
-                      readonly
-                    />
+                    <el-input v-model="row.Gd_cpmc" readonly />
                   </template>
-                </el-table-column>
-                <el-table-column
-                  label="包装产量"
-                  width="100"
-                >
+                </el-table-column>
+				
+                <el-table-column label="包装产量" width="100" >
                   <template #default="{ row }">
                     <el-input v-model="row.sczl_cl" />
                   </template>
-                </el-table-column>
-                <el-table-column
-                  label="返工产量"
-                  width="100"
-                >
+                </el-table-column>
+				
+                <el-table-column label="返工产量" width="100" >
                   <template #default="{ row }">
                     <el-input v-model="row.sczl_返工产量" />
                   </template>
-                </el-table-column>
-                <el-table-column
-                  label="每箱数量"
-                  width="100"
-                >
+                </el-table-column>
+				
+                <el-table-column label="每箱数量" width="100" >
                   <template #default="{ row }">
                     <el-input v-model="row.sczl_PgCl" />
                   </template>
-                </el-table-column>
-                <el-table-column
-                  label="计产系数"
-                  width="100"
-                >
+                </el-table-column>
+				
+                <el-table-column label="计产系数"  width="100" >
                   <template #default="{ row }">
                     <el-input v-model="row.sczl_计产系数" />
                   </template>
-                </el-table-column>
-                <el-table-column
-                  label="来源"
-                  width="100"
-                >
+                </el-table-column>
+				
+                <el-table-column label="来源"  width="100" >
                   <template #default="{ row }">
                     <el-input v-model="row.sczl_Jtbh1" />
                   </template>
-                </el-table-column>
-                <el-table-column
-                  label="定额代号"
-                  width="100"
-                >
-                  <template #default="{ row }">
-                    <el-input
-                      v-model="row.sczl_dedh"
-                      @keyup.enter.native="getDedhsubmit"
-                    />
+                </el-table-column>
+				
+                <el-table-column label="定额代号" width="130" >
+					<template #default="{ row, $index }">
+					  <el-input v-model="row.sczl_dedh" @keyup.enter="getDedhsubmit($index, row)" />
                   </template>
-                </el-table-column>
+                </el-table-column>
+				
               </el-table>
 
-              <el-form-item
-                label="其他备注"
-                style="margin-top: 10px;"
-              >
+              <el-form-item label="其他备注" style="margin-top: 10px;" >
                 <el-input v-model="detailData.sczl_desc" />
               </el-form-item>
 
@@ -248,14 +157,36 @@
             <template #footer>
               <div class="dialog-footer">
                 <el-button @click="dialogFormVisible = false">取 消</el-button>
-                <el-button
-                  type="primary"
-                  @click="enterDialog"
-                >确 定
+                <el-button type="primary" @click="enterDialog"  >确 定
                 </el-button>
               </div>
             </template>
-          </el-dialog>
+          </el-dialog>
+		  
+		  
+		  <!-- 新增定额代号 -->
+		  <el-dialog v-model="dedhsearchModel" :before-close="() => dedhsearchModel = false">
+		    <el-form>
+		      <div>
+		        <el-form-item label="定额代号 :"  class="mab" prop="keyOrder">
+		        </el-form-item>
+				
+		      <div style="border:1px solid #eee; width:100%; height: 400px; overflow-y: auto">
+		        <el-tree
+		          :data="dedhtreeData"
+		          :props="{
+		            children: 'children',
+		            label: 'label'
+		          }"
+		          @node-click="dedhhandleNodeClick"
+		        ></el-tree>
+		      </div>
+			  
+			  
+		      </div>
+		    </el-form>
+		  </el-dialog>
+		  
 
           <!-- 弹出选项框 -->
           <el-dialog
@@ -505,8 +436,17 @@ const handleSearch = () => {
 
 // 查改
 const handleShowDetail = () => {
-  type.value = '查改'
-  getTableInfo(currentRow.value?.UniqId)
+  type.value = '查改'
+  console.log(currentRow.value)
+  if(currentRow.value.UniqId==undefined){
+	 ElMessage({
+	   type: 'warning',
+	   message: '未选中记录',
+	 })
+	 return
+  }else{
+	  getTableInfo(currentRow.value?.UniqId)
+  }
 }
 
 // 删除
@@ -870,9 +810,44 @@ const enterDialog = () => {
   } else if (type.value === '新增') {
     addDetailData()
   }
-}
-// 定额代号回车事件
-const getDedhsubmit = () => {}
+}
+
+
+//新增定额代号
+const dedhsearchModel = ref(false)
+const dedhtreeData=ref([])
+const _index=ref(null)
+// 定额代号回车事件
+const getDedhsubmit = async (index, row) => {
+	console.log(index)
+_index.value = index
+  dedhsearchModel.value = true;
+  const getPieceWorks = await getDedh();
+  console.log(getPieceWorks);
+  if (getPieceWorks.code === 0) {
+    const transformedData2 = getPieceWorks.data.bh_mc.map(item => ({
+      label: `${item.sys_mc}【${item.sys_bh}】`,
+      params: { code: item.sys_bh },
+      children: item.bh_mc?.map(sysItem => ({
+        label: `${sysItem.sys_mc}【${sysItem.sys_bh}】`,
+        params: { code: sysItem.sys_bh },
+        children: sysItem.bh_mc?.map(syssItem => ({
+          label: `${syssItem.sys_mc}【${syssItem.sys_bh}】`,
+          params: { code: syssItem.sys_bh }
+        })) || []
+      })) || []
+    }));
+    dedhtreeData.value = transformedData2;
+  }
+};
+// 点击定额代号
+const dedhhandleNodeClick = (node,check) => {
+  console.log(node.params.code);
+  detailData.table[_index.value].sczl_dedh = node.params.code
+}
+
+
+
 
 let formElements
 const moveFocus = (event) => {

+ 914 - 811
src/view/performance/07-otherDocuments/index.vue

@@ -1,813 +1,916 @@
-<template>
-  <div>
-    <layout>
-      <layout-header>
-        <!-- 按钮 -->
-        <el-form inline>
-          <el-form-item>
-            <el-input
-              v-model="searchInfo"
-              placeholder="搜索产品编号或产品名称"
-              clearable
-              style="width: 180px;"
-            />
-            <el-button
-              type="primary"
-              icon="Search"
-              class="search"
-              @click="handleSearch"
-            />
-
-            <el-button
-              type="primary"
-              icon="edit"
-              class="bt"
-              @click="handleShowDetail"
-            ><i class="el-icon-edit" />查改
-            </el-button>
-
-            <el-button
-              type="primary"
-              icon="edit"
-              class="bt"
-              @click="handleShowAdd"
-            >新增
-            </el-button>
-
-          </el-form-item>
-        </el-form>
-
-        <!-- 弹出框 -->
-        <div>
-          <!-- 详情页 -->
-          <el-dialog
-            v-model="dialogFormVisible"
-            :before-close="closeDialog"
-            :title="type"
-            destroy-on-close
-            width="800px"
-          >
-            <!-- <el-scrollbar height="500px"> -->
-            <el-form
-              id="detail-form"
-              ref="elFormRef"
-              :model="detailData"
-              label-position="left"
-              inline
-              @keyup="moveFocus"
-            >
-              <el-form-item
-                label="员工编号"
-              >
-                <el-input
-                  v-model="detailData.Sczl_bh1"
-                  style="width: 100px"
-                  @keyup.enter="handleYgbhEnter"
-                />
-                <el-input
-                  v-model="detailData.name"
-                  style="width: 100px; margin-left: 5px"
-                  readonly
-                />
-              </el-form-item>
-
-              <br>
-
-              <el-form-item
-                label="工序类别"
-              >
-                <el-select
-                  v-model="detailData.sczl_Type"
-                  style="width: 150px"
-                >
-                  <el-option
-                    label="拆片"
-                    value="拆片"
-                  />
-                  <el-option
-                    label="包装"
-                    value="包装"
-                  />
-                  <el-option
-                    label="打包"
-                    value="打包"
-                  />
-                  <el-option
-                    label="拉料"
-                    value="拉料"
-                  />
-
-                </el-select>
-
-              </el-form-item>
-
-              <el-form-item
-                label="日期"
-              >
-                <el-input
-				type="date" max="9999-12-31"
-                  v-model="detailData.Sczl_rq"
-                  style="width: 150px"
-                />
-              </el-form-item>
-
-              <el-form-item
-                label="工单编号"
-              >
-                <el-input
-                  v-model="detailData.sczl_gdbh"
-                  style="width: 100px"
-                  @keyup.enter="handleGdbhEnter"
-                />
-                <el-input
-                  v-model="detailData.Gd_cpmc"
-                  style="width: 400px; margin-left: 5px"
-                  readonly
-                />
-              </el-form-item>
-
-              <el-form-item
-                label="工艺流程"
-              >
-                <el-input
-                  v-model="detailData.Sczl_gxmc"
-                  style="width: 300px"
-                  @keyup.enter="handleGylcEnter"
-                />
-                <el-input
-                  v-model="detailData.sczl_gxh"
-                  style="width: 100px; margin-left: 5px"
-                  readonly
-                />
-              </el-form-item>
-              <br>
-
-              <el-form-item
-                v-if="type === '新增'"
-                label=""
-                style="margin-left: 67px;"
-              >
-                <el-input
-                  v-model="leftData"
-                  style="width: 100px"
-                />
-              </el-form-item>
-
-              <el-form-item
-                v-if="type === '新增'"
-                label="X"
-              >
-                <el-input
-                  v-model="rightData"
-                  style="width: 100px;margin-left: 12px;"
-                  @keyup.enter="()=>{detailData.Sczl_cl = (leftData * rightData).toString()}"
-                  @keyup.down="()=>{detailData.Sczl_cl = (leftData * rightData).toString()}"
-                />
-              </el-form-item>
-
-              <el-form-item
-                v-if="type === '新增'"
-                label="计件产量"
-                style="margin-left: 30px;"
-              >
-                <el-input
-                  v-model="detailData.Sczl_cl"
-                  style="width: 100px"
-                />
-              </el-form-item>
-
-              <el-form-item
-                v-if="type === '查改'"
-                label="计件产量"
-                style="margin-left: 400px;"
-              >
-                <el-input
-                  v-model="detailData.Sczl_cl"
-                  style="width: 100px"
-                />
-              </el-form-item>
-
-              <el-form-item
-                label="工价代号"
-              >
-                <el-input
-                  v-model="detailData.sys_bh"
-                  style="width: 200px"
-                  @keyup.enter="handleGjdhEnter"
-                />
-                <el-input
-                  v-model="detailData.sys_mc"
-                  style="width: 300px; margin-left: 5px"
-                  readonly
-                />
-              </el-form-item>
-
-              <el-form-item
-                label="票号备注"
-              >
-                <el-input
-                  v-model="detailData.Sczl_desc"
-                  style="width: 505px"
-                />
-              </el-form-item>
-
-            </el-form>
-
-            <template #footer>
-              <div class="dialog-footer">
-                <el-button @click="closeDialog">取 消</el-button>
-                <el-button
-                  type="primary"
-                  @click="enterDialog"
-                >确 定</el-button>
-              </div>
-            </template>
-          </el-dialog>
-
-          <!-- 工价代号弹窗 -->
-          <el-dialog
-            v-model="dialogDedh"
-            :before-close="()=>{dialogDedh = false}"
-            title="工价代号"
-            destroy-on-close
-          >
-
-            <el-scrollbar
-              style="height: 50vh;width: 50vw;"
-            >
-              <el-tree
-                :data="dedhTreeData"
-                highlight-current
-                style="width: 90%;"
-                @node-click="handleSelectDjdh"
-              />
-            </el-scrollbar>
-          </el-dialog>
-
-          <!-- 工艺流程弹窗 -->
-          <el-dialog
-            v-model="dialogGylc"
-            :before-close="()=>{dialogGylc = false}"
-            title="工艺流程"
-            destroy-on-close
-			style="width: 50%px; "
-			
-			@keydown="selectGX($event)"
-          >
-		  
-            <!-- <el-scrollbar
-              style="height: 50vh;width: 50vw;"
-            >
-              <el-tree
-                :data="gylcTreeData"
-                highlight-current
-                style="width: 90%;"
-                @node-click="handleSelectGylc"
-				node-key="id"
-              />
-            </el-scrollbar> -->
-			
-			<el-table tooltip-effect="dark" :data="selectData" row-key="ID"
-			  highlight-current-row="true" border style="width:240px" height="500px"
-			  @row-dblclick="handleSelectClick" ref="table2" >		  
-			  <el-table-column prop="jyGx" label="检验工序" width="200" />		 
-			</el-table>
-			
-          </el-dialog>
-
-        </div>
-
-      </layout-header>
-
-      <layout>
-        <!--    左侧树侧形结构-->
-        <layout-sider
-          :resize-directions="['right']"
-          :width="220"
-          style="margin-right: 10px;"
-        >
-          <div
-            class="JKWTree-tree"
-            style="height: 70vh;"
-          >
-            <h3>其他计件单据维护</h3>
-            <el-tree
-              :data="treeData"
-              highlight-current
-              @node-click="handleNodeClick"
-            />
-          </div>
-        </layout-sider>
-
-        <layout-content>
-          <!-- 数据展示 -->
-          <el-table
-            ref="table"
-            style="width: 100%"
-            tooltip-effect="dark"
-            :data="tableData"
-            row-key="ID"
-            highlight-current-row
-            border
-            show-overflow-tooltip="true"
-            :row-style="{ height: '20px' }"
-            :cell-style="{ padding: '0px' }"
-            :header-row-style="{ height: '20px' }"
-            :header-cell-style="{ padding: '0px' }"
-            @selection-change="handleSelectionChange"
-            @row-dblclick="handleShowDetail"
-            @current-change="(row, oldRow) => { currentRow = row}"
-          >
-            <el-table-column
-              type="selection"
-              width="55"
-            />
-
-            <!-- 循环渲染列 -->
-            <el-table-column
-              v-for=" column in tableColumns "
-              :key="column.prop"
-              :prop="column.prop"
-              :label="column.label"
-              :width="column.width"
-			  sortable
-            />
-
-          </el-table>
-          <!-- 分页 -->
-          <div class="gva-pagination">
-            <el-pagination
-              v-model:current-page="page"
-              v-model:page-size="limit"
-              layout="total, sizes, prev, pager, next, jumper"
-              :page-sizes="[10, 30, 50, 100]"
-              :total="total"
-              @current-change="handleCurrentChange"
-              @size-change="handleSizeChange"
-            />
-          </div>
-        </layout-content>
-      </layout>
-    </layout>
-
-  </div>
-</template>
-
-<script setup>
-import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
-import { ElMessage, dayjs } from 'element-plus'
-import { ref, reactive } from 'vue'
-import { getSide, getTable, getYg, getGdmc, getDedh, getGxMc, updateData, add } from '@/api/mes_api_gty/otherDocuments'
-import { useUserStore } from '@/pinia/modules/user'
-const userStore = useUserStore() 
-const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
-defineOptions({
-  name: '07OtherDocuments'
-})
-
-// 侧边栏数据请求
-const treeData = reactive([])
-const getSideData = async() => {
-  const response = await getSide()
-  if (response.code === 0) {
-    const transformedData = response.data.map(item => ({
-      label: `${item.date.replace(/-/g, '.')}【产量合计: ${item.counts}】`,
-      children: item.sys.map(sysItem => ({
-        label: `${sysItem.Sczl_bh1}(${sysItem.name}) 【产量合计: ${sysItem.count}】`,
-        params: {
-          date: item.date.substring(0, 4) + '-' + item.date.substring(4),
-          Sczl_bh1: sysItem.Sczl_bh1,
-        },
-      })),
-    }))
-    treeData.splice(0, treeData.length, ...transformedData)
-  }
-}
-getSideData()
-
-const elFormRef = ref()
-
-// ============== 表格页面 ==============
-const tableColumns = [
-  { prop: 'sczl_Type', label: '计件类型', width: '120' },
-  { prop: 'Sczl_rq', label: '日期', width: '100' },
-  { prop: 'Sczl_bh1', label: '员工编号', width: '120' },
-  { prop: 'name', label: '员工姓名', width: '120' },
-  { prop: 'sczl_gdbh', label: '工单编号', width: '120' },
-  { prop: 'Gd_cpmc', label: '产品名称', width: '300' },
-  { prop: 'Sczl_cl', label: '产量', width: '100' },
-  { prop: '', label: '千件工价', width: '120' }, // prop 属性值需要补充
-  { prop: 'sys_mc', label: '工价备注', width: '200' }, // prop 属性值需要补充
-  { prop: 'Sczl_desc', label: '备注', width: '100' },
-  { prop: 'Sczl_gxmc', label: '工序名称', width: '120' },
-  { prop: 'sczl_yjno', label: '印件号', width: '100' },
-  { prop: 'sczl_gxh', label: '工序号', width: '100' },
-  { prop: 'sys_id', label: '创建用户', width: '150' },
-  { prop: 'sys_rq', label: '创建时间', width: '200' },
-  { prop: 'mod_rq', label: '修改时间', width: '200' },
-  { prop: 'UniqId', label: 'UNIQID', width: '100' }
-]
-const tableData = reactive([])
-const currentRow = ref()
-const type = ref('')
-
-const page = ref(1)
-const total = ref(0)
-const limit = ref(10)
-const searchInfo = ref('')
-const params = {
-  date: '',
-  Sczl_bh1: '',
-  order: '',
-  page: page.value.toString(),
-  limit: limit.value.toString(),
-}
-
-const table = ref()
-const setCurrent = (row) => {
-  table.value?.setCurrentRow(row)
-}
-
-// 获取表格数据
-const getTableData = async() => {
-  // try {
-  const response = await getTable(params)
-  if (response.code === 0) {
-    total.value = response.data.total
-    tableData.splice(0, tableData.length, ...response.data.rows)
-    setCurrent(tableData[0])
-  }
-}
-
-// 分页设置
-const handleSizeChange = () => {
-  params.limit = limit.value.toString()
-  getTableData()
-}
-
-// 页面跳转
-const handleCurrentChange = () => {
-  params.page = page.value.toString()
-  getTableData()
-}
-
-// 点击左侧节点
-const handleNodeClick = (node, check) => {
-  if (node.params) {
-    params.date = node.params.date
-    params.Sczl_bh1 = node.params.Sczl_bh1
-    params.order = ''
-    page.value = 1
-    handleCurrentChange()
-  }
-}
-
-// 搜索
-function handleSearch() {
-  params.order = searchInfo.value
-  params.date = ''
-  params.Sczl_bh1 = ''
-  page.value = 1
-  handleCurrentChange()
-}
-
-// ============== 详情页面 ==============
-const detailData = reactive({})
-const leftData = ref(0)
-const rightData = ref(0)
-const dedhTreeData = ref()
-const gylcTreeData = ref()
-const selectData = reactive([])
-
-
-// 弹窗控制标记
-const dialogFormVisible = ref(false)
-const dialogDedh = ref(false)
-const dialogGylc = ref(false)
-// 新增数据
-const handleShowAdd = () => {
-  type.value = '新增'
-  if (!currentRow.value) {
-   detailData.Sczl_bh1 = '';
-   detailData.Sczl_cl = '';
-   detailData.sys_bh = '';
-   detailData.Sczl_desc = '';
-   detailData.sczl_gdbh = '';
-   detailData.Sczl_gxmc = '';
-   detailData.sczl_Type = '';
-   detailData.sczl_gxh = '';
-  }else{
-  	  Object.assign(detailData, currentRow.value)
-  }
-  
-  // dialogFormVisible.value = true
-  const date = dayjs().format('YYYY-MM-DD')
-  detailData.Sczl_rq = date
-  showDialog()
-}
-// 查改
-const handleShowDetail = () => {
-  type.value = '查改'
-  Object.assign(detailData, currentRow.value)
-  // dialogFormVisible.value = true
-  showDialog()
-}
-const handleYgbhEnter = async() => {
-  const res = await getYg({ sczl_bh: detailData.Sczl_bh1 })
-  if (res.code === 0) {
-    detailData.name = res.data[0].ygxm
-	detailData.Sczl_bh1 = res.data[0].员工编号
-  }
-}
-
-const handleGdbhEnter = async() => {
-  const res = await getGdmc({ gdbh: detailData.sczl_gdbh })
-  if (res.code === 0) {
-    detailData.Gd_cpmc = res.data.Gd_cpmc
-  }
-}
-
-const handleGylcEnter = async() => {
-  const res = await getGxMc({ gdbh: detailData.sczl_gdbh, keyword: '' })
-  if (res.code === 0) {
-	const data =res.data
-	selectData.splice(0, selectData.length, ...data)
-	setGXCurrent[selectData[0]]
-    dialogGylc.value = true
-  }
-}
-
-// 工单选择框
-const handleSelectClick = (row, column, event) => {
-  const { jyGx, Gy0_gxh } = row
-  detailData.Sczl_gxmc=row.jyGx
-  detailData.sczl_gxh = row.Gy0_gxh
-  dialogGylc.value = false
-}
-const table2 = ref()
-const setGXCurrent = (row) => {
-  setTimeout(()=>{
-	  table2.value?.setCurrentRow(row)
-	  const { jyGx, Gy0_gxh } = row
-	  detailData.Sczl_gxmc=row.jyGx
-	  detailData.sczl_gxh = row.Gy0_gxh 
-  })
-}
-const handleSelectGylc = (node, check) => {
-   console.log(node.key)
-   console.log(check)
-  detailData.Sczl_gxmc = node['jyGx']
-  detailData.sczl_gxh = node['Gy0_gxh']
-  dialogGylc.value = false
-}
-const currentIndex = ref(0);
-const GXCurrent = ref(0);
-const selectGX = (event) => {
-    if (event.keyCode === 40) { // 向下箭头
-        if (currentIndex.value < selectData.length - 1) {
-            currentIndex.value++;
-            setGXCurrent(selectData[currentIndex.value]);
-        } else {
-            currentIndex.value = 0;
-            setGXCurrent(selectData[currentIndex.value]); // 到达最后一行时回到第一行			
-        }
-    } else if (event.keyCode === 38) { // 向上箭头
-        if (currentIndex.value > 0) {
-            currentIndex.value--;
-            setGXCurrent(selectData[currentIndex.value]);
-        } else {
-            currentIndex.value = selectData.length - 1;
-            setGXCurrent(selectData[currentIndex.value]); // 到达第一行时回到最后一行
-        }
-    } else if (event.keyCode === 13) { // 回车键
-        dialogGylc.value = false
-    }
-}
-
-const handleGjdhEnter = async() => {
-  const res = await getDedh({ sczl_jtbh: '' })
-  if (res.code === 0) {
-    const { data } = res
-
-    const transformData = (data) => {
-      if (Array.isArray(data)) {
-        return data.map((item) => transformData(item))
-      } else if (typeof data === 'object') {
-        const { Key_, sys_bh, sys_mc, bh_mc } = data
-        const label = `${sys_bh}【${sys_mc}】`
-        const node = { Key_, sys_bh, sys_mc, label }
-
-        if (bh_mc) {
-          node.children = transformData(bh_mc)
-        }
-
-        return node
-      } else {
-        return data
-      }
-    }
-
-    const temp = []
-    temp[0] = transformData(data)
-    dedhTreeData.value = temp
-    console.log(temp)
-    dialogDedh.value = true
-  }
-}
-
-const handleSelectDjdh = (node, check) => {
-  if (!node['children']) {
-    console.log(node)
-    const { sys_bh, sys_mc } = node
-    detailData.sys_bh = sys_bh
-    detailData.sys_mc = sys_mc
-    dialogDedh.value = false
-  }
-}
-
-// 弹窗确定
-const enterDialog = async() => {
-  if (type.value === '查改') {
-    updateDetailData()
-  } else if (type.value === '新增') {
-    addDetailData()
-  }
-}
-// 新增
-const addDetailData = async() => {
-  const restoredData = {
-    Sys_id: sys_id,
-    Sczl_bh1: detailData.Sczl_bh1,
-    sczl_Type: detailData.sczl_Type,
-    // name: detailData.name,
-    Sczl_rq: detailData.Sczl_rq,
-    Sczl_gdbh: detailData.sczl_gdbh,
-    Sczl_gxmc: detailData.Sczl_gxmc,
-    sczl_gxh: detailData.sczl_gxh,
-    Sczl_cl: detailData.Sczl_cl,
-    Sczl_dedh: detailData.sys_bh,
-    Sczl_desc: detailData.Sczl_desc,
-  }
-  const res = await add(restoredData)
-  if (res.code === 0) {
-    ElMessage({
-      type: 'success',
-      message: '新增成功',
-    })
-    dialogFormVisible.value = false
-	if(params.date!=''){
+<template>
+	<div>
+		<el-container>
+				<!--    左侧树侧形结构-->
+				<layout-sider :resize-directions="['right']" :width="220" style="margin-right: 10px;">
+					<div class="JKWTree-tree" style="height: 70vh;">
+						<h3>其他计件单据维护</h3>
+						<el-tree :data="treeData" highlight-current @node-click="handleNodeClick" />
+					</div>
+				</layout-sider>
+
+		<el-container>
+		  <el-main>
+			<layout-header>
+				<!-- 按钮 -->
+				<el-form inline>
+					<el-form-item>
+						<el-input v-model="searchInfo" placeholder="搜索产品编号或产品名称" clearable style="width: 180px;" />
+						<el-button type="primary" icon="Search" class="search" @click="handleSearch" />
+						<el-button type="primary" icon="plus" class="bt" @click="handleShowAdd">新增 </el-button>
+						<el-button type="primary" icon="delete" class="bt" @click="onDel">删除 </el-button>
+						
+					</el-form-item>
+				</el-form>
+
+				<!-- 弹出框 -->
+				<div>
+					<!-- 详情页 -->
+					<el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type === 'create' ? '新增' : '修改'" destroy-on-close
+						width="800px">
+						<!-- <el-scrollbar height="500px"> -->
+						<el-form :model="detailData" id="detail-form" ref="elFormRef" 
+						label-width="100px"
+						label-position="right" inline>
+							<el-row :gutter="24" >
+								<el-col :span="24">
+									<el-form-item label="员工编号">
+										<el-input v-model="detailData.Sczl_bh1" @blur="handleYgbhEnter" 
+											@keydown="ent1($event)" style="width: 120px" />
+										<el-input style="width: 120px; margin-left: 5px" readonly v-model="detailData.name" />
+									</el-form-item>
+								</el-col>
+							</el-row>
+							
+							<el-row :gutter="24" >
+								<el-col :span="14">
+									<el-form-item label="工序类别">
+										<el-input @blur="get_LB" v-model="detailData.sczl_Type" 
+										 @keydown="ent1($event)" style="width: 120px; " />
+										
+										<!-- <el-select v-model="detailData.sczl_Type" style="width: 150px">
+											<el-option label="拆片" value="拆片" />
+											<el-option label="包装" value="包装" />
+											<el-option label="打包" value="打包" />
+											<el-option label="拉料" value="拉料" />
+										</el-select> -->
+									</el-form-item>
+								</el-col>
+								<el-col :span="10">
+									<el-form-item label="日期">
+										<el-input type="date" max="9999-12-31" v-model="detailData.Sczl_rq" 
+										 @keydown="ent1($event)" style="width: 150px" />
+									</el-form-item>
+								</el-col>
+							</el-row>
+
+							<el-row :gutter="24" >
+								<el-col :span="24">
+									<el-form-item label="工单编号">
+										<el-input v-model="detailData.Sczl_gdbh" @blur="handleGdbhEnter" 
+											@keydown="ent1($event)" style="width: 120px"/>
+										<el-input v-model="detailData.Gd_cpmc" style="width: 480px; margin-left: 5px"
+											readonly />
+									</el-form-item>
+								</el-col>
+							</el-row>
+							
+							<el-row :gutter="24" >
+								<el-col :span="24">
+									<el-form-item label="工艺流程">
+										<el-input v-model="detailData.Sczl_gxmc" @blur="handleGylcEnter" 
+											@keydown="ent1($event)" style="width: 480px"/>
+										<el-input v-model="detailData.sczl_gxh" style="width: 120px; margin-left: 5px"
+											readonly />
+									</el-form-item>
+								</el-col>
+							</el-row>
+							
+							<el-row :gutter="24" >
+								<el-col :span="14">
+									<el-form-item label="" style="margin-left: 67px;">
+										<el-input v-model="leftData" @keydown="ent1($event)" style="width: 100px; margin-left: 32px;"
+											@blur="()=>{detailData.Sczl_cl = (leftData * rightData).toString()}"/>X
+										<el-input v-model="rightData" @keydown="ent1($event)" style="width: 100px;margin-left: 12px;"
+												@blur="()=>{detailData.Sczl_cl = (leftData * rightData).toString()}"
+												 />
+										
+									</el-form-item>
+								</el-col>
+								<el-col :span="10">
+									<el-form-item label="计件产量" >
+										<el-input @keydown="ent1($event)" v-model="detailData.Sczl_cl" style="width: 150px" />
+									</el-form-item>
+								</el-col>
+							</el-row>
+							
+							<el-row :gutter="24" >
+								<el-col :span="24">
+									<el-form-item label="工价代号">
+										<el-input v-model="detailData.Sczl_dedh" style="width: 150px"
+											@blur="handleGjdhEnter" @keydown="ent1($event)" />
+										<el-input v-model="detailData.sys_mc" style="width: 450px; margin-left: 5px" readonly />
+									</el-form-item>
+								</el-col>
+							</el-row>
+							
+							<el-row :gutter="24" >
+								<el-col :span="24">
+									<el-form-item label="票号备注">
+										<el-input v-model="detailData.Sczl_desc" @keydown="ent1($event)"  style="width: 605px" />
+									</el-form-item>
+								</el-col>
+							</el-row>
+						</el-form>
+
+						<template #footer>
+							<div class="dialog-footer">
+								<el-button @click="closeDialog">取 消</el-button>
+								<el-button type="primary" @click="enterDialog">确 定</el-button>
+							</div>
+						</template>
+					</el-dialog>
+
+					<!-- 工价代号弹窗 -->
+					<el-dialog v-model="dialogDedh" :before-close="()=>{dialogDedh = false}" title="工价代号"
+						destroy-on-close>
+
+						<el-scrollbar style="height: 50vh;width: 50vw;">
+							<el-tree :data="dedhTreeData" highlight-current style="width: 90%;"
+								@node-click="handleSelectDjdh" />
+						</el-scrollbar>
+					</el-dialog>
+
+					<!-- 工艺流程弹窗 -->
+					<el-dialog v-model="dialogGylc" title="工艺流程"
+						destroy-on-close style="width: 500px; " @keydown="selectGX($event)">
+
+						<el-table tooltip-effect="dark" :data="selectData" row-key="ID" highlight-current-row="true"
+							border style="width:100%" height="400px" @row-dblclick="handleSelectClick" ref="table2">
+							<el-table-column prop="jyGx" label="检验工序" width="460" />
+						</el-table>
+
+					</el-dialog>
+
+		<!-- 工序类别选择 -->
+		  <el-dialog v-model="LBVisible" title="选择"
+		    destroy-on-close width="200px" @keydown="selectLB($event)" >
+		    <el-table tooltip-effect="dark" :data="LBselectData" row-key="ID"
+		      highlight-current-row="true" border style="width:100%"
+		      :row-style="{ height: '30px' }"
+		      @row-dblclick="LBSelectClick"
+		  			  ref="tableLB"
+		    >
+		      <el-table-column prop="sczl_Type" label="" width="160" />		      	 
+		    </el-table>
+		  </el-dialog>
+				</div>
+
+			</layout-header>
+			
+				<layout-content>
+					<!-- 数据展示 -->
+					<el-table ref="table" style="width: 100%" tooltip-effect="dark" :data="tableData" row-key="ID"
+						highlight-current-row border show-overflow-tooltip="true" :row-style="{ height: '20px' }"
+						:cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+						:header-cell-style="{ padding: '0px' }" @selection-change="handleSelectionChange"
+						@row-dblclick="handleShowEdit" @current-change="(row, oldRow) => { currentRow = row}">
+
+						<!-- 循环渲染列 -->
+						<el-table-column v-for=" column in tableColumns " :key="column.prop" :prop="column.prop"
+							:label="column.label" :width="column.width" sortable />
+
+					</el-table>
+					<!-- 分页 -->
+					<div class="gva-pagination">
+						<el-pagination v-model:current-page="page" v-model:page-size="limit"
+							layout="total, sizes, prev, pager, next, jumper" :page-sizes="[10, 30, 50, 100]"
+							:total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
+					</div>
+				</layout-content>
+				
+				  </el-main>
+				</el-container>
+				</el-container>
+	</div>
+</template>
+
+<script setup>
+	import {
+		Layout,
+		LayoutContent,
+		LayoutHeader,
+		LayoutSider
+	} from '@arco-design/web-vue'
+	import {
+		ElMessage,
+		dayjs,
+		ElMessageBox
+	} from 'element-plus'
+	import {
+		ref,
+		reactive, 
+		nextTick
+	} from 'vue'
+	import {
+		getSide,
+		getTable,
+		getYg,
+		getGdmc,
+		getDedh,
+		getGxMc,
+		updateData,
+		add,
+		del
+	} from '@/api/mes_api_gty/otherDocuments'
+	import {
+		useUserStore
+	} from '@/pinia/modules/user'
+	const userStore = useUserStore()
+	const sys_id = '[' + userStore.userInfo.userName + '/' + userStore.userInfo.nickName + ']'
+	defineOptions({
+		name: '07OtherDocuments'
+	})
+
+	// 侧边栏数据请求
+	const treeData = reactive([])
+	const getSideData = async () => {
+		const response = await getSide()
+		if (response.code === 0) {
+			const transformedData = response.data.map(item => ({
+				label: `${item.date.replace(/-/g, '.')}【产量合计: ${item.counts}】`,
+				children: item.sys.map(sysItem => ({
+					label: `${sysItem.Sczl_bh1}(${sysItem.name}) 【产量合计: ${sysItem.count}】`,
+					params: {
+						date: item.date.substring(0, 4) + '-' + item.date.substring(4),
+						Sczl_bh1: sysItem.Sczl_bh1,
+					},
+				})),
+			}))
+			treeData.splice(0, treeData.length, ...transformedData)
+		}
+	}
+	getSideData()
+
+	const elFormRef = ref()
+
+	// ============== 表格页面 ==============
+	const tableColumns = [{
+			prop: 'sczl_Type',
+			label: '计件类型',
+			width: '120'
+		},
+		{
+			prop: 'Sczl_rq',
+			label: '日期',
+			width: '100'
+		},
+		{
+			prop: 'Sczl_bh1',
+			label: '员工编号',
+			width: '120'
+		},
+		{
+			prop: 'name',
+			label: '员工姓名',
+			width: '120'
+		},
+		{
+			prop: 'sczl_gdbh',
+			label: '工单编号',
+			width: '120'
+		},
+		{
+			prop: 'Gd_cpmc',
+			label: '产品名称',
+			width: '300'
+		},
+		{
+			prop: 'Sczl_cl',
+			label: '产量',
+			width: '100'
+		},
+		{
+			prop: '',
+			label: '千件工价',
+			width: '120'
+		}, // prop 属性值需要补充
+		{
+			prop: 'sys_mc',
+			label: '工价备注',
+			width: '200'
+		}, // prop 属性值需要补充
+		{
+			prop: 'Sczl_desc',
+			label: '备注',
+			width: '100'
+		},
+		{
+			prop: 'Sczl_gxmc',
+			label: '工序名称',
+			width: '120'
+		},
+		{
+			prop: 'sczl_yjno',
+			label: '印件号',
+			width: '100'
+		},
+		{
+			prop: 'sczl_gxh',
+			label: '工序号',
+			width: '100'
+		},
+		{
+			prop: 'sys_id',
+			label: '创建用户',
+			width: '150'
+		},
+		{
+			prop: 'sys_rq',
+			label: '创建时间',
+			width: '200'
+		},
+		{
+			prop: 'mod_rq',
+			label: '修改时间',
+			width: '200'
+		},
+		{
+			prop: 'UniqId',
+			label: 'UNIQID',
+			width: '100'
+		}
+	]
+	const tableData = reactive([])
+	const currentRow = ref()
+	const type = ref('')
+
+	const page = ref(1)
+	const total = ref(0)
+	const limit = ref(10)
+	const searchInfo = ref('')
+	const params = {
+		date: '',
+		Sczl_bh1: '',
+		order: '',
+		page: page.value.toString(),
+		limit: limit.value.toString(),
+	}
+
+	const table = ref()
+	const setCurrent = (row) => {
+		table.value?.setCurrentRow(row)
+	}
+
+	// 获取表格数据
+	const getTableData = async () => {
+		// try {
+		const response = await getTable(params)
+		if (response.code === 0) {
+			total.value = response.data.total
+			tableData.splice(0, tableData.length, ...response.data.rows)
+			setCurrent(tableData[0])
+		}
+	}
+
+	// 分页设置
+	const handleSizeChange = () => {
+		params.limit = limit.value.toString()
+		getTableData()
+	}
+
+	// 页面跳转
+	const handleCurrentChange = () => {
+		params.page = page.value.toString()
 		getTableData()
 	}
-	getSideData()
-  }
-  
-}
-// 修改
-const updateDetailData = async() => {
-  const params = {
-    UniqId: detailData.UniqId,
-    Sczl_bh1: detailData.Sczl_bh1,
-    sczl_Type: detailData.sczl_Type,
-    Sczl_rq: detailData.Sczl_rq,
-    Sczl_gdbh: detailData.sczl_gdbh,
-    Sczl_gxmc: detailData.Sczl_gxmc,
-    sczl_gxh: detailData.sczl_gxh,
-    Sczl_cl: detailData.Sczl_cl,
-    Sczl_dedh: detailData.sys_bh,
-    Sczl_desc: detailData.Sczl_desc,
-  }
-  const res = await updateData(params)
-  if (res.code === 0) {
-    ElMessage({
-      type: 'success',
-      message: '更新成功',
-    })
-    dialogFormVisible.value = false
-    params.order = ''
-    // page.value = 1
-    handleCurrentChange()
-  }
-}
-
-// 开启弹窗
-const showDialog = () => {
-  dialogFormVisible.value = true
-  // 在 setTimeout 中获取元素,确保在 DOM 渲染完毕后执行
-  setTimeout(() => {
-    formElements = document.getElementById('detail-form').elements
-    formElements[0].focus()
-  }, 0)
-}
-
-// 关闭弹窗
-const closeDialog = () => {
-  dialogFormVisible.value = false
-}
-
-let formElements
-const moveFocus = (event) => {
-  const index = Array.from(formElements).indexOf(event.target)
-  const key = event.key
-  event.preventDefault()
-  console.log(formElements)
-  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>
-.JKWTree-container {
-  display: flex;
-}
-
-.JKWTree-tree {
-  width: 100%;
-  background-color: #fff;
-  padding: 10px;
-  margin-right: 20px;
-}
-
-.JKWTree-tree h3 {
-  font-size: 15px;
-  font-weight: 700;
-  margin: 10px 0;
-}
-
-.JKWTree-content {
-  flex: 1;
-}
-
-/* 选中某行时的背景色 */
-:deep(.el-table__body tr.current-row) > td {
-  background: #ff80ff !important;
-}
-</style>
-
-<style scoped>
-:deep(.el-table td .cell) {
-  line-height: 25px !important;
-}
-
-:deep(.el-tabs__header) {
-  margin-bottom: 0;
-}
-
-.search {
-  margin-left: 0px !important;
-  margin-right: 10px !important;
-}
-
-.bt {
-  margin-left: 2px !important;
-  padding: 3px !important;
-  font-size: 12px;
-}
-
-.el-tabs__header {
-  margin: 0px !important;
-}
-
-.gva-table-box {
-  padding: 0px !important;
-}
-
-.mab {
-  margin-bottom: 5px;
-}
-</style>
+
+	// 点击左侧节点
+	const handleNodeClick = (node, check) => {
+		if (node.params) {
+			params.date = node.params.date
+			params.Sczl_bh1 = node.params.Sczl_bh1
+			params.order = ''
+			page.value = 1
+			handleCurrentChange()
+		}
+	}
+
+	// 搜索
+	function handleSearch() {
+		params.order = searchInfo.value
+		params.date = ''
+		params.Sczl_bh1 = ''
+		page.value = 1
+		handleCurrentChange()
+	}
+
+	// ============== 详情页面 ==============
+	const detailData = reactive({
+		Sczl_bh1: '',
+		sczl_Type: '',
+		Sczl_rq: '',
+		Sczl_gdbh: '',
+		Sczl_gxmc: '',
+		sczl_gxh: '',
+		Sczl_cl: '',
+		Sczl_dedh: '',
+		Sczl_desc: '',
+	})
+	const leftData = ref(0)
+	const rightData = ref(0)
+	const dedhTreeData = ref()
+	const gylcTreeData = ref()
+	const selectData = reactive([])
+
+
+	// 弹窗控制标记
+	const dialogFormVisible = ref(false)
+	const dialogDedh = ref(false)
+	const dialogGylc = ref(false)
+	// 新增数据
+	const handleShowAdd = () => {
+		type.value = 'create'
+		// 设置detailData对象中的所有属性值为空
+		Object.keys(detailData).forEach(key => {
+		  detailData[key] = '';
+		});
+		const date = dayjs().format('YYYY-MM-DD')
+		detailData.Sczl_rq = date
+		dialogFormVisible.value = true
+	}
+	// 查改
+	const handleShowEdit = () => {
+		type.value = 'update'
+		Object.assign(detailData, currentRow.value)
+		detailData.Sczl_gdbh = detailData.sczl_gdbh
+		detailData.Sczl_dedh = detailData.sys_bh
+		dialogFormVisible.value = true
+	}
+	const ent1 = (event) => {
+	  const inputs = document.getElementsByTagName('input');
+	  const currentIndex = Array.from(inputs).indexOf(event.target);
+	  
+	  if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
+	    for (let i = currentIndex + 1; i < inputs.length; i++) {
+	      if (!inputs[i].readOnly) {
+	        nextTick(()=>{
+	          inputs[i].focus();
+	          inputs[i].select();
+	        })
+	        break;
+	      }
+	    }
+	  } else if (event.keyCode === 38) { // 向上箭头
+	    for (let i = currentIndex - 1; i >= 0; i--) {
+	      if (!inputs[i].readOnly) {
+	        nextTick(()=>{
+	          inputs[i].focus();
+	          inputs[i].select();
+	        })
+	        break;
+	      }
+	    }
+	  } else if (event.keyCode === 8) { // 删除箭头
+	    if (event.target.selectionStart === 0) {
+	      for (let i = currentIndex - 1; i >= 0; i--) {
+	        if (!inputs[i].readOnly) {
+	          nextTick(()=>{
+	            inputs[i].focus();
+	            inputs[i].setSelectionRange(0, 0);
+	            inputs[i].select(); // 全选输入框内容
+	          })
+	          break;
+	        }
+	      }
+	    }
+	  } else if (event.keyCode === 37) { // 向左箭头
+	    if (event.target.selectionStart === 0) {
+	      for (let i = currentIndex - 1; i >= 0; i--) {
+	        if (!inputs[i].readOnly) {
+	          nextTick(()=>{
+	            inputs[i].focus();
+	            inputs[i].select();
+	          })
+	          break;
+	        }
+	      }
+	    }
+	  } else if (event.keyCode === 39) { // 向右箭头
+	    if (event.target.selectionStart === event.target.value.length) {
+	      for (let i = currentIndex + 1; i < inputs.length; i++) {
+	        if (!inputs[i].readOnly) {
+	          nextTick(()=>{
+	            inputs[i].focus();
+	            inputs[i].select();
+	          })
+	          break;
+	        }
+	      }
+	    }
+	  }
+	}
+	
+	//员工编号回车事件
+	const handleYgbhEnter = async () => {
+		if(!detailData.Sczl_bh1){
+			return
+		}
+		const res = await getYg({
+			sczl_bh: detailData.Sczl_bh1
+		})
+		if (res.code === 0) {
+			detailData.name = res.data[0].ygxm
+			detailData.Sczl_bh1 = res.data[0].员工编号
+		}
+	}
+	
+	//工序类型选择
+	const get_LB = () => {
+		GetLB()
+	}
+	const LBVisible = ref(false)
+	const LBselectData = reactive([])
+	//获取仓库信息
+	const GetLB = async () => {
+	  const data = [{'sczl_Type':'拆片'},{'sczl_Type':'包装'},{'sczl_Type':'打包'},{'sczl_Type':'拉料'}]
+	  LBselectData.splice(0, LBselectData.length, ...data)
+	  setLBCurrent(LBselectData[0])
+	  LBVisible.value=true
+	}
+	//选择
+	const LBSelectClick = (row, column, event) => {
+	  const { sczl_Type } = row
+	  detailData.sczl_Type=sczl_Type
+	  LBVisible.value = false
+	}
+	const tableLB=ref()
+	const setLBCurrent = (row) => {
+	  setTimeout(()=>{
+		  tableLB.value?.setCurrentRow(row) 
+		  const { sczl_Type } = row
+		  detailData.sczl_Type = sczl_Type
+	  })
+	}
+	const LBIndex = ref(0);
+	const LBCurrent = ref(0);
+	const selectLB = (event) => {
+	    if (event.keyCode === 40) { // 向下箭头
+	        if (LBIndex.value < LBselectData.length - 1) {
+	            LBIndex.value++;
+	            setLBCurrent(LBselectData[LBIndex.value]);
+	        } else {
+	            LBIndex.value = 0;
+	            setLBCurrent(LBselectData[LBIndex.value]); // 到达最后一行时回到第一行			
+	        }
+	    } else if (event.keyCode === 38) { // 向上箭头
+	        if (LBIndex.value > 0) {
+	            LBIndex.value--;
+	            setLBCurrent(LBselectData[LBIndex.value]);
+	        } else {
+	            LBIndex.value = LBselectData.length - 1;
+	            setLBCurrent(LBselectData[LBIndex.value]); // 到达第一行时回到最后一行
+	        }
+	    } else if (event.keyCode === 13) { // 回车键
+	        LBVisible.value = false
+	    }
+	}
+	
+	const handleGdbhEnter = async () => {
+		const res = await getGdmc({
+			gdbh: detailData.Sczl_gdbh
+		})
+		if (res.code === 0) {
+			detailData.Gd_cpmc = res.data.Gd_cpmc
+		}
+	}
+
+	const handleGylcEnter = async () => {
+		const res = await getGxMc({
+			gdbh: detailData.Sczl_gdbh,
+			keyword: ''
+		})
+		if (res.code === 0) {
+			const data = res.data.sort((a, b) => parseInt(a.Gy0_yjno) - parseInt(b.Gy0_yjno));
+			selectData.splice(0, selectData.length, ...data)
+			setGXCurrent[selectData[0]]
+			dialogGylc.value = true
+		}
+	}
+
+	// 工单选择框
+	const handleSelectClick = (row, column, event) => {
+		detailData.Sczl_gxmc = row.jyGx
+		detailData.sczl_gxh = row.Gy0_gxh
+		detailData.Gd_cpmc = row.Gd_cpmc
+		dialogGylc.value = false
+	}
+	const table2 = ref()
+	const setGXCurrent = (row) => {
+		setTimeout(() => {
+			table2.value?.setCurrentRow(row)
+			detailData.Sczl_gxmc = row.jyGx
+			detailData.sczl_gxh = row.Gy0_gxh
+			detailData.Gd_cpmc = row.Gd_cpmc
+		})
+	}
+	const handleSelectGylc = (node, check) => {
+		detailData.Sczl_gxmc = node['jyGx']
+		detailData.sczl_gxh = node['Gy0_gxh']
+		detailData.Gd_cpmc = node['Gd_cpmc']
+		dialogGylc.value = false
+	}
+	const currentIndex = ref(0);
+	const GXCurrent = ref(0);
+	const selectGX = (event) => {
+		if (event.keyCode === 40) { // 向下箭头
+			if (currentIndex.value < selectData.length - 1) {
+				currentIndex.value++;
+				setGXCurrent(selectData[currentIndex.value]);
+			} else {
+				currentIndex.value = 0;
+				setGXCurrent(selectData[currentIndex.value]); // 到达最后一行时回到第一行			
+			}
+		} else if (event.keyCode === 38) { // 向上箭头
+			if (currentIndex.value > 0) {
+				currentIndex.value--;
+				setGXCurrent(selectData[currentIndex.value]);
+			} else {
+				currentIndex.value = selectData.length - 1;
+				setGXCurrent(selectData[currentIndex.value]); // 到达第一行时回到最后一行
+			}
+		} else if (event.keyCode === 13) { // 回车键
+			dialogGylc.value = false
+		}
+	}
+
+	const handleGjdhEnter = async () => {
+		const res = await getDedh({ sczl_jtbh: '' })
+		if (res.code === 0) {
+			const { data } = res
+
+			const transformData = (data) => {
+				if (Array.isArray(data)) {
+					return data.map((item) => transformData(item))
+				} else if (typeof data === 'object') {
+					const { Key_, sys_bh, sys_mc, bh_mc } = data
+					const label = `${sys_bh}【${sys_mc}】`
+					const node = {
+						Key_,
+						sys_bh,
+						sys_mc,
+						label
+					}
+
+					if (bh_mc) { node.children = transformData(bh_mc) }
+
+					return node
+				} else {
+					return data
+				}
+			}
+
+			const temp = []
+			temp[0] = transformData(data)
+			dedhTreeData.value = temp
+			dialogDedh.value = true
+		}
+	}
+
+	const handleSelectDjdh = (node, check) => {
+		if (!node['children']) {
+			const { sys_bh, sys_mc } = node
+			detailData.Sczl_dedh = sys_bh
+			detailData.sys_mc = sys_mc
+			dialogDedh.value = false
+		}
+	}
+
+	
+	// 弹窗确定
+	const enterDialog = async () => {
+		// if(formData.value.入仓类型==''){
+		// 	ElMessage({type: 'warning',message: '请选择入仓类型'});
+		// 	return;
+		// }
+		// if(formData.value.仓库编号==''){
+		// 	ElMessage({type: 'warning',message: '请选择仓库'});
+		// 	return;
+		// }
+		// if(formData.value.jjcp_gdbh==''){
+		// 	ElMessage({type: 'warning',message: '请填写工单编号'});
+		// 	return;
+		// }
+		// if(formData.value.jjcp_cpdh==''){
+		// 	ElMessage({type: 'warning',message: '请选择印件'});
+		// 	return;
+		// }
+		// if(formData.value.jjcp_sl==''){
+		// 	ElMessage({type: 'warning',message: '请填写入仓数量'});
+		// 	return;
+		// }
+		
+		const restoredData = {
+			Sys_id: sys_id,
+			Sczl_bh1: detailData.Sczl_bh1,
+			sczl_Type: detailData.sczl_Type,
+			Sczl_rq: detailData.Sczl_rq,
+			Sczl_gdbh: detailData.Sczl_gdbh,
+			Sczl_gxmc: detailData.Sczl_gxmc,
+			sczl_gxh: detailData.sczl_gxh,
+			Sczl_cl: detailData.Sczl_cl,
+			Sczl_dedh: detailData.Sczl_dedh,
+			Sczl_desc: detailData.Sczl_desc,
+		}
+	    let res
+	    switch (type.value) {
+	      case 'create':
+	        res = await add(restoredData)
+	        break
+	      case 'update':
+			restoredData.UniqId = detailData.UniqId;
+	        res = await updateData(restoredData)
+	        break
+	      default:
+	        // res = await createCompany(formData.value)
+	        break
+	    }
+	    if (res.code === 0) {
+	      ElMessage({
+	        type: 'success',
+	        message: type.value=='create'? '创建成功' :'更改成功'
+	      })
+		  
+		  dialogFormVisible.value = false
+		  	getTableData()
+		  // getSideData()
+	    }
+	}
+
+	// 关闭弹窗
+	const closeDialog = () => {
+		dialogFormVisible.value = false
+	}
+
+	let formElements
+	const moveFocus = (event) => {
+		const index = Array.from(formElements).indexOf(event.target)
+		const key = event.key
+		event.preventDefault()
+		console.log(formElements)
+		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
+		}
+	}
+	
+	const rowSelection = {
+	      type: 'radio'
+	    };
+		
+	// let lastCellValue=ref()
+	// 多选
+	// const handleSelectionChange = (val) => {
+	//   if(val.length>0){
+	// 	  lastCellValue = val.map(row=>row.UniqId)
+	//   }
+	//   console.log(lastCellValue)
+	//   console.log(rowSelection)
+	// }
+	
+	//删除
+	function onDel() {
+		if(!currentRow.value){
+			ElMessage({
+			  type: 'warning',
+			  message: '请选择要删除的数据',
+			})
+			return
+		}
+		ElMessageBox.confirm('确定要删除吗?', '提示', {
+		    confirmButtonText: '确定',
+		    cancelButtonText: '取消',
+		    type: 'warning'
+		}).then(() => {
+		        del({UniqId:currentRow.value.UniqId}).then(res=>{
+		        	if (res.code === 0) {
+		        			ElMessage({
+		        			  type: 'success',
+		        			  message: '删除成功',
+		        			})
+		        	}
+		        	getTableData()
+		        })
+		    })
+		
+		// Del()
+	}
+	//删除
+	const Del = async () => {
+		console.log(lastCellValue)
+		return
+	  const response = await finisheddel({UniqId:lastCellValue});
+	  if (response.code === 0) {
+		ElMessage({
+		  type: 'success',
+		  message: '删除成功',
+		})
+	  }
+	  getTableData()
+	}
+</script>
+
+<style scoped>
+	.JKWTree-container {
+		display: flex;
+	}
+
+	.JKWTree-tree {
+		width: 100%;
+		background-color: #fff;
+		padding: 10px;
+		margin-right: 20px;
+	}
+
+	.JKWTree-tree h3 {
+		font-size: 15px;
+		font-weight: 700;
+		margin: 10px 0;
+	}
+
+	.JKWTree-content {
+		flex: 1;
+	}
+
+	/* 选中某行时的背景色 */
+	:deep(.el-table__body tr.current-row)>td {
+		background: #ff80ff !important;
+	}
+</style>
+
+<style scoped>
+	:deep(.el-table td .cell) {
+		line-height: 25px !important;
+	}
+
+	:deep(.el-tabs__header) {
+		margin-bottom: 0;
+	}
+
+	.search {
+		margin-left: 0px !important;
+		margin-right: 10px !important;
+	}
+
+	.bt {
+		margin-left: 2px !important;
+		padding: 3px !important;
+		font-size: 12px;
+	}
+
+	.el-tabs__header {
+		margin: 0px !important;
+	}
+
+	.gva-table-box {
+		padding: 0px !important;
+	}
+
+	.mab {
+		margin-bottom: 5px;
+	}
+</style>

+ 3 - 3
src/view/performance/Dayreports.vue

@@ -440,7 +440,7 @@
 		  <el-dialog v-model="BzVisible" title="选择" destroy-on-close width="200px" @keydown="selectBZ($event)">
 		    <el-table tooltip-effect="dark" :data="selectDataBz" row-key="ID"
 		      highlight-current-row="true" border style="width:100%"
-		      @row-dblclick="SelectClickBz" @row-click="SelectClick" ref="table2" 
+		      @row-dblclick="SelectClickBz" ref="table2" 
 		    >
 		      <el-table-column prop="sczl_bzdh" label="班组" width="150"/>
 		    </el-table>
@@ -540,7 +540,7 @@ const formData = ref({
           sczl_打样总工时: '',
           sczl_打样工时: '0.00',
           sczl_设备运行工时: '0.00',
-          拆片联拼系数: '',
+          拆片联拼系数: '1',
           拆片条小盒系数: '',
           sczl_dedh: '',
           sczl_工价系数: '',
@@ -599,7 +599,7 @@ const initFormData = () => {
           sczl_打样总工时: '',
           sczl_打样工时: '0.00',
           sczl_设备运行工时: '0.00',
-          拆片联拼系数: '',
+          拆片联拼系数: '1',
           拆片条小盒系数: '',
           sczl_dedh: '',
           sczl_工价系数: '',

+ 50 - 26
src/view/performance/Manualdocuments.vue

@@ -149,7 +149,7 @@
 			     </el-col>
 			     <el-col :span="6">
 					<el-form-item label="冲月定额" prop="id" class="mab" label-width="100px">
-			        <el-input v-model="formData.sczl_冲定额" id="冲月定额"  @keydown="ent1($event)" style="width: 100px;"/>
+			        <el-input v-model="formData.sczl_冲定额" id="冲月定额"  @keydown="ent1($event)" @blur="getCdesubmit()" style="width: 100px;"/>
 					</el-form-item>
 			     </el-col>
 			   </el-row>
@@ -219,10 +219,19 @@
 			<el-dialog v-model="BzVisible" title="选择" destroy-on-close width="200px" @keydown="selectBZ($event)">
 			  <el-table tooltip-effect="dark" :data="selectDataBz" row-key="ID"
 			    highlight-current-row="true" border style="width:100%"
-			    @row-dblclick="SelectClickBz" @row-click="SelectClick" ref="table" 
+			    @row-dblclick="SelectClickBz" ref="table" 
 			  >
 			    <el-table-column prop="sczl_bzdh" label="班组" width="150"/>
 			  </el-table>
+			</el-dialog>
+			<el-dialog v-model="CdeVisible" title="选择" destroy-on-close width="200px" @keydown="selectCde($event)">
+			  <el-table tooltip-effect="dark" :data="selectDataCde" row-key="ID"
+			    highlight-current-row="true" border style="width:100%"
+				:row-style="{ height: '30px' }"
+			    @row-dblclick="SelectClickCde" ref="tableCde" 
+			  >
+			    <el-table-column prop="sczl_冲定额" width="150"/>
+			  </el-table>
 			</el-dialog>
 			
 			<el-dialog v-model="dialogSelectVisible" title="选择"
@@ -743,12 +752,8 @@ const table = ref()
 const setCurrent = (row) => {
   setTimeout(()=>{
 	  table.value?.setCurrentRow(row)
-	  // SelectClick(row)
-	  // console.log(row)
-	  // console.log(table)
 	  const {sczl_bzdh } = row
-	  	formData.value.sczl_bzdh=row.sczl_bzdh
-	  	console.log(row)
+	  formData.value.sczl_bzdh=row.sczl_bzdh
   })
 }
 //班组选择
@@ -756,35 +761,54 @@ const selectDataBz = reactive([])
 const BzVisible = ref(false)
 const SelectClickBz = (row, column, event) => {
   const {sczl_bzdh } = row
-	formData.value.sczl_bzdh=row.sczl_bzdh
-	console.log(row)
-  BzVisible.value = false
-  // removeEventListener('keyup', keyUp.bind(this));
+	formData.value.sczl_bzdh=row.sczl_bzdh
+	BzVisible.value = false
 }
 
 const selectBZ = (event) => {
-	// console.log(selectDataBz.length);
 	if (event.keyCode === 40) { // Enter 或向下箭头
-	    setCurrent(selectDataBz[1]);
-		// console.log(num.value+1)
-		// if (parseInt(num.value+ 1) > selectDataBz.length||parseInt(num.value+ 1) ===selectDataBz.length) {
-		// 	// setCurrent(selectDataBz[0]);
-		// 	console.log('123')
-		// } else {
-		// 	// setCurrent(selectDataBz[num.value + 1]);
-		// 	console.log("3333")
-		// }
+	    setCurrent(selectDataBz[1]);
 	} else if (event.keyCode === 38) {
 		setCurrent(selectDataBz[0]);
-		// if (num.value - 1 < 0) {
-		// 	setCurrent(selectDataBz[selectDataBz.length - 1]);
-		// } else {
-		// 	setCurrent(selectDataBz[num.value - 1]);
-		// }
 	} else if (event.keyCode === 13) {
 		    BzVisible.value = false
 	}
 }
+
+//冲定额失去焦点事件
+const getCdesubmit = () => {
+	//弹出选择
+	const data = [{'sczl_冲定额':''},{'sczl_冲定额':'是'}]
+	selectDataCde.splice(0, selectDataCde.length, ...data)
+	CdeVisible.value=true
+	setCdeCurrent(data[0])
+}
+const tableCde = ref()
+const setCdeCurrent = (row) => {
+  setTimeout(()=>{
+	  tableCde.value?.setCurrentRow(row)
+	  const {sczl_冲定额 } = row
+	  formData.value.sczl_冲定额=row.sczl_冲定额
+  })
+}
+//冲定额选择
+const selectDataCde = reactive([])
+const CdeVisible = ref(false)
+const SelectClickCde = (row, column, event) => {
+  const {sczl_冲定额 } = row
+	formData.value.sczl_冲定额=row.sczl_冲定额
+	CdeVisible.value = false
+}
+
+const selectCde = (event) => {
+	if (event.keyCode === 40) { // Enter 或向下箭头
+	    setCdeCurrent(selectDataCde[1]);
+	} else if (event.keyCode === 38) {
+		setCdeCurrent(selectDataCde[0]);
+	} else if (event.keyCode === 13) {
+		    CdeVisible.value = false
+	}
+}
 
 //员工编号失去焦点事件
 const getygsubmit = async (event, inputName) => {

+ 18 - 2
src/view/performance/chejianbaogong.vue

@@ -2299,7 +2299,10 @@ const FacilityWorklist = async () => {
 		}
 	})
 	selectData.value=[]
-    console.log(formData.value.工单编号)
+	if(formData.value.工单编号 === undefined){
+		 return false;
+	}
+	console.log(formData.value.工单编号)
     const res = await facilityProcedure({ Gd_gdbh: formData.value.工单编号 })
   	console.log(res)
 	if (res.code === 0) {
@@ -2449,11 +2452,18 @@ const bzonRightClick = async (row) => {
     cancelButtonText: '取消',
     type: 'warning'
   }).then(() => {
+	  console.log(1121111)
     SetMachineTeams(roww.value)
   })
 }
 //数据接口调用
 const SetMachineTeams = async(row) => {
+	 console.log(formData.value.工单编号)
+	 	 console.log(row)
+		  console.log(55555555)
+		  
+		  
+		  
   const res = await setMachineTeam({
     machine: JTMC.split("#")[0],
     order: formData.value.工单编号,
@@ -4535,6 +4545,12 @@ const selectBz = async() => {
       }
       formData.value.class=classbz.value.join(',')
     }
+	
+// 		console.log(formData)
+// console.log(formData)
+// console.log(formData)
+	
+	
 		const response = await setMachineTeam({
 			machine: JTMC.split("#")[0],
 			order:formData.value.工单编号,
@@ -4663,12 +4679,12 @@ const yjonRightClick = async(row) => {
     cancelButtonText: '取消',
     type: 'warning'
   }).then(() => {
+	    location.reload();
     setMachineTeams(rowws.value)
   })
 }
 
 const setMachineTeams = async(row) => {
-	console.log(row)
     const res = await setMachineTeam({
 			machine: JTMC.split("#")[0],
 			order:row['工单编号|质量信息'].split('|')[0],

+ 43 - 16
src/view/yunyin/chanpinziliao/chanpinziliao.vue

@@ -1154,7 +1154,7 @@
                         <el-input v-model="add_gyformData.Gy0_方案"   style="width: 90px;" id="方案"  @keydown="ent($event, '备注', '方案', 'Gy0_yjno')"/>
                       </el-form-item>
                       <el-form-item label="印件编号:" prop="address" class="mab"  label-width="90">
-                        <el-input v-model="add_gyformData.Gy0_yjno"    style="width: 90px;" id="Gy0_yjno" @keydown="ent($event, '方案', 'Gy0_yjno', 'Gy0_gxh')"/>
+                        <el-input v-model="add_gyformData.Gy0_yjno"    style="width: 90px;" id="Gy0_yjno" @blur="getKlKs" @keydown="ent($event, '方案', 'Gy0_yjno', 'Gy0_gxh')"/>
                       </el-form-item>
                       <el-form-item label="工序编号:" prop="address" class="mab" >
                         <el-input v-model="add_gyformData.Gy0_gxh"    style="width: 90px;" id="Gy0_gxh" @keydown="ent($event, 'Gy0_yjno', 'Gy0_gxh', '加工开数')"/>
@@ -1163,19 +1163,19 @@
                         <el-input v-model="add_gyformData.Gy0_Ks"   style="width: 90px;" id="加工开数"  @keydown="ent($event, 'Gy0_gxh', '加工开数', 'Gy0_ls')"/>
                       </el-form-item>
                       <el-form-item label="加工联数:" prop="address" class="mab" >
-                        <el-input v-model="add_gyformData.Gy0_ls"   style="width: 90px;" id="Gy0_ls"  @keydown="ent($event, '加工开数', 'Gy0_ls', 'gy0_site')"/>
+                        <el-input v-model="add_gyformData.Gy0_ls"   style="width: 90px;" id="Gy0_ls"  @keydown="ent($event, '加工开数', 'Gy0_ls', '车间名称')"/>
                       </el-form-item>
                   </el-row>
 
                   <el-row>
                     <el-col :span="6">
                       <el-form-item label="车间名称:" prop="address" class="mab">
-                        <el-input v-model="add_gyformData.Gy0_site" @keyup.enter="getcjmc()"  style="width: 140px;" id="gy0_site"  @keydown="ent($event, 'Gy0_ls', 'gy0_site', 'gy0_gxmc')"/>
+                        <el-input v-model="add_gyformData.Gy0_site" id="车间名称" @keydown="ent($event, 'Gy0_ls', '车间名称', 'gy0_gxmc')" style="width: 140px;"  />
                       </el-form-item>
                     </el-col>
                     <el-col :span="6">
                       <el-form-item label="工艺名称:" prop="address" class="mab"  label-width="100">
-                        <el-input v-model="add_gyformData.gy0_gxmc"   style="width: 140px;" id="gy0_gxmc"  @keydown="ent($event, 'gy0_site', 'gy0_gxmc', 'add_gxmc')"/>
+                        <el-input v-model="add_gyformData.gy0_gxmc"   style="width: 140px;" id="gy0_gxmc"  @keydown="ent($event, '车间名称', 'gy0_gxmc', 'add_gxmc')"/>
                       </el-form-item>
                     </el-col>
                   </el-row>
@@ -1202,7 +1202,7 @@
 
                   <el-row>
                       <el-form-item label="标准损耗:" prop="address" class="mab">
-                        <el-input v-model="add_gyformData.Gy0_shdh"  @keyup.enter="getSH()"   style="width: 150px;" id="Gy0_shdh" @keydown="ent($event, '难度系数', 'Gy0_shdh', 'sys_mc')"/>
+                        <el-input v-model="add_gyformData.Gy0_shdh"  @keyup.enter="getSH()"   style="width: 150px;" id="Gy0_shdh" />
                         <el-input v-model="add_gyformData.sys_mc"   style="width: 160px;" id="sys_mc"  @keydown="ent($event, 'Gy0_shdh', 'sys_mc', '基础损耗')"/>
                       </el-form-item>
                       <el-form-item label="基础损耗:" prop="address" class="mab">
@@ -1566,7 +1566,9 @@ import {
   PrintlDel,
   ProcessDel,
   addProduct,
-  ProcessEdit
+  ProcessEdit,
+  getCouplet,
+  ProductgetCouplet
 } from '@/api/yunyin/yunying'
 defineOptions({   name: 'Company'})
 import { useUserStore } from '@/pinia/modules/user'
@@ -3102,16 +3104,18 @@ const add_gdzlyjent = async (event,id1,id2,id3,idx) => {
 }
 
 
-
-
-
-
 //===============新增工艺资料=======================
 const addgydialogFormVisible = ref(false)
 const searchCJModel = ref(false)
 const searchSHModel = ref(false)
-
-const addcpgy_onclick = () => {
+// 点击工艺行获取数据
+const addcpgy_onclick =  async () => {
+	if(_gyrow.value){
+		//3.6工艺资料-获取产品工艺资料
+		const getProductGyInfo_edit = await getProductGyInfo({UniqID:_gyrow.value.UniqID})
+		Object.assign(add_gyformData,getProductGyInfo_edit.data);
+	}
+	add_gyformData.Gy0_方案 = 'A';
 	//新增
 	typeGy.value = 'create'
 	addgydialogFormVisible.value=true
@@ -3577,9 +3581,15 @@ const meshandleCancel = async () => {
 }
 
 //=========修改工艺资料========
-let gyformDataTest = reactive({})
+let gyformDataTest = reactive({})
+const _gyrow = ref('')
+const clickybupdate = async (row) => {
+	console.log(row)
+	_gyrow.value = row 
+}
+
 //双击修改
-const gyupdateCompanyFunc = async (row) => {
+const gyupdateCompanyFunc = async (row) => {
   //3.6工艺资料-获取产品工艺资料
   const getProductGyInfo_edit = await getProductGyInfo({UniqID:row.UniqID})
   
@@ -3642,7 +3652,9 @@ const setInputCellStyle = (data) => {
 
 //键盘 input框跳转
 const ent = (event,id1,id2,id3) => {
-
+	if (id2==='车间名称' && event.key==='Tab' || id2 === '车间名称' && event.key=== 'Enter') {
+		_getCJList()
+	}
   if (event.keyCode === 13 ||  event.keyCode === 40) { // Enter 或向下箭头
     if(id3!=''){
       document.getElementById(id3).focus()
@@ -3666,7 +3678,22 @@ const ent = (event,id1,id2,id3) => {
     }
   }
 }
-
+
+//印件号回车带出开联开数
+const getKlKs = () =>{
+	ProductgetCouplet({ product:_Gd_gdbh.value,yjno:add_gyformData.Gy0_yjno}).then( response => {
+		if(response.code==0){
+			if(response.data){
+				add_gyformData.Gy0_Ks = response.data['开数']
+				add_gyformData.Gy0_ls = response.data['联数']
+			}else{
+				add_gyformData.Gy0_Ks = ''
+				add_gyformData.Gy0_ls = ''
+			}
+			
+		}
+	});
+}
 // const  _yjdh = ref(null);
 const yj_ent = (event,id1,id2,id3) => {
   // if(event.keyCode == 13){

+ 398 - 290
src/view/yunyin/shengchanguanli/chengpinrucang.vue

@@ -14,20 +14,18 @@
         <el-main>
           <!-- 按钮区域 -->
           <div class="gva-table-box">
-            <div class="gva-btn-list">
-              <el-row :span="6">
-                <el-input v-model="positionvalue" placeholder="输入工单编号或产品名称" />
-              </el-row>
-              <el-button type="primary" :icon="Search" @click="onSearch">搜索</el-button>
-              <el-button type="primary" @click="onDel">删除</el-button>
-			  <el-button type="primary" @click="onSMB">入仓末板数据统计</el-button>
-			  <el-button type="primary" @click="onDay">各日统计</el-button>
-			  <el-button type="primary" @click="onAdd">新增</el-button>
+            <el-form-item>
+              <el-input v-model="positionvalue" placeholder="输入工单编号或产品名称" style="width: 180px;"/>
+              <el-button type="primary" class="search" icon="search" @click="onSearch"></el-button>
+              <el-button type="primary" class="bt" @click="onDel">删除</el-button>
+			  <el-button type="primary" class="bt" @click="onSMB">入仓末板数据统计</el-button>
+			  <el-button type="primary" class="bt" @click="onDay">各日统计</el-button>
+			  <el-button type="primary" class="bt" @click="onAdd">新增</el-button>
 			  
               <div style="margin-left: auto;">			
-                <el-button type="primary" :icon="Download" @click="exportExcel">导出到Excel</el-button>
+                <el-button type="primary" class="bt" icon="Download" @click="exportExcel">导出到Excel</el-button>
               </div>
-            </div>
+            </el-form-item>
             <!-- 数据展示 -->
             <el-table ref="multipleTable" style="width: 100%" tooltip-effect="dark" :data="tableData" row-key="ID" @row-click="Click"
               highlight-current-row="true" border @selection-change="handleSelectionChange" :show-overflow-tooltip="true" @row-dblclick="doubleClick">
@@ -70,156 +68,133 @@
           </div>
           <!-- 弹出框 -->
           <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type === 'create' ? '添加' : '详情'"
-            destroy-on-close width="1200px">
+            destroy-on-close width="800px">
             <!-- <el-scrollbar height="500px"> -->
-            <el-form :model="formData" label-position="left" ref="elFormRef" :rules="rule">
+            <el-form :model="formData" label-position="right" label-width="75px" ref="elFormRef" :rules="rule">
 
-              <el-row :gutter="20">
-			 <el-col :span="4">
+              <el-row :gutter="24">
+			 <el-col :span="7">
 			   <el-form-item label="入仓类型" prop="id">
-				 <el-input v-model="formData.入仓类型" id="入仓类型"  @keydown="ent($event, '入仓备注', '入仓类型', '仓库编号')" :clearable="true" placeholder="" />
+				 <el-input v-model="formData.入仓类型" id="入仓类型"  @keydown="ent($event, '入仓备注', '入仓类型', '仓库编号')" :clearable="true" style="width: 120px;" />
 			   </el-form-item>
 			 </el-col>
-			 <el-col :span="6">
-			   <el-form-item label="仓库" prop="name">
-				 <el-row :gutter="20">
-				   <el-col :span="12">
-					 <el-input v-model="formData.仓库编号" id="仓库编号"  @keydown="ent($event, '入仓类型', '仓库编号', '仓库名称')"   :clearable="true" placeholder="ZT01733" />
-				   </el-col>   
-				   <el-col :span="12">
-					 <el-input v-model="formData.仓库名称" id="仓库名称"  @keydown="ent($event, '仓库编号', '仓库名称', '单据编号')" :clearable="true" placeholder="" />
-				   </el-col>  
-				 </el-row>
+			 <el-col :span="17">
+			   <el-form-item label="仓库" prop="name" label-width="40px">
+					 <el-input v-model="formData.仓库编号" id="仓库编号"  @keydown="ent($event, '入仓类型', '仓库编号', '仓库名称')"   :clearable="true" style="width: 120px;" />
+					 <el-input v-model="formData.仓库名称" id="仓库名称"  @keydown="ent($event, '仓库编号', '仓库名称', '单据编号')" :clearable="true" style="width: 120px;" />
 			   </el-form-item>
 			 </el-col>
 		   </el-row> 
 		   
 		   
-		   <el-row :gutter="20">
-			 <el-col :span="4">
+		   <el-row :gutter="24">
+			 <el-col :span="7">
 			   <el-form-item label="单据编号" prop="id">
-				 <el-input v-model="formData.jjcp_num"  id="单据编号"  @keydown="ent($event, '仓库名称', '单据编号', '工单编号')" :clearable="true" placeholder="" />
+				 <el-input v-model="formData.jjcp_num"  id="单据编号"  @keydown="ent($event, '仓库名称', '单据编号', '工单编号')" :clearable="true"  style="width: 120px;"  />
 			   </el-form-item>
 			 </el-col>
 		   </el-row> 
 		   
 		   
 		   
-		   <el-row :gutter="20">
-			 <el-col :span="4">
+		   <el-row :gutter="24">
+			 <el-col :span="7">
 			   <el-form-item label="工单编号" prop="id">
-				 <el-input v-model="formData.jjcp_gdbh" id="工单编号"  @keydown="ent($event, '单据编号', '工单编号', '印件号')" @keyup.enter.native="getGDsubmit" :clearable="true" placeholder="" />
+				 <el-input v-model="formData.jjcp_gdbh" id="工单编号"  @keydown="ent($event, '单据编号', '工单编号', '客户料号')" :clearable="true"  style="width: 120px;"  />
 			   </el-form-item>
 			 </el-col>
-			 <el-col :span="6">
-			   <el-form-item label="印件号" prop="name">
-				 <el-row :gutter="20">
-				   <el-col :span="12">
-					 <el-input v-model="formData.jjcp_yjno" id="印件号"  @keydown="ent($event, '工单编号', '印件号', '订单编号')" :clearable="true" placeholder="" />
-				   </el-col>  				
-				 </el-row>
+			 <el-col :span="5">
+			   <el-form-item label="印件号" prop="name" label-width="55px">
+					<el-input v-model="formData.jjcp_yjno" id="印件号" disabled :clearable="true"   style="width: 50px;" />
 			   </el-form-item>	   
 			 </el-col>
-			 <el-col :span="10">
+			 <el-col :span="12">
 			   <el-form-item label="订单编号" prop="name">
-				 <el-row :gutter="20">
-				   <el-col :span="20">
-					 <el-input v-model="formData.订单编号" id="订单编号"  @keydown="ent($event, '印件号', '订单编号', '印件编号')" :clearable="true" placeholder="" />
-				   </el-col>  				
-				 </el-row>
+					 <el-input v-model="formData.订单编号" id="订单编号" disabled :clearable="true"  style="width: 120px;"  />
 			   </el-form-item>
 			 </el-col>
 		   </el-row> 
 		   
-           <el-row :gutter="20">
-			 <el-col :span="4">
+           <el-row :gutter="24">
+			 <el-col :span="24">
 			   <el-form-item label="印件编号" prop="id">
-				 <el-input v-model="formData.jjcp_cpdh" id="印件编号"  @keydown="ent($event, '订单编号', '印件编号', 'jjcp_cpmc')" :clearable="true" placeholder="" />
+				 <el-input v-model="formData.jjcp_cpdh" id="印件编号" disabled :clearable="true"  style="width: 120px;"  />
+				<el-input v-model="formData.jjcp_cpmc"  id="jjcp_cpmc" disabled :clearable="true"  style="width: 500px; margin-left: 10px;" />
 			   </el-form-item>
 			 </el-col>
-			 <el-col :span="10">
-			 <el-input v-model="formData.jjcp_cpmc"  id="jjcp_cpmc"  @keydown="ent($event, '印件编号', 'jjcp_cpmc', '产品编号')" :clearable="true" placeholder="" />					   
-			 </el-col>
            </el-row> 
             
 			
-			<el-row :gutter="20">
-			 <el-col :span="4">
+			<el-row :gutter="24">
+			 <el-col :span="24">
 			   <el-form-item label="产品编号" prop="id">
-				 <el-input v-model="formData.成品编码" id="产品编号"  @keydown="ent($event, 'jjcp_cpmc', '产品编号', '成品名称')" @keyup.enter.native="getSLsubmit" :clearable="true" placeholder="" />
+				 <el-input v-model="formData.成品编码" id="产品编号" disabled :clearable="true"   style="width: 120px;" />
+					<el-input v-model="formData.成品名称" id="成品名称" disabled :clearable="true"   style="width: 500px; margin-left: 10px;" />
 			   </el-form-item>
 			 </el-col>
-			 <el-col :span="10">
-			 <el-input v-model="formData.成品名称" id="成品名称"  @keydown="ent($event, '产品编号', '成品名称', '客户料号')" :clearable="true" placeholder="" />					   
-			 </el-col>
 			</el-row> 
 
-            <el-row :gutter="20">
-			 <el-col :span="4">
+            <el-row :gutter="24">
+			 <el-col :span="7">
 			   <el-form-item label="客户料号" prop="id">
-				 <el-input v-model="formData.客户料号" id="客户料号"  @keydown="ent($event, '成品名称', '客户料号', '首末版')" :clearable="true" placeholder="" />
+				 <el-input v-model="formData.客户料号" id="客户料号"  @keydown="ent($event, '工单编号', '客户料号', '首末板')" :clearable="true"  style="width: 120px;" />
 			   </el-form-item>
 			 </el-col>
             </el-row> 
 			  
-			  <el-row :gutter="20">
-			   <el-col :span="4">
-			     <el-form-item label="首末版" prop="id">
-				 <el-select v-model="formData.jjcp_smb" placeholder="" style="width: 190px;" id="首末版"
-				            @keydown="ent($event, '客户料号', '首末版', '入仓时间')"
-				 >
-				   <el-option label="首 版" value="首 版"></el-option>
-				   <el-option label="末 板" value="末 板"></el-option>
-				   <el-option label="首末板" value="首末板"></el-option>
-				 </el-select>
-			  	 <!-- <el-input v-model="formData.jjcp_smb"  id="首末版"  @keydown="ent($event, '客户料号', '首末版', '入仓时间')" :clearable="true" placeholder="" /> -->
+			  <el-row :gutter="24">
+			   <el-col :span="7">
+			     <el-form-item label="首末板" prop="id">
+					 <el-input v-model="formData.jjcp_smb" id="首末板"  @keydown="ent($event, '客户料号', '首末板', '入仓时间')" :clearable="true"   style="width: 120px;" />
 			     </el-form-item>
 			   </el-col>
-			   <el-col :span="4">
-				   <el-form-item label="入仓时间" prop="id">
-			   <el-input v-model="formData.jjcp_sj"  id="入仓时间"  @keydown="ent($event, '首末版', '入仓时间', '入仓数量')" :clearable="true" placeholder="" />	
+			   <el-col :span="17">
+				    <el-form-item label="入仓时间" prop="id">
+						<el-date-picker v-model="formData.jjcp_sj" type="datetime"  format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"id="入仓时间"   @keydown="ent($event, '首末板', '入仓时间', '入仓数量')"  style="width: 200px;"/>
+						
+						<!-- <el-input type="datetime" v-model="formData.jjcp_sj"  id="入仓时间"   @keydown="ent($event, '首末板', '入仓时间', '入仓数量')" :clearable="true" style="width: 120px;" />	 -->
 					</el-form-item>
 			   </el-col>
 			  </el-row> 
 			  
 			  
-			  <el-row :gutter="20">
-			   <el-col :span="4">
+			  <el-row :gutter="24">
+			   <el-col :span="7">
 			     <el-form-item label="入仓数量" prop="id">
-			  	 <el-input v-model="formData.jjcp_sl" id="入仓数量"  @keydown="ent($event, '入仓时间', '入仓数量', '入仓单位')" :clearable="true" placeholder="" />
+			  	 <el-input v-model="formData.jjcp_sl" id="入仓数量"  @keydown="ent($event, '入仓时间', '入仓数量', '入仓单位')" :clearable="true" style="width: 120px;" />
 			     </el-form-item>
 			   </el-col>
-			   <el-col :span="4">
+			   <el-col :span="17">
 			  	<el-form-item label="入仓单位" prop="id">
-			   <el-input v-model="formData.jjcp_dw" id="入仓单位"  @keydown="ent($event, '入仓数量', '入仓单位', '订单数量')" :clearable="true" placeholder="" />	
+			   <el-input v-model="formData.jjcp_dw" id="入仓单位"  @keydown="ent($event, '入仓数量', '入仓单位', '订单数量')" :clearable="true" style="width: 120px;" />	
 			    </el-form-item>
 			   </el-col>
 			  </el-row> 
 			  
 			  
-			  <el-row :gutter="20">
-			   <el-col :span="4">
+			  <el-row :gutter="24">
+			   <el-col :span="7">
 			     <el-form-item label="订单数量" prop="id">
-			  	 <el-input v-model="formData.订单数量" id="订单数量"  @keydown="ent($event, '入仓单位', '订单数量', '已完工')" :clearable="true" placeholder="" />
+			  	 <el-input v-model="formData.订单数量" id="订单数量" @blur="" @keydown="ent($event, '入仓单位', '订单数量', '已完工')" :clearable="true" style="width: 120px;" />
 			     </el-form-item>
 			   </el-col>
-			   <el-col :span="4">
+			   <el-col :span="7">
 			  	<el-form-item label="已完工" prop="id">
-			   <el-input v-model="formData.jjcp_sls" id="已完工"  @keydown="ent($event, '订单数量', '已完工', '机型备注')" :clearable="true" placeholder="" />	
+			   <el-input v-model="formData.jjcp_sls" id="已完工"  @keydown="ent($event, '订单数量', '已完工', '机型备注')" :clearable="true" style="width: 120px;" />	
 			    </el-form-item>
 			   </el-col>
-			   <el-col :span="4">
+			   <el-col :span="8">
 			   			  	<el-form-item label="机型备注" prop="id">
-			   <el-input v-model="formData.机型备注" id="机型备注"  @keydown="ent($event, '已完工', '机型备注', '入仓备注')" :clearable="true" placeholder="" />	
+			   <el-input v-model="formData.机型备注" id="机型备注"  @keydown="ent($event, '已完工', '机型备注', '入仓备注')" :clearable="true"  style="width: 300px;"/>	
 			    </el-form-item>
 			   </el-col>
 			  </el-row> 
 			  
 			  
-			  <el-row :gutter="20">
-				 <el-col :span="4">
+			  <el-row :gutter="24">
+				 <el-col :span="22">
 				   <el-form-item label="入仓备注" prop="id">
-					 <el-input v-model="formData.jjcp_desc"  id="入仓备注"  @keydown="ent($event, '机型备注', '入仓备注', '入仓类型')":clearable="true" placeholder="" />
+					 <el-input v-model="formData.jjcp_desc"  id="入仓备注"  @keydown="ent($event, '机型备注', '入仓备注', '入仓类型')":clearable="true"  />
 				   </el-form-item>
 				 </el-col>
 			  </el-row> 
@@ -235,101 +210,53 @@
           </el-dialog>
 
 
-
-          <el-dialog
-            v-model="CKVisible"
-            title="选择"
-            destroy-on-close
-            width="600px"
-			@keydown="selectCK($event)"
-          			>
-            <el-table
-              tooltip-effect="dark"
-              :data="CKselectData"
-              row-key="ID"
-              highlight-current-row="true"
-              border
-              style="width:100%"
+		<!-- 仓库编号选择 -->
+          <el-dialog v-model="CKVisible" title="选择"
+            destroy-on-close width="600px" @keydown="selectCK($event)" >
+            <el-table tooltip-effect="dark"
+              :data="CKselectData" row-key="ID"
+              highlight-current-row="true" border style="width:100%"
               @row-dblclick="CKSelectClick"
 			  ref="table2"
             >
-              <el-table-column
-                prop="编号"
-                label="编号"
-                width="200"
-              />
-			  <el-table-column
-				prop="名称"
-				label="名称"
-				width="200"
-			  />		      	 
+              <el-table-column prop="编号" label="编号" width="200" />
+			  <el-table-column prop="名称" label="名称" width="200" />		      	 
             </el-table>
-          </el-dialog>
-		  
+          </el-dialog>
 		  
+		  <!-- 入仓类型选择 -->
+		  <el-dialog v-model="RCVisible" title="选择"
+		    destroy-on-close width="400px" @keydown="selectRC($event)" >
+		    <el-table tooltip-effect="dark"
+		      :data="RCselectData" row-key="ID"
+		      highlight-current-row="true" border style="width:100%"
+		      @row-dblclick="RCSelectClick"
+		  			  ref="tableRC"
+		    >
+		      <el-table-column prop="入仓类型" label="入仓类型" width="360" />		      	 
+		    </el-table>
+		  </el-dialog>
+		  
+		  <!-- 首末板选择 -->
+		  <el-dialog v-model="SMBVisible" title="选择"
+		    destroy-on-close width="200px" @keydown="selectSMB($event)" >
+		    <el-table tooltip-effect="dark" :data="SMBselectData" row-key="ID"
+		      highlight-current-row="true" border style="width:100%"
+		      :row-style="{ height: '30px' }"
+		      @row-dblclick="SMBSelectClick"
+		  			  ref="tableSMB"
+		    >
+		      <el-table-column prop="jjcp_smb" label="" width="160" />		      	 
+		    </el-table>
+		  </el-dialog>
 		  
-		  <el-dialog
-		    v-model="GDVisible"
-		    title="选择"
-		    destroy-on-close
-		    width="600px"
-			@keydown="selectGD($event)"
-		  			>
-		    <el-table
-		      tooltip-effect="dark"
-		      :data="GDselectData"
-		      row-key="ID"
-		      highlight-current-row="true"
-		      border
-		      style="width:100%"
-		      @row-dblclick="GDSelectClick"
+		  <el-dialog v-model="GDVisible" title="选择" destroy-on-close width="600px" @keydown="selectGD($event)" >
+		    <el-table tooltip-effect="dark" :data="GDselectData"
+		      row-key="ID" highlight-current-row="true" border
+		      style="width:100%" @row-dblclick="GDSelectClick"
 			  ref="table3"
 		    >
-			<el-table-column
-			  prop="gdyj"
-			  label="工单印件"
-			  width="600"
-			/>
-		      <el-table-column
-		        prop="Gd_gdbh"
-		        label="工单编号"
-		        width="200"
-		      />
-			  <el-table-column
-				prop="yj_yjno"
-				label="印件号"
-				width="200"
-			  />
-			  <el-table-column
-			    prop="销售订单号"
-			    label="销售订单号"
-			    width="200"
-			  />
-			  <el-table-column
-				prop="yj_Yjdh"
-				label="印件编码"
-				width="200"
-			  />
-			  <el-table-column
-			    prop="yj_yjmc"
-			    label="印件名称"
-			    width="200"
-			  />
-			  <el-table-column
-				prop="成品代号"
-				label="成品代号"
-				width="200"
-			  />
-			  <el-table-column
-			    prop="成品名称"
-			    label="成品名称"
-			    width="200"
-			  />
-			  <el-table-column
-				prop="客户料号"
-				label="客户料号"
-				width="200"
-			  />
+			<el-table-column prop="gdyj" label="工单印件" width="560" />
 		    </el-table>
 		  </el-dialog>
 		  
@@ -483,7 +410,8 @@ import {
   finisheddel,
   getDayList,
   mbList,
-  finishedadd
+  finishedadd,
+  finishedEdit
 } from '@/api/jixiaoguanli/jitairibaobiao'
 
 // 全量引入格式化工具 请按需保留
@@ -524,14 +452,64 @@ const getTabdata = async () => {
 
 	
 	}
-	
+	const rqHandleFocus = () =>{
+		if(formData.value.jjcp_sj==''){
+			formData.value.jjcp_sj = new Date(new Date().getTime() + 8 * 60 * 60 * 1000).toISOString().slice(0, 19).replace('T', ' ');
+			
+		}
+	}
 
 getTabdata();
 
 // 自动化生成的字典(可能为空)以及字段
-const formData = ref({
+const formData = ref({
+	入仓类型: "",
+	仓库编号: "",
+	仓库名称: "",
+	jjcp_num: "",
+	jjcp_gdbh: "",
+	jjcp_yjno: "",
+	订单编号: "",
+	jjcp_cpdh: "",
+	jjcp_cpmc: "",
+	成品编码: "",
+	成品名称: "",
+	客户料号: "",
+	jjcp_smb: "",
+	jjcp_sj: "",
+	jjcp_sl: "",
+	jjcp_dw: "",
+	订单数量: "",
+	jjcp_sls: "",
+	机型备注: "",
+	jjcp_desc: "",
+	
 })
-
+
+const initFormData = () => {
+	formData.value = {
+		入仓类型: "",
+		仓库编号: "",
+		仓库名称: "",
+		jjcp_num: "",
+		jjcp_gdbh: "",
+		jjcp_yjno: "",
+		订单编号: "",
+		jjcp_cpdh: "",
+		jjcp_cpmc: "",
+		成品编码: "",
+		成品名称: "",
+		客户料号: "",
+		jjcp_smb: "",
+		jjcp_sj: "",
+		jjcp_sl: "",
+		jjcp_dw: "",
+		订单数量: "",
+		jjcp_sls: "",
+		机型备注: "",
+		jjcp_desc: "",
+	}
+}
 // 验证规则
 const rule = reactive({
 })
@@ -614,12 +592,11 @@ function onSearch() {
 const ADD=ref('0')
 //新增
 function onAdd() {
-	 GetInfo(lastCellValue)
-	ADD.value='新增'
+	// GetInfo(lastCellValue)
+	initFormData()
+	formData.value.jjcp_sj = new Date(new Date().getTime() + 8 * 60 * 60 * 1000).toISOString().slice(0, 19).replace('T', ' ');
 	type.value='create'
-	console.log(ADD.value)
 	dialogFormVisible.value = true
-	// Productionadd()
 }
 //删除
 function onDel() {
@@ -684,7 +661,60 @@ const GetmachineLocate = async () => {
 	  total.value = response.data.total
     tableData.splice(0, tableData.length, ...processedData);
   }
+}
+
+//入仓类型回车事件
+const getRCsubmit = (event) => {
+	GetRC()
+}
+const RCVisible = ref(false)
+const RCselectData = reactive([])
+//获取仓库信息
+const GetRC = async () => {
+  const data = [{'入仓类型':'产品入库'},{'入仓类型':'委外入库'},{'入仓类型':'采购入库'}]
+  RCselectData.splice(0, RCselectData.length, ...data)
+  setRCCurrent(RCselectData[0])
+  RCVisible.value=true
 }
+//选择
+const RCSelectClick = (row, column, event) => {
+  const { 入仓类型 } = row
+  formData.value.入仓类型=入仓类型
+  RCVisible.value = false
+}
+const tableRC=ref()
+const setRCCurrent = (row) => {
+  setTimeout(()=>{
+	  tableRC.value?.setCurrentRow(row) 
+	  const { 入仓类型 } = row
+	  formData.value.入仓类型=入仓类型
+  })
+}
+const RCIndex = ref(0);
+const RCCurrent = ref(0);
+const selectRC = (event) => {
+    if (event.keyCode === 40) { // 向下箭头
+        if (RCIndex.value < RCselectData.length - 1) {
+            RCIndex.value++;
+            setRCCurrent(RCselectData[RCIndex.value]);
+        } else {
+            RCIndex.value = 0;
+            setRCCurrent(RCselectData[RCIndex.value]); // 到达最后一行时回到第一行			
+        }
+    } else if (event.keyCode === 38) { // 向上箭头
+        if (RCIndex.value > 0) {
+            RCIndex.value--;
+            setRCCurrent(RCselectData[RCIndex.value]);
+        } else {
+            RCIndex.value = RCselectData.length - 1;
+            setRCCurrent(RCselectData[RCIndex.value]); // 到达第一行时回到最后一行
+        }
+    } else if (event.keyCode === 13) { // 回车键
+        RCVisible.value = false
+    }
+}
+
+
 //仓库编号回车事件
 const getCKsubmit = (event) => {
 	GetCK()
@@ -694,7 +724,6 @@ const CKselectData = reactive([])
 //获取仓库信息
 const GetCK = async () => {
   const response = await finishedgetCk();
-  console.log(response) 
   if (response.code === 0) {
   CKselectData.splice(0, CKselectData.length, ...response.data)
   setCKCurrent(CKselectData[0])
@@ -742,16 +771,18 @@ const selectCK = (event) => {
 }
   
 //工单编号回车事件
-const getGDsubmit = (event) => {
+const getGDsubmit = (event) => {
+	if(formData.value.jjcp_gdbh==''){
+		ElMessage({type: 'warning',message: '请填写工单编号'});
+		return
+	}
 	GetGD()
 }
 const GDVisible = ref(false)
 const GDselectData = reactive([])
 //获取工单信息
 const GetGD = async () => {
-	console.log(formData.value.jjcp_gdbh)
   const response = await finishedgetGd({gdbh:formData.value.jjcp_gdbh});
-  console.log(response) 
   if (response.code === 0) {
   GDselectData.splice(0, GDselectData.length, ...response.data)
   setGDCurrent(GDselectData[0])
@@ -759,7 +790,8 @@ const GetGD = async () => {
   }
 }
 //选择
-const GDSelectClick = (row, column, event) => {
+const GDSelectClick = (row, column, event) => {
+	console.log(111)
   const { Gd_gdbh,yj_yjno,销售订单号,yj_Yjdh,yj_yjmc,成品代号,成品名称,客户料号,gdyj } = row
   formData.value.jjcp_gdbh=Gd_gdbh
   formData.value.jjcp_yjno=yj_yjno
@@ -768,14 +800,20 @@ const GDSelectClick = (row, column, event) => {
   formData.value.jjcp_cpmc=yj_yjmc
   formData.value.成品编码=成品代号
   formData.value.成品名称=成品名称
-  formData.value.客户料号=客户料号
+  formData.value.客户料号=客户料号
+  finishedgetGdsl({gdbh:formData.value.jjcp_gdbh,cpdh:formData.value.jjcp_cpdh}).then(res =>{
+	  if (res.code === 0) {
+		  formData.value.订单数量 = res.data.订单数量
+		  formData.value.jjcp_sls = res.data.jjcp_sls
+	   }
+  });
   GDVisible.value = false
 }
 const table3=ref()
 const setGDCurrent = (row) => {
   setTimeout(()=>{
 	  table3.value?.setCurrentRow(row) 
-	  
+	  console.log(222)
 	  const { Gd_gdbh,yj_yjno,销售订单号,yj_Yjdh,yj_yjmc,成品代号,成品名称,客户料号,gdyj } = row
 	  formData.value.jjcp_gdbh=Gd_gdbh
 	  formData.value.jjcp_yjno=yj_yjno
@@ -784,7 +822,13 @@ const setGDCurrent = (row) => {
 	  formData.value.jjcp_cpmc=yj_yjmc
 	  formData.value.成品编码=成品代号
 	  formData.value.成品名称=成品名称
-	  formData.value.客户料号=客户料号	  
+	  formData.value.客户料号=客户料号	
+		finishedgetGdsl({gdbh:formData.value.jjcp_gdbh,cpdh:formData.value.jjcp_cpdh}).then(res =>{
+			  if (res.code === 0) {
+				  formData.value.订单数量 = res.data.订单数量
+				  formData.value.jjcp_sls = res.data.jjcp_sls
+			   }
+		});
   })
 }
 const GDIndex = ref(0);
@@ -810,20 +854,75 @@ const selectGD = (event) => {
     }
 }
 
-//产品编号回车事件
+//获取订单资料
 const getSLsubmit = (event) => {
 	GetSL()
 }
 //获取工单数量信息
 const GetSL = async () => {
-	console.log(formData.value.jjcp_gdbh)
+	if(formData.value.jjcp_cpdh){
+		
+	}
   const response = await finishedgetGdsl({gdbh:formData.value.jjcp_gdbh,cpdh:formData.value.jjcp_cpdh});
   console.log(response) 
   if (response.code === 0) {
  formData.value.订单数量=response.data.订单数量
  formData.value.jjcp_sls=response.data.jjcp_sls
   }
+}
+
+//入仓类型回车事件
+const getSMBsubmit = (event) => {
+	GetSMB()
+}
+const SMBVisible = ref(false)
+const SMBselectData = reactive([])
+//获取仓库信息
+const GetSMB = async () => {
+  const data = [{'jjcp_smb':''},{'jjcp_smb':'首 板'},{'jjcp_smb':'末 板'},{'jjcp_smb':'首末板'}]
+  SMBselectData.splice(0, SMBselectData.length, ...data)
+  setSMBCurrent(SMBselectData[0])
+  SMBVisible.value=true
 }
+//选择
+const SMBSelectClick = (row, column, event) => {
+  const { jjcp_smb } = row
+  formData.value.jjcp_smb=jjcp_smb
+  SMBVisible.value = false
+}
+const tableSMB=ref()
+const setSMBCurrent = (row) => {
+  setTimeout(()=>{
+	  tableSMB.value?.setCurrentRow(row) 
+	  const { jjcp_smb } = row
+	  formData.value.jjcp_smb=jjcp_smb
+  })
+}
+const SMBIndex = ref(0);
+const SMBCurrent = ref(0);
+const selectSMB = (event) => {
+    if (event.keyCode === 40) { // 向下箭头
+        if (SMBIndex.value < SMBselectData.length - 1) {
+            SMBIndex.value++;
+            setSMBCurrent(SMBselectData[SMBIndex.value]);
+        } else {
+            SMBIndex.value = 0;
+            setSMBCurrent(SMBselectData[SMBIndex.value]); // 到达最后一行时回到第一行			
+        }
+    } else if (event.keyCode === 38) { // 向上箭头
+        if (SMBIndex.value > 0) {
+            SMBIndex.value--;
+            setSMBCurrent(SMBselectData[SMBIndex.value]);
+        } else {
+            SMBIndex.value = SMBselectData.length - 1;
+            setSMBCurrent(SMBselectData[SMBIndex.value]); // 到达第一行时回到最后一行
+        }
+    } else if (event.keyCode === 13) { // 回车键
+        SMBVisible.value = false
+    }
+}
+
+
 // ============== 表格控制部分结束 ===============
 
 // 获取需要的字典 可能为空 按需保留
@@ -916,105 +1015,92 @@ const closeDialog = () => {
   }
 }
 // 弹窗确定
-const enterDialog = async () => {
-  // elFormRef.value?.validate(async (valid) => {
-  //   if (!valid) return
-  //   let res
-  //   switch (type.value) {
-  //     case 'create':
-  //       res = await createCompany(formData.value)
-  //       break
-  //     case 'update':
-  //       res = await updateCompany(formData.value)
-  //       break
-  //     default:
-  //       res = await createCompany(formData.value)
-  //       break
-  //   }
-  //   if (res.code === 0) {
-  //     ElMessage({
-  //       type: 'success',
-  //       message: '创建/更改成功'
-  //     })
-  //     closeDialog()
-  //     getTableData()
-  //   }
-  // })
-  // dialogFormVisible.value=false
-  updateDetailData()
-}
-// 更新数据
-const updateDetailData = async() => {
-  const restoredData = {
-   UniqId: lastCellValue, 
-   Sys_id:sys_id,
-   入仓类型:formData.value.入仓类型,
-   仓库编号:formData.value.仓库编号,
-   仓库名称:formData.value.仓库名称,
-   jjcp_num:formData.value.jjcp_num,
-   jjcp_gdbh:formData.value.jjcp_gdbh,
-   jjcp_yjno:formData.value.jjcp_yjno,
-   订单编号:formData.value.订单编号,
-   jjcp_cpdh:formData.value.jjcp_cpdh,
-   jjcp_cpmc:formData.value.jjcp_cpmc,
-   成品编码:formData.value.成品编码,
-   成品名称:formData.value.成品名称,
-   客户料号:formData.value.客户料号,
-   jjcp_smb:formData.value.jjcp_smb,
-   jjcp_sj:formData.value.jjcp_sj,
-   jjcp_sl:formData.value.jjcp_sl,
-   jjcp_dw:formData.value.jjcp_dw,
-   机型备注:formData.value.机型备注,
-   jjcp_desc:formData.value.jjcp_desc,
-  }
-  if(ADD.value=='新增'){
-  	 // console.log('新增')
-  	 console.log('新增')
-  	 console.log(ADD.value)
-  	 console.log(restoredData)
-  	 const response = await finishedadd(restoredData);
-  	 // ADD.value='1'
-  	 // console.log(ADD.value)
-  	 // ADD.value='0'
-  	 console.log(response)
-	 if(response.code==0){
-	 		 ElMessage({
-	 		   type: 'success',
-	 		   message: '新增成功',
-	 		 })
-	 }
-	 dialogFormVisible.value = false
-	 getTableData()
-  	 
-  }else{
-  	  // const response = await productionedit(restoredData);
-  	  console.log('修改')
-  	  console.log(ADD.value)
-  	  // console.log(response)
-  	 // ADD.value='0'
-  	 // console.log(ADD.value)
-  }
- //   console.log(restoredData)
- //    console.log(lastCellValue)
- //    formData.value.UniqId=lastCellValue
- //    console.log(formData)
-	// restoredData.UniqId='5'
-  
-  // console.log(FormData)
-  // console.log(response)
+const enterDialog = async () => {
+	if(formData.value.入仓类型==''){
+		ElMessage({type: 'warning',message: '请选择入仓类型'});
+		return;
+	}
+	if(formData.value.仓库编号==''){
+		ElMessage({type: 'warning',message: '请选择仓库'});
+		return;
+	}
+	if(formData.value.jjcp_gdbh==''){
+		ElMessage({type: 'warning',message: '请填写工单编号'});
+		return;
+	}
+	if(formData.value.jjcp_cpdh==''){
+		ElMessage({type: 'warning',message: '请选择印件'});
+		return;
+	}
+	if(formData.value.jjcp_sl==''){
+		ElMessage({type: 'warning',message: '请填写入仓数量'});
+		return;
+	}
+	
+	const restoredData = {
+		 Sys_id:sys_id,
+		 入仓类型:formData.value.入仓类型,
+		 仓库编号:formData.value.仓库编号,
+		 仓库名称:formData.value.仓库名称,
+		 jjcp_num:formData.value.jjcp_num,
+		 jjcp_gdbh:formData.value.jjcp_gdbh,
+		 jjcp_yjno:formData.value.jjcp_yjno,
+		 订单编号:formData.value.订单编号,
+		 jjcp_cpdh:formData.value.jjcp_cpdh,
+		 jjcp_cpmc:formData.value.jjcp_cpmc,
+		 成品编码:formData.value.成品编码,
+		 成品名称:formData.value.成品名称,
+		 客户料号:formData.value.客户料号,
+		 jjcp_smb:formData.value.jjcp_smb,
+		 jjcp_sj:formData.value.jjcp_sj,
+		 jjcp_sl:formData.value.jjcp_sl,
+		 jjcp_dw:formData.value.jjcp_dw,
+		 机型备注:formData.value.机型备注,
+		 jjcp_desc:formData.value.jjcp_desc,
+	}
+	console.log(lastCellValue)
+    let res
+    switch (type.value) {
+      case 'create':
+        res = await finishedadd(restoredData)
+        break
+      case 'update':
+		restoredData.UniqId = lastCellValue;
+        res = await finishedEdit(restoredData)
+        break
+      default:
+        // res = await createCompany(formData.value)
+        break
+    }
+    if (res.code === 0) {
+      ElMessage({
+        type: 'success',
+        message: '创建/更改成功'
+      })
+      closeDialog()
+      getTableData()
+    }
+  dialogFormVisible.value=false
 }
+
 //键盘 input框跳转
 const ent = (event,id1,id2,id3) => {
 
   if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
-    if(id2=='仓库编号'&&event.keyCode === 13){
+    if(id2=='入仓类型'){
+    	getRCsubmit()
+    }
+	if(id2=='仓库编号'){
 		getCKsubmit()
-		// document.getElementById(id3).focus()
-	}if(id2=='工单编号'&&event.keyCode === 13){
+	}
+	if(id2=='工单编号'){
 		getGDsubmit()
-	}if(id2=='产品编号'&&event.keyCode === 13){
-		getSLsubmit()
-	}else if(id3!=''){
+	}
+	if(id2=='首末板'){
+		console.log(1111)
+		getSMBsubmit()
+	}
+	if(id3!=''){
       document.getElementById(id3).focus()
     }
   } else if (event.keyCode === 38) { // 向上箭头
@@ -1042,12 +1128,9 @@ let lastCellValue=ref()
 function doubleClick(row, column, event) {
   type.value = 'update';
 	  lastCellValue= row['UniqId'];
-	 console.log(lastCellValue)
 	table.value=lastCellValue
 	 dialogFormVisible.value = true
-  		// dialogSelectVisible.value = true
   GetInfo(table.value)
-  // dialogFormVisible.value = true
 }
 // 单击表格操作
 function Click(row, column, event) {
@@ -1058,7 +1141,6 @@ function Click(row, column, event) {
 //获取详细信息
 const GetInfo = async (value) => {
   const response = await finishedInfo({UniqId:value});
-  console.log(response) 
   if (response.code === 0) {
 	formData.value=response.data;
   }
@@ -1107,4 +1189,30 @@ onMounted(async () => {
   background: #ff80ff !important;
   /* 背景颜色 */
 }
+</style>
+<style scoped>
+:deep(.el-table td .cell) {
+  line-height: 20px !important;
+}
+:deep(.el-tabs__header){
+  margin-bottom: 0;
+}
+.search{
+  margin-left: 0px !important;
+  margin-right: 10px !important;
+}
+.bt{
+  margin-left: 5px !important;
+  padding: 5px !important;
+  font-size: 15px;
+}
+.el-tabs__header{
+  margin: 0px !important;
+}
+.gva-table-box{
+  padding: 0px !important;
+}
+.mab{
+  margin-bottom: 5px;
+}
 </style>

+ 28 - 7
src/view/yunyin/shengchanguanli/components/addGongYi.vue

@@ -190,6 +190,7 @@ const add_gyzlent = async (event,id1,id2,id3) => {
     console.log(response)
     form['开数'] = response.data['开数']
     form['联数'] = response.data['联数']
+	form['工序'] = response.data['工序号']
     if(yjList.value !== undefined){
       const node = yjList.value.find(item => item.no ===form['yjno'])
       if (! node) {
@@ -198,14 +199,14 @@ const add_gyzlent = async (event,id1,id2,id3) => {
       document.getElementById(id3).focus()
     }
   }
-  if (id2 === '车间名称' && event.key==='Tab') {
+  if (id2 === '车间名称' && event.key==='Enter' || id2 === '车间名称' && event.key==='Tab') {
     document.getElementById(id3).focus()
     cjdisplay.value = true
   }
   // if (id2 === '损耗系数' && event.key==='Tab') {
   //   document.getElementById(id3).focus()
   // }
-  if (id2 === '工序损耗' &&  event.key==='Tab') {
+  if (id2 === '工序损耗' &&  event.key==='Enter' || id2 === '工序损耗' &&  event.key==='Tab') {
     if(form['车间名称']){
       await getGxshList();
       _getSH()
@@ -311,15 +312,35 @@ const selectSHNode = (node,check) => {
 }
 
 
-const open = async (gdbh, gxlist) => {
-  Object.keys(form).forEach(key => {
-    form[key] = '';
-  });
+const open = async (gdbh, gxlist,_gdgyrow) => {
+	console.log(_gdgyrow.value)
+	if(_gdgyrow.value){
+		Object.assign(form,_gdgyrow.value);
+		form['yjno'] = _gdgyrow.value['印件号'];
+		form['工序'] = _gdgyrow.value['工序号'];
+		form['设备编号'] = []
+		//通过车间名称查询机台
+		const MachineList_jitai = await gdzl_MachineList({address:form['车间名称']});
+		gdzl_MachineList_address.value = MachineList_jitai.data;
+		const jitai = _gdgyrow.value['机台编号'].split(' ')
+		jitai.map(item => {
+		  MachineList_jitai.data.map(jt => {
+		    if (jt.indexOf(item) > -1 && item !== '') {
+		      form['设备编号'].push(item)
+		    }
+		  })
+		})
+	}else{
+		Object.keys(form).forEach(key => {
+		  form[key] = '';
+		});
+	}
+	
   visible.value = true
   id.value = gdbh
   const res = await PrintDetailList({workOrder: id.value})
   const apiData = await getDepartName()
-  console.log(apiData)
+  // console.log(apiData)
   function transformDataToTreeFormat(data) {
     return Object.entries(data).map(([key, value]) => {
       // key是车间名称,value是车间内的操作列表

+ 14 - 14
src/view/yunyin/shengchanguanli/gongdanshengchan.vue

@@ -257,7 +257,7 @@
                         @selection-change="handleSelectionChange" :show-overflow-tooltip="true">
 
                 <template v-for="item in tableFields[currentNode]">
-                  <el-table-column :align="item.align" :label="item.title"  :prop="item.prop" :width="item.width" :sortable="item.sortable"  />
+                  <el-table-column :align="item.align" :label="item.title" :fixed="item.fixed"   :prop="item.prop" :width="item.width" :sortable="item.sortable"  />
                 </template>
               </el-table>
               <!-- 分页 -->
@@ -332,7 +332,7 @@
                         :cell-class-name="pczc_planUsageCellClass"
                         style="width: 100%;height: 42vh" border tooltip-effect="dark" :data="bottomData" row-key="ID" @selection-change="handleSelectionChange">
                 <template v-for="item in bottomTableF[currentNode]">
-                  <el-table-column :align="item.align" :label="item.title"  :prop="item.prop" :width="item.width" :sortable="item.sortable" />
+                  <el-table-column :align="item.align" :label="item.title" :fixed="item.fixed"  :prop="item.prop" :width="item.width" :sortable="item.sortable" />
                 </template>
               </el-table>
             </div>
@@ -347,7 +347,7 @@
                 <!-- 排程列表-->
                 <el-table-column type="selection" width="30" />
                 <template v-for="item in [
-                  { align:'left', title: '工单编号', prop: '工单编号', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '工单编号', prop: '工单编号', width: 110  , sortable: 'sortable',fixed:'fixed',},
                   { align:'left', title: '销售订单号', prop: '销售订单号', width: 200  , sortable: 'sortable', },
                   { align:'left', title: '印件名称', prop: '印件名称', width: 320  , sortable: 'sortable', },
                   { align:'left', title: '印件工序及名称', prop: '印件工序及名称', width: 200  , sortable: 'sortable', },
@@ -365,7 +365,7 @@
                   { align:'left', title: '印件号', prop: 'yjno', width: 110  , sortable: 'sortable', },
                   { align:'left', title: '工序号', prop: 'gxh', width: 110  , sortable: 'sortable', },
               ]">
-                  <el-table-column :align="item.align" :label="item.title" :prop="item.prop" :width="item.width" :sortable="item.sortable" />
+                  <el-table-column :align="item.align" :label="item.title"  :fixed="item.fixed" :prop="item.prop" :width="item.width" :sortable="item.sortable" />
                 </template>
               </el-table>
               <!-- 制程列表-->
@@ -376,7 +376,7 @@
                         style="width: 100%;height: 49vh;margin-top: 10px" border tooltip-effect="dark" :data="chejianfuData" row-key="ID" @selection-change="ZP_handleChange">
                 <el-table-column type="selection" width="30" />
                 <template v-for="item in [
-                  { align:'left', title: '工单编号', prop: '工单编号', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '工单编号', prop: '工单编号', width: 110  , sortable: 'sortable',fixed:'fixed',},
                   { align:'left', title: '销售订单号', prop: '销售订单号', width: 200  , sortable: 'sortable', },
                   { align:'left', title: '印件名称', prop: '印件名称', width: 320  , sortable: 'sortable', },
                   { align:'left', title: '印件工序及名称', prop: '印件工序及名称', width: 200  , sortable: 'sortable', },
@@ -404,7 +404,7 @@
                   { align:'left', title: '印件号', prop: 'yjno', width: 110  , sortable: 'sortable', },
                   { align:'left', title: '工序号', prop: 'gxh', width: 110  , sortable: 'sortable', },
               ]">
-                  <el-table-column :align="item.align" :label="item.title" :prop="item.prop" :width="item.width" :sortable="item.sortable" />
+                  <el-table-column :align="item.align" :label="item.title" :fixed="item.fixed" :prop="item.prop" :width="item.width" :sortable="item.sortable" />
                 </template>
               </el-table>
             </div>
@@ -518,9 +518,9 @@ const tableFields = ref({
   ],
   "排程中": [
     // { title: '最早开工时间', prop: '最早开工时间', width: 120, align:'left', },
-    { title: '工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable', },
-    { title: '产品代号', prop: '产品代号', width: 110, align:'left',  sortable: 'sortable', },
-    { title: '产品名称', prop: '产品名称', width: 340, align:'left',  sortable: 'sortable', },
+    { title: '工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable',fixed:'fixed'},
+    { title: '产品代号', prop: '产品代号', width: 110, align:'left',  sortable: 'sortable',fixed:'fixed'},
+    { title: '产品名称', prop: '产品名称', width: 340, align:'left',  sortable: 'sortable',fixed:'fixed'},
     { title: '接单日期', prop: '接单日期', width: 110, align:'left',  sortable: 'sortable', },
     { title: '交货日期', prop: '交货日期', width: 110, align:'left',  sortable: 'sortable', },
     { title: '订单数量', prop: '订单数量', width: 110, align:'left',  sortable: 'sortable', },
@@ -535,9 +535,9 @@ const tableFields = ref({
   ],
   "制程中": [
     // { title: '最早开工时间', prop: '最早开工时间', width: 120, align:'left',  sortable: 'sortable', },
-    { title: '工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable', },
-    { title: '产品代号', prop: '产品代号', width: 110, align:'left',  sortable: 'sortable', },
-    { title: '产品名称', prop: '产品名称', width: 340, align:'left',  sortable: 'sortable', },
+    { title: '工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable',fixed:'fixed'},
+    { title: '产品代号', prop: '产品代号', width: 110, align:'left',  sortable: 'sortable',fixed:'fixed'},
+    { title: '产品名称', prop: '产品名称', width: 340, align:'left',  sortable: 'sortable',fixed:'fixed'},
     { title: '接单日期', prop: '接单日期', width: 110, align:'left',  sortable: 'sortable', },
     { title: '交货日期', prop: '交货日期', width: 110, align:'left',  sortable: 'sortable', },
     { title: '订单数量', prop: '订单数量', width: 110, align:'left',  sortable: 'sortable', },
@@ -569,7 +569,7 @@ const tableFields = ref({
 //排程中、制程中下方表格列表
 const bottomTableF = ref({
   "排程中": [
-    { title:'工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable', },
+    { title:'工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable',fixed:'fixed'},
     { title:'印件工序及名称', prop: '印件工序及名称', width: 160, align:'left',  sortable: 'sortable', },
     { title:'机组', prop: '机组', width: 120, align:'left',  sortable: 'sortable', },
     { title:'设备编号', prop: '设备编号', width: 120, align:'left',  sortable: 'sortable', },
@@ -590,7 +590,7 @@ const bottomTableF = ref({
     { title:'UNIQID', prop: 'UNIQID', width: 120, align:'left',  sortable: 'sortable', },
   ],
   "制程中": [
-    { title:'工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable', },
+    { title:'工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable',fixed:'fixed'},
     { title:'印件工序及名称', prop: '印件工序及名称', width: 160, align:'left',  sortable: 'sortable', },
     { title:'机组', prop: '机组', width: 120, align:'left',  sortable: 'sortable', },
     { title:'设备编号', prop: '设备编号', width: 120, align:'left',  sortable: 'sortable', },

+ 92 - 5
src/view/yunyin/shengchanguanli/gongdanziliao.vue

@@ -7,7 +7,8 @@
           <el-form ref="elSearchFormRef"  class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
             <el-form-item>
               <el-input v-model="searchInfo"  placeholder="搜索工单编号、产品代号" style="width: 180px;" @keyup.enter.native="handleSearch"></el-input>
-              <el-button type="primary" icon="search" @click="onSubmit" title="搜索"  ></el-button>
+              <el-button type="primary" icon="search" @click="onSubmit" title="搜索"  ></el-button>
+			  <el-button type="primary" title="设置工单的状态-->【计划中】 【生产中】 【已完成】" icon="edit" @click="onStatusClick" class="bt">工单状态设置</el-button>
 <!--              <el-button type="primary" icon="edit"   @click="ontlssclick"       class="bt" title="按工序投料反馈,试算某产量的投料">U8投料试算</el-button>-->
               <el-button type="primary" class="bt" icon="edit"  @click="jsfjClick">技术附件</el-button>
               <el-button type="primary" icon="edit"   @click="onyycpzlclick"     class="bt" title="重新引用 产品资料!">引用产品资料</el-button>
@@ -28,7 +29,31 @@
               <el-button type="primary" icon="edit"   @click="gdtb_onclick"   class="bt" title="工单资料同步" >工单同步</el-button>
             </el-form-item>
           </el-form>
-
+
+
+ <!-- 状态设置【弹窗】-->
+          <el-dialog v-model="onstatuslist" title="工单状态设置" width="30%" style="top: 15%">
+            <div style="width: 100%;height: 100%;">
+              <div style="width: 100%; display: flex; align-items: center;">
+                <el-form-item label="工单编号 :" prop="currentProcess">
+                  <el-input v-model="statusformData['gdbh']" placeholder="" />
+                </el-form-item>
+              </div>
+              <div style="width: 100%; display: flex; align-items: center; margin-top: 30px;">
+                <span>状态设置:</span>
+                <el-radio-group v-model="status" style="margin-left: 10px;">
+                  <el-radio label="计划中">计划中</el-radio>
+                  <el-radio label="生产中">生产中</el-radio>
+                  <el-radio label="已完工">已完工</el-radio>
+                </el-radio-group>
+              </div>
+              <div class="dialog-footer" style="text-align: right; margin-top: 40px;">
+                <el-button @click="handleCancel">取消</el-button>
+                <el-button type="primary"  @click="handleConfirm">确认</el-button>
+              </div>
+            </div>
+          </el-dialog>
+		  
           <!--U8投料试算-->
           <el-dialog v-model="tlsslist" title="U8投料试算" style="height: 100%;width: 100%;margin: 0;padding: 0">
             <el-button type="primary" icon="" disabled @click="ontlssclicks" class="bt">投料试算</el-button>
@@ -2366,6 +2391,12 @@ const add_gdzlyjent = async (event,id1,id2,id3,idx) => {
   if (id2 === 'yjdh' && event.key==='Tab' || id2 === 'yjdh' && event.key=== 'Enter') {
     _getProductYjList();
     searchModel.value = true
+  }
+  if(id2=='pztl' && event.key==='Tab' || id2 === 'pztl' && event.key=== 'Enter'){
+	  add_yjzlformdata.万小张 = add_yjzlformdata.pztl*add_yjzlformdata.ls/10000
+  }
+  if(id2=='ls' && event.key==='Tab' || id2 === 'ls' && event.key=== 'Enter'){
+  	  add_yjzlformdata.万小张 = add_yjzlformdata.pztl*add_yjzlformdata.ls/10000
   }
   if (id2 === 'zzdh' && event.key==='Tab' || id2 === 'zzdh' && event.key=== 'Enter') {
     _getProductZzList(add_yjzlformdata['zzdh'])
@@ -2441,7 +2472,7 @@ const addgdgy_onclick = () => {
     let gongxu = gytableData.value.map(item => {
       return item['印件-工序']
     })
-    addGongYiRef.value.open(_Gd_gdbh.value, gongxu)
+    addGongYiRef.value.open(_Gd_gdbh.value, gongxu,_gdgyrow)
   }
 }
 
@@ -2816,6 +2847,53 @@ const _U8Trial = async ()=>{
 }
 //U8投料试算【退出】
 const oncloneclick = () => {tlsslist.value = false;};
+
+
+//===========工单状态设置按钮=======
+const onstatuslist = ref(false);
+const statusformData = reactive({gdbh: '',});
+const status = ref('计划中'); // 默认选择
+const onStatusClick = () => {
+  if(_Gd_gdbh.value === null || _Gd_gdbh.value === ''){
+    onstatuslist.value = false;
+    ElMessage({
+      type: 'warning',
+      message: '请选择树形后,再操作此功能'
+    })
+  }else{
+    statusformData['gdbh'] = _Gd_gdbh.value;
+    onstatuslist.value = true;
+  }
+};
+//工单状态设置【放弃按钮】
+const handleCancel = () => {
+  onstatuslist.value = false;
+};
+//工单状态设置【执行按钮】
+const handleConfirm = async () => {
+  //工单编号
+  let workOrder = statusformData['gdbh'];
+  //状态
+  let statusCode;
+  if (status.value === '计划中') {
+    statusCode = "3-计划中";
+  } else if (status.value === '生产中') {
+    statusCode = "2-生产中";
+  }else if (status.value === '已完工') {
+    statusCode = "1-已完工";
+  }
+  const StatusEditdata = await StatusEdit({workOrder:workOrder,status:statusCode});
+  if (StatusEditdata.code === 0) {
+    ElMessage({type: 'success',message: '更新成功'})
+  } else {
+    ElMessage({type: 'error',message: '更新失败'})
+  }
+  onstatuslist.value = false;
+};
+
+
+
+
 
 // =========== 引用产品资料 ===========
 const yycpzlformData = reactive({
@@ -3459,6 +3537,12 @@ const edit_gdyjent = (event,id1,id2,id3,idx) => {
   if (id2 === '印件代号' && event.key==='Tab' || id2 === '印件代号' && event.key=== 'Enter') {
     edit_getProductYjList();
     edit_searchModel.value = true
+  }
+  if(id2=='平张投料' && event.key==='Tab' || id2 === '平张投料' && event.key=== 'Enter'){
+  	  gdyjformData.万小张 = gdyjformData.平张投料*gdyjformData.联数/10000
+  }
+  if(id2=='联数' && event.key==='Tab' || id2 === '联数' && event.key=== 'Enter'){
+  	  gdyjformData.万小张 = gdyjformData.平张投料*gdyjformData.联数/10000
   }
   if (id2 === '纸张代号' && event.key==='Tab' || id2 === '纸张代号' && event.key=== 'Enter') {
     edit_getProductZzList(gdyjformData['纸张代号'])
@@ -3693,9 +3777,12 @@ const _capacityList = async () => {
     gdgyformData['小时产能'] = editProductedit_machine.data;
   }
 
-};
+};
+const _gdgyrow = ref('')
 //截取印件前两位
-const clickybupdate2 = (row,column,event) => {
+const clickybupdate2 = (row,column,event) => {
+	// console.log(row)
+	_gdgyrow.value = row
   currentGy0_yjno.value = row['印件-工序'].substr(0, 2)
 }
 

+ 231 - 154
src/view/yunyin/shengchanguanli/shebeiyunxing.vue

@@ -165,12 +165,13 @@
           <div v-if="JTMCOn" class="gva-table-box" >
             <div class="gva-btn-list">
             </div>
-            <el-tabs v-model="activName" type="card" @tab-click="handleClick">
+            <el-tabs v-model="activName" type="card" @tab-click="duohandleClick">
 
                         <el-tab-pane label="设备作业清单"  @click="showTable('印件资料')"  name="first"  :class="{ 'active-tab': activeTab === 'first' }" >
                           <el-table ref="multipleTable"
                                     :show-overflow-tooltip="true"
-                                    highlight-current-row="true"
+                                    highlight-current-row="true"
+									:cell-class-name="sbzyqdsatusCellClass"
                                     :row-style="{ height: '20px' }"
                                     :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
                                     :header-cell-style="{ padding: '0px' }"
@@ -229,10 +230,10 @@
                                   style="width: 100%;height: 400px" border tooltip-effect="dark" :data="CLMXData" row-key="ID" @selection-change="dbclmxSelectionChange"
                                   >
                           <el-table-column type="selection" width="55" />
-                          <el-table-column align="left" sortable label="生产时段" prop="生产时间段"  width="180"/>
-                          <el-table-column align="left" sortable label="工单编号" prop="工单编号" width="85" />
-                          <el-table-column align="left" sortable label="产品名称" prop="产品名称" width="150" />
-                          <el-table-column align="left" sortable label="印件及工序" prop="印件及工序" width="320"/>
+                          <el-table-column fixed align="left" sortable label="生产时段" prop="生产时间段"  width="180"/>
+                          <el-table-column fixed align="left" sortable label="工单编号" prop="工单编号" width="90" />
+                          <el-table-column fixed align="left" sortable label="产品名称" prop="产品名称" width="150" />
+                          <el-table-column fixed align="left" sortable label="印件及工序" prop="印件及工序" width="320"/>
                           <el-table-column align="left" sortable label="标牌号" prop="标牌号"  width="80"/>
                           <el-table-column align="left" sortable label="产量" prop="产量" width="100"/>
                           <el-table-column align="left" sortable label="制程废品" prop="制程废品" width="100" />
@@ -957,83 +958,83 @@
 
 
 		<div v-if="dateOn" >
-					  <el-tabs v-model="activName" type="card" @tab-click="handleClick">
-					    <el-tab-pane label="当日上报产量"  @click="showTable('工艺资料')"  name="first">
-					      <el-table ref="multipleTable"
-					                :show-overflow-tooltip="true"
-									@selection-change="selectionChange($event)"
-					                :row-style="{ height: '20px' }"
-					                :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
-					                :header-cell-style="{ padding: '0px' }" @row-click="getUid"
-					                highlight-current-row="true" @row-dblclick="gytableDatadoubleClick"
-					                style="width: 100%;height: 70vh" border tooltip-effect="dark" :data="gytableData" row-key="ID" >
-					        <el-table-column type="selection" width="55" />
-					        <!-- <el-table-column align="left" label="选择" prop="工单编号"  width="100"/> -->
-					        <el-table-column align="left" label="产品名称" prop="产品名称"  width="200"/>
-					        <el-table-column align="left" label="工序" prop="工序"  width="100"/>
-					        <el-table-column align="left" label="备注" prop="备注"  width="100"/>
-					        <el-table-column align="left" label="产量" prop="产量"  width="70"/>
-					        <el-table-column align="left" label="千件工价" prop="千件工价"  width="85"/>
-					        <el-table-column align="left" label="日定额" prop="日定额"  width="85"/>
-					        <el-table-column align="left" label="补产标准" prop="补产标准"  width="85"/>
-					        <el-table-column align="left" label="难度系数" prop="难度系数"  width="85"/>
-					        <el-table-column align="left" label="印刷方式" prop="印刷方式"  width="85"/>
-					        <el-table-column align="left" label="组员1" prop="组员1" width="170" />
-					        <el-table-column align="left" label="组员2" prop="组员2" width="170" />
-					        <el-table-column align="left" label="组员3" prop="组员3" width="170" />
-					        <el-table-column align="left" label="组员4" prop="组员4" width="170" />
-					        <el-table-column align="left" label="组员5" prop="组员5" width="70" />
-					        <el-table-column align="left" label="组员6" prop="组员6" width="70" />
-					        <el-table-column align="left" label="组员7" prop="组员7" width="70" />
-					        <el-table-column align="left" label="组员8" prop="组员8" width="70" />
-					        <el-table-column align="left" label="组员9" prop="组员9" width="70" />
-					        <el-table-column align="left" label="组员10" prop="组员10" width="70" />
-                  <el-table-column align="left" label="制程废品" prop="制程废品" width="85" />
-                  <el-table-column align="left" label="制程次品" prop="制程次品" width="85" />
-                  <el-table-column align="left" label="前工序废" prop="前工序废" width="85" />
-                  <el-table-column align="left" label="来料异常" prop="来料异常"  width="85"/>
-                  <el-table-column align="left" label="装版工时" prop="装版工时" width="85" />
-                  <el-table-column align="left" label="保养工时" prop="保养工时" width="85" />
-                  <el-table-column align="left" label="打样工时" prop="打样工时" width="85"/>
-                  <el-table-column align="left" label="异常总工时" prop="异常总工时" width="85"/>
-                  <el-table-column align="left" label="异常补时" prop="异常补时" width="85"/>
-                  <el-table-column align="left" label="异常类型" prop="异常类型"  width="110"/>
-                  <el-table-column align="left" label="通电工时" prop="通电工时" width="85"/>
-                  <el-table-column align="left" label="码开始行" prop="码开始行" width="85" />
-                  <el-table-column align="left" label="码结束行" prop="码结束行" width="85" />
-                  <el-table-column align="left" label="码包" prop="码包" width="70" />
-                  <el-table-column align="left" label="主电表" prop="主电表"  width="70"/>
-                  <el-table-column align="left" label="辅电表" prop="辅电表" width="70" />
-                  <el-table-column align="left" label="色度数" prop="色度数" width="70" />
-                  <el-table-column align="left" label="用户" prop="用户" width="210" />
-                  <el-table-column align="left" label="更新时间" prop="更新时间" width="160" />
-					      </el-table>
-					    </el-tab-pane>
-
-					    <el-tab-pane label="当日制程检验记录"  @click="showTable('印件资料')"  name="second">
-					      <el-table ref="multipleTable"
-					                :row-style="{ height: '20px' }"
-					                :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
-					                :header-cell-style="{ padding: '0px' }"
-					                :show-overflow-tooltip="true"
-					                highlight-current-row="true"
-					                style="width: 100%;height: 70vh" border tooltip-effect="dark" :data="drzcDatas" row-key="ID" @selection-change="handleSelectionChange">
-					        <el-table-column type="selection" width="55" />
-					        <el-table-column align="left" label="工单编号" prop="工单编号"  width="85"/>
-					        <el-table-column align="left" label="印件号" prop="印件号" width="70" />
-					        <el-table-column align="left" label="工序名称" prop="工序名称" width="85" />
-					        <el-table-column align="left" label="检验项目" prop="检验项目" width="85"/>
-					  				 <el-table-column
-					  				    v-for="time in columnNames"
-					  				    :key="time"
-					  				    :label="time"
-					  				    :prop="time"
-					  				    align="center"
-					  				    width="80"
-					  				  ></el-table-column>
-					      </el-table>
-					    </el-tab-pane>
-					  </el-tabs>
+		  <el-tabs v-model="activName" type="card" @tab-click="handleClick">
+			<el-tab-pane label="当日上报产量"  @click="showTable('当日上报产量')"  name="first">
+			  <el-table ref="multipleTable"
+						:show-overflow-tooltip="true"
+						@selection-change="selectionChange($event)"
+						:row-style="{ height: '20px' }"
+						:cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+						:header-cell-style="{ padding: '0px' }" @row-click="getUid"
+						highlight-current-row="true" @row-dblclick="gytableDatadoubleClick"
+						style="width: 100%;height: 70vh" border tooltip-effect="dark" :data="gytableData" row-key="ID" >
+				<el-table-column type="selection" width="55" />
+				<!-- <el-table-column align="left" label="选择" prop="工单编号"  width="100"/> -->
+				<el-table-column fixed align="left" label="产品名称" prop="产品名称"  width="200"/>
+				<el-table-column fixed align="left" label="工序" prop="工序"  width="100"/>
+				<el-table-column fixed align="left" label="产量" prop="产量"  width="70"/>
+				<el-table-column align="left" label="千件工价" prop="千件工价"  width="85"/>
+				<el-table-column align="left" label="日定额" prop="日定额"  width="85"/>
+				<el-table-column align="left" label="补产标准" prop="补产标准"  width="85"/>
+				<el-table-column align="left" label="难度系数" prop="难度系数"  width="85"/>
+				<el-table-column align="left" label="印刷方式" prop="印刷方式"  width="85"/>
+				<el-table-column align="left" label="备注" prop="备注"  width="100"/>
+				<el-table-column align="left" label="组员1" prop="组员1" width="170" />
+				<el-table-column align="left" label="组员2" prop="组员2" width="170" />
+				<el-table-column align="left" label="组员3" prop="组员3" width="170" />
+				<el-table-column align="left" label="组员4" prop="组员4" width="170" />
+				<el-table-column align="left" label="组员5" prop="组员5" width="70" />
+				<el-table-column align="left" label="组员6" prop="组员6" width="70" />
+				<el-table-column align="left" label="组员7" prop="组员7" width="70" />
+				<el-table-column align="left" label="组员8" prop="组员8" width="70" />
+				<el-table-column align="left" label="组员9" prop="组员9" width="70" />
+				<el-table-column align="left" label="组员10" prop="组员10" width="70" />
+				<el-table-column align="left" label="制程废品" prop="制程废品" width="85" />
+				<el-table-column align="left" label="制程次品" prop="制程次品" width="85" />
+				<el-table-column align="left" label="前工序废" prop="前工序废" width="85" />
+				<el-table-column align="left" label="来料异常" prop="来料异常"  width="85"/>
+				<el-table-column align="left" label="装版工时" prop="装版工时" width="85" />
+				<el-table-column align="left" label="保养工时" prop="保养工时" width="85" />
+				<el-table-column align="left" label="打样工时" prop="打样工时" width="85"/>
+				<el-table-column align="left" label="异常总工时" prop="异常总工时" width="85"/>
+				<el-table-column align="left" label="异常补时" prop="异常补时" width="85"/>
+				<el-table-column align="left" label="异常类型" prop="异常类型"  width="110"/>
+				<el-table-column align="left" label="通电工时" prop="通电工时" width="85"/>
+				<el-table-column align="left" label="码开始行" prop="码开始行" width="85" />
+				<el-table-column align="left" label="码结束行" prop="码结束行" width="85" />
+				<el-table-column align="left" label="码包" prop="码包" width="70" />
+				<el-table-column align="left" label="主电表" prop="主电表"  width="70"/>
+				<el-table-column align="left" label="辅电表" prop="辅电表" width="70" />
+				<el-table-column align="left" label="色度数" prop="色度数" width="70" />
+				<el-table-column align="left" label="用户" prop="用户" width="210" />
+				<el-table-column align="left" label="更新时间" prop="更新时间" width="160" />
+			  </el-table>
+			</el-tab-pane>
+
+			<el-tab-pane label="当日制程检验记录"  @click="showTable('印件资料')"  name="second">
+			  <el-table ref="multipleTable"
+						:row-style="{ height: '20px' }"
+						:cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+						:header-cell-style="{ padding: '0px' }"
+						:show-overflow-tooltip="true"
+						highlight-current-row="true"
+						style="width: 100%;height: 70vh" border tooltip-effect="dark" :data="drzcDatas" row-key="ID" @selection-change="handleSelectionChange">
+				<el-table-column type="selection" width="55" />
+				<el-table-column align="left" label="工单编号" prop="工单编号"  width="85"/>
+				<el-table-column align="left" label="印件号" prop="印件号" width="70" />
+				<el-table-column align="left" label="工序名称" prop="工序名称" width="85" />
+				<el-table-column align="left" label="检验项目" prop="检验项目" width="85"/>
+						 <el-table-column
+							v-for="time in columnNames"
+							:key="time"
+							:label="time"
+							:prop="time"
+							align="center"
+							width="80"
+						  ></el-table-column>
+			  </el-table>
+			</el-tab-pane>
+		  </el-tabs>
 		</div>
 		<el-dialog v-model="complaintsShow" style="width: 1000px" lock-scroll :before-close="closecomplaintsShow" title="=客诉记录" destroy-on-close>
 		  <el-table ref="multipleTable"
@@ -1752,7 +1753,7 @@
             </el-form>
           </el-dialog>
 
-		<el-dialog v-model="hesuanVisible" :before-close="closehesuanVisible" title="核算参数调整" destroy-on-close width="20%" style="height: 50%;">
+		<el-dialog v-model="hesuanVisible" :before-close="closehesuanVisible" title="核算参数调整" destroy-on-close width="40%" style="height: 50%;">
 		  <div>
 		    <el-radio-group v-model="selected" @change="agreeChange" style="display: flex; flex-direction: column;">
 		      <div style="display: flex; align-items: center;">
@@ -1772,13 +1773,13 @@
 		  <div style="margin-left: 70px;">
 		    <el-col :span="15">
 		      <el-form-item label="缩放系数:" prop="flatFeed" class="mab" v-if="SFType === true">
-		        <el-input v-model="hesuanValue.缩放系数" id="辅电表" @keydown="ent1($event)" :clearable="true" style="width: 200px;" v-if="SFType === true"/>
+		        <el-input v-model="hesuanValue.缩放系数" id="辅电表" @keydown="ent1($event)"  style="width: 200px;" v-if="SFType === true"/>
 		      </el-form-item>
 		      <el-form-item label="产品板距:" prop="flatFeed" class="mab" v-if="CPType === true">
-		        <el-input v-model="hesuanValue.产品板距" id="辅电表" @keydown="ent1($event)" :clearable="true" style="width: 200px;" v-if="CPType === true"/>
+		        <el-input v-model="hesuanValue.产品板距" id="辅电表" @keydown="ent1($event)"  style="width: 200px;" v-if="CPType === true"/>
 		      </el-form-item>
 		      <el-form-item label="印刷方式:" prop="flatFeed" class="mab" v-if="CPType === true">
-				  <el-select v-model="hesuanValue.印刷方式" placeholder="" style="width: 190px;" :clearable="true" v-if="CPType === true"	>
+				  <el-select v-model="hesuanValue.印刷方式" placeholder="" style="width: 190px;"  v-if="CPType === true"	>
 				    <el-option label="卷对卷" value="卷对卷"></el-option>
 				    <el-option label="卷对张" value="卷对张"></el-option>
 				  </el-select>
@@ -2070,9 +2071,6 @@ const handleNodeClick = (nodeData,node) => {
 		showbutton.value=false
 		FacilityProduction()
 		FacilityWorklist()
-		// FacilityTeam(JTMC)
-		// console.log('123')
-		// console.log(JTMC)
 		DelType.value = false
 		AddType.value = false
       } else if (nodeData.level === 3) {
@@ -2090,9 +2088,6 @@ const handleNodeClick = (nodeData,node) => {
 		  FacilitychanLiang()
 		  DelType.value = true
 		  AddType.value = true
-		  // FacilityTeam(JTMC)
-		  // InspectionRecord()
-		  // FacilityDetail()
           console.log(node.label); // 第三级节点
 	   }
 }
@@ -2403,15 +2398,15 @@ let CJMC=ref()
 const FacilityWorklist = async () => {
   const response = await facilityWorklist({machine:JTMC});
   if (response.code === 0) {
-	console.log(response)
+	// console.log(response)
 	sbzyData.splice(0, sbzyData.length, ...response.data);
 	const res = await facilityProcedure({ Gd_gdbh: sbzyData[0]['工单编号|质量信息'].substring(0, 7) })
 	formData.value.productCode= response.data[0]['产品代号']
-	console.log(res)
+	// console.log(res)
 	if (res.code === 0) {
 	    selectData.value = res.data
 	}
-	console.log('22222222')
+	// console.log('33333')
 	FacilityTeam(JTMC)
   }
 }
@@ -2663,7 +2658,7 @@ const Selection_ids = ref('')
 const selectionChange = (selection) => {
 	const ids = selection.map(item => {
 	  return item.UniqId
-	})
+	})
     Selection_ids.value = ids.join(',')
 }
 //删除
@@ -3308,7 +3303,8 @@ const FacilityTeam = async (value) => {
   const response = await facilityTeam({ machine: value });
   if (response.code === 0) {
 	// formData.value.班组 = response.data[0]['班组号'];
-	BZMC.value=response.data[0]['班组号']
+	BZMC.value=response.data[0]['班组号']
+	
 	// if(response.data[0][2]){
 	// 	// console.log(response.data[0][2].split(' '));
 	// 	for (let i = 1; i <= 3; i++) {
@@ -3351,17 +3347,18 @@ const FacilityTeam = async (value) => {
 	// }
 
 	InspectionRecord()
-	FacilityDetail()
+	FacilityDetail()
+	
     // 清空 bzData 数组
     bzData.splice(0, bzData.length);
-
+	FPData.splice(0, FPData.length);
     // 遍历接口返回的数据,并给每个对象添加 JTMC 属性
     const updatedData = response.data.map(item => {
       return { ...item, JTMC: value }; // 添加 JTMC 属性
     });
 
     // 将更新后的数据添加到 bzData 数组
-    bzData.push(...updatedData);
+    bzData.push(...updatedData)
 	FPData.push(...updatedData)
 	return 1
   }
@@ -3650,7 +3647,9 @@ const selectBz = async() => {
       FacilityProduction()
     }
 		// currentBz.value={}
-	}
+	}
+	
+	detailShow.value = false;
 }
 const delBz = async() => {
 
@@ -3992,7 +3991,8 @@ const _Gd_gdbh=ref()
 function getUid(row, column, event) {
  console.log(row)
  uid.value=row['UniqId']
- _Gd_gdbh.value=row['工单编号']
+ _Gd_gdbh.value=row['工单编号']
+  _gdbhlist.value=row['工单编号']
  console.log("UniqId"+uid.value)
 }
 //获取详细信息
@@ -4543,18 +4543,24 @@ if(selected.value==='难度调整系数'){
 	SFType.value=false
 	CPType.value=false
  }
-}
+}
+
  //核算调整弹窗确定
- const hesuanenterDialog = async () => {
+ const hesuanenterDialog = async () => {
+	 console.log(selected.value)
+	 // console.log(multipleSelection.value)
  if(selected.value==='难度调整系数'){
-console.log(multipleSelection.value.length)
-	const id=ref('')
+	// console.log(multipleSelection.value.length)
+	// const Selection_ids=ref('')
 	// console.log(multipleSelection.value[0])
-	for(let i=0;i<multipleSelection.value.length;i++){
-		id.value+=multipleSelection.value[i].UniqId+','
-		console.log(multipleSelection.value[i].UniqId)
-	}
-	const res = await CoefficientEdit({id:id.value,工价系数:hesuanValue.缩放系数 })
+	// for(let i=0;i<multipleSelection.value.length;i++){
+	// 	id.value+=multipleSelection.value[i].UniqId+','
+	// 	console.log(multipleSelection.value[i].UniqId)
+	// }
+	console.log(Selection_ids.value)
+	console.log(hesuanValue.缩放系数)
+	// return false;
+	const res = await CoefficientEdit({id:Selection_ids.value,工价系数:hesuanValue.缩放系数 })
 	console.log(res)
 	if(res.code===0){
 		ElMessage({
@@ -4574,14 +4580,14 @@ console.log(multipleSelection.value.length)
 	}
  }else if(selected.value=== '凹印版距'){
 	 // console.log(hesuanValue.印刷方式)
-	 const id=ref('')
+	 // const Selection_ids=ref('')
 	 	  // console.log(multipleSelection.value.length)
 	 	  // console.log(multipleSelection.value[0])
-	 	  for(let i=0;i<multipleSelection.value.length;i++){
-	 	  	id.value+=multipleSelection.value[i].UniqId+','
-	 	  	console.log(multipleSelection.value[i].UniqId)
-	 	  }
-	 	  const res = await PrintingModeDataEdit({id:id.value,plate:hesuanValue.产品板距,mode:hesuanValue.印刷方式 })
+	 	  // for(let i=0;i<multipleSelection.value.length;i++){
+	 	  // 	id.value+=multipleSelection.value[i].UniqId+','
+	 	  // 	console.log(multipleSelection.value[i].UniqId)
+	 	  // }
+	 	  const res = await PrintingModeDataEdit({id:Selection_ids.value,plate:hesuanValue.产品板距,mode:hesuanValue.印刷方式 })
 	 	  console.log(res)
 	 	  if(res.code===0){
 	 	  	ElMessage({
@@ -4597,14 +4603,14 @@ console.log(multipleSelection.value.length)
 	 	  	})
 	 }
  }else if(selected.value=== '色度数'){
-	  const id=ref('')
+	  // const Selection_ids=ref('')
 	  // console.log(multipleSelection.value.length)
 	  // console.log(multipleSelection.value[0])
-	  for(let i=0;i<multipleSelection.value.length;i++){
-	  	id.value+=multipleSelection.value[i].UniqId+','
-	  	console.log(multipleSelection.value[i].UniqId)
-	  }
-	  const res = await ChromaDataEdit({id:id.value,ms:hesuanValue.色度数 })
+	  // for(let i=0;i<multipleSelection.value.length;i++){
+	  // 	id.value+=multipleSelection.value[i].UniqId+','
+	  // 	console.log(multipleSelection.value[i].UniqId)
+	  // }
+	  const res = await ChromaDataEdit({id:Selection_ids.value,ms:hesuanValue.色度数 })
 	  console.log(res)
 	  if(res.code===0){
 	  	ElMessage({
@@ -4620,7 +4626,14 @@ console.log(multipleSelection.value.length)
 	  	})
  }
  }
- }
+ }
+ 
+ // 核算参数调整取消
+ const hesuanVisiblecloseDialog = async () => {
+ 	 hesuanVisible.value = false
+ }
+ 
+ 
  const ent1 = (event) => {
    const inputs = document.getElementsByTagName('input');
    const currentIndex = Array.from(inputs).indexOf(event.target);
@@ -4772,17 +4785,17 @@ const xzhscsformData = reactive({
 const sxzhscstableData = ref([]);
 //修正核算参数按钮
 const onxzhscsclick = () => {
-	console.log(_Gd_gdbh.value)
-  // if(_Gd_gdbh.value == null){
-  //   xzhscslist.value = false;
-  //   ElMessage({type: 'warning',message: '请选择具体的工单后,再操作此功能' })
-  // }else{
-    // xzhscsformData['gdbh'] = _Gd_gdbh.value;
+	console.log(_gdbhlist.value)
+  if(_gdbhlist.value == null || _gdbhlist.value == ''){
+    xzhscslist.value = false;
+    ElMessage({type: 'warning',message: '请选择 设备作业清单工单后,再操作此功能' })
+  }else{
+    xzhscsformData['gdbh'] = _gdbhlist.value;
     // xzhscsformData['cpdh'] = _Gd_cpdh.value;
     // xzhscsformData['gdmc'] = _Gd_cpmc.value;
-    // _AccountingParameterdata();
+    _AccountingParameterdata();
     xzhscslist.value = true;
-  // }
+  }
 };
 //修正核算参数回车
 const xzhscsgetProductValue = () => {
@@ -4824,10 +4837,10 @@ const xzhscsConfirm = async () => {
     const firstChar = item["损耗代号"] ? item["损耗代号"].charAt(0) : '';
     return firstChar === '0' || firstChar === '';
   });
-  if(firstCharValid.includes(false)){
-    ElMessage({type: 'warning',message: '损耗代号开头必须是 0' })
-    return false;
-  }
+  // if(firstCharValid.includes(false)){
+  //   ElMessage({type: 'warning',message: '损耗代号开头必须是 0' })
+  //   return false;
+  // }
   if (sxzhscstableData.value) {
     const formattedData = sxzhscstableData.value.map(item => {
       return {
@@ -4947,10 +4960,11 @@ const updateCompanyFunc = async(row) => {
     }
 }
 const cpcode=ref('')
-const finishedcode=ref()
+const finishedcode=ref()
+const _gdbhlist = ref('')
 const yjupdateCompanyFunc = async(row) => {
-
-  console.log(row['工单编号|质量信息'].replace(/\|$/, ''))
+
+  console.log(row['工单编号|质量信息'].split('|')[0])
   const Procedurelist = await Procedure({ Gd_gdbh: row['工单编号|质量信息'].replace(/\|$/, '') })
   console.log(Procedurelist)
   selectData.value = Procedurelist.data;
@@ -4962,11 +4976,14 @@ const yjupdateCompanyFunc = async(row) => {
     //     selectData.value = res.data
     // }
 	console.log(row)
-	cpcode.value=row.产品代号
-    console.log(cpcode)
+	cpcode.value=row.产品代号
+	
+	_gdbhlist.value = row['工单编号|质量信息'].split('|')[0]
+	
+    console.log(_gdbhlist.value)
 	// console.log(row.产品代号)
 	finishedcode.value=row.产品代号
-	console.log(finishedcode.value)
+	// console.log(finishedcode.value)
 }
 
 // 删除行
@@ -5091,24 +5108,49 @@ const FacilityInspect = async () => {
 	  drzcDatas.value=drzcData
 	  console.log(drzcData);
   }
-}
+}
+// 当日上报产量数据
 const FacilitychanLiang = async () => {
-  const response = await facilitychanLiang({machine:JTMC,date:date});
+  const response = await facilitychanLiang({machine:JTMC,date:date});
+  console.log(response.data)
+  console.log(12)
   if(response.code==0){
 		let totalA = response.data['totalA']
 	  	let totalB = response.data['totalB']
+		let 制程废品A = response.data['制程废品A']
+		let 制程废品B = response.data['制程废品B']
+		let 制程次品A = response.data['制程次品A']
+		let 制程次品B = response.data['制程次品B']
+		let 来料异常A = response.data['来料异常A']
+		let 来料异常B = response.data['来料异常B']
+		let 装版工时A = response.data['装版工时A']
+		let 装版工时B = response.data['装版工时B']
+		
 	  	 delete response.data['totalA']
 	  	 delete response.data['totalB']
-	  	
+		 
+		 delete response.data['制程废品A']
+		 delete response.data['制程废品B']
+		 delete response.data['制程次品A']
+		 delete response.data['制程次品B']
+		 delete response.data['来料异常A']
+		 delete response.data['来料异常B']
+		 delete response.data['装版工时A']
+		 delete response.data['装版工时B']
+		 
 	  	gytableData.value=Object.values(response.data)
-	  	
+		
+		console.log(response.data)
+		
+		
+		
 	  	if(totalA){
 	  		let rowA = {
 	  			产品名称: 'A班产量:'+totalA,
 	  			UniqId: "",bzdh: "",cpmc: "",dedh: "",gxh: "",gxmc: "",num: "",sczl_bh98: "",sj1: "",sj2: "",yjno: "",
-	  			主电表: "",产量: "",保养工时: "",制程废品: "",制程次品: "",前工序废: "",千件工价: "",印刷方式: "",备注: "",
-	  			工单编号: "",工序: "",异常总工时: "",异常类型: "",异常补时: "",打样工时: "",日定额: "",更新时间: "",来料异常: "",用户: "",码包: "",
-	  			码开始行: "",码结束行: "",组员1: "",组员2: "",组员3: "",色度数: "",装版工时: "",辅电表: "",通电工时: "",难度系数: "",
+	  			主电表: "",产量: "",保养工时: "",制程废品: 制程废品A,制程次品:制程次品A,前工序废: "",千件工价: "",印刷方式: "",备注: "",
+	  			工单编号: "",工序: "",异常总工时: "",异常类型: "",异常补时: "",打样工时: "",日定额: "",更新时间: "",来料异常: 来料异常A,用户: "",码包: "",
+	  			码开始行: "",码结束行: "",组员1: "",组员2: "",组员3: "",色度数: "",装版工时: 装版工时A,辅电表: "",通电工时: "",难度系数: "",
 	  		}
 	  		gytableData.value.push(rowA)
 	  	}
@@ -5116,9 +5158,9 @@ const FacilitychanLiang = async () => {
 	  		let rowB = {
 	  			产品名称: 'B班产量:'+totalB,
 	  			UniqId: "",bzdh: "",cpmc: "",dedh: "",gxh: "",gxmc: "",num: "",sczl_bh98: "",sj1: "",sj2: "",yjno: "",
-	  			主电表: "",产量: "",保养工时: "",制程废品: "",制程次品: "",前工序废: "",千件工价: "",印刷方式: "",备注: "",
-	  			工单编号: "",工序: "",异常总工时: "",异常类型: "",异常补时: "",打样工时: "",日定额: "",更新时间: "",来料异常: "",用户: "",码包: "",
-	  			码开始行: "",码结束行: "",组员1: "",组员2: "",组员3: "",色度数: "",装版工时: "",辅电表: "",通电工时: "",难度系数: "",
+	  			主电表: "",产量: "",保养工时: "",制程废品: 制程废品B,制程次品: 制程次品B,前工序废: "",千件工价: "",印刷方式: "",备注: "",
+	  			工单编号: "",工序: "",异常总工时: "",异常类型: "",异常补时: "",打样工时: "",日定额: "",更新时间: "",来料异常: 来料异常B,用户: "",码包: "",
+	  			码开始行: "",码结束行: "",组员1: "",组员2: "",组员3: "",色度数: "",装版工时:装版工时B,辅电表: "",通电工时: "",难度系数: "",
 	  		}
 	  		gytableData.value.push(rowB)
 	  	}
@@ -5160,7 +5202,38 @@ const enterDialog = async () => {
                 getTableData()
               }
       })
-}
+}
+
+//点击label获取表格数据
+function duohandleClick(table) {
+  console.log(table.props.label)
+  console.log(JTMC)
+  if(table.props.label === '设备作业清单'){
+	  FacilityWorklist();
+  }
+  if(table.props.label === '班组人员及分配比例'){
+  	 FacilityTeam(JTMC)
+  }
+  // if(table.props.label=='当班产量明细'){
+	 //  FacilityDetail()
+	 //  zdtreeType.value=true
+  // }else{
+	 //  zdtreeType.value=false
+  // }
+  if(table.props.label === '检验记录'){
+  	  InspectionRecord()
+  }
+}
+
+
+
+//设备作业清单 正在生产中 背景颜色
+const sbzyqdsatusCellClass = ({row, column, rowIndex, columnIndex}) =>{
+  if (row.status === 1) {
+    return 'status-plan-usage-low';
+  }
+}
+
 
 </script>
 
@@ -5220,6 +5293,10 @@ const enterDialog = async () => {
 /*!* 选中某行时的背景色*/
 :deep(.el-table__body tr.current-row)>td {
   background: #ff80ff !important;
+}
+/* 设备作业清单 正在生产中 背景颜色 */
+:deep(.status-plan-usage-low ) {
+  background: yellow !important;
 }
   ::v-deep  .el-tabs--card > .el-tabs__header .el-tabs__item.is-active {
     color: white;        /* 文字颜色 */

+ 636 - 0
src/view/yunyin/shengchanguanli/shengchanjincheng.vue

@@ -0,0 +1,636 @@
+<template>
+  <div>
+    <layout>
+      <layout-header>
+        <div class="">
+          <!--          按钮部分-->
+          <el-form ref="elSearchFormRef"   class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
+            <el-form-item>
+              <el-input v-model="searchInfo" placeholder="搜索员工编号或员工姓名" clearable style="width: 200px;margin: 5px"></el-input>
+              <el-button type="primary" icon="search" @click="onSubmit" style="margin: 5px">查询</el-button>
+			  <!-- <el-button type="primary" icon="edit"   @click="gd_gxcltjonClick"  class="bt" title="工序产量核查">工序产量统计</el-button> -->
+			  <el-button type="primary" icon="edit"   @click="cp_gdprintonClick" class="bt" title="打印生产工单" >工单打印</el-button>
+			  <el-button type="primary" title="设置工单的状态-->【计划中】 【生产中】 【已完成】" icon="edit" @click="onStatusClick" class="bt">工单状态设置</el-button>
+			  <el-button type="primary" icon="edit"   @click="gd_gxclhconClick"  class="bt" title="工序产量核查">工序产量核查</el-button>
+            </el-form-item>
+          </el-form>
+		  
+		  <!-- 状态设置【弹窗】-->
+		   <el-dialog v-model="onstatuslist" title="工单状态设置" width="30%" style="top: 15%">
+			 <div style="width: 100%;height: 100%;">
+			   <div style="width: 100%; display: flex; align-items: center;">
+				 <el-form-item label="工单编号 :" prop="currentProcess">
+				   <el-input v-model="statusformData['gdbh']" placeholder="" />
+				 </el-form-item>
+			   </div>
+			   <div style="width: 100%; display: flex; align-items: center; margin-top: 30px;">
+				 <span>状态设置:</span>
+				 <el-radio-group v-model="status" style="margin-left: 10px;">
+				   <el-radio label="计划中">计划中</el-radio>
+				   <el-radio label="生产中">生产中</el-radio>
+				   <el-radio label="已完工">已完工</el-radio>
+				 </el-radio-group>
+			   </div>
+			   <div class="dialog-footer" style="text-align: right; margin-top: 40px;">
+				 <el-button @click="handleCancel">取消</el-button>
+				 <el-button type="primary"  @click="handleConfirm">确认</el-button>
+			   </div>
+			 </div>
+		   </el-dialog>
+
+         <!--工序产量核查【弹窗】-->
+          <el-dialog v-model="gd_gxclhclist" title="工序产量核查" style="width: 100%;height: 100%;margin: 0px;padding: 0px">
+            <el-button type="" @click="gxclhcCancel">退出</el-button>
+            <div style="width: 100%; height: 60px; padding: 0px; margin: 10px 0px 0px 0px; display: flex; align-items: center;">
+              <div style="width: 100%; height: 60px; padding: 0px;  display: flex; align-items: center;">
+                <el-form-item label="工单编号" prop="currentProcess" style="margin-right: 20px; padding: 0px">
+                  <el-input v-model="gxclhcformData['gdbh']"  @keyup.enter="gxclhcProductValue"  />
+                </el-form-item>
+              </div>
+            </div>
+            <el-table ref="paichengRef"
+                      :show-overflow-tooltip="true"
+                      :row-style="{ height: '0px' }"
+                      :cell-style="{ padding: '0px' }" :header-row-style="{ height: '0px' }"
+                      :header-cell-style="{ padding: '0px' }"
+                      style="width: 100%;height: 70vh" border tooltip-effect="dark"
+                      highlight-current-row="true"
+                      @row-click="gxclhc_tableRowClick"
+                      :data="gxclhc_Data" row-key="ID"
+                      :cell-class-name="gxclhcCellClass">
+              <template v-for="(item, idx) in gxclhc_Columns">
+                <el-table-column #default="{ row, column, $index }" align="left" :label="item.label" :width="item.width" >
+                  {{row[item.prop]}}
+                </el-table-column>
+              </template>
+            </el-table>
+          </el-dialog>
+
+        </div>
+      </layout-header>
+
+      <layout>
+        <!--    左侧树侧形结构-->
+        <layout-sider :resize-directions="['right']" :width="190" style="margin-right: 10px;">
+          <div class="JKWTree-tree" style="height: 200px">
+            <h3>生产进程查询</h3>
+            <el-tree :data="treeData"  :props="defaultProps" @node-click="handleNodeClick" @node-expand="handleNodeExpand">
+            </el-tree>
+          </div>
+        </layout-sider>
+
+        <!-- 右侧区域 -->
+        <layout-content >
+        <el-main>
+          <div class="gva-table-box">
+            <!-- 表格数据 -->
+            <el-table ref="multipleTable" style="width: 100%;height: 65vh" tooltip-effect="dark"
+                      :row-style="{ height: '25px' }"  :header-cell-style="{ padding: '0px' }"
+                      :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+                      :data="tableData"  border row-key="ID"
+                      size="small"
+					  :cell-class-name="gxbgCellClass"
+                      highlight-current-row="true" @row-dblclick="updateCompanyFunc"
+                      @row-click="tableRowClick" :show-overflow-tooltip="true"
+                      @selection-change="handleSelectionChange">
+             <el-table-column  sortable align="center" label="工单编号" prop="工单编号"  width="120" />
+             <el-table-column  sortable align="center" label="印件代号" prop="印件代号"  width="120" />
+			 <el-table-column  sortable align="center" label="印件名称" prop="印件名称"  width="200" />
+			 <el-table-column  sortable align="center" label="联数" prop="联数"  width="100" />
+			 <el-table-column  sortable align="center" label="投料大箱" prop="投料大箱"  width="100" />
+			 <el-table-column  sortable align="center" label="计划投料" prop="计划投料"  width="100" />
+			 <el-table-column  sortable align="center" label="工序1" prop="工序1"  width="200" />
+			 <el-table-column  sortable align="center" label="工序2" prop="工序2"  width="200" />
+			 <el-table-column  sortable align="center" label="工序3" prop="工序3"  width="200" />
+			 <el-table-column  sortable align="center" label="工序4" prop="工序4"  width="200" />
+			 <el-table-column  sortable align="center" label="工序5" prop="工序5"  width="200" />
+			 <el-table-column  sortable align="center" label="工序6" prop="工序6"  width="200" />
+			 <el-table-column  sortable align="center" label="工序7" prop="工序7"  width="200" />
+			 <el-table-column  sortable align="center" label="工序8" prop="工序8"  width="200" />
+			 <el-table-column  sortable align="center" label="工序9" prop="工序9"  width="200" />
+			 <el-table-column  sortable align="center" label="工序10" prop="工序10"  width="200" />
+			 <el-table-column  sortable align="center" label="工序11" prop="工序11"  width="200" />
+			 <el-table-column  sortable align="center" label="工序12" prop="工序12"  width="200" />
+			 <el-table-column  sortable align="center" label="工序13" prop="工序13"  width="200" />
+			 <el-table-column  sortable align="center" label="工序14" prop="工序14"  width="200" />
+			 <el-table-column  sortable align="center" label="工序15" prop="工序15"  width="200" />
+			 <el-table-column  sortable align="center" label="工序16" prop="工序16"  width="200" />
+			 <el-table-column  sortable align="center" label="工序17" prop="工序17"  width="200" />
+            </el-table>
+
+            <!-- 分页 -->
+            <div class="gva-pagination">
+              <el-pagination layout="total" :current-page="page" :page-size="pageSize"
+               :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
+<!--              <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="pageSize" :page-sizes="[10, 30, 50, 100]"-->
+<!--                             :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange" />-->
+            </div>
+          </div>
+
+        </el-main>
+      </layout-content>
+      </layout>
+    </layout>
+	<!-- 工单打印 -->
+	<PrintPage ref="printPageRef" />
+  </div>
+</template>
+<script setup>
+// 全量引入格式化工具 请按需保留
+import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
+
+import {ref, reactive} from 'vue'
+import {
+	jcgetTab,
+	workOrderDetail,
+	getOrderProcessCount
+	} from '@/api/yunyin/yunying'
+import PrintPage from './components/print.vue'
+import {ElMessage} from "element-plus";
+defineOptions({name: 'Company'})
+// =========== 获取左侧树侧形结构 ===========
+const treeData = ref({})
+const _department_code = ref(null)
+const getDepartmentdata = async () => {
+  try {
+	const response = await jcgetTab();
+	console.log("左侧菜单列表↓");
+	console.log(response);
+	const formattedData = [];
+	for (const category in response.data) {
+	  const categoryNode = {
+	    label: category, // 使用分类名称作为节点标签
+	    children: response.data[category].map(item => ({
+	      label: item, // 将客户信息格式化为节点标签
+	    }))
+	  };
+	  formattedData.push(categoryNode);
+	}
+	treeData.value = formattedData;
+  } catch (error) {
+    console.error(error)
+  }
+}
+getDepartmentdata();
+
+//点击左侧树形 获取右侧table列表
+const tableData = reactive([]);
+const _code = ref(null);  //左侧菜单编号
+const handleNodeClick = async (node) => {
+	if(node.label === '印刷工单'  || node.label === '糊盒工单'){return false;}
+	console.log(node.label.substring(0, 5));
+	_code.value = node.label.substring(0, 5);
+	searchInfo.value = '';  // 清空搜索信息
+	_workOrderDetailList();  // 执行获取员工列表的函数
+};
+
+//全局调用工单编号
+const _Gd_gdbh = ref(null)
+//全局调用印件代号
+const _Gd_cpdh = ref(null)
+const tableRowClick = async (row) => {
+  console.log(row.工单编号)
+  _Gd_gdbh.value = row.工单编号;
+  _Gd_yjdh.value = row.印件代号;
+};
+
+
+//===========工单状态设置按钮=======
+const onstatuslist = ref(false);
+const statusformData = reactive({gdbh: '',});
+const status = ref('计划中'); // 默认选择
+const onStatusClick = () => {
+  if(_Gd_gdbh.value === null || _Gd_gdbh.value === ''){
+    onstatuslist.value = false;
+    ElMessage({
+      type: 'warning',
+      message: '请选择树形后,再操作此功能'
+    })
+  }else{
+    statusformData['gdbh'] = _Gd_gdbh.value;
+    onstatuslist.value = true;
+  }
+};
+//工单状态设置【放弃按钮】
+const handleCancel = () => {
+  onstatuslist.value = false;
+};
+//工单状态设置【执行按钮】
+const handleConfirm = async () => {
+  //工单编号
+  let workOrder = statusformData['gdbh'];
+  //状态
+  let statusCode;
+  if (status.value === '计划中') {
+    statusCode = "3-计划中";
+  } else if (status.value === '生产中') {
+    statusCode = "2-生产中";
+  }else if (status.value === '已完工') {
+    statusCode = "1-已完工";
+  }
+  const StatusEditdata = await StatusEdit({workOrder:workOrder,status:statusCode});
+  if (StatusEditdata.code === 0) {
+    ElMessage({type: 'success',message: '更新成功'})
+  } else {
+    ElMessage({type: 'error',message: '更新失败'})
+  }
+  onstatuslist.value = false;
+};
+
+//=========工单打印===========
+const printPageRef = ref()
+const cp_gdprintonClick = () => {
+  printPageRef.value.open(_Gd_gdbh.value)
+}
+
+//=========工序产量核查===========
+const gd_gxclhclist = ref(false);
+const gxclhc_Data = ref([]);
+const gxclhc_Columns = ref(
+    [
+      { label: '印件及工序名称', prop: 'concatenatedData', width: '380' },
+      // { label: '印件', prop: 'Gy0_yjno', width: '130' },
+      // { label: '工序', prop: 'Gy0_gxh', width: '130' },
+      // { label: '名称', prop: 'Gy0_gxmc', width: '130' },
+      { label: '工序计划产量', prop: 'Gy0_计划接货数', width: '120' },
+      { label: '联数', prop: 'Gy0_ls', width: '70' },
+      { label: '折算车头产量', prop: '折算车头产量', width: '120' },
+      { label: '实际上报产量', prop: 'sczl_cl', width: '120' },
+      { label: '制程废品', prop: 'sczl_zcfp', width: '120' },
+      { label: '制程废品率', prop: '制程废品率', width: '120' },
+      { label: '来料异常', prop: '来料异常', width: '90' },
+      { label: '流程单数', prop: 'process_num', width: '90' },
+      { label: '当前设备', prop: 'Gy0_sbbh', width: '120' },
+      { label: '工序状态', prop: 'PD_WG', width: '90'},
+      { label: '首板生产日期', prop: 'sczl_rq', width: '160' },
+    ]
+)
+const gxclhcformData = reactive({
+  gdbh: '',
+  gdmc: '',
+});
+// 工序产量核查按钮
+const gd_gxclhconClick = async () => {
+  if(_Gd_gdbh.value === '' || _Gd_gdbh.value === null){
+    ElMessage({type: 'warning',message: '请选择具体的工单,在进行操作'})
+    return false;
+  }
+  gxclhcformData['gdbh'] = _Gd_gdbh.value;
+  gd_gxclhclist.value = true;
+  _getOrderProcessCount();
+};
+//工序产量核查回车
+const gxclhcProductValue = async () => {
+	console.log("工序产量核查回车")
+  _getOrderProcessCount();
+}
+//工序产量核查退出
+const gxclhcCancel = async () => {
+  gd_gxclhclist.value = false;
+};
+//工序产量核查方法接口
+const _getOrderProcessCount = async () => {
+  const order = gxclhcformData['gdbh'];
+  const getOrderProcessCount_list = await getOrderProcessCount({order:order});
+  const concatenatedData = getOrderProcessCount_list.data.map(item => {
+    // 优化后的代码,使用模板字符串连接字段值并在单个数字前添加零
+    const formattedYjno = item.Gy0_yjno.length === 1 ? `0${item.Gy0_yjno}` : item.Gy0_yjno;
+    const formattedGxh = item.Gy0_gxh.length === 1 ? `0${item.Gy0_gxh}` : item.Gy0_gxh;
+    const concatenatedValue = `${formattedYjno}-${formattedGxh} ${item.Gy0_gxmc} 【${item.Add_gxmc} 】`;
+    return {
+      ...item,
+      concatenatedData: concatenatedValue, // 使用新属性名
+    };
+  });
+  gxclhc_Data.value = concatenatedData;
+};
+
+//工序产量核查
+const gxclhcCellClass = ({row, column, rowIndex, columnIndex}) =>{
+  if (column.label === '实际上报产量' ||column.label === '制程废品'  || column.label === '制程废品率' ||
+      column.label === '来料异常' || column.label === '流程单数' || column.label === '当前设备') {
+    return 'lan-plan-usage-lows';
+  }
+  if (column.label === '折算车头产量') {
+    return 'gxclhc—color-column-red';
+  }
+  // 如果不是 'PD_WG' 列,返回空字符串或其他样式类
+  if (column.label === '工序状态'){
+    if(row['PD_WG'] === '完工'){
+      return 'lan-plan-usage-lowshui';
+    }else{
+      return 'pczccolor-column-lan';
+    }
+  }
+}
+// 表格数据
+const gxbgCellClass = ({row, column, rowIndex, columnIndex}) =>{
+	// console.log(row)
+ for (let i = 1; i <= 17; i++) {
+    const key = `工序${i}`;
+    if (row[key] && row[key].includes('完工') && columnIndex === i + 5) {
+      return 'hui-plan-usage-lows';
+    }
+  }
+  return 'lan-plan-usage-lows';  
+}
+
+
+// 搜索默认为空
+const searchInfo = ref('')
+//点击【查询】按钮
+const onSubmit = () => {
+  _department_code.value = '';
+  if(searchInfo.value === ''){
+    tableData.length = 0;
+  }else{
+	  _code.value = '';
+    _workOrderDetailList();
+  }
+};
+
+//获取员工信息列表
+const _workOrderDetailList = async ()=>{
+  let params = {}
+  params.search = searchInfo.value;
+  params.order = _code.value;
+  // params.limit = 200;
+  // params.page = 1;
+    try {
+    const workOrderDetaildata = await workOrderDetail(params);
+    console.log(workOrderDetaildata)
+    tableData.splice(0,tableData.length,...workOrderDetaildata.data);
+    total.value = WorkListdata.data.total;
+  } catch (error) {
+    console.error(error);
+  }
+}
+
+// 分页相关的响应式变量
+const page = ref(1)
+const total = ref(0)
+const pageSize = ref(10)
+// 分页
+const handleCurrentChange = (val) => {
+  page.value = val;
+  _getStaffList();
+};
+
+// 修改页面容量 点击多少条/页
+const handleSizeChange = (val) => {
+  page.value = 10;//默认显示
+  pageSize.value = val;
+  _getStaffList();
+};
+
+// 弹窗控制标记
+const dialogFormVisible = ref(false)
+//修改
+const formDataTest = ref({})
+
+
+
+
+
+
+</script>
+
+<style scoped>
+.form-container {
+  display: flex;
+  flex-wrap: wrap;
+}
+
+.form-column {
+  /*flex: 1;*/
+  margin-right: 15px; /* 调整列之间的间距 */
+}
+
+/* 左侧输入框宽度调整 */
+.form-column .el-form-item .el-input {
+  width: 150px; /* 调整左侧输入框的宽度 */
+}
+
+:deep(.hui-plan-usage-lows  div) {
+  color: #8c939d !important;
+}
+:deep(.lan-plan-usage-lows  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+
+
+
+/* :deep(.hui-plan-usage-lows.column-0  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-1  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-2  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-3  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-4  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-5  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-6  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-7  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-8  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-9  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-10  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-11  div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-12 div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-13 div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-14 div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-15 div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-16 div) {
+  color: #8c939d !important;
+}
+:deep(.hui-plan-usage-lows.column-17 div) {
+  color: #8c939d !important;
+}
+
+:deep(.lan-plan-usage-lows.column-0  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-1  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-2  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-3  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-4  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-5  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-6  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-7  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-8  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-9  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-10  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-11  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-12  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-13  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-14  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-15  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-16  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+:deep(.lan-plan-usage-lows.column-17  div) {
+  color: blue !important;
+  font-weight: bold;
+} */
+
+/* 媒体查询,根据需要调整断点 */
+@media screen and (max-width: 768px) {
+  .form-column {
+    flex: 1 0 100%; /* 在小屏幕下变成单列布局 */
+    margin-right: 0;
+  }
+}
+/*:deep(.el-table td .cell) {*/
+/*  line-height: 30px !important;*/
+/*}*/
+.JKWTree-container {
+  display: flex;
+}
+.JKWTree-tree {
+  /*width: 300px;*/
+  background-color: #fff;
+  padding: 10px;
+  margin-right: 20px;
+}
+.JKWTree-tree h3 {
+  font-size: 15px;
+  font-weight: 700;
+  margin: 10px 0;
+}
+.JKWTree-content {
+  flex: 1;
+}
+/* 图片上传 */
+.upload-box {
+  width: 200px;
+  height: 200px;
+  border: 2px dashed #e2e2e2;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  position: relative;
+  cursor: pointer;
+}
+.uploaded-image {
+  width: 100%;
+  height: 100%;
+  object-fit: cover;
+}
+.upload-icon {
+  font-size: 40px;
+  color: #c0c4cc;
+}
+.file-input {
+  display: none;
+}
+.el-table .warning-row {
+  background: oldlace;
+}
+
+/* 选中某行时的背景色 */
+:deep(.el-table__body tr.current-row) > td {
+  background: #ff80ff !important;
+}
+</style>
+<style scoped>
+:deep(.el-table td .cell) {
+  line-height: 20px !important;
+}
+:deep(.el-tabs__header){
+  margin-bottom: 0;
+}
+.search{
+  margin-left: 0px !important;
+  margin-right: 10px !important;
+}
+.bt{
+  margin-left: 2px !important;
+  padding: 3px !important;
+  font-size: 12px;
+}
+.el-tabs__header{
+  margin: 0px !important;
+}
+.gva-table-box{
+  padding: 0px !important;
+}
+.mab{
+  margin-bottom: 5px;
+}
+</style>