Lexie 1 éve
szülő
commit
2e734d014d

+ 14 - 0
src/api/jixiaoguanli/baogong.js

@@ -20,4 +20,18 @@ export const getMac = (data) => {
     method: 'get',
     data
   })
+}
+export const remodelGetTab = (data) => {
+  return service({
+    url: '/mes_server/facility/remodelGetTab',
+    method: 'get',
+    data
+  })
+}
+export const setMachineTeam = (data) => {
+  return service({
+    url:'/mes_server/Facility/setMachineTeam',
+    method: 'post',
+    data
+  })
 }

+ 9 - 0
src/api/mes_api_gty/timesheet.js

@@ -66,3 +66,12 @@ export const deleteData = (params) => {
     params
   })
 }
+
+// 查询员工名称
+export const getYg = (params) => {
+  return service({
+    url: '/mes_server/packaging_count_document/getYg',
+    method: 'get',
+    params
+  })
+}

+ 3 - 3
src/view/performance/07-otherDocuments/index.vue

@@ -129,7 +129,7 @@
                 label="工艺流程"
               >
                 <el-input
-                  v-model="detailData.jyGx"
+                  v-model="detailData.Sczl_gxmc"
                   style="width: 300px"
                   @keyup.enter="handleGylcEnter"
                 />
@@ -517,7 +517,7 @@ const handleGylcEnter = async() => {
 }
 
 const handleSelectGylc = (node, check) => {
-  detailData.jyGx = node['jyGx']
+  detailData.Sczl_gxmc = node['jyGx']
   detailData.sczl_gxh = node['Gy0_gxh']
   dialogGylc.value = false
 }
@@ -607,7 +607,7 @@ const updateDetailData = async() => {
     sczl_Type: detailData.sczl_Type,
     Sczl_rq: detailData.Sczl_rq,
     Sczl_gdbh: detailData.sczl_gdbh,
-    Sczl_gxmc: '',
+    Sczl_gxmc: detailData.Sczl_gxmc,
     sczl_gxh: detailData.sczl_gxh,
     Sczl_cl: detailData.Sczl_cl,
     Sczl_dedh: '',

+ 182 - 81
src/view/performance/08-timesheet/index.vue

@@ -1,6 +1,5 @@
 <template>
   <div>
-
     <layout>
       <layout-header>
         <!-- 按钮 -->
@@ -44,16 +43,17 @@
           <el-dialog
             v-model="dialogFormVisible"
             :before-close="closeDialog"
-            title="计件工计时单维护"
+            :title="type === 'add' ? '新增' : '修改'"
             destroy-on-close
             width="800px"
           >
             <!-- <el-scrollbar height="500px"> -->
             <el-form
+              id="detail-form"
               ref="elFormRef"
               :model="detailData"
               label-position="left"
-              :rules="rule"
+              @keyup="moveFocus"
             >
 
               <!-- 日期 -->
@@ -64,7 +64,6 @@
                 >
                   <el-input
                     v-model="detailData.wgjs_rq"
-                    :clearable="true"
                     style="width: 100px;"
                   />
                 </el-form-item>
@@ -97,32 +96,43 @@
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_bh1"
-                    :clearable="true"
+                    :formatter="val => val.toUpperCase()"
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.name1"
-                    :clearable="true"
+                    readonly
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_js1"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="12">
                   <el-input
                     v-model="detailData.wgjs_yy1"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="3">
-                  <el-input
+                  <!-- <el-input
                     v-model="detailData.wgjs_冲定额1"
-                    :clearable="true"
-                  />
+
+                  /> -->
+                  <el-select
+                    v-model="detailData.wgjs_冲定额1"
+                    placeholder=" "
+                  >
+                    <el-option
+                      label=""
+                      value=""
+                    />
+                    <el-option
+                      label="是"
+                      value="是"
+                    />
+                  </el-select>
                 </el-col>
               </el-row>
 
@@ -134,32 +144,39 @@
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_bh2"
-                    :clearable="true"
+                    :formatter="val => val.toUpperCase()"
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.name2"
-                    :clearable="true"
+                    readonly
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_js2"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="12">
                   <el-input
                     v-model="detailData.wgjs_yy2"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="3">
-                  <el-input
+                  <el-select
                     v-model="detailData.wgjs_冲定额2"
-                    :clearable="true"
-                  />
+                    placeholder=" "
+                  >
+                    <el-option
+                      label=""
+                      value=""
+                    />
+                    <el-option
+                      label="是"
+                      value="是"
+                    />
+                  </el-select>
                 </el-col>
               </el-row>
 
@@ -171,32 +188,39 @@
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_bh3"
-                    :clearable="true"
+                    :formatter="val => val.toUpperCase()"
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.name3"
-                    :clearable="true"
+                    readonly
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_js3"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="12">
                   <el-input
                     v-model="detailData.wgjs_yy3"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="3">
-                  <el-input
+                  <el-select
                     v-model="detailData.wgjs_冲定额3"
-                    :clearable="true"
-                  />
+                    placeholder=" "
+                  >
+                    <el-option
+                      label=""
+                      value=""
+                    />
+                    <el-option
+                      label="是"
+                      value="是"
+                    />
+                  </el-select>
                 </el-col>
               </el-row>
 
@@ -208,32 +232,39 @@
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_bh4"
-                    :clearable="true"
+                    :formatter="val => val.toUpperCase()"
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.name4"
-                    :clearable="true"
+                    readonly
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_js4"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="12">
                   <el-input
                     v-model="detailData.wgjs_yy4"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="3">
-                  <el-input
+                  <el-select
                     v-model="detailData.wgjs_冲定额4"
-                    :clearable="true"
-                  />
+                    placeholder=" "
+                  >
+                    <el-option
+                      label=""
+                      value=""
+                    />
+                    <el-option
+                      label="是"
+                      value="是"
+                    />
+                  </el-select>
                 </el-col>
               </el-row>
 
@@ -245,32 +276,39 @@
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_bh5"
-                    :clearable="true"
+                    :formatter="val => val.toUpperCase()"
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.name5"
-                    :clearable="true"
+                    readonly
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_js5"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="12">
                   <el-input
                     v-model="detailData.wgjs_yy5"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="3">
-                  <el-input
+                  <el-select
                     v-model="detailData.wgjs_冲定额5"
-                    :clearable="true"
-                  />
+                    placeholder=" "
+                  >
+                    <el-option
+                      label=""
+                      value=""
+                    />
+                    <el-option
+                      label="是"
+                      value="是"
+                    />
+                  </el-select>
                 </el-col>
               </el-row>
 
@@ -282,32 +320,39 @@
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_bh6"
-                    :clearable="true"
+                    :formatter="val => val.toUpperCase()"
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.name6"
-                    :clearable="true"
+                    readonly
                   />
                 </el-col>
                 <el-col :span="3">
                   <el-input
                     v-model="detailData.wgjs_js6"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="12">
                   <el-input
                     v-model="detailData.wgjs_yy6"
-                    :clearable="true"
                   />
                 </el-col>
                 <el-col :span="3">
-                  <el-input
+                  <el-select
                     v-model="detailData.wgjs_冲定额6"
-                    :clearable="true"
-                  />
+                    placeholder=" "
+                  >
+                    <el-option
+                      label=""
+                      value=""
+                    />
+                    <el-option
+                      label="是"
+                      value="是"
+                    />
+                  </el-select>
                 </el-col>
               </el-row>
 
@@ -352,7 +397,7 @@
         <layout-content>
           <!-- 数据展示 -->
           <el-table
-            ref="multipleTable"
+            ref="table"
             style="width: 100%"
             tooltip-effect="dark"
             :data="tableData"
@@ -365,8 +410,9 @@
             :header-row-style="{ height: '20px' }"
             :header-cell-style="{ padding: '0px' }"
             @selection-change="handleSelectionChange"
-            @row-dblclick="doubleClick"
+            @row-dblclick="handleShowDetail"
             @row-click="Click"
+            @current-change="(row, oldRow) => { currentRow = row}"
           >
             <el-table-column
               type="selection"
@@ -405,9 +451,9 @@
 <script setup>
 // 全量引入格式化工具 请按需保留
 import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
-import { ElMessage } from 'element-plus'
+import { ElMessage, dayjs } from 'element-plus'
 import { ref, reactive } from 'vue'
-import { getSide, getTable, getDetail, updateData, getLocate, createData } from '@/api/mes_api_gty/timesheet'
+import { getSide, getTable, getDetail, updateData, getLocate, createData, getYg } from '@/api/mes_api_gty/timesheet'
 
 defineOptions({
   name: '08Timesheet'
@@ -429,10 +475,6 @@ const getSideData = async() => {
 }
 getSideData()
 
-// 验证规则
-const rule = reactive({
-})
-
 const elFormRef = ref()
 // const elSearchFormRef = ref()
 
@@ -465,6 +507,7 @@ const tableColumns = [
   { prop: 'wgjs_js6', label: '计时6', width: 100 },
   { prop: 'wgjs_yy6', label: '原因6', width: 100 },
 ]
+const table = ref(null)
 const tableData = reactive([])
 const page = ref(1)
 const total = ref(0)
@@ -481,6 +524,7 @@ const getTableData = async(params) => {
   if (response.code === 0) {
     total.value = response.data.total
     tableData.splice(0, tableData.length, ...response.data.rows)
+    table.value?.setCurrentRow(tableData[0])
   }
 }
 
@@ -490,6 +534,7 @@ const getLocateData = async(params) => {
   if (res.code === 0) {
     total.value = res.data.total
     tableData.splice(0, tableData.length, ...res.data.rows)
+    table.value?.setCurrentRow(tableData[0])
   }
 }
 
@@ -535,15 +580,7 @@ const handleNodeClick = (node, check) => {
     handleCurrentChange()
   }
 }
-// 新增数据
-const handleShowAdd = async() => {
-  const res = await getDetail({ wgjs_rq: value1.value, wgjs_bh1: value2.value })
-  if (res.code === 0) {
-    type.value = 'add'
-    Object.assign(detailData, res.data)
-    dialogFormVisible.value = true
-  }
-}
+
 // 搜索
 function handleSearch() {
   params.search = searchInfo.value
@@ -554,37 +591,40 @@ function handleSearch() {
 
 // ============== 详情页面 ==============
 const detailData = reactive({})
+const currentRow = ref()
 
 // 行为控制标记(弹窗内部需要增还是改)
 const type = ref('')
 // 弹窗控制标记
 const dialogFormVisible = ref(false)
 
-// 双击表格操作
-async function doubleClick(row, column, event) {
+// 查改
+const handleShowDetail = async() => {
   type.value = 'update'
-  const { wgjs_rq, wgjs_bh1 } = row
+  const { wgjs_rq, wgjs_bh1 } = currentRow.value
   const res = await getDetail({ wgjs_rq, wgjs_bh1 })
   if (res.code === 0) {
     Object.assign(detailData, res.data)
-    dialogFormVisible.value = true
+    // dialogFormVisible.value = true
+    showDialog()
   }
 }
-const value1 = ref()
-const value2 = ref()
-// 单击表格操作
-async function Click(row, column, event) {
-  const { wgjs_rq, wgjs_bh1 } = row
-  value1.value = wgjs_rq
-  value2.value = wgjs_bh1
-  // console.log(wgjs_rq)
-  // console.log(wgjs_bh1)
-  // const res = await getDetail({ wgjs_rq, wgjs_bh1 })
-  // if (res.code === 0) {
-  //   Object.assign(detailData, res.data)
-  //   dialogFormVisible.value = true
-  // }
+
+// 新增数据
+const handleShowAdd = async() => {
+  const { wgjs_rq, wgjs_bh1 } = currentRow.value
+  const res = await getDetail({ wgjs_rq, wgjs_bh1 })
+  if (res.code === 0) {
+    type.value = 'add'
+    Object.assign(detailData, res.data)
+
+    detailData['wgjs_rq'] = dayjs().format('YYYY-MM-DD')
+
+    // dialogFormVisible.value = true
+    showDialog()
+  }
 }
+
 // 更新数据
 const enterDialog = async() => {
   if (type.value === 'update') {
@@ -664,11 +704,72 @@ const updateDetailData = async() => {
   }
 }
 
+// 开启弹窗
+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 = async(event) => {
+  console.log(event)
+  const index = Array.from(formElements).indexOf(event.target)
+  const key = event.key
+  event.preventDefault()
+
+  // 切换焦点
+  const focusNext = (step) => {
+    const nextIndex = (index + step + formElements.length) % formElements.length
+    formElements[nextIndex].focus()
+  }
+
+  switch (index) {
+    case 1:
+    case 6:
+    case 11:
+    case 16:
+    case 21:
+    case 26:
+      if (key === 'ArrowDown') {
+        formElements[index + 1].focus()
+      } else if (key === 'ArrowUp') {
+        formElements[index - 1].focus()
+      } else if (key === 'Enter') {
+        formElements[index + 1].focus()
+        const sczl_bh = formElements[index]?.value
+        if (sczl_bh === '') {
+          detailData[`name${(index - 1) / 5 + 1}`] = ''
+          break
+        }
+        const res = await getYg({ sczl_bh })
+        if (res.code === 0) {
+          const { data: { ygxm }} = res
+          detailData[`name${(index - 1) / 5 + 1}`] = ygxm
+        }
+      }
+      break
+
+    default:
+      if (key === 'ArrowDown') {
+        focusNext(1)
+      } else if (key === 'ArrowUp') {
+        focusNext(-1)
+      } else if (key === 'Enter') {
+        focusNext(1)
+      }
+      break
+  }
+}
+
 </script>
 
 <style scoped>

+ 57 - 56
src/view/performance/09-workOrderVerification/index.vue

@@ -210,7 +210,7 @@
                 <el-input
                   v-model="detailData.qczl_gxmc"
                   style="width: 200px;"
-				  @keyup.enter.native="getgxsubmit"
+                  @keyup.enter.native="getgxsubmit"
                 />
               </el-form-item>
               <el-form-item
@@ -321,7 +321,7 @@
                   >
                     <template #default="{ row }">
                       <el-input
-                        v-model="row.fp_gxmc"                       
+                        v-model="row.fp_gxmc"
                       />
                     </template>
                   </el-table-column>
@@ -342,7 +342,7 @@
                   >
                     <template #default="{ row }">
                       <el-input
-                        v-model="row.fp_bh"                       
+                        v-model="row.fp_bh"
                       />
                     </template>
                   </el-table-column>
@@ -415,39 +415,39 @@
               />
             </el-table>
           </el-dialog>
-		  
-		  <el-dialog
-		    v-model="GetjtbhVisible"
-		    title="选择"
-		    destroy-on-close
-		    width="600px"
-		  			>
-		    <el-table
-		      tooltip-effect="dark"
-		      :data="JTBHselectData"
-		      row-key="ID"
-		      highlight-current-row="true"
-		      border
-		      style="width:100%"
-		      @row-dblclick="JTBHSelectClick"
-		    >
-		      <el-table-column
-		        prop="gxh"
-		        label="工序号"
-		        width="70"
-		      />
-			  <el-table-column
-				prop="gxmc"
-				label="工序名称"
-				width="150"
-			  />
-			  <el-table-column
-				prop="addGxmc"
-				label="工序名称"
-				width="150"
-			  />
-		    </el-table>
-		  </el-dialog>
+
+          <el-dialog
+            v-model="GetjtbhVisible"
+            title="选择"
+            destroy-on-close
+            width="600px"
+          >
+            <el-table
+              tooltip-effect="dark"
+              :data="JTBHselectData"
+              row-key="ID"
+              highlight-current-row="true"
+              border
+              style="width:100%"
+              @row-dblclick="JTBHSelectClick"
+            >
+              <el-table-column
+                prop="gxh"
+                label="工序号"
+                width="70"
+              />
+              <el-table-column
+                prop="gxmc"
+                label="工序名称"
+                width="150"
+              />
+              <el-table-column
+                prop="addGxmc"
+                label="工序名称"
+                width="150"
+              />
+            </el-table>
+          </el-dialog>
 
           <!-- 废品日统计 -->
           <Meirihejiantongji
@@ -490,7 +490,7 @@ import {
 import { ElMessage } from 'element-plus'
 import { Search, Refresh, Download } from '@element-plus/icons-vue'
 import { ref, reactive } from 'vue'
-import { getSide, getTable, getOneWorkOrder, getOrderInfo, getGxAndLeader, getYjInfo,getWastInfo, updateData, add } from '@/api/mes_api_gty/workOrderVerification'
+import { getSide, getTable, getOneWorkOrder, getOrderInfo, getGxAndLeader, getYjInfo, getWastInfo, updateData, add } from '@/api/mes_api_gty/workOrderVerification'
 import Meirihejiantongji from '@/view/performance/09-workOrderVerification/componets/meirihejiantongji.vue'
 import Gongdanzhijianfeipintongji from '@/view/performance/09-workOrderVerification/componets/gongdanzhijianfeipintongji.vue'
 import Shebeizhuangtai from '@/view/performance/09-workOrderVerification/componets/shebeizhuangtai.vue'
@@ -569,39 +569,40 @@ const params = {
   page: page.value.toString(),
   limit: limit.value.toString(),
 }
-//获取工序
+// 获取工序
 const getgxsubmit = () => {
-	 GetJtbh()
+  GetJtbh()
 }
-const GetJtbh = async () => {
+const GetJtbh = async() => {
   try {
-    const response = await getYjInfo({ order: '2312185', yj_no: '1' });
+    const { qczl_gdbh, qczl_yjno } = detailData
+    const response = await getYjInfo({ order: qczl_gdbh, yj_no: qczl_yjno })
     if (response.code === 0) {
-      const data = response.data;
+      const data = response.data
       if (data) {
         const tableData = data.gx_data.map(item => ({
           gxh: item.Gy0_gxh,
-          gxmc: item.Gy0_gxmc+'-'+item.Add_gxmc,
+          gxmc: item.Gy0_gxmc + (item.Add_gxmc === '' ? '' : '-' + item.Add_gxmc),
           // addGxmc: item.Add_gxmc
-        }));
-        console.log(tableData);
-        JTBHselectData.splice(0, JTBHselectData.length, ...tableData);
-        GetjtbhVisible.value = true;
+        }))
+        console.log(tableData)
+        JTBHselectData.splice(0, JTBHselectData.length, ...tableData)
+        GetjtbhVisible.value = true
         // Now you can use the tableData to populate your table
       } else {
-        console.log('No data found');
+        console.log('No data found')
       }
     } else {
-      console.log('Error: ', response.msg);
+      console.log('Error: ', response.msg)
     }
   } catch (error) {
-    console.error('Error fetching data: ', error);
+    console.error('Error fetching data: ', error)
   }
-};
+}
 const JTBHSelectClick = (row, column, event) => {
   const { gxh, gxmc } = row
-  detailData.qczl_gxmc=gxh+'-'+gxmc
-  detailData.qczl_gxh=gxh
+  detailData.qczl_gxmc = gxh + '-' + gxmc
+  detailData.qczl_gxh = gxh
   GetjtbhVisible.value = false
 }
 // 批量删除控制标记
@@ -613,9 +614,9 @@ const getTableData = async() => {
   if (response.code === 0) {
     total.value = response.data.total
     // Object.assign(tableData, response.data.rows)
-	 
+
     tableData.splice(0, tableData.length, ...response.data.rows)
-	minUniqId.value= Math.min(...tableData.map(row => row.UniqId));
+    minUniqId.value = Math.min(...tableData.map(row => row.UniqId))
   }
 }
 
@@ -1010,7 +1011,7 @@ const handleShowAdd = async() => {
   type.value = '新增'
   // console.log()
   getDetailData(minUniqId.value)
-  
+
   // type.value='add'
   //    Object.assign(detailData);
   // dialogFormVisible.value = true

+ 1 - 1
src/view/performance/12-orderAccounting/index.vue

@@ -267,7 +267,7 @@ const tableCols1 = [
   { label: '实际投料', prop: '实际投料', width: '100' },
   { label: '计量单位', prop: '计量单位', width: '100' },
   { label: '入仓日期', prop: 'warehousing_date', width: '120' },
-  { label: '入仓数量', prop: '', width: '100' },
+  { label: '入仓数量', prop: 'warehousing_num', width: '100' },
   { label: '目标合格率', prop: 'target_rate', width: '100' },
   { label: '实际合格率', prop: 'real_rate', width: '100' },
   { label: '奖惩系数', prop: '', width: '100' },

+ 565 - 168
src/view/performance/Manualdocuments.vue

@@ -34,10 +34,8 @@
         <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-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" icon="plus" @click="onAdd">新增</el-button>
 			  <el-button type="primary" class="bt" icon="refresh"  @click="onRefresh">刷新质检系数</el-button>
@@ -46,7 +44,7 @@
               <div style="margin-left: auto;">
                 <el-button type="primary" :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"
               highlight-current-row="true" border @selection-change="handleSelectionChange"  @row-click="Click"
@@ -133,7 +131,7 @@
 			     </el-col>
 			     <el-col :span="6">
 			       <el-form-item label="检验类别" prop="name" class="mab">
-			         <el-input v-model="formData.sczl_检验类别"  id="检验类别"  @keydown="ent1($event, '定额代号', '检验类别', '废品率系数')" style="width: 150px;"/>
+			         <el-input v-model="formData.sczl_检验类别"  id="检验类别"  @keydown="ent1($event, '定额代号', '检验类别', '废品率系数')" @blur="getLbsubmit" style="width: 150px;"/>
 			       </el-form-item>
 			     </el-col>
 				 <el-col :span="6">
@@ -189,105 +187,43 @@
 				<span>每箱数量</span>
 			  </el-row>
 			  <el-row :gutter="24" style="margin-bottom: 5px; margin-left: 30px;">
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh1" id="bh1"  @keydown="ent1($event, '备注', 'bh1', 'name')"   @keyup.enter.native="getygsubmit($event, '1')"/>
-					<el-input style="width: 100px; margin-right: 5px;"  v-model="formData.sczl_bh1_name" id="name1"  @keydown="ent1($event, 'bh1', 'name', 'cl1')"/>
-					<el-input style="width: 100px; margin-right: 5px;"  v-model="formData.sczl_cl1" id="cl1"  @keydown="ent1($event, 'name', 'cl1', 'fp1')"   />
-					<el-input style="width: 100px; margin-right: 60px;"  v-model="formData.sczl_fp1" id="fp1"  @keydown="ent1($event, 'cl1', 'fp1', 'bh7')"   />
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh7" id="bh7"  @keydown="ent1($event, 'fp1', 'bh7', 'name7')" @keyup.enter.native="getygsubmit($event, '7')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_bh7_name" id="name7"  @keydown="ent1($event, 'bh7', 'name7', 'cl7')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_cl7" id="cl7"  @keydown="ent1($event, 'name7', 'cl7', 'fp7')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_fp7" id="fp7"  @keydown="ent1($event, 'cl7', 'fp7', 'bh2')"   />
+
+					<div style="width: 450px;margin-right: 30px;">
+					  <div v-for="index in 6" :key="index">
+					    <el-input style="width: 100px; margin-right: 5px;" v-model="formData['sczl_bh' + index]" :id="'bh' + index" @keydown="ent($event, index.toString())" />
+					    <el-input style="width: 100px; margin-right: 5px; color: red;" :readonly="true" :value="formData['sczl_bh' + index + '_name']" :id="'name' + index" @keydown="ent1($event)"/>
+					    <el-input style="width: 100px; margin-right: 5px;" v-model="formData['sczl_cl' + index]" :id="'cl' + index" @keydown="ent1($event)"/>
+					    <el-input style="width: 100px;" v-model="formData['sczl_fp' + index]" :id="'fp' + index" @keydown="ent1($event)"/>
+					  </div>
+					</div>
+					<div style="width: 450px;">
+					  <div v-for="index in 6" :key="index + 6">
+					    <el-input style="width: 100px; margin-right: 5px;" v-model="formData['sczl_bh' + (index + 6)]" :id="'bh' + (index + 6)" @keydown="ent($event, (index + 6).toString())" />
+					    <el-input style="width: 100px; margin-right: 5px; color: red;" :readonly="true" :value="formData['sczl_bh' + (index + 6) + '_name']" :id="'name' + (index + 6)" @keydown="ent1($event)"/>
+					    <el-input style="width: 100px; margin-right: 5px;" :value="formData['sczl_cl' + (index + 6)]" :id="'cl' + (index + 6)" @keydown="ent1($event)"/>
+					    <el-input style="width: 100px;" :value="formData['sczl_fp' + (index + 6)]" :id="'fp' + (index + 6)" @keydown="ent1($event)"/>
+					  </div>
+					</div>
 			  </el-row>	
-			  <el-row :gutter="24" style="margin-bottom: 5px; margin-left: 30px;">
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh2" id="bh2"  @keydown="ent1($event, 'fp7', 'bh2', 'name2')" @keyup.enter.native="getygsubmit($event, '2')"   />
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh2_name" id="name2"  @keydown="ent1($event, 'bh2', 'name2', 'cl2')"   />
-					<el-input style="width: 100px; margin-right: 5px;"  v-model="formData.sczl_cl2" id="cl2"  @keydown="ent1($event, 'name2', 'cl2', 'fp2')"   />
-					<el-input style="width: 100px; margin-right: 60px;"  v-model="formData.sczl_fp2" id="fp2"  @keydown="ent1($event, 'cl2', 'fp2', 'bh8')"   />
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh8" id="bh8"  @keydown="ent1($event, 'fp2', 'bh8', 'name8')" @keyup.enter.native="getygsubmit($event, '8')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_bh8_name" id="name8"  @keydown="ent1($event, 'bh8', 'name8', 'cl8')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_cl8" id="cl8"  @keydown="ent1($event, 'name8', 'cl8', 'fp8')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_fp8" id="fp8"  @keydown="ent1($event, 'cl8', 'fp8', 'bh3')"   />
-			   </el-row>
-				<el-row :gutter="24" style="margin-bottom: 5px; margin-left: 30px;">
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh3" id="bh3"  @keydown="ent1($event, 'fp8', 'bh3', 'name3')" @keyup.enter.native="getygsubmit($event, '3')"   />
-					<el-input style="width: 100px; margin-right: 5px;"  v-model="formData.sczl_bh3_name" id="name3"  @keydown="ent1($event, 'bh3', 'name3', 'cl3')"   />
-					<el-input style="width: 100px; margin-right: 5px;"  v-model="formData.sczl_cl3" id="cl3"  @keydown="ent1($event, 'name3', 'cl3', 'fp3')"   />
-					<el-input style="width: 100px; margin-right: 60px;"  v-model="formData.sczl_fp3" id="fp3"  @keydown="ent1($event, 'cl3', 'fp3', 'bh9')"   />
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh9" id="bh9"  @keydown="ent1($event, 'fp3', 'bh9', 'name9')" @keyup.enter.native="getygsubmit($event, '9')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_bh9_name" id="name9"  @keydown="ent1($event, 'bh9', 'name9', 'cl9')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_cl9" id="cl9"  @keydown="ent1($event, 'name9', 'cl9', 'fp9')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_fp9" id="fp9"  @keydown="ent1($event, 'cl9', 'fp9', 'bh4')"   />
-				</el-row>
-				<el-row :gutter="24" style="margin-bottom: 5px; margin-left: 30px;">
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh4" id="bh4"  @keydown="ent1($event, 'fp9', 'bh4', 'name4')" @keyup.enter.native="getygsubmit($event, '4')"   />
-					<el-input style="width: 100px; margin-right: 5px;"  v-model="formData.sczl_bh4_name" id="name4"  @keydown="ent1($event, 'bh4', 'name4', 'cl4')"   />
-					<el-input style="width: 100px; margin-right: 5px;"  v-model="formData.sczl_cl4" id="cl4"  @keydown="ent1($event, 'name4', 'cl4', 'fp4')"   />
-					<el-input style="width: 100px; margin-right: 60px;"  v-model="formData.sczl_fp4" id="fp4"  @keydown="ent1($event, 'cl4', 'fp4', 'bh10')"   />
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh10" id="bh10"  @keydown="ent1($event, 'fp4', 'bh10', 'name10')" @keyup.enter.native="getygsubmit($event, '10')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_bh10_name" id="name10"  @keydown="ent1($event, 'bh10', 'name10', 'cl10')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_cl10" id="cl10"  @keydown="ent1($event, 'name10', 'cl10', 'fp10')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_fp10" id="fp10"  @keydown="ent1($event, 'cl10', 'fp10', 'bh5')"   />
-				</el-row>
-				<el-row :gutter="24" style="margin-bottom: 5px; margin-left: 30px;">
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh5" id="bh5"  @keydown="ent1($event, 'fp10', 'bh5', 'name5')" @keyup.enter.native="getygsubmit($event, '5')"   />
-					<el-input style="width: 100px; margin-right: 5px;"  v-model="formData.sczl_bh5_name" id="name5"  @keydown="ent1($event, 'bh5', 'name5', 'cl5')"    />
-					<el-input style="width: 100px; margin-right: 5px;"  v-model="formData.sczl_cl5" id="cl5"  @keydown="ent1($event, 'name5', 'cl5', 'fp5')"   />
-					<el-input style="width: 100px; margin-right: 60px;"  v-model="formData.sczl_fp5" id="fp5"  @keydown="ent1($event, 'cl5', 'fp5', 'bh11')"   />
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh11" id="bh11"  @keydown="ent1($event, 'fp5', 'bh11', 'name11')" @keyup.enter.native="getygsubmit($event, '11')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_bh11_name" id="name11"  @keydown="ent1($event, 'bh11', 'name11', 'cl11')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_cl11" id="cl11"  @keydown="ent1($event, 'name11', 'cl11', 'fp11')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_fp11" id="fp11"  @keydown="ent1($event, 'cl11', 'fp11', 'bh6')"   />
-				</el-row>
-				<el-row :gutter="24" style="margin-bottom: 5px; margin-left: 30px;">
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh6" id="bh6"  @keydown="ent1($event, 'fp11', 'bh6', 'name6')" @keyup.enter.native="getygsubmit($event, '6')"   />
-				    <el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_bh6_name" id="name6"  @keydown="ent1($event, 'bh6', 'name6', 'cl6')"   />
-				    <el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_cl6" id="cl6"  @keydown="ent1($event, 'name6', 'cl6', 'fp6')"   />
-				    <el-input style="width: 100px; margin-right: 60px;" :readonly=true v-model="formData.sczl_fp6" id="fp6"  @keydown="ent1($event, 'cl6', 'fp6', 'bh12')"   />
-					<el-input style="width: 100px; margin-right: 5px;" v-model="formData.sczl_bh12" id="bh12"  @keydown="ent1($event, 'fp6', 'bh12', 'name12')" @keyup.enter.native="getygsubmit($event, '12')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_bh12_name" id="name12"  @keydown="ent1($event, 'bh12', 'name12', 'cl12')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_cl12" id="cl12"  @keydown="ent1($event, 'name12', 'cl12', 'fp12')"   />
-					<el-input style="width: 100px; margin-right: 5px;" :readonly=true v-model="formData.sczl_fp12" id="fp12"  @keydown="ent1($event, 'cl12', 'fp12', '其他备注')"   />
-				</el-row>
-				<el-row :gutter="24">
+			  <el-row :gutter="24">
+
 				   <el-col :span="24">
 					 <el-form-item label="其他备注" prop="id" class="mab">
-					   <el-input type="textarea" rows="2" cols="50" v-model="formData.sczl_desc" id="其他备注"  @keydown="ent1($event, 'fp12', '其他备注', '日期')"   />
+					   <el-input v-model="formData.sczl_desc" id="其他备注"  @keydown="ent1($event, 'fp12', '其他备注', '日期')"   />
 					 </el-form-item>
 				   </el-col>			  				
 				 </el-row>
 			
             </el-form>
 			
-			<el-dialog
-			  v-model="dialogSelectVisible"
-			  title="选择"
-			  destroy-on-close
-			  width="600px"
-						>
-			  <el-table
-			    tooltip-effect="dark"
-			    :data="selectData"
-			    row-key="ID"
-			    highlight-current-row="true"
-			    border
-			    style="width:100%"
-			    @row-dblclick="handleSelectClick"
-			  >
-			    <el-table-column
-			      prop="Gd_cpmc"
-			      label="印件名称"
-			      width="340"
-			    />
-						  <el-table-column
-						    prop="jyGx"
-						    label="检验工序"
-						    width="150"
-						  />
-			    <el-table-column
-			      prop="Gy0_gxmc"
-			      label="工序名称"
-			      width="150"
-			    />			 
+			<el-dialog v-model="dialogSelectVisible" title="选择"
+			  destroy-on-close width="800px" >
+			  <el-table tooltip-effect="dark" :data="selectData" row-key="ID"
+			    highlight-current-row="true" border style="width:100%"
+			    @row-dblclick="handleSelectClick" >
+			    <el-table-column prop="Gd_cpmc" label="印件名称" width="450" />
+				<el-table-column prop="jyGx" label="检验工序" width="85" />
+			    <el-table-column prop="Gy0_gxmc" label="工序名称" width="225" />			 
 			  </el-table>
 			</el-dialog>
 
@@ -321,6 +257,16 @@
 		      <el-table-column prop="sczl_bzdh" label="班组" width="150" />			        	 
 		    </el-table>
 		  </el-dialog>
+		  
+		  <el-dialog v-model="LbVisible" title="选择" destroy-on-close width="200px" >
+		    <el-table tooltip-effect="dark" :data="selectDataLb" row-key="ID"
+		      highlight-current-row="true" border style="width:100%"
+		      :row-style="{ height: '30px' }"
+			  @row-dblclick="SelectClickLb"
+		    >
+		      <el-table-column prop="sczl_检验类别" label="可选名称" width="150" />			        	 
+		    </el-table>
+		  </el-dialog>
 		  
         </el-main>
       </el-container>
@@ -606,7 +552,6 @@ const getTableData = async() => {
     page: page.value.toString(), limit: limit.value.toString(),	
   })
   if (response.code === 0) {
-	  console.log(response)
     const processedData = response.data.data.map(item => {
       return {
         ...item,
@@ -615,7 +560,6 @@ const getTableData = async() => {
       };
     });
     tableData.splice(0, tableData.length, ...processedData);
-	console.log(tableData)
   }
 }
 
@@ -636,7 +580,6 @@ const GetLocate = async () => {
     gdbh: params.gdbh,
     page: page.value.toString(), limit: limit.value.toString(),
   })
-  console.log(response)
   if (response.code === 0) {
     const processedData = response.data.rows.map(item => {
       return {
@@ -660,7 +603,6 @@ function onSearch() {
 //获取详细信息
 const GetInfo = async (value) => {
   const response = await shougonggetInfo({UniqId:value});
-  console.log(response) 
   if (response.code === 0) {
 	formData.value=response.data;
   }
@@ -670,7 +612,16 @@ const GetInfo = async (value) => {
 const ent1 = (event) => {
   const inputs = document.getElementsByTagName('input');
   const currentIndex = Array.from(inputs).indexOf(event.target);
-  if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
+  if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
+	  if(event.target.id=='其他备注'){
+		  ElMessageBox.confirm('数据存盘?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				  }).then(() => {
+					enterDialog()
+				})
+	  }
     for (let i = currentIndex + 1; i < inputs.length; i++) {
       if (!inputs[i].readOnly) {
 		  nextTick(()=>{
@@ -679,7 +630,10 @@ const ent1 = (event) => {
 		  })
         break;
       }
-    }
+    }
+	if(event.target.id.substring(0, 2)=='cl' || event.target.id.substring(0, 2)=='fp'){
+		ent_sum()
+	}
   } else if (event.keyCode === 38) { // 向上箭头
     for (let i = currentIndex - 1; i >= 0; i--) {
       if (!inputs[i].readOnly) {
@@ -689,7 +643,10 @@ const ent1 = (event) => {
         })
         break;
       }
-    }
+    }
+	if(event.target.id.substring(0, 2)=='cl' || event.target.id.substring(0, 2)=='fp'){
+		ent_sum()
+	}
   } else if (event.keyCode === 8) { // 删除箭头
     if (event.target.selectionStart === 0) {
       for (let i = currentIndex - 1; i >= 0; i--) {
@@ -700,7 +657,10 @@ const ent1 = (event) => {
           })
           break;
         }
-      }
+      }
+	  if(event.target.id.substring(0, 2)=='cl' || event.target.id.substring(0, 2)=='fp'){
+	  	ent_sum()
+	  }
     }
   } else if (event.keyCode === 37) { // 向左箭头
     if (event.target.selectionStart === 0) {
@@ -712,9 +672,21 @@ const ent1 = (event) => {
           })
           break;
         }
-      }
+      }
+	  if(event.target.id.substring(0, 2)=='cl' || event.target.id.substring(0, 2)=='fp'){
+	  	ent_sum()
+	  }
     }
-  } else if (event.keyCode === 39) { // 向右箭头
+  } else if (event.keyCode === 39) { // 向右箭头
+	  if(event.target.id=='其他备注'){
+		  ElMessageBox.confirm('数据存盘?', '提示', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				  }).then(() => {
+					enterDialog()
+				})
+	  }
     if (event.target.selectionStart === event.target.value.length) {
       for (let i = currentIndex + 1; i < inputs.length; i++) {
         if (!inputs[i].readOnly) {
@@ -725,7 +697,10 @@ const ent1 = (event) => {
           break;
         }
       }
-    }
+    }
+	if(event.target.id.substring(0, 2)=='cl' || event.target.id.substring(0, 2)=='fp'){
+		ent_sum()
+	}
   }
 }
 
@@ -777,46 +752,384 @@ const getygsubmit = async (event, inputName) => {
 			let Bname = 'sczl_bh' + inputName+'_name';
 			formData.value[Bname]=response.data.ygxm;
 			//设置姓名样式
-			setColorReadonly('name'+inputName);
+			
+			if(inputName>0){
+				unsetColorReadonly('cl'+inputName)
+				unsetColorReadonly('fp'+inputName)
+			}
 		}
 	}
 }
+
+const ent_sum = () =>{
+	let sum = 0;
+	for(var i=1;i<=12;i++){
+		sum += formData.value['sczl_cl'+i] * formData.value['sczl_fp'+i]
+	}
+	formData.value.sczl_cl = sum
+}
+//员工编号键盘事件
+const ent = (event, inputName) => {
+	let combinedString = 'sczl_bh' + inputName;
+	let value = eval('formData.value.' + combinedString);
+	
+  if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
+	if(value){
+		getYg({sczl_bh:value}).then(response => {
+			if (response.code == 0) {
+				let Bname = 'sczl_bh' + inputName+'_name';
+				formData.value[Bname]=response.data.ygxm;
+				//设置姓名样式
+				unsetColorReadonly('cl'+inputName)
+				unsetColorReadonly('fp'+inputName)
+				
+				document.getElementById('cl'+inputName).focus()
+				document.getElementById('cl'+inputName).select()
+			}else{
+				formData.value['sczl_bh' + inputName+'_name']='';
+				formData.value['sczl_cl' + inputName]='0';
+				formData.value['sczl_fp' + inputName]='0';
+			
+				//设置姓名样式
+				setColorReadonly('cl'+inputName);
+				setColorReadonly('fp'+inputName);
+				
+				if(inputName!=12){
+					document.getElementById('bh'+(parseInt(inputName)+1)).focus()
+					document.getElementById('bh'+(parseInt(inputName)+1)).select()
+				}else{
+					  document.getElementById('其他备注').focus()
+					  document.getElementById('其他备注').select()
+				}
+			}
+		});
+		
+	}else{
+			formData.value['sczl_bh' + inputName+'_name']='';
+			formData.value['sczl_cl' + inputName]='0';
+			formData.value['sczl_fp' + inputName]='0';
+	
+			//设置姓名样式
+			setColorReadonly('cl'+inputName);
+			setColorReadonly('fp'+inputName);
+			if(inputName!=12){
+				document.getElementById('bh'+(parseInt(inputName)+1)).focus()
+				document.getElementById('bh'+(parseInt(inputName)+1)).select()
+			}else{
+				  document.getElementById('其他备注').focus()
+				  document.getElementById('其他备注').select()
+			}
+			
+	}
+	ent_sum()
+  } else if (event.keyCode === 38) { // 向上箭头
+		if(value){
+			getYg({sczl_bh:value}).then(response => {
+				if (response.code == 0) {
+					let Bname = 'sczl_bh' + inputName+'_name';
+					formData.value[Bname]=response.data.ygxm;
+					//设置姓名样式
+					unsetColorReadonly('cl'+inputName)
+					unsetColorReadonly('fp'+inputName)
+					
+					if(inputName!=1){
+						if(document.getElementById('fp'+(parseInt(inputName)-1)).readOnly){
+							document.getElementById('bh'+(parseInt(inputName)-1)).focus()
+							document.getElementById('bh'+(parseInt(inputName)-1)).select()
+						}else{
+							document.getElementById('fp'+(parseInt(inputName)-1)).focus()
+							document.getElementById('fp'+(parseInt(inputName)-1)).select()
+						}
+					}else{
+						document.getElementById('备注').focus()
+						document.getElementById('备注').select()
+					}
+				}else{
+					formData.value['sczl_bh' + inputName+'_name']='';
+					formData.value['sczl_cl' + inputName]='0';
+					formData.value['sczl_fp' + inputName]='0';
+				
+					//设置姓名样式
+					setColorReadonly('cl'+inputName);
+					setColorReadonly('fp'+inputName);
+					
+					if(inputName!=1){
+						if(document.getElementById('fp'+(parseInt(inputName)-1)).readOnly){
+							document.getElementById('bh'+(parseInt(inputName)-1)).focus()
+							document.getElementById('bh'+(parseInt(inputName)-1)).select()
+						}else{
+							document.getElementById('fp'+(parseInt(inputName)-1)).focus()
+							document.getElementById('fp'+(parseInt(inputName)-1)).select()
+						}
+					}else{
+						document.getElementById('备注').focus()
+						document.getElementById('备注').select()
+					}
+				}
+			});
+			
+		}else{
+			formData.value['sczl_bh' + inputName+'_name']='';
+			formData.value['sczl_cl' + inputName]='0';
+			formData.value['sczl_fp' + inputName]='0';
+	
+			//设置姓名样式
+			setColorReadonly('cl'+inputName);
+			setColorReadonly('fp'+inputName);
+			if(inputName!=1){
+				if(document.getElementById('fp'+(parseInt(inputName)-1)).readOnly){
+					document.getElementById('bh'+(parseInt(inputName)-1)).focus()
+					document.getElementById('bh'+(parseInt(inputName)-1)).select()
+				}else{
+					document.getElementById('fp'+(parseInt(inputName)-1)).focus()
+					document.getElementById('fp'+(parseInt(inputName)-1)).select()
+				}
+			}else{
+				document.getElementById('备注').focus()
+				document.getElementById('备注').select()
+			}
+		}
+		ent_sum()
+  } else if (event.keyCode === 8) { // 删除箭头
+    if (event.target.selectionStart === 0) {
+		if(value){
+			getYg({sczl_bh:value}).then(response => {
+				if (response.code == 0) {
+					let Bname = 'sczl_bh' + inputName+'_name';
+					formData.value[Bname]=response.data.ygxm;
+					//设置姓名样式
+					unsetColorReadonly('cl'+inputName)
+					unsetColorReadonly('fp'+inputName)
+					
+					if(inputName!=1){
+						if(document.getElementById('fp'+(parseInt(inputName)-1)).readOnly){
+							document.getElementById('bh'+(parseInt(inputName)-1)).focus()
+							document.getElementById('bh'+(parseInt(inputName)-1)).setSelectionRange(0, 0)
+						}else{
+							document.getElementById('fp'+(parseInt(inputName)-1)).focus()
+							document.getElementById('fp'+(parseInt(inputName)-1)).setSelectionRange(0, 0)
+						}
+					}else{
+						document.getElementById('备注').focus()
+						document.getElementById('备注').setSelectionRange(0, 0)
+					}
+				}else{
+					formData.value['sczl_bh' + inputName+'_name']='';
+					formData.value['sczl_cl' + inputName]='0';
+					formData.value['sczl_fp' + inputName]='0';
+				
+					//设置姓名样式
+					setColorReadonly('cl'+inputName);
+					setColorReadonly('fp'+inputName);
+					
+					if(inputName!=1){
+						if(document.getElementById('fp'+(parseInt(inputName)-1)).readOnly){
+							document.getElementById('bh'+(parseInt(inputName)-1)).focus()
+							document.getElementById('bh'+(parseInt(inputName)-1)).setSelectionRange(0, 0)
+						}else{
+							document.getElementById('fp'+(parseInt(inputName)-1)).focus()
+							document.getElementById('fp'+(parseInt(inputName)-1)).setSelectionRange(0, 0)
+						}
+					}else{
+						document.getElementById('备注').focus()
+						document.getElementById('备注').setSelectionRange(0, 0)
+					}
+				}
+			});
+			
+		}else{
+			formData.value['sczl_bh' + inputName+'_name']='';
+			formData.value['sczl_cl' + inputName]='0';
+			formData.value['sczl_fp' + inputName]='0';
+			
+			//设置姓名样式
+			setColorReadonly('cl'+inputName);
+			setColorReadonly('fp'+inputName);
+			if(inputName!=1){
+				if(document.getElementById('fp'+(parseInt(inputName)-1)).readOnly){
+					document.getElementById('bh'+(parseInt(inputName)-1)).focus()
+					document.getElementById('bh'+(parseInt(inputName)-1)).setSelectionRange(0, 0)
+				}else{
+					document.getElementById('fp'+(parseInt(inputName)-1)).focus()
+					document.getElementById('fp'+(parseInt(inputName)-1)).setSelectionRange(0, 0)
+				}
+			}else{
+				document.getElementById('备注').focus()
+				document.getElementById('备注').setSelectionRange(0, 0)
+			}
+		}
+		ent_sum()
+    }
+  } else if (event.keyCode === 37) { // 向左箭头
+    if (event.target.selectionStart === 0) {
+		if(value){
+			getYg({sczl_bh:value}).then(response => {
+				if (response.code == 0) {
+					let Bname = 'sczl_bh' + inputName+'_name';
+					formData.value[Bname]=response.data.ygxm;
+					//设置姓名样式
+					unsetColorReadonly('cl'+inputName)
+					unsetColorReadonly('fp'+inputName)
+					
+					if(inputName!=1){
+						if(document.getElementById('fp'+(parseInt(inputName)-1)).readOnly){
+							document.getElementById('bh'+(parseInt(inputName)-1)).focus()
+							document.getElementById('bh'+(parseInt(inputName)-1)).select()
+						}else{
+							document.getElementById('fp'+(parseInt(inputName)-1)).focus()
+							document.getElementById('fp'+(parseInt(inputName)-1)).select()
+						}
+					}else{
+						document.getElementById('备注').focus()
+						document.getElementById('备注').select()
+					}
+				}else{
+					formData.value['sczl_bh' + inputName+'_name']='';
+					formData.value['sczl_cl' + inputName]='0';
+					formData.value['sczl_fp' + inputName]='0';
+				
+					//设置姓名样式
+					setColorReadonly('cl'+inputName);
+					setColorReadonly('fp'+inputName);
+					
+					if(inputName!=1){
+						if(document.getElementById('fp'+(parseInt(inputName)-1)).readOnly){
+							document.getElementById('bh'+(parseInt(inputName)-1)).focus()
+							document.getElementById('bh'+(parseInt(inputName)-1)).select()
+						}else{
+							document.getElementById('fp'+(parseInt(inputName)-1)).focus()
+							document.getElementById('fp'+(parseInt(inputName)-1)).select()
+						}
+					}else{
+						document.getElementById('备注').focus()
+						document.getElementById('备注').select()
+					}
+				}
+			});
+			
+		}else{
+			formData.value['sczl_bh' + inputName+'_name']='';
+			formData.value['sczl_cl' + inputName]='0';
+			formData.value['sczl_fp' + inputName]='0';
+			
+			//设置姓名样式
+			setColorReadonly('cl'+inputName);
+			setColorReadonly('fp'+inputName);
+			if(inputName!=1){
+				if(document.getElementById('fp'+(parseInt(inputName)-1)).readOnly){
+					document.getElementById('bh'+(parseInt(inputName)-1)).focus()
+					document.getElementById('bh'+(parseInt(inputName)-1)).select()
+				}else{
+					document.getElementById('fp'+(parseInt(inputName)-1)).focus()
+					document.getElementById('fp'+(parseInt(inputName)-1)).select()
+				}
+			}else{
+				document.getElementById('备注').focus()
+				document.getElementById('备注').select()
+			}
+		}
+		ent_sum()
+    }
+  } else if (event.keyCode === 39) { // 向右箭头
+    if (event.target.selectionStart === event.target.value.length) {
+		if(value){
+			getYg({sczl_bh:value}).then(response => {
+				if (response.code == 0) {
+					let Bname = 'sczl_bh' + inputName+'_name';
+					formData.value[Bname]=response.data.ygxm;
+					//设置姓名样式
+					unsetColorReadonly('cl'+inputName)
+					unsetColorReadonly('fp'+inputName)
+					
+					document.getElementById('cl'+inputName).focus()
+					document.getElementById('cl'+inputName).select()
+				}else{
+					formData.value['sczl_bh' + inputName+'_name']='';
+					formData.value['sczl_cl' + inputName]='0';
+					formData.value['sczl_fp' + inputName]='0';
+				
+					//设置姓名样式
+					setColorReadonly('cl'+inputName);
+					setColorReadonly('fp'+inputName);
+					
+					if(inputName!=12){
+						document.getElementById('bh'+(parseInt(inputName)+1)).focus()
+						document.getElementById('bh'+(parseInt(inputName)+1)).select()
+					}else{
+						  document.getElementById('其他备注').focus()
+						  document.getElementById('其他备注').select()
+					}
+				}
+			});
+			
+		}else{
+			formData.value['sczl_bh' + inputName+'_name']='';
+			formData.value['sczl_cl' + inputName]='0';
+			formData.value['sczl_fp' + inputName]='0';
+	
+			//设置姓名样式
+			setColorReadonly('cl'+inputName);
+			setColorReadonly('fp'+inputName);
+			if(inputName!=12){
+				document.getElementById('bh'+(parseInt(inputName)+1)).focus()
+				document.getElementById('bh'+(parseInt(inputName)+1)).select()
+			}else{
+				  document.getElementById('其他备注').focus()
+				  document.getElementById('其他备注').select()
+				}
+		}
+		ent_sum()
+    }
+  }
+}
+
+
+
+const getGxMcsubmit = async() => {
+	if(formData.value.sczl_gdbh!=''){
+		const response = await shougonggetGxMc({gdbh:formData.value.sczl_gdbh});
+		 
+		if (response.code === 0) {
+			  if(response.data.length==0){
+				  ElMessage({
+				    type: 'error',
+				    message: '查无此编号的工单,请仔细检查后重新输入'
+				  })
+				  //设置输入框的值为空
+				  formData.value.sczl_gdbh = ''
+				  formData.value.sczl_yjgx = ''
+				  formData.value.sczl_gxmc = ''
+				  formData.value.yj_yjmc = ''
+			  }else if(response.data.length==1){
+				  const { Gd_cpmc, Gy0_yjno, Gy0_gxh, Gy0_gxmc,jyGx} = response.data[0]
+				  formData.value.yj_yjmc=Gd_cpmc
+				  formData.value.sczl_gxmc=Gy0_gxmc
+				  formData.value.sczl_yjgx=jyGx 
+				  setColorReadonly('yjgx');
+				  setColorReadonly('gxmc');
+				  setColorReadonly('yjmc');
+			  }else{
+				  if(GetDedhVisible.value){
+				  	return false
+				  }
+				  selectData.splice(0, selectData.length, ...response.data)
+				  dialogSelectVisible.value=true
+			  }
+		}
+	}else{
+		ElMessage({
+		  type: 'error',
+		  message: '请注意, 工单编号输入空置, 除非有特殊需要!'
+		})
+		
+		formData.value.sczl_yjgx = ''
+		formData.value.sczl_gxmc = ''
+		formData.value.yj_yjmc = ''
+	}
+	
+  
+}
 
-//工单编号失去焦点事件
-// const getGxMcsubmit = async() => {
-// 	if(!formData.value.sczl_gdbh){
-// 		return false
-// 	}
-// 	if(GetDedhVisible.value){
-// 		return false
-// 	}
-//   const response = await shougonggetGxMc({gdbh:formData.value.sczl_gdbh});
- 
-//   if (response.code === 0) {
-// 	  if(response.data.length==0){
-// 		  ElMessage({
-// 		    type: 'error',
-// 		    message: '查无此编号的工单,请仔细检查后重新输入'
-// 		  })
-// 		  //设置输入框的值为空
-// 		  formData.value.sczl_gdbh = ''
-// 		  formData.value.sczl_yjgx = ''
-// 		  formData.value.sczl_gxmc = ''
-// 		  formData.value.yj_yjmc = ''
-// 	  }else if(response.data.length==1){
-// 		  const { Gd_cpmc, Gy0_yjno, Gy0_gxh, Gy0_gxmc,jyGx} = response.data[0]
-// 		  formData.value.yj_yjmc=Gd_cpmc
-// 		  formData.value.sczl_gxmc=Gy0_gxmc
-// 		  formData.value.sczl_yjgx=jyGx 
-// 		  setColorReadonly('yjgx');
-// 		  setColorReadonly('gxmc');
-// 		  setColorReadonly('yjmc');
-// 	  }else{
-// 		  selectData.splice(0, selectData.length, ...response.data)
-// 		  dialogSelectVisible.value=true
-// 	  }
-//   }
-// }
 const dialogSelectVisible = ref(false)
 const selectData = reactive([])
 // 工单选择框
@@ -836,6 +1149,9 @@ const handleSelectClick = (row, column, event) => {
 const getDedhsubmit = () => {
 	if(dialogSelectVisible.value){
 		return false
+	}
+	if(LbVisible.value){
+		return false
 	}
 	 GetDedh()
 }
@@ -844,7 +1160,27 @@ const GetDedhVisible = ref(false)
 //获取定额代号
 const GetDedh = async (value) => {
 	const response = await shougonggetDedh();
-	const treeData = {};
+	const treeData = {};
+	// const data = [];
+	// data[0] = response.data;
+	// //判断值是否在选项中存在
+	// const buildTree1 = (node) => {
+	//   const arr = [];
+	
+	//   // 如果存在子节点,递归地添加它们
+	//   if (node.bh_mc && Array.isArray(node.bh_mc)) {
+	//     node.bh_mc.forEach(childNode => {
+	//       arr.push(...buildTree1(childNode)); // 递归调用
+	//     });
+	//   }else{
+	// 	  arr.push(node.sys_bh)
+	//   }
+	
+	//   return arr;
+	// };
+	// // 构建树形结构的根节点
+	// const Data = data.map(buildTree1);
+	
 	if(response.code==0){
 		const data = [];
 		data[0] = response.data;
@@ -885,6 +1221,47 @@ const GetDedhhandleNodeClick = (nodeData, node, component) => {
 	 // 执行相应的父节点单击事件处理逻辑
 }
 
+//检验类别失去焦点事件
+const getLbsubmit = () => {
+	if(GetDedhVisible.value){
+		return false
+	}
+	//弹出选择
+	const data = [{'sczl_检验类别':''},{'sczl_检验类别':'正品板'},{'sczl_检验类别':'次品板'},{'sczl_检验类别':'废品板'}]
+	selectDataLb.splice(0, selectDataLb.length, ...data)
+	LbVisible.value=true
+}
+//班组选择
+const selectDataLb = reactive([])
+const LbVisible = ref(false)
+const SelectClickLb = (row, column, event) => {
+  const {sczl_检验类别 } = row
+	formData.value.sczl_检验类别=row.sczl_检验类别
+	
+	//查询废品系数
+	if(row.sczl_检验类别!=''){
+		var value = {
+			'gdbh':formData.value.sczl_gdbh,
+			'yjno':parseInt(formData.value.sczl_yjgx.split('-')[0]),
+			'gxh':parseInt(formData.value.sczl_yjgx.split('-')[1]),
+			'type':formData.value.sczl_检验类别
+			}
+		shougonggetScrapFactor(value).then(response=>{
+			if(response.code==0){
+				if(response.data!=null){
+					formData.value.sczl_废品率系数 = response.data.num;
+				}
+				setColorReadonly('废品率系数')
+			}
+		});
+		
+	}else{
+		unsetColorReadonly('废品率系数')
+	}
+  LbVisible.value = false
+}
+
+
 //刷新废品率系数
 const GetScrapFactor = async (value) => {
   const response = await shougonggetScrapFactor(value);
@@ -1185,30 +1562,50 @@ 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()
-  //   }
-  // })
-  updateDetailData()
+  ElMessageBox.confirm('数据存盘?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          }).then(() => {
+  			
+  			if(formData.value.sczl_rq==''){
+  				ElMessage({
+  					type: 'error',
+  					message: '请填写日期'
+  				});
+  				document.getElementById('日期').focus()
+  				document.getElementById('日期').select()
+  				return;
+  			}
+			if(formData.value.sczl_gdbh==''){
+				ElMessage({
+					type: 'error',
+					message: '请填写工单编号'
+				});
+				document.getElementById('工单编号').focus()
+				document.getElementById('工单编号').select()
+				return;
+			}
+  			if(formData.value.sczl_bzdh==''){
+  				ElMessage({
+  					type: 'error',
+  					message: '请选择班组'
+  				});
+  				document.getElementById('组别').focus()
+  				document.getElementById('组别').select()
+  				return;
+  			}
+  			if(formData.value.sczl_dedh==''){
+  				ElMessage({
+  					type: 'error',
+  					message: '请选择定额代号'
+  				});
+  				document.getElementById('定额代号').focus()
+  				document.getElementById('定额代号').select()
+  				return;
+  			}
+            updateDetailData()
+          });
 }
 let table=ref(5);
 let lastCellValue=ref()

+ 285 - 5
src/view/performance/chejianbaogong.vue

@@ -20,14 +20,14 @@
 		
 		
     <el-container>
-      <el-aside width="200px">
+      <!-- <el-aside width="200px">
         <div class="JKWTree-tree">
 
           <h3  > 车间报工</h3>
           <el-tree :data="treeData" :props="defaultProps" :default-expand-all="true" @node-click="handleNodeClick"></el-tree>
         </div>
 
-      </el-aside>
+      </el-aside> -->
       <el-container>
 <!--        <el-header>dd</el-header>-->
         <el-main>
@@ -119,7 +119,7 @@
                                     :row-style="{ height: '20px' }"
                                     :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
                                     :header-cell-style="{ padding: '0px' }"
-                                    @row-dblclick="yjupdateCompanyFunc"
+                                    @row-click="yjupdateCompanyFunc"
                                     style="width: 100%;height: 330px" border tooltip-effect="dark" :data="sbzyData" row-key="ID" @selection-change="handleSelectionChange">
             <!--                <el-table-column type="selection" width="55" />-->
                             <el-table-column align="left" label="选择" prop="yj_yjno"  width="80"/>
@@ -824,6 +824,206 @@
 		  </template>
 		</el-dialog>
 		
+		<el-dialog
+		  v-model="huanxingVisible"
+		  title="换型清场"
+		  destroy-on-close
+		  width="1100px"
+		  style="height: 78%;"
+		>
+		  <div style="display: flex;">
+		    <div style="flex: 0.1;">
+		      <el-aside width="180px" style="margin: 0;">
+		        <div class="JKWTree-tree" style="height: 55vh; border-right: 1px solid #ebeef5;">		          
+		          <el-tree :data="huanxingtreeData" :props="defaultProps" highlight-current="true"
+		            @node-click="huanxingNodeClick"></el-tree>
+		        </div>
+		      </el-aside>
+		    </div>
+		    <div v-if="huanxingstatus" style="flex: 0; margin: 0;">
+		      <el-tabs v-model="activNames" type="card" @tab-click="handleClick">
+		        <el-tab-pane label="指标检验"  @click="showTable('指标检验')"  name="first">
+		          <el-table
+		            tooltip-effect="dark"
+		            :data="zhibiaoselectData"
+		            row-key="ID"
+		            highlight-current-row="true"
+		          				:show-overflow-tooltip="true"
+		            border  @row-click="dianjianhandle"
+		            style="width:100%; height:310px;"
+		            @row-dblclick="handleSelectClick"
+		            :row-class-name="rowClassName"
+		          >
+		            <el-table-column
+		              prop="检验项目"
+		              label="检验项目"
+		              width="270"
+		            />
+					<el-table-column
+					  v-slot="scope"
+					  label="不检测" 
+					  width="70"
+					>
+					   <el-checkbox v-model="scope.row.notjc" @click="notjcClick(scope.row)"></el-checkbox>
+					</el-table-column>
+		            <el-table-column
+		              v-slot="scope"
+		              label="合格"
+		              width="60"
+		            >
+		              
+		             <el-checkbox v-model="scope.row.zc" @click="zcClick(scope.row)"></el-checkbox>
+		            
+		            </el-table-column>
+		            <el-table-column
+		              v-slot="scope"
+		              label="不合格" 
+		              width="70"
+		            >
+		               <el-checkbox v-model="scope.row.yc" @click="ycClick(scope.row)"></el-checkbox>
+		            </el-table-column>
+					<el-table-column
+					  prop="检测方法"
+					  label="检测方法"
+					  width="90"
+					/>
+					<el-table-column
+					  prop="检验频率"
+					  label="检验频率"
+					  width="150"
+					/>
+					<el-table-column
+					  prop="相关标准"
+					  label="相关标准"
+					  width="180"
+					/>
+		          </el-table>
+		        </el-tab-pane>
+		      
+		        <el-tab-pane label="当前设备换型记录"  @click="showTable('当前设备换型记录')"  name="second">
+		          <el-table
+		            tooltip-effect="dark"
+		            :data="fujiaselectData"
+		            row-key="ID"
+		            highlight-current-row="true"
+		          				:show-overflow-tooltip="true"
+		            border  @row-click="dianjianhandle"
+		            style="width:100%; height:320px;"
+		            @row-dblclick="handleSelectClick"
+		            :row-class-name="rowClassName"
+		          >
+		            <el-table-column
+		              prop="日期"
+		              label="日期"
+		              width="100"
+		            />
+		            <el-table-column
+		              prop="机台编号"
+		              label="机台编号"
+		              width="80"
+		            />
+					<el-table-column
+					  prop="班组"
+					  label="班组"
+					  width="70"
+					/>
+					<el-table-column
+					  prop="工单编号A"
+					  label="工单编号A"
+					  width="80"
+					/>
+					<el-table-column
+					  prop="印件名称A"
+					  label="印件名称A"
+					  width="120"
+					/>
+					<el-table-column
+					  prop="印件工序A"
+					  label="印件工序A"
+					  width="80"
+					/>
+					<el-table-column
+					  prop="码包号A"
+					  label="码包号A"
+					  width="80"
+					/>
+					<el-table-column
+					  prop="工单编号B"
+					  label="工单编号B"
+					  width="80"
+					/>
+					<el-table-column
+					  prop="印件名称B"
+					  label="印件名称B"
+					  width="80"
+					/>
+					<el-table-column
+					  prop="印件工序B"
+					  label="印件工序B"
+					  width="100"
+					/>
+					<el-table-column
+					  prop="码包号B"
+					  label="码包号B"
+					  width="80"
+					/>
+					<el-table-column
+					  prop="清场项目A"
+					  label="菲林_标样_签样品_留样品"
+					  width="120"
+					/>
+					<el-table-column
+					  prop="清场项目B"
+					  label="版材_纸张_电化铝_油墨"
+					  width="120"
+					/>
+					<el-table-column
+					  prop="清场项目C"
+					  label="过版纸_废品_次品"
+					  width="120"
+					/>
+					<el-table-column
+					  prop="清场项目D"
+					  label="半成品_成品_零头"
+					  width="120"
+					/>
+					<el-table-column
+					  prop="清场项目E"
+					  label="操作台桌面_抽屉_地面"
+					  width="120"
+					/>
+					<el-table-column
+					  prop="机长"
+					  label="机长"
+					  width="80"
+					/>
+					<el-table-column
+					  prop="班长"
+					  label="带班长"
+					  width="80"
+					/>
+					<el-table-column
+					  prop="质量巡查员"
+					  label="质量巡查员"
+					  width="80"
+					/>
+					<el-table-column
+					  prop="创建时间"
+					  label="创建时间"
+					  width="120"
+					/>
+					<el-table-column
+					  prop="UNIQID"
+					  label="UNIQID"
+					  width="80"
+					/>
+		          </el-table>
+		        </el-tab-pane>
+		      </el-tabs>
+		    </div>
+		  </div>
+		</el-dialog>
+		
 		<el-dialog
 		  v-model="xunchaVisible"
 		  title="管理人员现场巡查记录"
@@ -1440,7 +1640,9 @@ import {
 import {
   ProcessInspectionRecordsItemAdd,
   AdditionalInspectionRecordAdd,
-  getMac
+  getMac,
+  remodelGetTab,
+  setMachineTeam
 } from '@/api/jixiaoguanli/baogong'
 
 import {
@@ -1492,6 +1694,8 @@ const activNames=ref('first')
 let checked3=ref(false)
 const detailData = reactive([])
 const treeData=ref([])
+const huanxingtreeData=ref([])
+const huanxingstatus=ref(false)
 const zhichengtreeData=ref([{
 	label: '首件与过程确认'
 },{
@@ -1549,6 +1753,15 @@ const ent = (event,id1,id2,id3) => {
   }
 }
 
+const huanxingNodeClick = (node) => {
+  //存放当前节点的nodeId
+  if(node.machine){
+	  huanxingstatus.value=true
+	  console.log(node)
+  }else{
+	  console.log('2')
+  }
+}
 const handleNodeClick = (nodeData,node) => {
   //存放当前节点的nodeId
   if(nodeData.level === 1){
@@ -1591,7 +1804,9 @@ const FacilityProduction = async () => {
 		formData.value.工序号 = response.data.工序名称.substring(0,2);
 	    formData.value.工序名称 = response.data.工序名称;
 	    formData.value.产品名称 = response.data.产品名称;
+		formData.value.班组Id=response.data.班组Id
 		formData.value.machine=JTMC
+		formData.value.状态=response.data.状态
 		BZMC.value=response.data.班组编号
 	       // 填充sczl_bh和sczl_name字段
 		   let sczl_bhkey=''
@@ -1901,6 +2116,7 @@ const onzhicheng = async () => {
 
 const chanliangselectData = reactive([])
 const chanliangVisible = ref(false)
+const huanxingVisible = ref(false)
 const xunchaVisible = ref(false)
 
 //设置机台状态
@@ -1909,6 +2125,32 @@ function onstatus() {
 	 SetMachineStatus()
 	 // ReportProduceInfo()
 }
+function onClear() {
+	huanxingVisible.value=true
+	 RemodelGetTab()
+}
+const RemodelGetTab = async() => {
+  const response = await remodelGetTab()
+  let arr=[]
+  if (response.code === 0) {
+	  for(let key in response.data){
+		  if(response.data[key][0]){
+			  let children =[]
+			  for (let i = 0; i < response.data[key].length; i++) {
+				  children.push({label:response.data[key][i],machine:key})
+			  }
+			  arr.push({
+				  label:key,
+				  children:children
+			  })
+			  console.log(response.data[key].length)
+		  }else{
+			 arr.push({label:key}) 
+		  }
+	  }
+	  huanxingtreeData.value=arr
+  }
+}
 //设置机台状态
 const SetMachineStatus = async () => {
   // const response = await setMachineStatus({
@@ -2113,7 +2355,7 @@ const GetMachineMac = async () => {
 	xmlhttp.open("get", "http://127.0.0.1:8090/init")
 	// 5. 发送
 	xmlhttp.send();
-  const response = await getMachineMac({ addr: '68-ED-A4-26-5F-37' });
+  const response = await getMachineMac({ addr: '68-ED-A4-26-5F-8E' });
   console.log(response);
   if (response.code === 0) {
     // 将接口返回的数据添加到树型结构中
@@ -2737,6 +2979,23 @@ const selectBz = async() => {
 		  }
 		  formData.value.class=classbz.value.join(',')
 		}
+		const response = await setMachineTeam({
+			machine: JTMC.split("#")[0],
+			order:formData.value.工单编号,
+			yjno:formData.value.印件号,
+			gy_name:formData.value.工序名称,
+			sczl_bzdh:BZMC.value,
+			status:formData.value.状态,
+			production_now:0,
+			production_all:0,
+			team_id:currentBz.value.ID
+			})
+		if(response.code===0){
+			ElMessage({
+			  type: 'success',
+			  message: '成功'
+			})
+		}
 		currentBz.value={}
 	}
 }
@@ -2832,6 +3091,27 @@ const updateCompanyFunc = async(row) => {
     }
 }
 
+const yjupdateCompanyFunc = async(row) => {
+	console.log(row)
+    const res = await setMachineTeam({
+			machine: JTMC.split("#")[0],
+			order:row['工单编号|质量信息'].split('|')[0],
+			yjno:row['工序名称'].split('-')[0],
+			gy_name:row['工序名称'],
+			sczl_bzdh:BZMC.value,
+			status:formData.value.状态,
+			production_now:0,
+			production_all:0,
+			team_id:formData.value.班组Id
+			})
+    if (res.code === 0) {
+		FacilityProduction()
+		ElMessage({
+		        type: 'success',
+		        message: '成功'
+		    })
+    }
+}
 
 // 删除行
 const deleteCompanyFunc = async (row) => {