zck 4 месяцев назад
Родитель
Сommit
636ecdc722

+ 231 - 0
src/api/mes/huhejob.js

@@ -0,0 +1,231 @@
+import service from '@/utils/request'
+
+// 糊盒报工机台角色菜单
+export const getGluingcoleTab = (params) => {
+    return service({
+      url: '/mes_server/Gluing_Report/getGluingcoleTab',
+      method: 'get',
+      params
+    })
+  }
+
+  // 设备角色列表
+export const getGluingcoleList = (params) => {
+    return service({
+      url: '/mes_server/Gluing_Report/getGluingcoleList',
+      method: 'get',
+      params
+    })
+  }
+
+  // 设备角色资料详情
+export const getGluingcoleDetail = (params) => {
+    return service({
+      url: '/mes_server/Gluing_Report/getGluingcoleDetail',
+      method: 'get',
+      params
+    })
+  }
+
+  // 修改设备角色资料
+export const getGluingcoleDetaiEdit = (data) => {
+    return service({
+      url: '/mes_server/Gluing_Report/getGluingcoleDetaiEdit',
+      method: 'post',
+      data
+    })
+  }
+
+  // 设置当前糊盒班组角色
+export const UpdateGluingcoleStatus = (params) => {
+    return service({
+      url: '/mes_server/Gluing_Report/UpdateGluingcoleStatus',
+      method: 'get',
+      params
+    })
+  }
+
+  // 新增机台角色数据
+export const saveGluingcoleDetail = (data) => {
+    return service({
+      url: '/mes_server/Gluing_Report/saveGluingcoleDetail',
+      method: 'post',
+      data
+    })
+  }
+
+  // 设备班组资料列表
+export const getGluingClassLList = (params) => {
+    return service({
+      url: '/mes_server/Gluing_Report/getGluingClassLList',
+      method: 'get',
+      params
+    })
+  }
+
+  // 获取设备角色数据
+export const getGluingcole = (params) => {
+    return service({
+      url: '/mes_server/Gluing_Report/getGluingcole',
+      method: 'get',
+      params
+    })
+  }
+
+  // 新增糊盒机台班组资料
+export const AddGluingClass = (data) => {
+    return service({
+      url: '/mes_server/Gluing_Report/AddGluingClass',
+      method: 'post',
+      data
+    })
+  }
+
+// 修改设备糊盒班组资料
+export const UpdateGluingClass = (data) => {
+    return service({
+      url: '/mes_server/Gluing_Report/UpdateGluingClass',
+      method: 'post',
+      data
+    })
+  }
+
+
+// 糊盒机台报工数据菜单
+export const getTab = (params) => {
+  return service({
+    url: '/mes_server/Gluing_Report/getTab',
+    method: 'get',
+    params
+})
+}
+
+
+// 糊盒机台报工
+export const AddGluingReportData = (data) => {
+  return service({
+    url: '/mes_server/Gluing_Report/AddGluingReportData',
+    method: 'post',
+    data
+  })
+}
+
+
+// 获取当前生产工单
+export const GetProduction = (params) => {
+  return service({
+    url: '/mes_server/Gluing_Report/GetProduction',
+    method: 'get',
+    params
+  })
+}
+
+
+// 设置当前工单,当前班组
+export const setMachineTeam = (data) => {
+  return service({
+    url: '/mes_server/Gluing_Report/setMachineTeam',
+    method: 'post',
+    data
+  })
+}
+
+// 糊盒设备运行跟踪数据页面显示
+export const getGluingReportDataList = (params) => {
+  return service({
+    url: '/mes_server/Gluing_Report/getGluingReportDataList',
+    method: 'get',
+    params
+  })
+}
+
+// 报工数据详情显示
+export const getGluingReportDataDetail = (params) => {
+  return service({
+    url: '/mes_server/Gluing_Report/getGluingReportDataDetail',
+    method: 'get',
+    params
+  })
+}
+
+// 修改糊盒班组报工资料
+export const getGluingReportDetailUpdate = (data) => {
+  return service({
+    url: '/mes_server/Gluing_Report/getGluingReportDetailUpdate',
+    method: 'post',
+    data
+  })
+}
+
+// 修改报工数据班组
+export const UpdateGluingReportClass = (data) => {
+  return service({
+    url: '/mes_server/Gluing_Report/UpdateGluingReportClass',
+    method: 'post',
+    data
+  })
+}
+
+// 当班产量
+export const GluingReportList = (params) => {
+  return service({
+    url: '/mes_server/Gluing_Report/GluingReportList',
+    method: 'get',
+    params
+  })
+}
+
+
+// 糊盒成品入仓左侧菜单
+export const RcgetTab = (params) => {
+  return service({
+    url: '/mes_server/glu_finished_product_warehousing/getTab',
+    method: 'get',
+    params
+  })
+}
+
+// 糊盒成品入仓列表
+export const RcgetList = (params) => {
+  return service({
+    url: '/mes_server/glu_finished_product_warehousing/getList',
+    method: 'get',
+    params
+  })
+}
+
+// 糊盒成品入仓获取详细信息
+export const RcgetInfo = (params) => {
+  return service({
+    url: '/mes_server/glu_finished_product_warehousing/getInfo',
+    method: 'get',
+    params
+  })
+}
+
+// 糊盒成品入仓新增
+export const RcAdd = (data) => {
+  return service({
+    url: '/mes_server/glu_finished_product_warehousing/add',
+    method: 'post',
+    data
+  })
+}
+
+// 糊盒成品入仓修改
+export const RcEdit = (data) => {
+  return service({
+    url: '/mes_server/glu_finished_product_warehousing/edit',
+    method: 'post',
+    data
+  })
+}
+
+// 糊盒成品入仓删除
+export const RcDel = (data) => {
+  return service({
+    url: '/mes_server/glu_finished_product_warehousing/del',
+    method: 'post',
+    data
+  })
+}

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

@@ -997,3 +997,4 @@ export const statisticsConfirm = (data) => {
     data
   })
 }
+

+ 7 - 5
src/view/performance/12-orderAccounting/index.vue

@@ -750,10 +750,10 @@ const exportExcel = () => {
 
   // 2. 定义需要转换为数字的列(基于原始列字母)
   const originalNumberColumns = {
-    'C': 0,  
-    'D': 2,  
-    'G': 4,
-    'N': 2,
+    'D': 0,  
+    'E': 2,  
+    'I': 6,
+    'L': 0,
     'O': 0,  
     'P': 0,  
     'Q': 0,  
@@ -762,7 +762,9 @@ const exportExcel = () => {
     'T': 0,  
     'U': 0,  
     'V': 0,  
-    'W': 0   
+    'W': 0,
+    'X': 0,
+    'Y': 0,
   };
 
   // 3. 创建新工作表(左移后的数据)

+ 3245 - 0
src/view/yunyin/huheguanli/huhebaogong.vue

@@ -0,0 +1,3245 @@
+<template>
+    <div>
+      <layout>
+        <layout-header>
+          <div class="">
+            <!--          按钮部分-->
+            <el-form ref="elSearchFormRef"   class="demo-form-inline" :rules="searchRule" >
+              <el-form-item>
+                <!-- <el-input v-model="searchInfo" placeholder="搜索工单编号" clearable style="width: 200px;margin: 5px"></el-input> -->
+				<el-button type="primary" size="large" class="bt" style="color:white;font-size: 16px;font-weight: bold;width: 90px"  @click="onchanliang"  v-if="zdtreeType === true" >日产量上报</el-button>
+				<el-button type="primary" class="bt" @click="openRoleDialog" v-if="AddType === true">糊盒角色</el-button>
+				<el-button type="primary" class="bt" @click="openTeamDialog" v-if="AddType === true">糊盒班组</el-button>
+                <!-- <el-button type="primary" class="bt" icon="download" @click="hzToExcel" >导出到Excel(汇总)</el-button>
+                <el-button type="primary" class="bt" icon="download" @click="mxToExcel" >导出到Excel(明细)</el-button> -->
+              </el-form-item>
+            </el-form>
+  
+        
+  
+          </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" class="treecolor" highlight-current @node-click="handleNodeClick" />
+			</div>
+		</layout-sider>
+  
+          <!-- 右侧区域 -->
+          <layout-content >
+          <el-main>
+			<div class="button-container" v-if="showbutton" style="height: 50%;width: 100%; flex: 1; border: 0px magenta solid; margin: 0; padding: 0;">
+			<button v-for="(item, index) in machineData" :key="index" class="custom-button" @click="handleButtonClick(item.设备编号)">
+			  <img :src="`/src/assets/${item.状态}.png`" :alt="altText" style="max-width: 100%; height: auto;"/>
+			  <span style="margin-top: 8px;">{{ item.设备编号 + ' - ' + item.设备名称 }}</span>
+			</button>
+		</div>
+		<div class="gva-search-box" v-if="JTMCOn" style="overflow: hidden; padding: 0; display: flex;">
+			<div style="flex: 1; border: 0px magenta solid; margin: 0; padding: 0;">
+				
+				<el-row :gutter="20">
+					<el-col :span="24">
+						<el-form-item label="工单编号" prop="name">
+					<el-row :gutter="20">
+						<el-col :span="6"><el-input v-model="formData.工单编号" disabled :clearable="true"/></el-col>
+						<el-col :span="18"><el-input v-model="formData.产品名称" disabled :clearable="true"/></el-col>
+					</el-row>
+					</el-form-item>
+					</el-col>
+				</el-row>
+
+				<el-row :gutter="20">
+					<el-col :span="6">
+						<el-form-item label="印件编号" prop="id"><el-input v-model="formData.印件编号" disabled :clearable="true"  /></el-form-item>
+					</el-col>
+					<el-col :span="17">
+						<el-form-item label="工序名称" prop="name"><el-input v-model="formData.工序名称" disabled :clearable="true"  /></el-form-item>
+					</el-col>
+				</el-row>
+
+				<el-row :gutter="20">
+					<el-col :span="4"><el-form-item label="班组成员" prop="id"></el-form-item></el-col>
+				</el-row>
+
+				<el-row :gutter="1">
+					<el-col :span="4"><el-input v-model="formData.sczl_role1" disabled :clearable="true"/></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_role2" disabled :clearable="true"/></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_role3" disabled :clearable="true"/></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_role4" disabled :clearable="true"/></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_role5" disabled :clearable="true"/></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_role6" disabled :clearable="true"/></el-col>
+				</el-row>
+
+				<el-row :gutter="1">
+					<el-col :span="4"><el-input v-model="formData.sczl_rate1" disabled :clearable="true"  /></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_rate2" disabled :clearable="true"  /></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_rate3" disabled :clearable="true"  /></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_rate4" disabled :clearable="true"  /></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_rate5" disabled :clearable="true"  /></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_rate6" disabled :clearable="true"  /></el-col>
+				</el-row>
+
+				<el-row :gutter="1">
+					<el-col :span="4"><el-input v-model="formData.sczl_bh1" disabled :clearable="true"/></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_bh2" disabled :clearable="true"/></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_bh3" disabled :clearable="true"/></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_bh4" disabled :clearable="true"/></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_bh5" disabled :clearable="true"/></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_bh6" disabled :clearable="true"/></el-col>
+				</el-row>
+
+				<el-row :gutter="1">
+					<el-col :span="4"><el-input v-model="formData.sczl_name1" disabled :clearable="true"  /></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_name2" disabled :clearable="true"  /></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_name3" disabled :clearable="true"  /></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_name4" disabled :clearable="true"  /></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_name5" disabled :clearable="true"  /></el-col>
+					<el-col :span="4"><el-input v-model="formData.sczl_name6" disabled :clearable="true"  /></el-col>
+				</el-row>
+			</div>
+
+			<div style="flex: 1; border: 0px lawngreen solid; margin: 0; padding: 0; overflow: hidden;">
+			 <el-table tooltip-effect="dark" :data="selectData" row-key="ID" highlight-current-row="true"
+				 :row-style="{ height: '20px' }"  :header-cell-style="{ padding: '0px' }"
+				 :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+				 border style="width:100%;height: 30vh;" @row-dblclick="handleSelectClick" >
+			   <el-table-column prop="process" label="印件及工序" width="340" />
+			   <el-table-column prop="completed" label="已完成板数" width="150" />
+			 </el-table>
+			</div>
+		</div>
+
+          <div v-if="JTMCOn" class="gva-table-box" >
+            <div class="gva-btn-list"></div>
+            <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="QDmultipleTable"
+							:show-overflow-tooltip="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' }"
+							@row-click="sbonclick"
+							@row-dblclick="sbupdateCompanyFunc"
+							style="width: 100%;height: 330px" border tooltip-effect="dark" :data="sbzyData" row-key="ID" @selection-change="handleSelectionChange">
+					<el-table-column align="left" sortable label="工单编号|质量信息" prop="工单编号|质量信息" width="170" />
+					<el-table-column align="left"  label="印件资料" prop="印件资料" width="220" />
+					<el-table-column align="left" sortable label="工序名称" prop="工序名称" width="110" />
+					<el-table-column align="left"  label="计划产量/已完成" prop="计划产量/已完成" width="130"/>
+					<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" sortable label="计划生产时段" prop="计划生产时段" width="210" />
+					<el-table-column align="left"  label="排产备注" prop="排产备注" width="85" />
+					<el-table-column align="left" sortable label="产品名称" prop="产品名称" width="400" />
+				  </el-table>
+				</el-tab-pane>
+
+				<el-tab-pane label="班组人员及分配比例" @click="showTable('工艺资料')" name="second">
+				  <el-table ref="FPmultipleTable"
+							highlight-current-row="true"
+							:show-overflow-tooltip="true"
+							:row-style="{ height: '20px' }"
+							:cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+							:header-cell-style="{ padding: '0px' }"
+							@row-dblclick="bzupdateCompanyFunc"
+							:row-class-name="rowClassStyle"
+							style="width: 100%;height: 400px" border tooltip-effect="dark" :data="FPData" row-key="ID" @selection-change="BzhandleSelectionChange"
+							@row-click="clickybupdate">
+							<el-table-column type="selection" width="55" />
+             <el-table-column  sortable align="center" label="班组" prop="bz"  width="120" />
+             <el-table-column  sortable align="center" label="角色" prop="role"  width="120" />
+             <el-table-column  sortable align="center" label="比例" prop="rate"  width="120" />
+             <el-table-column  sortable align="center" label="人员1" prop="bh1"  width="120" />
+             <el-table-column  sortable align="center" label="姓名1" prop="name1"  width="120" />
+             <el-table-column  sortable align="center" label="人员2" prop="bh2"  width="120" />
+             <el-table-column  sortable align="center" label="姓名2" prop="name2"  width="120" />
+             <el-table-column  sortable align="center" label="人员3" prop="bh3"  width="120" />
+             <el-table-column  sortable align="center" label="姓名3" prop="name3"  width="120" />
+             <el-table-column  sortable align="center" label="人员4" prop="bh4"  width="120" />
+             <el-table-column  sortable align="center" label="姓名4" prop="name4"  width="120" />
+             <el-table-column  sortable align="center" label="人员5" prop="bh5"  width="120" />
+             <el-table-column  sortable align="center" label="姓名5" prop="name5"  width="120" />
+             <el-table-column  sortable align="center" label="人员6" prop="bh6"  width="120" />
+             <el-table-column  sortable align="center" label="姓名6" prop="name6"  width="120" />
+             <el-table-column  sortable align="center" label="人员7" prop="bh7"  width="120" />
+             <el-table-column  sortable align="center" label="姓名7" prop="name7"  width="120" />
+             <el-table-column  sortable align="center" label="人员8" prop="bh8"  width="120" />
+             <el-table-column  sortable align="center" label="姓名8" prop="name8"  width="120" />
+             <el-table-column  sortable align="center" label="人员9" prop="bh9"  width="120" />
+             <el-table-column  sortable align="center" label="姓名9" prop="name9"  width="120" />
+             <el-table-column  sortable align="center" label="人员10" prop="bh10"  width="120" />
+             <el-table-column  sortable align="center" label="姓名10" prop="name10"  width="120" />
+             <el-table-column  sortable align="center" label="人员11" prop="bh11"  width="120" />
+             <el-table-column  sortable align="center" label="姓名11" prop="name11"  width="120" />
+             <el-table-column  sortable align="center" label="人员12" prop="bh12"  width="120" />
+             <el-table-column  sortable align="center" label="姓名12" prop="name12"  width="120" />
+             <el-table-column  sortable align="center" label="人员13" prop="bh13"  width="120" />
+             <el-table-column  sortable align="center" label="姓名13" prop="name13"  width="120" />
+             <el-table-column  sortable align="center" label="人员14" prop="bh14"  width="120" />
+             <el-table-column  sortable align="center" label="姓名14" prop="name14"  width="120" />
+             <el-table-column  sortable align="center" label="人员15" prop="bh15"  width="120" />
+             <el-table-column  sortable align="center" label="姓名15" prop="name15"  width="120" />
+				  </el-table>
+				</el-tab-pane>
+
+				<el-tab-pane label="当班产量明细" @click="showTable('印版资料')" name="third">
+				<el-table ref="DBmultipleTable" highlight-current-row="true"
+						  :show-overflow-tooltip="true" :row-style="{ height: '20px' }" 
+						  :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+						  :header-cell-style="{ padding: '0px' }"  @row-dblclick="ybupdateCompanyFunc"
+						  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 fixed align="left" sortable label="生产时段" prop="生产时间段"  width="180"/>
+				  <el-table-column fixed align="left" sortable label="工单编号" prop="工单编号" width="110" />
+				  <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="100"/> -->
+				  <el-table-column align="left" sortable label="产量" prop="产量" width="100"/>
+				  <el-table-column align="left" sortable label="制程废品" prop="制程废品" width="110" />
+				  <!-- <el-table-column align="left" sortable label="制程次品" prop="制程次品" width="110" />
+				  <el-table-column align="left" sortable label="前工序废" prop="前工序废" width="110" /> -->
+				  <el-table-column align="left" sortable label="来料数量" prop="来料数量"  width="110"/>
+				  <el-table-column align="left" sortable  label="装版工时" prop="装版工时" width="110" />
+				  <el-table-column align="left" sortable  label="保养工时" prop="保养工时" width="110" />
+				  <el-table-column align="left"  sortable label="异常工时" prop="异常工时"  width="135"/>
+				  <el-table-column align="left" sortable  label="通电工时" prop="通电工时" width="110"/>
+				</el-table>
+				</el-tab-pane>
+		  </el-tabs>
+	  </div>
+
+	  <div v-if="dateOn" >
+		  <el-tabs v-model="activName" type="card" @tab-click="handleClick">
+			<el-tab-pane label="当日上报产量"   name="first">
+				<!-- 非JP机台 -->
+			  <el-table ref="multipleTable"
+						v-if="! isTHJT"
+						:show-overflow-tooltip="true"
+						@selection-change="selectionChange($event)"
+						:row-style="{ height: '20px' }" :selectable="checkboxT"
+						: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="100"/>
+				<el-table-column fixed align="left" label="印件号" prop="印件号"  width="90"/>
+				<el-table-column fixed align="left" label="产品代号" prop="产品代号"  width="120"/>
+				<el-table-column fixed align="left" label="产品名称" prop="产品名称"  width="300"/>
+				<el-table-column fixed align="left" label="工序号" prop="工序号"  width="90"/>
+				<el-table-column  align="left" label="来料数量" prop="来料数量"  width="120"/>
+				<el-table-column  align="left" label="产量" prop="产量"  width="100"/>
+				<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="流程" sortable prop="num"  width="80"/> -->
+				<el-table-column align="left" label="联数" prop="联数"  width="85"/>
+				<el-table-column align="left" label="定额代号" prop="定额代号"  width="100"/>
+				<el-table-column align="left" label="工价系数" prop="工价系数"  width="85"/>
+				<!-- <el-table-column align="left" label="备注" prop="备注"  width="200"/> -->
+				<el-table-column v-for="i in 10" :key="i" 
+					align="left" 
+					:label="`组员${i}`" 
+					:prop="`组员${i}`" 
+					width="160"
+					show-overflow-tooltip
+				/>
+				<el-table-column align="left" label="日期" prop="日期" width="120" />
+				<el-table-column align="left" label="开始时间" prop="开始时间" width="120" />
+				<el-table-column align="left" label="结束时间" prop="结束时间"  width="120"/>
+				<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="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="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="85"/> -->
+				<el-table-column align="left" label="创建人员" prop="创建人员" width="210" />
+				<el-table-column align="left" label="修改时间" prop="修改时间" width="160" />
+			  </el-table>
+			  
+			  <el-table ref="JPmultipleTable"
+						v-else
+						:show-overflow-tooltip="true"
+						@selection-change="selectionChange($event)"
+						:row-style="{ height: '20px' }" :row-class-name="totalClassName" :cell-class-name="tableDataCellClass"
+						:cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+						:header-cell-style="{ padding: '0px' }" @row-click="getUid" 
+						highlight-current-row="true" @row-dblclick="JPgytableDatadoubleClick"
+						style="width: 100%;height: 70vh" border tooltip-effect="dark" :data="JPgytableData" row-key="ID" >
+					<el-table-column type="selection" width="55" />
+					<!-- <el-table-column fixed align="left" label="工单编号" prop="工单编号"  width="130"/> -->
+					<el-table-column  align="left" fixed label="产品名称" prop="产品名称"  width="300"/>
+					  <el-table-column  align="left" fixed label="工序" prop="工序"  width="150"/>
+					<!-- <el-table-column  align="left" label="印件号" prop="yjno"  width="115"/>
+					<el-table-column  align="left" label="工序名称" prop="gxmc"  width="200"/> -->
+					<el-table-column  align="left" fixed label="班组" prop="bzdh"  width="70"/>
+					<el-table-column  align="left" label="计件箱数" prop="计件箱数"  width="90"/>
+					<el-table-column  align="left" label="每箱数量" prop="每箱数量"  width="90"/>
+					<el-table-column  align="left" label="日定额" prop="日定额"  width="80"/>
+					<el-table-column  align="left" label="流程" sortable prop="num"  width="80"/>
+					<el-table-column  align="left" label="检验类型" prop="检验类型"  width="90"/>
+					<el-table-column  align="left" label="废品率系数" prop="废品率系数"  width="100"/>
+					<el-table-column  align="left" label="千件工价" prop="千件工价"  width="90"/>
+					<el-table-column  align="left" label="补产标准" prop="补产标准"  width="90"/>
+					<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="170"/>
+					<el-table-column  align="left" label="组员6" prop="组员6"  width="170"/>
+					<el-table-column  align="left" label="组员7" prop="组员7"  width="170"/>
+					<el-table-column  align="left" label="换膜补时" prop="换膜补时"  width="90"/>
+					<el-table-column  align="left" label="保养工时" prop="保养工时"  width="90"/>
+					<el-table-column  align="left" label="异常总工时" prop="异常总工时"  width="100"/>
+					<el-table-column  align="left" label="通电工时" prop="通电工时"  width="90"/>
+					<el-table-column  align="left" label="难度系数" prop="难度系数"  width="90"/>
+					<el-table-column  align="left" label="定额代号" prop="定额代号"  width="130"/>
+					<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="JYmultipleTable"
+						: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="chanliangVisible" title="日产量上报" fullscreen :show-close="false" style="font-size: 2vh;font-weight: bold;padding: 0px 16px 10px 16px" >
+		  <div style="font-size: 1.5vh; font-weight: bold;color: red;">
+			  <el-row :gutter="24" style="margin-top:0px; margin-bottom: 10px;">
+		  <el-col :span="4" style="margin-top:0px; margin-bottom: 10px;">
+			<el-form-item label="工单编号" prop="id" style="margin-top:0px; margin-bottom: 0px;">
+			  <el-input style="margin-top:0px; margin-bottom: 10px;" v-model="formData3.order" id="工单编号"  @keydown="ent($event, 'rate10', '工单编号', '产品名称')"  placeholder="" />
+			</el-form-item>
+		  </el-col>
+				<el-col :span="10" style="margin-top:0px; margin-bottom: 10px;">
+			<el-form-item label="产品名称" prop="id" style="margin-top:0px; margin-bottom: 10px;">
+			  <el-input v-model="formData3.product_name" id="产品名称" disabled style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '工单编号', '产品名称', '工序名称')"  placeholder="" />
+			</el-form-item>
+				</el-col>
+				<el-col :span="10" style="margin-top:0px; margin-bottom: 10px;">
+			<el-form-item label="工序名称" prop="id" style="margin-top:0px; margin-bottom: 10px;">
+			  <el-input v-model="formData3.gxmc" id="工序名称" disabled style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '产品名称', '工序名称', '印件号')"  placeholder="" />
+			</el-form-item>
+				</el-col>
+		</el-row>
+			  <el-row :gutter="24" style="margin-top:0px; margin-bottom: 10px;">
+			<el-col :span="4" style="margin-top:0px; margin-bottom: 10px;">
+			  <el-form-item label="印件号" prop="id" label-width="60" style="margin-top:0px; margin-bottom: 10px;">
+				<el-input v-model="formData3.yjno" disabled  style="margin-top:0px; margin-bottom: 10px;" id="印件号"  @keydown="ent($event, '工序名称', '印件号', '印件名称')"  placeholder="" />
+			  </el-form-item>
+			</el-col>
+					<el-col :span="10" style="margin-top:0px; margin-bottom: 10px;">
+			  <!-- <el-form-item label="印件名称" prop="id" style="margin-top:0px; margin-bottom: 10px;">
+			  <el-input v-model="formData3.yj_name" disabled  id="印件名称" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '印件号', '印件名称', '工艺名称')"  placeholder="" />
+			  </el-form-item> -->
+					</el-col>
+					<!-- <el-col :span="8" style="margin-top:0px; margin-bottom: 10px;">
+			  <el-form-item label="工艺名称" prop="id" style="margin-top:0px; margin-bottom: 10px;">
+			  <el-input v-model="formData3.gy_name" disabled  id="工艺名称" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '印件名称', '工艺名称', 'gxh')"  placeholder="" />
+			  </el-form-item>
+					</el-col> -->
+					<el-col :span="4" style="margin-top:0px; margin-bottom: 10px;">
+			  <el-form-item label="工序号" prop="id" style="margin-top:0px; margin-bottom: 10px;">
+				<el-input v-model="formData3.gxh" disabled  id="gxh" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '工艺名称', 'gxh', '日期')"  placeholder="" />
+			  </el-form-item>
+					</el-col>
+		</el-row>
+				<el-row :gutter="24" style="margin-top:0px; margin-bottom: 10px;">
+					<!-- <el-col :span="1" style="margin-top:0px; margin-bottom: 10px;">
+					</el-col> -->
+				  <el-col :span="4" style="margin-top:0px; margin-bottom: 10px;">
+					  <el-form-item label="日期" prop="" style="margin-top:0px; margin-bottom: 10px;margin-left:24px">
+						<el-date-picker
+				         v-model="formData3.日期"
+				         type="date"
+				         format="YYYY/MM/DD"
+				         value-format="YYYY-MM-DD"
+				       />
+					  </el-form-item>
+				  </el-col>
+
+
+				  <!-- <el-col :span="5" style="margin-top:0px; margin-bottom: 10px;">
+					  <el-form-item label="流程标牌" prop="id" style="margin-top:0px; margin-bottom: 10px;">
+					  <el-input v-model="formData3.流程标牌" id="流程标牌" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '日期', '流程标牌', '上机时间')"  placeholder="" />
+					  </el-form-item>
+				  </el-col> -->
+			  <el-col :span="9">
+			    <el-form-item label="上机时间:" prop="flatFeed" class="mab">
+				 <el-date-picker
+				         v-model="formData3.上机时间"
+				         type="datetime"
+				         format="YYYY/MM/DD HH:mm:ss"
+				         value-format="YYYY-MM-DD HH:mm:ss"
+				       />
+			    </el-form-item>
+			  </el-col>
+			  <el-col :span="9">
+			    <el-form-item label="下机时间:" prop="flatFeed" class="mab">
+				<el-date-picker
+				        v-model="formData3.下机时间"
+				        type="datetime"
+				        format="YYYY/MM/DD HH:mm:ss"
+				        value-format="YYYY-MM-DD HH:mm:ss"
+				      />
+			    </el-form-item>
+			  </el-col>
+				  </el-row>
+		</div>
+  <!--               <div style="margin-top: 20px;">-->
+				 <div style="margin-top: 5px;">
+					 <el-row :gutter="24" style="margin-top:0px; margin-bottom: 25px;">
+					<!-- <el-col :span="1" style="margin-top:0px; margin-bottom: 10px;"></el-col> -->
+					<el-col :span="4" style="margin-top:0px; margin-bottom: 10px;">
+					  <el-form-item label="产量" prop="" style="margin-top:0px; margin-bottom: 10px;margin-left:24px">
+					  <el-input v-model="formData3.产量" id="产量" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '下机时间', '产量', '制程废品')"   placeholder="" />
+					  </el-form-item>
+					</el-col>
+			  
+					<el-col :span="5" style="margin-top:0px; margin-bottom: 10px;">
+					  <el-form-item label="制程废品" prop="id" style="margin-top:0px; margin-bottom: 10px;">
+						<el-input v-model="formData3.制程废品" id="制程废品" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '产量', '制程废品', '制程次品')"  placeholder="" />
+					  </el-form-item>
+					</el-col>
+  
+					<!-- <el-col :span="5" style="margin-top:0px; margin-bottom: 10px;">
+					  <el-form-item label="制程次品" prop="id" style="margin-top:0px; margin-bottom: 10px;margin-left:0px">
+						<el-input v-model="formData3.制程次品" id="制程次品" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '制程废品', '制程次品', '前工序废')"  placeholder="" />
+					  </el-form-item>
+					</el-col> -->
+  
+					<!-- <el-col :span="5" style="margin-top:0px; margin-bottom: 10px;">
+					  <el-form-item label="前工序废" prop="" style="margin-top:0px; margin-bottom: 10px;">
+						<el-input v-model="formData3.前工序废" id="前工序废" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '制程次品', '前工序废', '来料异常')"  placeholder="" />
+					  </el-form-item>
+					</el-col> -->
+  
+					<el-col :span="4" style="margin-top:0px; margin-bottom: 10px;">
+					  <el-form-item label="来料数量" prop="" style="margin-top:0px; margin-bottom: 10px;">
+						<el-input v-model="formData3.来料数量" id="来料数量" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '前工序废', '来料异常', '联数')"  placeholder="" />
+					  </el-form-item>
+					</el-col>
+					<el-col :span="4" style="margin-top:0px; margin-bottom: 10px;">
+						  <el-form-item label="联数" prop="" style="margin-top:0px; margin-bottom: 10px;margin-left:24px">
+						  <el-input v-model="formData3.Gy0_ls" disabled  id="联数" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '来料异常', '联数', '墨色')"   placeholder="" />
+						  </el-form-item>
+					  </el-col>
+				  </el-row>
+  
+				  <el-row :gutter="24" style="margin-top:0px; margin-bottom: 10px;">
+					  <!-- <el-col :span="1" style="margin-top:0px; margin-bottom: 10px;"></el-col> -->
+  
+
+  
+					  <!-- <el-col :span="5" style="margin-top:0px; margin-bottom: 10px;">
+						  <el-form-item label="墨色" prop="" label-width="60" style="margin-top:0px; margin-bottom: 10px;">
+						  <el-input v-model="formData3.Gy0_ms" disabled  id="墨色" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '联数', '墨色', '装版总时长')"   placeholder="" />
+						  </el-form-item>
+					  </el-col> -->
+  
+					  <el-col :span="5" style="margin-top:0px; margin-bottom: 10px;">
+						  <el-form-item label="装版工时"  prop="id" style="margin-top:0px; margin-bottom: 10px;margin-left:-12px">
+						  <el-input v-model="formData3.装版工时"  id="装版工时" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '墨色', '装版总时长', '打样总工时')"   placeholder="" />
+						  </el-form-item>
+					  </el-col>
+					  <el-col :span="5" style="margin-top:0px; margin-bottom: 10px;">
+						<el-form-item label="保养工时"  prop="id" style="margin-top:0px; margin-bottom: 10px;margin-left:-12px">
+						  <el-input v-model="formData3.保养工时"  style="margin-top:0px; margin-bottom: 10px;" id="保养工时"  @keydown="ent($event, '装版总时长', '打样总工时', '通电工时')"  placeholder="" />
+						</el-form-item>
+					  </el-col>
+
+					  <el-col :span="5" style="margin-top:0px; margin-bottom: 10px;">
+						<el-form-item label="异常类型"  prop="id" style="margin-top:0px; margin-bottom: 10px;margin-left:-12px">
+						  <el-input v-model="formData3.异常类型"  style="margin-top:0px; margin-bottom: 10px;" id="异常类型" disabled  @keydown="ent($event, '装版总时长', '打样总工时', '通电工时')"  placeholder="" />
+						</el-form-item>
+					  </el-col>
+  
+					  <el-col :span="5" style="margin-top:0px; margin-bottom: 10px;">
+						<el-form-item label="异常工时"  prop="id" style="margin-top:0px; margin-bottom: 10px;margin-left:-12px">
+						  <el-input v-model="formData3.异常工时"  style="margin-top:0px; margin-bottom: 10px;" id="异常工时"  @keydown="ent($event, '装版总时长', '打样总工时', '通电工时')"  placeholder="" />
+						</el-form-item>
+					  </el-col>
+  
+					  <el-col :span="4" style="margin-top:0px; margin-bottom: 10px;">
+						<el-form-item label="通电工时"  prop="id" style="margin-top:0px; margin-bottom: 10px;">
+						  <el-input v-model="formData3.通电工时" style="margin-top:0px; margin-bottom: 10px;" id="通电工时"  @keydown="ent($event, '打样总工时', '通电工时', '定额代号')"  placeholder="" />
+						</el-form-item>
+					  </el-col>
+					</el-row>
+  
+					  <el-row :gutter="4" style="margin-top:0px; margin-bottom: 1vh;">
+					  <!-- <el-col :span="1" style="margin-top:0px; margin-bottom: 10px;"></el-col> -->
+					  <el-col :span="4" style="margin-top:0px; margin-bottom: 10px;margin-left:0">
+						  <el-form-item label="定额代号" prop="id" style="margin-top:0px; margin-bottom: 10px;">
+						  <el-input v-model="formData3.定额代号" disabled  id="定额代号" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '通电工时', '定额代号', '码开始行')"  placeholder="" />
+						  </el-form-item>
+					  </el-col>
+					</el-row>
+
+  
+					  <!-- <el-col :span="3" style="margin-top:0px; margin-bottom: 10px;">
+						<el-form-item label="码开始行" prop="id" style="margin-top:0px; margin-bottom: 10px;margin-left:0">
+						  <el-input v-model="formData3.码开始行" style="margin-top:0px; margin-bottom: 10px;" id="码开始行"  @keydown="ent($event, '定额代号', '码开始行', '码结束行')"  placeholder="" />
+						</el-form-item>
+						</el-col>
+						<el-col :span="3" style="margin-top:0px; margin-bottom: 10px;">
+						<el-form-item label="码结束行" prop="id" style="margin-top:0px; margin-bottom: 10px;margin-left:0">
+						  <el-input v-model="formData3.码结束行" style="margin-top:0px; margin-bottom: 10px;" id="码结束行"  @keydown="ent($event, '码开始行', '码结束行', '码包')"  placeholder="" />
+						</el-form-item>
+						</el-col>
+						<el-col :span="6" style="margin-top:0px; margin-bottom: 10px;">
+						<el-form-item label="码包" prop="id" style="margin-top:0px; margin-bottom: 10px;margin-left:105px">
+						  <el-input v-model="formData3.码包" style="margin-top:0px; margin-bottom: 10px;" id="码包"  @keydown="ent($event, '码结束行', '码包', '主电表')"  placeholder="" />
+						</el-form-item>
+						</el-col>
+						<el-col :span="5" style="margin-top:0px; margin-bottom: 10px;">
+						<el-form-item label="主电表" prop="id" style="margin-top:0px; margin-bottom: 10px;margin-left:14px">
+						  <el-input v-model="formData3.主电表" style="margin-top:0px; margin-bottom: 10px;" id="主电表"  @keydown="ent($event, '码包', '主电表', '辅电表')"  placeholder="" />
+						</el-form-item>
+						</el-col>
+						<el-col :span="4" style="margin-top:0px; margin-bottom: 10px;">
+						<el-form-item label="辅电表" prop="id" style="margin-top:0px; margin-bottom: 10px;margin-left:16px">
+						  <el-input v-model="formData3.辅电表" id="辅电表" style="margin-top:0px; margin-bottom: 10px;" @keydown="ent($event, '主电表', '辅电表', 'bzdh')"  placeholder="" />
+						</el-form-item>
+						</el-col> -->
+						<!-- <el-col :span="8">
+						  <el-form-item label="换版类型:" prop="flatFeed" class="mab">
+							<el-radio v-model="formData3.换版类型" label="装新版" @keydown="ent1($event)">装新版</el-radio>
+							<el-radio v-model="formData3.换版类型" label="装旧版" @keydown="ent1($event)">装旧版</el-radio>
+							<el-radio v-model="formData3.换版类型" label="换版" @keydown="ent1($event)" >换版</el-radio>
+						</el-form-item>
+						</el-col>
+						<el-col :span="4">
+							<el-form-item label="换版联拼数:" prop="flatFeed" class="mab">
+							<el-input v-model="formData3.换版联拼数" id="换版联拼数" @keydown="ent1($event)"  style="width: 100px;" />
+							</el-form-item>
+						</el-col> -->
+
+						<div style="display: flex;">
+			  <div style="width: 95vh;">组员及分配比例</div>
+			  <!-- <div style="width: 9vh;margin-left: 70px;">特殊组员</div> -->
+			  <!-- <div style="">拉料人员</div> -->
+		  </div>
+
+		  <el-row :gutter="10" style="margin-top: 10px;">
+          <el-col :span="2"><el-input v-model="formData3.组员1['角色']" disabled id="role1"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员2['角色']" disabled id="role2"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员3['角色']" disabled id="role3"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员4['角色']" disabled id="role4"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员5['角色']" disabled id="role5"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员6['角色']" disabled id="role6"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员7['角色']" disabled id="role7"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员8['角色']" disabled id="role8"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员9['角色']" disabled id="role9"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员10['角色']" disabled id="role10"/></el-col>
+        </el-row>
+
+		    <el-row :gutter="10" style="margin-top: 10px;">
+          <!-- <el-col :span="2"><el-input v-model="gyformdata.bzdh" id="bzdh"  @keydown="ent1($event)"/></el-col> -->
+          <el-col :span="2"><el-input v-model="formData3.组员1['编号']" id="bh1" disabled  @keyup.enter.native="GetYg($event, '1')"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员2['编号']" id="bh2" disabled  @keyup.enter.native="GetYg($event, '2')"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员3['编号']" id="bh3" disabled  @keyup.enter.native="GetYg($event, '3')"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员4['编号']" id="bh4" disabled  @keyup.enter.native="GetYg($event, '4')"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员5['编号']" id="bh5" disabled  @keyup.enter.native="GetYg($event, '5')"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员6['编号']" id="bh6" disabled  @keyup.enter.native="GetYg($event, '6')"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员7['编号']" id="bh7" disabled  @keyup.enter.native="GetYg($event, '7')"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员8['编号']" id="bh8" disabled  @keyup.enter.native="GetYg($event, '8')"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员9['编号']" id="bh9" disabled  @keyup.enter.native="GetYg($event, '9')"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员10['编号']" id="bh10" disabled @keyup.enter.native="GetYg($event, '10')"/></el-col>
+		  	</el-row>
+
+        <el-row :gutter="10" style="margin-top: 10px;">
+          <el-col :span="2"><el-input v-model="formData3.组员1['姓名']" disabled id="name1"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员2['姓名']" disabled id="name2"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员3['姓名']" disabled id="name3"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员4['姓名']" disabled id="name4"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员5['姓名']" disabled id="name5"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员6['姓名']" disabled id="name6"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员7['姓名']" disabled id="name7"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员8['姓名']" disabled id="name8"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员9['姓名']" disabled id="name9"/></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员10['姓名']"  disabled id="name10"/></el-col>
+          <!-- <el-col :span="2"><el-input v-model="gyformdata.拉料['姓名']" id="name11"/></el-col> -->
+        </el-row>
+
+        <el-row :gutter="10" style="margin-top: 10px;">
+          <el-col :span="2"><el-input v-model="formData3.组员1['比例']" disabled  id="rate1" @input="updateTotal"  @keydown="ent($event, 'bh11', 'rate1', 'rate2')"   placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员2['比例']" disabled  id="rate2" @input="updateTotal" @keydown="ent($event, 'rate1', 'rate2', 'rate3')"   placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员3['比例']" disabled  id="rate3" @input="updateTotal" @keydown="ent($event, 'rate2', 'rate3', 'rate4')"   placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员4['比例']" disabled  id="rate4" @input="updateTotal" @keydown="ent($event, 'rate3', 'rate4', 'rate5')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员5['比例']" disabled  id="rate5" @input="updateTotal" @keydown="ent($event, 'rate4', 'rate5', 'rate6')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员6['比例']" disabled  id="rate6" @input="updateTotal" @keydown="ent($event, 'rate5', 'rate6', 'rate7')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员7['比例']" disabled  id="rate7" @input="updateTotal" @keydown="ent($event, 'rate6', 'rate7', 'rate8')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员8['比例']" disabled  id="rate8" @input="updateTotal" @keydown="ent($event, 'rate7', 'rate8', 'rate9')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员9['比例']" disabled  id="rate9" @input="updateTotal" @keydown="ent($event, 'rate8', 'rate9', 'rate10')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="formData3.组员10['比例']" disabled id="rate10" @input="updateTotal" @keydown="ent($event, 'rate9', 'rate10', '工单编号')"  placeholder="" /></el-col>
+          <el-col :span="2"></el-col>
+         </el-row>
+
+				 </div>
+  
+			<!-- </el-scrollbar> -->
+			<template #footer>
+			  <div class="dialog-footer">
+			<el-button @click="closeDialog" style="height: 50px;width: 100px;font-size: 2.5vh;font-weight: bold;">关 闭</el-button>
+			<el-button type="primary" style="height: 50px;width: 100px;font-size: 2.5vh;font-weight: bold;" :disabled="isSubmitting" @click="chanliangenterDialog">提 交</el-button>
+			  </div>
+			</template>
+		  </el-dialog>
+
+		  <el-dialog v-model="gychanliangVisible" destroy-on-close
+		  width="85%" style="height: 94vh;margin-top: 1%;padding: 10px 10px 0px 10px;" :before-close="closechanliangVisible" :title="type2 === 'create' ? '新增' : '修改'">
+		  
+			  <el-row :gutter="24" style="height: 40px;">
+				<el-col :span="6">
+				  <el-form-item label="工单编号:" prop="flatFeed" class="mab" >
+				   <el-input v-model="gyformdata.工单编号" id="工单编号"  @blur="getCPMCsubmit()" @keydown="ent1($event)"   />
+				  </el-form-item>
+				</el-col>
+				<el-col :span="18">
+				  <el-form-item label="产品名称:" prop="perTenThousand" class="mab" label-width="150">
+				  <el-input v-model="gyformdata.cpmc" id="产品名称" readonly  @keydown="ent1($event)"   />
+				  </el-form-item>
+				</el-col>
+			  </el-row>
+
+			<el-row :gutter="24" style="height: 40px;">
+				<el-col :span="6">
+				  <el-form-item label="印件号:" prop="flatFeed" class="mab"label-width="70">
+				  <el-input v-model="gyformdata.yjno" id="印件号" @keydown="ent1($event)" />
+				  </el-form-item>
+				</el-col>
+				<!-- <el-col :span="18">
+				  <el-form-item label="印件名称:" prop="perTenThousand" class="mab" label-width="150">
+				  <el-input v-model="gyformdata.yjmc" id="印件名称"  @keydown="ent1($event)"   />
+				  </el-form-item>
+				</el-col> -->
+			</el-row>
+
+			<el-row :gutter="24" style="height: 40px;">
+			  <el-col :span="14">
+			    <el-form-item label="工序名称:" prop="flatFeed" class="mab">
+			    <el-input v-model="gyformdata.gxmc" id="工序名称" @focus="gxmcHandleFocus()" @blur="getGXsubmit()" @keydown="ent1($event)" style="width: 350px;"  />
+			    <el-input v-model="gyformdata.gxh" id="工序号"  :readonly=true :clearable="true" style="width: 80px;" />
+			    </el-form-item>
+			  </el-col>
+			  <!-- <el-col :span="10">
+			    <el-form-item label="工艺名称:" prop="perTenThousand" class="mab">
+			  	  <el-input v-model="gyformdata.gymc" id="工艺名称"  @keydown="ent1($event)" :readonly=true :clearable="true" style="width: 200px;" />
+			    </el-form-item>
+			  </el-col> -->
+			</el-row>
+			
+			<el-row :gutter="24" style="height: 40px;">
+			  <el-col :span="6">
+			    <el-form-item label="日期:" prop="flatFeed" class="mab" label-width="70">
+				 <el-date-picker v-model="gyformdata.rq" type="datetime" format="YYYY/MM/DD" value-format="YYYY-MM-DD" @keydown="ent1($event)"/>
+			    </el-form-item>
+			  </el-col>
+			  <el-col :span="6">
+				  <el-form-item label="机器:"  class="mab" prop="remark">
+				    <el-select v-model="gyformdata.sczl_jtbh" 
+				               id="机器"  @keydown="ent1($event)" @change="jtbh_change()"
+				               style="flex: 1; height: auto; width: 100px;">
+				      <el-option
+				          v-for="(item, index) in gdzl_MachineList_address.data"
+				          :key="index"
+				          :label="item.split('->')[0].trim()"
+				          :value="item.split('->')[0].trim()">
+				        {{ item }}
+				      </el-option>
+				    </el-select>
+				  </el-form-item>
+			  </el-col>
+			  <el-col :span="7">
+			    <el-form-item label="开工时间:" prop="flatFeed" class="mab">
+					   <el-date-picker v-model="gyformdata.starttime" type="datetime"  format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" @keydown="ent1($event)" />
+			    </el-form-item>
+			  </el-col>
+				<!-- <el-col :span="5" style="margin-top:0px; margin-bottom: 1px;">
+				<el-form-item label="流程单号" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+					<el-input v-model="gyformdata.num" id="流程单号" style="margin-top:0px; margin-bottom: 1px;"  @keydown="ent1($event)"  placeholder="" />
+				</el-form-item>
+				</el-col> -->
+			</el-row>
+
+			<el-row :gutter="24" style="height: 40px;">
+			  <el-col :span="9">
+			    <el-form-item label="上机时间:" prop="flatFeed" class="mab">
+				 <el-date-picker
+				         v-model="gyformdata.sj1"
+				         type="datetime"
+				         format="YYYY/MM/DD hh:mm:ss"
+				         value-format="YYYY-MM-DD h:m:s"
+						 @keydown="ent1($event)"
+				       />
+			    </el-form-item>
+			  </el-col>
+			  <el-col :span="9">
+			    <el-form-item label="下机时间:" prop="flatFeed" class="mab">
+				<el-date-picker
+				        v-model="gyformdata.sj2"
+				        type="datetime"
+				        format="YYYY/MM/DD hh:mm:ss"
+				        value-format="YYYY-MM-DD h:m:s"
+						@keydown="ent1($event)"
+				      />
+			    </el-form-item>
+			  </el-col>
+			</el-row>
+
+
+
+			  <el-row :gutter="24">
+			    <el-col :span="8">
+			      <el-form-item label="加工联数:" prop="flatFeed" class="mab" >
+			      <el-input v-model="gyformdata.联数" id="加工联数"  @keydown="ent1($event)"  style="width: 100px; margin-right: 30px;" />
+				  </el-form-item>
+			    </el-col>
+				<el-col :span="6">
+			      <el-form-item label="来料数量:" prop="flatFeed" class="mab">
+			  				  <el-input v-model="gyformdata.来料数量" id="来料数量" @keydown="ent1($event)"  style="width: 200px;" />
+			      </el-form-item>
+			    </el-col>
+				<el-col :span="5">
+				  <el-form-item label="产量:" prop="flatFeed" class="mab">
+				   <el-input v-model="gyformdata.产量" id="产量"  @keydown="ent1($event)" style="width: 200px;" />
+				  </el-form-item>
+				</el-col>
+				<el-col :span="5">
+				  <el-form-item label="制程废品:" prop="flatFeed" class="mab">
+				  <el-input v-model="gyformdata.制程废品" id="制程废品"  @keydown="ent1($event)"  style="width: 200px;" />
+				  </el-form-item>
+				</el-col>
+			  </el-row>
+
+
+
+			  <el-row :gutter="30" style="height: 40px;">
+			    <el-col :span="5">
+			      <el-form-item label="装版工时:" prop="flatFeed" class="mab">
+			  				  <el-input v-model="gyformdata.装版工时" id="装版总工时" @keydown="ent1($event)"  style="width: 200px;" />
+			      </el-form-item>
+			    </el-col>
+				<el-col :span="4">
+				  <el-form-item label="保养工时:" prop="flatFeed" class="mab">
+				  <el-input v-model="gyformdata.保养工时" id="保养工时"  @keydown="ent1($event)" style="width: 200px;" />
+				  </el-form-item>
+				</el-col>
+			  </el-row>
+
+			  <el-row :gutter="24">
+			    <el-col :span="8">
+			      <el-form-item label="异常类型:" prop="flatFeed" class="mab">
+			      <el-input v-model="gyformdata.异常类型"  disabled  id="异常类型"   style="width: 100px;" />
+			      </el-form-item>
+			    </el-col>
+			  	<el-col :span="5" style="margin-top:0px; margin-bottom: 1px;">
+			  	<el-form-item label="异常工时" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+			  		<el-input v-model="gyformdata.异常工时" id="异常工时" style="margin-top:0px; margin-bottom: 1px;"  @keydown="ent1($event)"  placeholder="" />
+			  	</el-form-item>
+			  	</el-col>
+			  </el-row>
+
+			  <el-row :gutter="24" style="height: 40px;">
+			    <el-col :span="8">
+			      <el-form-item label="设备运行工时:" prop="flatFeed" class="mab">
+			      <el-input v-model="gyformdata.设备运行工时"  id="设备运行工时"  @keydown="ent1($event)" style="width: 100px;" />
+			      </el-form-item>
+			    </el-col>
+			  	<el-col :span="5" style="margin-top:0px; margin-bottom: 1px;">
+			  	<el-form-item label="定额代号" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+			  		<el-input v-model="gyformdata.dedh" id="定额代号" readonly style="margin-top:0px; margin-bottom: 1px;"  @keydown="ent1($event)"  placeholder="" />
+			  	</el-form-item>
+			  	</el-col>
+
+			  </el-row>
+
+
+			  <!-- <el-row :gutter="24" style="height: 40px;"> 
+			    <el-col :span="5">
+			      <el-form-item label="码开始行:" prop="flatFeed" class="mab">
+			  		<el-input v-model="gyformdata.码开始行" id="码开始行" @keydown="ent1($event)"  style="width: 200px;" />
+			      </el-form-item>
+			    </el-col>
+			    <el-col :span="5">
+			      <el-form-item label="码结束行:" prop="flatFeed" class="mab" >
+					<el-input v-model="gyformdata.码结束行" id="码结束行"  @keydown="ent1($event)" style="width: 100px; margin-right: 30px;" />
+			  	  </el-form-item>
+			    </el-col>
+				<el-col :span="5">
+				  <el-form-item label="主电表:" prop="flatFeed" class="mab">
+				   <el-input v-model="gyformdata.主电表" id="主电表"  @keydown="ent1($event)"  style="width: 200px;" />
+				  </el-form-item>
+				</el-col>
+				<el-col :span="7">
+				  <el-form-item label="辅电表:" prop="flatFeed" class="mab">
+				  <el-input v-model="gyformdata.辅电表" id="辅电表"  @keydown="ent1($event)"  style="width: 200px;" />
+				  </el-form-item>
+				</el-col>
+			  </el-row> -->
+
+		  <div style="display: flex;">
+			  <div style="width: 95vh;">组员及分配比例</div>
+			  <!-- <div style="width: 9vh;margin-left: 70px;">特殊组员</div> -->
+			  <!-- <div style="">拉料人员</div> -->
+		  </div>
+
+		  <el-row :gutter="10" style="margin-top: 10px;">
+          <el-col :span="2"><el-input v-model="gyformdata.组员1['角色']" id="role1"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员2['角色']" id="role2"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员3['角色']" id="role3"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员4['角色']" id="role4"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员5['角色']" id="role5"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员6['角色']" id="role6"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员7['角色']" id="role7"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员8['角色']" id="role8"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员9['角色']" id="role9"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员10['角色']" id="role10"/></el-col>
+        </el-row>
+
+		    <el-row :gutter="10" style="margin-top: 10px;">
+          <!-- <el-col :span="2"><el-input v-model="gyformdata.bzdh" id="bzdh"  @keydown="ent1($event)"/></el-col> -->
+          <el-col :span="2"><el-input v-model="gyformdata.组员1['编号']" id="bh1"   @keyup.enter.native="GetYg($event, '1')"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员2['编号']" id="bh2"   @keyup.enter.native="GetYg($event, '2')"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员3['编号']" id="bh3"   @keyup.enter.native="GetYg($event, '3')"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员4['编号']" id="bh4"   @keyup.enter.native="GetYg($event, '4')"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员5['编号']" id="bh5"   @keyup.enter.native="GetYg($event, '5')"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员6['编号']" id="bh6"   @keyup.enter.native="GetYg($event, '6')"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员7['编号']" id="bh7"   @keyup.enter.native="GetYg($event, '7')"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员8['编号']" id="bh8"   @keyup.enter.native="GetYg($event, '8')"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员9['编号']" id="bh9"   @keyup.enter.native="GetYg($event, '9')"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员10['编号']" id="bh10" @keyup.enter.native="GetYg($event, '10')"/></el-col>
+		  	</el-row>
+
+        <el-row :gutter="10" style="margin-top: 10px;">
+          <el-col :span="2"><el-input v-model="gyformdata.组员1['姓名']" id="name1"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员2['姓名']" id="name2"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员3['姓名']" id="name3"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员4['姓名']" id="name4"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员5['姓名']" id="name5"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员6['姓名']" id="name6"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员7['姓名']" id="name7"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员8['姓名']" id="name8"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员9['姓名']" id="name9"/></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员10['姓名']" id="name10"/></el-col>
+          <!-- <el-col :span="2"><el-input v-model="gyformdata.拉料['姓名']" id="name11"/></el-col> -->
+        </el-row>
+
+        <el-row :gutter="10" style="margin-top: 10px;">
+          <el-col :span="2"><el-input v-model="gyformdata.组员1['比例']" id="rate1" @input="updateTotal"  @keydown="ent($event, 'bh11', 'rate1', 'rate2')"   placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员2['比例']" id="rate2" @input="updateTotal" @keydown="ent($event, 'rate1', 'rate2', 'rate3')"   placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员3['比例']" id="rate3" @input="updateTotal" @keydown="ent($event, 'rate2', 'rate3', 'rate4')"   placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员4['比例']" id="rate4" @input="updateTotal" @keydown="ent($event, 'rate3', 'rate4', 'rate5')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员5['比例']" id="rate5" @input="updateTotal" @keydown="ent($event, 'rate4', 'rate5', 'rate6')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员6['比例']" id="rate6" @input="updateTotal" @keydown="ent($event, 'rate5', 'rate6', 'rate7')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员7['比例']" id="rate7" @input="updateTotal" @keydown="ent($event, 'rate6', 'rate7', 'rate8')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员8['比例']" id="rate8" @input="updateTotal" @keydown="ent($event, 'rate7', 'rate8', 'rate9')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员9['比例']" id="rate9" @input="updateTotal" @keydown="ent($event, 'rate8', 'rate9', 'rate10')"  placeholder="" /></el-col>
+          <el-col :span="2"><el-input v-model="gyformdata.组员10['比例']" id="rate10" @input="updateTotal" @keydown="ent($event, 'rate9', 'rate10', '工单编号')"  placeholder="" /></el-col>
+          <el-col :span="2"></el-col>
+         </el-row>
+		  <template #footer>
+		    <div class="dialog-footer">	
+			  <el-button type="primary" @click="bzenterDialog">班组修改</el-button>
+		      <el-button @click="gycloseDialog">取 消</el-button>
+		      <el-button type="primary" @click="gychanliangenterDialog">确 定</el-button>
+		    </div>
+		  </template>
+		</el-dialog>
+
+<!-- 选择修改班组弹窗 -->
+		<el-dialog v-model="bzVisible" title="班组选择" width="90%" style="height: 80vh;">
+  
+  <el-table 
+    ref="BZmultipleTable"
+    highlight-current-row="true"
+    :show-overflow-tooltip="true"
+    :row-style="{ height: '20px' }"
+    :cell-style="{ padding: '0px' }" 
+    :header-row-style="{ height: '20px' }"
+    :header-cell-style="{ padding: '0px' }"
+    @row-dblclick="handleBzRowDblClick"
+    :row-class-name="rowClassStyle"
+    style="width: 100%; height: 400px" 
+    border 
+    tooltip-effect="dark" 
+    :data="FPData" 
+    row-key="ID" 
+    @selection-change="handleBzSelectionChange"
+    @row-click="handleBzRowClick"
+  >
+    <el-table-column type="selection" width="55" />
+    <el-table-column sortable align="center" label="班组" prop="bz" width="120" />
+    <el-table-column sortable align="center" label="角色" prop="role" width="120" />
+    <el-table-column sortable align="center" label="比例" prop="rate" width="120" />
+    <el-table-column sortable align="center" label="人员1" prop="bh1" width="120" />
+    <el-table-column sortable align="center" label="姓名1" prop="name1" width="120" />
+    <el-table-column sortable align="center" label="人员2" prop="bh2" width="120" />
+    <el-table-column sortable align="center" label="姓名2" prop="name2" width="120" />
+    <el-table-column sortable align="center" label="人员3" prop="bh3" width="120" />
+    <el-table-column sortable align="center" label="姓名3" prop="name3" width="120" />
+    <el-table-column sortable align="center" label="人员4" prop="bh4" width="120" />
+    <el-table-column sortable align="center" label="姓名4" prop="name4" width="120" />
+    <el-table-column sortable align="center" label="人员5" prop="bh5" width="120" />
+    <el-table-column sortable align="center" label="姓名5" prop="name5" width="120" />
+    <el-table-column sortable align="center" label="人员6" prop="bh6" width="120" />
+    <el-table-column sortable align="center" label="姓名6" prop="name6" width="120" />
+    <el-table-column sortable align="center" label="人员7" prop="bh7" width="120" />
+    <el-table-column sortable align="center" label="姓名7" prop="name7" width="120" />
+    <el-table-column sortable align="center" label="人员8" prop="bh8" width="120" />
+    <el-table-column sortable align="center" label="姓名8" prop="name8" width="120" />
+    <el-table-column sortable align="center" label="人员9" prop="bh9" width="120" />
+    <el-table-column sortable align="center" label="姓名9" prop="name9" width="120" />
+    <el-table-column sortable align="center" label="人员10" prop="bh10" width="120" />
+    <el-table-column sortable align="center" label="姓名10" prop="name10" width="120" />
+    <el-table-column sortable align="center" label="人员11" prop="bh11" width="120" />
+    <el-table-column sortable align="center" label="姓名11" prop="name11" width="120" />
+    <el-table-column sortable align="center" label="人员12" prop="bh12" width="120" />
+    <el-table-column sortable align="center" label="姓名12" prop="name12" width="120" />
+    <el-table-column sortable align="center" label="人员13" prop="bh13" width="120" />
+    <el-table-column sortable align="center" label="姓名13" prop="name13" width="120" />
+    <el-table-column sortable align="center" label="人员14" prop="bh14" width="120" />
+    <el-table-column sortable align="center" label="姓名14" prop="name14" width="120" />
+    <el-table-column sortable align="center" label="人员15" prop="bh15" width="120" />
+    <el-table-column sortable align="center" label="姓名15" prop="name15" width="120" />
+  </el-table>
+
+  <template #footer>
+    <div class="dialog-footer">
+      <el-button @click="bzVisible = false">取消</el-button>
+      <el-button type="primary" @click="handleBzConfirm">确定</el-button>
+    </div>
+  </template>
+</el-dialog>
+
+
+
+
+
+
+
+
+<!-- 角色管理弹窗 -->
+<el-dialog
+  v-model="roleDialogVisible"
+  title="糊盒角色管理"
+  destroy-on-close
+  width="1300px"
+  style="height: 65%;"
+  :before-close="closeRoleDialog">
+  <div style="margin-bottom: 10px;">
+          <el-button type="primary" class="bt" icon="edit" @click="onAddRole" title="新增">新增</el-button>
+        </div>
+  <div style="display: flex;">
+    
+    <!-- 右侧表格数据 -->
+    <div style="flex: 2; margin: 0;">
+      <el-table 
+        ref="roleTable" 
+        tooltip-effect="dark"
+        :data="roleTableData"  
+        border 
+        row-key="ID"
+        highlight-current-row="true" 
+        style="width:33%; height:400px;"
+		@row-dblclick="roleupdateCompanyFunc"
+        :row-style="{ height: '25px' }"  
+        :header-cell-style="{ padding: '0px' }"
+        :cell-style="{ padding: '0px' }" 
+        :header-row-style="{ height: '20px' }"
+        size="small"
+        :show-overflow-tooltip="true">
+		<el-table-column  sortable align="center" label="机台编号" prop="jtbh"  width="120" />
+               <el-table-column  sortable align="center" label="角色1" prop="role1"  width="120" />
+               <el-table-column  sortable align="center" label="角色2" prop="role2"  width="120" />
+               <el-table-column  sortable align="center" label="角色3" prop="role3"  width="120" />
+               <el-table-column  sortable align="center" label="角色4" prop="role4"  width="120" />
+               <el-table-column  sortable align="center" label="角色5" prop="role5"  width="120" />
+               <el-table-column  sortable align="center" label="角色6" prop="role6"  width="120" />
+               <el-table-column  sortable align="center" label="角色7" prop="role7"  width="120" />
+               <el-table-column  sortable align="center" label="角色8" prop="role8"  width="120" />
+               <el-table-column  sortable align="center" label="角色9" prop="role9"  width="120" />
+               <el-table-column  sortable align="center" label="角色10" prop="role10"  width="120" />
+               <el-table-column  sortable align="center" label="比例1" prop="rate1"  width="120" />
+               <el-table-column  sortable align="center" label="比例2" prop="rate2"  width="120" />
+               <el-table-column  sortable align="center" label="比例3" prop="rate3"  width="120" />
+               <el-table-column  sortable align="center" label="比例4" prop="rate4"  width="120" />
+               <el-table-column  sortable align="center" label="比例5" prop="rate5"  width="120" />
+               <el-table-column  sortable align="center" label="比例6" prop="rate6"  width="120" />
+               <el-table-column  sortable align="center" label="比例7" prop="rate7"  width="120" />
+               <el-table-column  sortable align="center" label="比例8" prop="rate8"  width="120" />
+               <el-table-column  sortable align="center" label="比例9" prop="rate9"  width="120" />
+               <el-table-column  sortable align="center" label="比例10" prop="rate10"  width="120" />
+               <el-table-column  sortable align="center" label="创建人员" prop="sys_id"  width="200" />
+               <el-table-column  sortable align="center" label="创建时间" prop="sys_rq"  width="200" />
+               <el-table-column sortable align="center" label="状态" prop="status" width="200">
+                <template #default="scope">
+                    <span :style="{ color: scope.row.status === 1 ? '#67C23A' : '#F56C6C' }">
+                    {{ scope.row.status === 1 ? '已设置' : '未设置' }}
+                    </span>
+                </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" width="80">
+					  <template #default="{ row, $index }">
+						<el-button @click="set_status(row,$index)" type="success" size="small" 
+								   style="font-size: 16px;padding: 0px;width: 60px;">
+						  设置
+						</el-button>
+					  </template>
+					</el-table-column>
+      </el-table>
+    </div>
+  </div>
+</el-dialog>
+
+<!-- 班组管理弹窗 -->
+<el-dialog
+  v-model="teamDialogVisible"
+  title="糊盒班组管理"
+  destroy-on-close
+  width="1300px"
+  style="height: 80%;"
+  :before-close="closeTeamDialog"
+  >
+  <div style="margin-bottom: 10px; flex-shrink: 0;">
+          <el-button type="primary" class="bt" icon="edit" @click="onAddTeam" title="新增">新增</el-button>
+        </div>
+  <div style="display: flex; height: 100%;">
+    
+    <!-- 右侧表格数据 -->
+    <div style="flex: 1; margin: 0; display: flex; flex-direction: column;">
+      <el-table 
+        ref="teamTable" 
+        tooltip-effect="dark"
+        :data="teamTableData"  
+        border 
+        row-key="ID"
+        highlight-current-row="true" 
+        style="width:28%; height:400px;"
+        :row-style="{ height: '25px' }"  
+        :header-cell-style="{ padding: '0px' }"
+        :cell-style="{ padding: '0px' }" 
+        :header-row-style="{ height: '20px' }"
+		    @row-dblclick="teamupdateCompanyFunc"
+        size="small"
+        :show-overflow-tooltip="true">
+		<el-table-column  sortable align="center" label="机台编号" prop="jtbh"  width="120" />
+             <el-table-column  sortable align="center" label="班组" prop="bz"  width="120" />
+             <el-table-column  sortable align="center" label="角色" prop="role"  width="120" />
+             <el-table-column  sortable align="center" label="比例" prop="rate"  width="120" />
+             <el-table-column  sortable align="center" label="人员1" prop="bh1"  width="120" />
+             <el-table-column  sortable align="center" label="姓名1" prop="name1"  width="120" />
+             <el-table-column  sortable align="center" label="人员2" prop="bh2"  width="120" />
+             <el-table-column  sortable align="center" label="姓名2" prop="name2"  width="120" />
+             <el-table-column  sortable align="center" label="人员3" prop="bh3"  width="120" />
+             <el-table-column  sortable align="center" label="姓名3" prop="name3"  width="120" />
+             <el-table-column  sortable align="center" label="人员4" prop="bh4"  width="120" />
+             <el-table-column  sortable align="center" label="姓名4" prop="name4"  width="120" />
+             <el-table-column  sortable align="center" label="人员5" prop="bh5"  width="120" />
+             <el-table-column  sortable align="center" label="姓名5" prop="name5"  width="120" />
+             <el-table-column  sortable align="center" label="人员6" prop="bh6"  width="120" />
+             <el-table-column  sortable align="center" label="姓名6" prop="name6"  width="120" />
+             <el-table-column  sortable align="center" label="人员7" prop="bh7"  width="120" />
+             <el-table-column  sortable align="center" label="姓名7" prop="name7"  width="120" />
+             <el-table-column  sortable align="center" label="人员8" prop="bh8"  width="120" />
+             <el-table-column  sortable align="center" label="姓名8" prop="name8"  width="120" />
+             <el-table-column  sortable align="center" label="人员9" prop="bh9"  width="120" />
+             <el-table-column  sortable align="center" label="姓名9" prop="name9"  width="120" />
+             <el-table-column  sortable align="center" label="人员10" prop="bh10"  width="120" />
+             <el-table-column  sortable align="center" label="姓名10" prop="name10"  width="120" />
+             <el-table-column  sortable align="center" label="人员11" prop="bh11"  width="120" />
+             <el-table-column  sortable align="center" label="姓名11" prop="name11"  width="120" />
+             <el-table-column  sortable align="center" label="人员12" prop="bh12"  width="120" />
+             <el-table-column  sortable align="center" label="姓名12" prop="name12"  width="120" />
+             <el-table-column  sortable align="center" label="人员13" prop="bh13"  width="120" />
+             <el-table-column  sortable align="center" label="姓名13" prop="name13"  width="120" />
+             <el-table-column  sortable align="center" label="人员14" prop="bh14"  width="120" />
+             <el-table-column  sortable align="center" label="姓名14" prop="name14"  width="120" />
+             <el-table-column  sortable align="center" label="人员15" prop="bh15"  width="120" />
+             <el-table-column  sortable align="center" label="姓名15" prop="name15"  width="120" />
+             <el-table-column  sortable align="center" label="创建人员" prop="sys_id"  width="200" />
+             <el-table-column  sortable align="center" label="创建时间" prop="sys_rq"  width="200" />
+      </el-table>
+    </div>
+  </div>
+</el-dialog>
+
+<!-- 角色新增弹窗 -->
+<el-dialog
+  v-model="addRoleVisible"
+  title="新增角色"
+  width="50%"
+  :before-close="() => { addRoleVisible = false }">
+  <el-form label-width="100px" :model="add_huheformdata">
+                <el-col :span="10">
+                    <el-form-item label="机台编号" prop="jtbh">
+                    <el-input v-model="add_huheformdata.jtbh" id="jtbh" placeholder="请输入机台编号" @keydown="add_gdzlent($event, '', 'jtbh', 'role1')" />
+                </el-form-item>
+                </el-col>
+
+                <el-row :gutter="24" class="form-row">
+				  <el-col :span="24">
+					<el-form-item label="角色:" class="mab" prop="keyOrder" label-width='110'>
+					  <el-input v-model="add_huheformdata.role1"  style="width: 80px;" id ='role1'  @keydown="add_gdzlent($event, 'jtbh', 'role1', 'role2')"/>
+					  <el-input v-model="add_huheformdata.role2" style="width: 80px;" id ='role2'  @keydown="add_gdzlent($event, 'role1', 'role2', 'role3')"/>
+					  <el-input v-model="add_huheformdata.role3"  style="width: 80px;" id ='role3'  @keydown="add_gdzlent($event, 'role2', 'role3', 'role4')"/>
+					  <el-input v-model="add_huheformdata.role4"  style="width: 80px;" id ='role4'  @keydown="add_gdzlent($event, 'role3', 'role4', 'role5')"/>
+					  <el-input v-model="add_huheformdata.role5"  style="width: 80px;" id ='role5'  @keydown="add_gdzlent($event, 'role4', 'role5', 'role6')"/>
+					  <el-input v-model="add_huheformdata.role6"  style="width: 80px;" id ='role6'  @keydown="add_gdzlent($event, 'role5', 'role6', 'role7')"/>
+					  <el-input v-model="add_huheformdata.role7"  style="width: 80px;" id ='role7'  @keydown="add_gdzlent($event, 'role6', 'role7', 'role8')"/>
+					  <el-input v-model="add_huheformdata.role8"  style="width: 80px;" id ='role8'  @keydown="add_gdzlent($event, 'role7', 'role8', 'role9')"/>
+					  <el-input v-model="add_huheformdata.role9"  style="width: 80px;" id ='role9'  @keydown="add_gdzlent($event, 'role8', 'role9', 'role10')"/>
+					  <el-input v-model="add_huheformdata.role10"  style="width: 80px;" id ='role10'  @keydown="add_gdzlent($event, 'role9', 'role10', 'rate1')"/>
+					</el-form-item>
+				  </el-col>
+				</el-row>
+
+                <el-row :gutter="24" class="form-row">
+				  <el-col :span="24">
+					<el-form-item label="比例:" class="mab" prop="keyOrder" label-width='110'>
+					  <el-input v-model="add_huheformdata.rate1"  style="width: 80px;" id ='rate1'  @keydown="add_gdzlent($event, 'cm14', 'rate1', 'rate2')"/>
+					  <el-input v-model="add_huheformdata.rate2" style="width: 80px;" id ='rate2'  @keydown="add_gdzlent($event, 'rate1', 'rate2', 'rate3')"/>
+					  <el-input v-model="add_huheformdata.rate3"  style="width: 80px;" id ='rate3'  @keydown="add_gdzlent($event, 'rate2', 'rate3', 'rate4')"/>
+					  <el-input v-model="add_huheformdata.rate4"  style="width: 80px;" id ='rate4'  @keydown="add_gdzlent($event, 'rate3', 'rate4', 'rate5')"/>
+					  <el-input v-model="add_huheformdata.rate5"  style="width: 80px;" id ='rate5'  @keydown="add_gdzlent($event, 'rate4', 'rate5', 'rate6')"/>
+					  <el-input v-model="add_huheformdata.rate6"  style="width: 80px;" id ='rate6'  @keydown="add_gdzlent($event, 'rate5', 'rate6', 'rate7')"/>
+					  <el-input v-model="add_huheformdata.rate7"  style="width: 80px;" id ='rate7'  @keydown="add_gdzlent($event, 'rate6', 'rate7', 'rate8')"/>
+					  <el-input v-model="add_huheformdata.rate8"  style="width: 80px;" id ='rate8'  @keydown="add_gdzlent($event, 'rate7', 'rate8', 'rate9')"/>
+					  <el-input v-model="add_huheformdata.rate9"  style="width: 80px;" id ='rate9'  @keydown="add_gdzlent($event, 'rate8', 'rate9', 'rate10')"/>
+					  <el-input v-model="add_huheformdata.rate10"  style="width: 80px;" id ='rate10'  @keydown="add_gdzlent($event, 'rate9', 'rate10', 'rate1')"/>
+					</el-form-item>
+				  </el-col>
+				</el-row>
+
+            </el-form>
+			  <template #footer>
+				<div class="dialog-footer" style="display: flex; justify-content: flex-end; padding: 10px;">
+				  <el-button type="primary" @click="add_huhecloseDialog">取消</el-button>
+				  <el-button type="primary" @click="add_huheenterDialog">确定</el-button>
+				</div>
+			  </template>
+</el-dialog>
+
+<el-dialog
+			  v-model="updata_huhedialogFormVisible"
+			  :before-close="updata_huhecloseDialog"
+			  style="width: 73%; max-height: 80%; overflow-y: auto; margin-top: 4%;"
+			  :title="'修改糊盒角色'"
+			  destroy-on-close>
+              <el-form label-width="100px" :model="updata_huheformdata">
+                <el-col :span="10">
+                    <el-form-item label="机台编号" prop="jtbh">
+                    <el-input v-model="updata_huheformdata.jtbh" id="jtbh" placeholder="请输入机台编号" @keydown="add_gdzlent($event, '', 'jtbh', 'role1')" />
+                </el-form-item>
+                </el-col>
+
+                <el-row :gutter="24" class="form-row">
+				  <el-col :span="24">
+					<el-form-item label="角色:" class="mab" prop="keyOrder" label-width='110'>
+					  <el-input v-model="updata_huheformdata.role1"  style="width: 80px;" id ='role1'  @keydown="add_gdzlent($event, 'jtbh', 'role1', 'role2')"/>
+					  <el-input v-model="updata_huheformdata.role2" style="width: 80px;" id ='role2'  @keydown="add_gdzlent($event, 'role1', 'role2', 'role3')"/>
+					  <el-input v-model="updata_huheformdata.role3"  style="width: 80px;" id ='role3'  @keydown="add_gdzlent($event, 'role2', 'role3', 'role4')"/>
+					  <el-input v-model="updata_huheformdata.role4"  style="width: 80px;" id ='role4'  @keydown="add_gdzlent($event, 'role3', 'role4', 'role5')"/>
+					  <el-input v-model="updata_huheformdata.role5"  style="width: 80px;" id ='role5'  @keydown="add_gdzlent($event, 'role4', 'role5', 'role6')"/>
+					  <el-input v-model="updata_huheformdata.role6"  style="width: 80px;" id ='role6'  @keydown="add_gdzlent($event, 'role5', 'role6', 'role7')"/>
+					  <el-input v-model="updata_huheformdata.role7"  style="width: 80px;" id ='role7'  @keydown="add_gdzlent($event, 'role6', 'role7', 'role8')"/>
+					  <el-input v-model="updata_huheformdata.role8"  style="width: 80px;" id ='role8'  @keydown="add_gdzlent($event, 'role7', 'role8', 'role9')"/>
+					  <el-input v-model="updata_huheformdata.role9"  style="width: 80px;" id ='role9'  @keydown="add_gdzlent($event, 'role8', 'role9', 'role10')"/>
+					  <el-input v-model="updata_huheformdata.role10"  style="width: 80px;" id ='role10'  @keydown="add_gdzlent($event, 'role9', 'role10', 'rate1')"/>
+					</el-form-item>
+				  </el-col>
+				</el-row>
+
+                <el-row :gutter="24" class="form-row">
+				  <el-col :span="24">
+					<el-form-item label="比例:" class="mab" prop="keyOrder" label-width='110'>
+					  <el-input v-model="updata_huheformdata.rate1"  style="width: 80px;" id ='rate1'  @keydown="add_gdzlent($event, 'cm14', 'rate1', 'rate2')"/>
+					  <el-input v-model="updata_huheformdata.rate2" style="width: 80px;" id ='rate2'  @keydown="add_gdzlent($event, 'rate1', 'rate2', 'rate3')"/>
+					  <el-input v-model="updata_huheformdata.rate3"  style="width: 80px;" id ='rate3'  @keydown="add_gdzlent($event, 'rate2', 'rate3', 'rate4')"/>
+					  <el-input v-model="updata_huheformdata.rate4"  style="width: 80px;" id ='rate4'  @keydown="add_gdzlent($event, 'rate3', 'rate4', 'rate5')"/>
+					  <el-input v-model="updata_huheformdata.rate5"  style="width: 80px;" id ='rate5'  @keydown="add_gdzlent($event, 'rate4', 'rate5', 'rate6')"/>
+					  <el-input v-model="updata_huheformdata.rate6"  style="width: 80px;" id ='rate6'  @keydown="add_gdzlent($event, 'rate5', 'rate6', 'rate7')"/>
+					  <el-input v-model="updata_huheformdata.rate7"  style="width: 80px;" id ='rate7'  @keydown="add_gdzlent($event, 'rate6', 'rate7', 'rate8')"/>
+					  <el-input v-model="updata_huheformdata.rate8"  style="width: 80px;" id ='rate8'  @keydown="add_gdzlent($event, 'rate7', 'rate8', 'rate9')"/>
+					  <el-input v-model="updata_huheformdata.rate9"  style="width: 80px;" id ='rate9'  @keydown="add_gdzlent($event, 'rate8', 'rate9', 'rate10')"/>
+					  <el-input v-model="updata_huheformdata.rate10"  style="width: 80px;" id ='rate10'  @keydown="add_gdzlent($event, 'rate9', 'rate10', 'rate1')"/>
+					</el-form-item>
+				  </el-col>
+				</el-row>
+
+            </el-form>
+			  <template #footer>
+				<div class="dialog-footer" style="display: flex; justify-content: flex-end; padding: 10px;">
+				  <el-button type="primary" @click="updata_huhecloseDialog">取消</el-button>
+				  <el-button type="primary" @click="updata_huheenterDialog">确定</el-button>
+				</div>
+			  </template>
+			  
+			</el-dialog>
+            
+
+<!-- 班组新增弹窗 -->
+<el-dialog
+  v-model="changeTeamVisible"
+  width="50%"
+  :before-close="() => { changeTeamVisible = false }"
+  :title="typestatus === 'create' ? '新增糊盒班组' : '修改糊盒班组'"
+  >
+  <el-form label-width="100px" :model="change_huheformdata">
+              <el-row :gutter="24" class="form-row">
+  <el-col :span="10">
+    <el-form-item label="机台编号" prop="jtbh">
+      <el-input v-model="change_huheformdata.jtbh" id="jtbh" placeholder="请输入机台编号" @keydown="add_gdzlent($event, '', 'jtbh', 'bz')" />
+    </el-form-item>
+  </el-col>
+  <el-col :span="10">
+    <el-form-item label="班组" prop="bz">
+      <!-- 将 el-input 改为 el-select -->
+      <el-select v-model="change_huheformdata.bz" id="bz" placeholder="请选择班组" @keydown="add_gdzlent($event, 'jtbh', 'bz', 'role')">
+        <el-option
+          v-for="item in bzOptions"
+          :key="item.value"
+          :label="item.label"
+          :value="item.value">
+        </el-option>
+      </el-select>
+    </el-form-item>
+  </el-col>
+</el-row>
+<el-row :gutter="24" class="form-row">
+  <el-col :span="10">
+    <el-form-item label="角色" prop="role">
+      <!-- 将 el-input 改为 el-select -->
+      <el-select v-model="change_huheformdata.role" id="role" placeholder="请选择角色" @keydown="add_gdzlent($event, 'bz', 'role', 'rate')">
+        <el-option
+          v-for="item in roleOptions"
+          :key="item.value"
+          :label="item.label"
+          :value="item.value">
+        </el-option>
+      </el-select>
+    </el-form-item>
+  </el-col>
+  <el-col :span="10">
+    <el-form-item label="比例" prop="rate">
+      <el-input v-model="change_huheformdata.rate" id="rate" placeholder="请输入比例" @keydown="add_gdzlent($event, 'role', 'rate', 'bh1')" />
+    </el-form-item>
+  </el-col>
+</el-row>
+              
+              
+              <el-row :gutter="24" class="form-row">
+        <el-col :span="24">
+        <el-form-item label="编号:" class="mab" prop="keyOrder" label-width='110'>
+          <el-input v-model="change_huheformdata.bh1"  style="width: 80px;" id ='bh1'  @keydown="add_gdzlent($event, 'rate', 'bh1', 'bh2','1')"/>
+          <el-input v-model="change_huheformdata.bh2" style="width: 80px;" id ='bh2'  @keydown="add_gdzlent($event, 'bh1', 'bh2', 'bh3','2')"/>
+          <el-input v-model="change_huheformdata.bh3"  style="width: 80px;" id ='bh3'  @keydown="add_gdzlent($event, 'bh2', 'bh3', 'bh4','3')"/>
+          <el-input v-model="change_huheformdata.bh4"  style="width: 80px;" id ='bh4'  @keydown="add_gdzlent($event, 'bh3', 'bh4', 'bh5','4')"/>
+          <el-input v-model="change_huheformdata.bh5"  style="width: 80px;" id ='bh5'  @keydown="add_gdzlent($event, 'bh4', 'bh5', 'bh6','5')"/>
+          <el-input v-model="change_huheformdata.bh6"  style="width: 80px;" id ='bh6'  @keydown="add_gdzlent($event, 'bh5', 'bh6', 'bh7','6')"/>
+          <el-input v-model="change_huheformdata.bh7"  style="width: 80px;" id ='bh7'  @keydown="add_gdzlent($event, 'bh6', 'bh7', 'bh8','7')"/>
+          <el-input v-model="change_huheformdata.bh8"  style="width: 80px;" id ='bh8'  @keydown="add_gdzlent($event, 'bh7', 'bh8', 'bh9','8')"/>
+          <el-input v-model="change_huheformdata.bh9"  style="width: 80px;" id ='bh9'  @keydown="add_gdzlent($event, 'bh8', 'bh9', 'bh10','9')"/>
+          <el-input v-model="change_huheformdata.bh10"  style="width: 80px;" id ='bh10'  @keydown="add_gdzlent($event, 'bh9', 'bh10', 'bh11','10')"/>
+          <el-input v-model="change_huheformdata.bh11"  style="width: 80px;" id ='bh11'  @keydown="add_gdzlent($event, 'bh10', 'bh11', 'bh12','11')"/>
+          <el-input v-model="change_huheformdata.bh12"  style="width: 80px;" id ='bh12'  @keydown="add_gdzlent($event, 'bh11', 'bh12', 'bh13','12')"/>
+          <el-input v-model="change_huheformdata.bh13"  style="width: 80px;" id ='bh13'  @keydown="add_gdzlent($event, 'bh12', 'bh13', 'bh14','13')"/>
+          <el-input v-model="change_huheformdata.bh14"  style="width: 80px;" id ='bh14'  @keydown="add_gdzlent($event, 'bh13', 'bh14', 'bh15','14')"/>
+          <el-input v-model="change_huheformdata.bh15"  style="width: 80px;" id ='bh15'  @keydown="add_gdzlent($event, 'bh14', 'bh15', 'name1','15')"/>
+        </el-form-item>
+        </el-col>
+      </el-row>
+
+              <el-row :gutter="24" class="form-row">
+        <el-col :span="24">
+        <el-form-item label="人员:" class="mab" prop="keyOrder" label-width='110'>
+          <el-input v-model="change_huheformdata.name1"  style="width: 80px;" id ='name1'  @keydown="add_gdzlent($event, 'rate', 'name1', 'name2')"/>
+          <el-input v-model="change_huheformdata.name2" style="width: 80px;" id ='name2'  @keydown="add_gdzlent($event, 'name1', 'name2', 'name3')"/>
+          <el-input v-model="change_huheformdata.name3"  style="width: 80px;" id ='name3'  @keydown="add_gdzlent($event, 'name2', 'name3', 'name4')"/>
+          <el-input v-model="change_huheformdata.name4"  style="width: 80px;" id ='name4'  @keydown="add_gdzlent($event, 'name3', 'name4', 'name5')"/>
+          <el-input v-model="change_huheformdata.name5"  style="width: 80px;" id ='name5'  @keydown="add_gdzlent($event, 'name4', 'name5', 'name6')"/>
+          <el-input v-model="change_huheformdata.name6"  style="width: 80px;" id ='name6'  @keydown="add_gdzlent($event, 'name5', 'name6', 'name7')"/>
+          <el-input v-model="change_huheformdata.name7"  style="width: 80px;" id ='name7'  @keydown="add_gdzlent($event, 'name6', 'name7', 'name8')"/>
+          <el-input v-model="change_huheformdata.name8"  style="width: 80px;" id ='name8'  @keydown="add_gdzlent($event, 'name7', 'name8', 'name9')"/>
+          <el-input v-model="change_huheformdata.name9"  style="width: 80px;" id ='name9'  @keydown="add_gdzlent($event, 'name8', 'name9', 'name10')"/>
+          <el-input v-model="change_huheformdata.name10"  style="width: 80px;" id ='name10'  @keydown="add_gdzlent($event, 'name9', 'name10', 'name11')"/>
+          <el-input v-model="change_huheformdata.name11"  style="width: 80px;" id ='name11'  @keydown="add_gdzlent($event, 'name10', 'name11', 'name12')"/>
+          <el-input v-model="change_huheformdata.name12"  style="width: 80px;" id ='name12'  @keydown="add_gdzlent($event, 'name11', 'name12', 'name13')"/>
+          <el-input v-model="change_huheformdata.name13"  style="width: 80px;" id ='name13'  @keydown="add_gdzlent($event, 'name12', 'name13', 'name14')"/>
+          <el-input v-model="change_huheformdata.name14"  style="width: 80px;" id ='name14'  @keydown="add_gdzlent($event, 'name13', 'name14', 'name15')"/>
+          <el-input v-model="change_huheformdata.name15"  style="width: 80px;" id ='name15'  @keydown="add_gdzlent($event, 'name14', 'name15', 'sys_id')"/>
+        </el-form-item>
+        </el-col>
+      </el-row>
+
+      <el-row :gutter="24" class="form-row">
+    <el-col :span="10">
+      <el-form-item label="类型" prop="desc">
+        <el-select 
+          v-model="add_huheformdata.desc" 
+          id="desc" 
+          placeholder="请选择类型" 
+          @keydown="add_gdzlent($event, 'bz', 'role', 'rate')"
+          @change="handleTypeChange"
+        >
+          <el-option
+            v-for="item in lxOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+    </el-col>
+    <el-col :span="10">
+      <el-form-item label="说明" prop="ins">
+        <el-input 
+          v-model="add_huheformdata.ins" 
+          id="ins" 
+          placeholder="请输入说明" 
+          :disabled="!isBorrowEnabled"
+          @keydown="add_gdzlent($event, 'role', 'rate', 'bh1')" 
+        />
+      </el-form-item>
+    </el-col>
+  </el-row>
+             
+
+          </el-form>
+      <template #footer>
+      <div class="dialog-footer" style="display: flex; justify-content: flex-end; padding: 10px;">
+        <el-button type="primary" @click="change_huhecloseDialog">取消</el-button>
+        <el-button type="primary" @click="change_huheenterDialog">确定</el-button>
+      </div>
+      </template>
+</el-dialog>
+
+
+                    <!-- 组员及分配比例         -->
+                    <el-dialog v-model="blModel" :before-close="() => blModel = false" style="width: 20%" @keydown="selectBZRR($event)">
+            <el-form>
+              <div>
+                <el-table :data="employeeData" border :show-overflow-tooltip="true" :cell-class-name="blplanUsageCellClass" 
+				 highlight-current-row="true"
+				 ref="tableBZRR"
+				 @row-click="tablebllickHandler($event)">
+                  <el-table-column prop="员工编号" label="员工编号"></el-table-column>
+                  <el-table-column prop="ygxm" label="员工姓名"></el-table-column>
+                </el-table>
+              </div>
+            </el-form>
+          </el-dialog>
+
+  
+          </el-main>
+        </layout-content>
+        </layout>
+      </layout>
+    </div>
+  </template>
+  <script setup>
+  // 全量引入格式化工具 请按需保留
+  import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
+  import { getTab,getGluingClassLList,GetProduction,setMachineTeam,AddGluingReportData,getGluingReportDataList,getGluingReportDataDetail,getGluingReportDetailUpdate,UpdateGluingReportClass,getGluingcoleTab, getGluingcoleList,GluingReportList, getGluingcoleDetail, getGluingcoleDetaiEdit, UpdateGluingcoleStatus, 
+	saveGluingcoleDetail, AddGluingClass, UpdateGluingClass,getGluingcole} from '@/api/mes/huhejob'
+  import {
+  facilityProduction,
+  facilityWorklist,
+  facilityProcedure,
+   MachineDetailList,
+   getTimelist,
+   reportInfo,
+   getYg,
+} from '@/api/jixiaoguanli/jitairibaobiao'
+  import {ref, reactive,watch,computed} from 'vue'
+  import { useUserStore } from '@/pinia/modules/user'
+  import { exportExcelFile } from '@/utils/excel'
+  import {ElMessage} from "element-plus";
+// import { el } from 'element-plus/es/locale';
+  defineOptions({name: 'Company'})
+
+  const userStore = useUserStore()
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
+
+
+
+  const treeData=ref([])
+
+  const getTableData = async () => {
+  const response = await getTab();
+  if (response.code === 0 && response.data) {
+    const workshops = response.data; // 车间数据
+
+    // 在推送新项之前将 treeData 重置为空数组
+    treeData.value = []; // 使用 .value 访问响应式引用的值
+
+    for (const workshopName in workshops) {
+      const workshopNode = {
+        label: workshopName,
+        children: [],
+        level: 1 // 添加层级属性
+      };
+
+      const machines = workshops[workshopName]; // 车间下的机器
+
+      for (const machineName in machines) {
+         const machineNode = {
+           label: machineName,
+           children: [],
+           level: 2, // 添加层级属性
+           parentNode: workshopNode
+         };
+
+         const childrenNodes = machines[machineName].map(dateTime => {
+             const dateOnly = dateTime.split(' ')[0];
+             return {
+               label: dateOnly,
+			   machineName:machineName,
+               level: 3, // 添加层级属性
+               parentNode: machineNode
+             };
+           });
+
+        machineNode.children = childrenNodes;
+
+        workshopNode.children.push(machineNode);
+      }
+
+      treeData.value.push(workshopNode);
+    }
+  }
+};
+getTableData()
+  
+const  activName  = ref('first') 
+const DelType = ref(false)
+const AddType = ref(false)
+let CJMC=ref()
+let JTMC=ref()
+let BZMC=ref()
+let JTMCOn=ref()
+let showbutton=ref()
+let dateOn=ref()
+const nodedate=ref()
+const sbzyData = reactive([])
+const FPData = ref()
+const CLMXData = reactive([])
+const gytableData = ref([])
+const isTHJT = ref(false)
+const handleNodeClick = (nodeData,node) => {
+  // 取消所有节点的颜色
+  const allNodes = document.querySelectorAll('.treecolor .el-tree-node');
+  allNodes.forEach(node => {
+    node.querySelector('.el-tree-node__label').style.color = '';
+  });
+  // 获取点击的节点
+  const clickedNodeId = node['id'];
+  const clickedNode = document.querySelector(`.treecolor .el-tree-node[data-key="${clickedNodeId}"]`);
+  if (clickedNode) {
+    // 给当前点击的节点改变颜色
+    clickedNode.querySelector('.el-tree-node__label').style.color = 'red';
+  }
+  console.log(nodeData)
+
+  if (nodeData.level === 1) {
+		CJMC.value=node.label
+		showbutton.value=true
+		JTMCOn.value=false
+		dateOn.value=false
+		MachinelList()
+		DelType.value = false
+		AddType.value = false
+		// MachineVisible.value=true
+      } else if (nodeData.level === 2) {
+		sbzyData.length = 0;
+		FPData.value=[]
+		CLMXData.length=0;
+		JTMC=node.label.split("-")[0]
+		CJMC.value=nodeData.parentNode.label
+		JTMCOn.value=true
+		dateOn.value=false
+		showbutton.value=false
+		FacilityProduction()
+		fetchFacilityWorklist()
+    Nodemachine.value=nodeData.label.split("-")[0]
+    DelType.value = true
+    AddType.value = true
+      }
+	  else if (nodeData.level === 3) {
+		  CJMC.value=nodeData.parentNode.parentNode.label
+		  JTMC=nodeData.machineName.split("-")[0]
+		  // 等于TH开头的机台
+		//   if (/^TH.+/.test(JTMC)) {
+		// 	  isTHJT.value = true
+		// 	  JTMCOn.value=false
+		// 	  dateOn.value=true
+		// 	  FacilityInspect()
+		// 	  JPmachineDetails(JTMC, nodeData.label);
+			  
+		// 	  nodedate=node.label
+		// 	  JPgytableData.value=[]
+		// 	  showbutton.value=false
+		// 	  DelType.value = true
+		// 	  AddType.value = true
+		//   } else {
+			  isTHJT.value = false
+			  JTMCOn.value=false
+			  dateOn.value=true
+			  nodedate.value=node.label
+			  gytableData.value=[]
+			  showbutton.value=false
+			//   FacilityInspect()
+			  FacilitychanLiang()
+        DelType.value = false
+        AddType.value = false
+		//   }
+		 
+	   }
+}
+
+  
+const formData= ref({
+	工单编号:'',
+	印件编号:'',
+	工序名称:'',
+	产品名称:'',
+	sczl_bh1:'',
+	sczl_bh2:'',
+	sczl_bh3:'',
+	sczl_bh4:'',
+	sczl_bh5:'',
+	sczl_bh6:'',
+	sczl_bh7:'',
+	sczl_bh8:'',
+	sczl_bh9:'',
+	sczl_bh10:'',
+	sczl_name1:'',
+	sczl_name2:'',
+	sczl_name3:'',
+	sczl_name4:'',
+	sczl_name5:'',
+	sczl_name6:'',
+	sczl_name7:'',
+	sczl_name8:'',
+	sczl_name9:'',
+	sczl_name10:'',
+	sczl_role1:'',
+	sczl_role2:'',
+	sczl_role3:'',
+	sczl_role4:'',
+	sczl_role5:'',
+	sczl_role6:'',
+	sczl_role7:'',
+	sczl_role8:'',
+	sczl_role9:'',
+	sczl_role10:'',
+	sczl_rate1:'',
+	sczl_rate2:'',
+	sczl_rate3:'',
+	sczl_rate4:'',
+	sczl_rate5:'',
+	sczl_rate6:'',
+	sczl_rate7:'',
+	sczl_rate8:'',
+	sczl_rate9:'',
+	sczl_rate10:'',
+})
+  
+const formData3= ref({
+	  order:'',
+	  yjno:'',
+	  gxh:'',
+	  gxmc:'',
+	  product_name:'',
+	  yj_name:'',
+	  gy_name:'',
+	  sczl_jtbh:'',
+	  sczl_bzdh:'',
+	  sys_id:'',
+	  sys_rq:'',
+	  mod_rq:'',
+	  UniqId:'',
+	  sczl_bh1:'',
+	  sczl_bh2:'',
+	  sczl_bh3:'',
+	  sczl_bh4:'',
+	  sczl_bh5:'',
+	  sczl_bh6:'',
+	  sczl_bh7:'',
+	  sczl_bh8:'',
+	  sczl_bh9:'',
+	  sczl_bh10:'',
+	  sczl_bh11:'',
+	  sczl_name1:'',
+	  sczl_name2:'',
+	  sczl_name3:'',
+	  sczl_name4:'',
+	  sczl_name5:'',
+	  sczl_name6:'',
+	  sczl_name7:'',
+	  sczl_name8:'',
+	  sczl_name9:'',
+	  sczl_name10:'',
+	  sczl_name11:'',
+	  sczl_rate1:'',
+	  sczl_rate2:'',
+	  sczl_rate3:'',
+	  sczl_rate4:'',
+	  sczl_rate5:'',
+	  sczl_rate6:'',
+	  sczl_rate7:'',
+	  sczl_rate8:'',
+	  sczl_rate9:'',
+	  sczl_rate10:'',
+	  日期:'',
+	  上机时间:'',
+	  下机时间:'',
+	  产量:'',
+	  制程废品:'',
+	  制程次品:'',
+	  前工序废:'',
+	  来料异常:'',
+	  Gy0_ms:'',
+	  Gy0_ls:'',
+	  保养工时:'',
+	  装版工时:'',
+	  异常工时:'',
+	  异常类型:'',
+	  通电工时:'',
+	  定额代号:'',
+	  码开始行:'',
+	  码结束行:'',
+	  码包:'',
+	  主电表:'',
+	  辅电表:'',
+	  formattedArray:'',
+	  组员1: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员2: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员3: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员4: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员5: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员6: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员7: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员8: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员9: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员10: { 角色:'', 编号: '', 姓名: '', 比例: '' }
+  })
+
+  
+
+  
+const machineData = reactive([])
+const MachinelList = async () => {
+  const response = await MachineDetailList({workshop:CJMC.value});
+  if (response.code === 0) {
+	machineData.splice(0, machineData.length, ...response.data);
+	console.log(machineData)
+	// return require(`@/assets/${machineData.状态}.png`);
+	// MachineVisible.value=true
+  }
+}
+
+const classbz=ref([])
+//保存班组
+const Bzlist = ref([])
+//当前生产订单
+const FacilityProduction = async () => {
+	console.log('111')
+
+  const response = await GetProduction({machine:JTMC});
+  if (response.code === 0) {
+	console.log(response)
+	if(response.data===null){
+		formData.value.工单编号 = '';
+		formData.value.印件编号 = '';
+		formData.value.工序号 = '';
+		formData.value.工序名称 = '';
+		formData.value.产品名称 = '';
+		formData.value.班组Id=''
+		formData.value.machine=JTMC
+		formData.value.状态=''
+		let sczl_bhkey=''
+		let sczl_namekey=''
+	   for (let i = 0; i < 6; i++) {
+		sczl_bhkey=`sczl_bh${i+1}`
+		sczl_namekey=`sczl_name${i+1}`
+		formData.value[sczl_bhkey] = '';
+		formData.value[sczl_namekey] = '';
+	  }
+		console.log(sbzyData)
+	}else{
+			Bzlist.value=response.data.班组成员
+			formData.value.工单编号 = response.data.工单编号;
+			formData.value.印件编号 = response.data.印件号;
+			formData.value.工序号 = response.data.工序名称.substring(0,2);
+			formData.value.工序名称 = response.data.工序名称;
+			formData.value.产品名称 = response.data.产品名称;
+			formData.value.班组成员 = response.data.班组成员;
+			formData.value.班组ID=response.data.班组ID
+			formData.value.machine=JTMC
+			formData.value.状态=response.data.状态
+			formData3.value.定额代号=response.data.定额代号
+			formData3.value.开工时间=response.data.开工时间
+			formData3.value.联数=response.data.联数
+
+			let sczl_bhkey=''
+			let sczl_namekey=''
+			let sczl_rolekey=''
+			let sczl_ratekey=''
+			if (response.data.班组成员) {
+			const memberCount = Math.min(Object.keys(response.data.班组成员).length, 6);
+
+			for (let i = 0; i < 6; i++) {
+				const sczl_bhkey = `sczl_bh${i+1}`;
+				const sczl_namekey = `sczl_name${i+1}`;
+				const sczl_rolekey = `sczl_role${i+1}`;
+				const sczl_ratekey = `sczl_rate${i+1}`;
+
+			if (i < memberCount) {
+			// 有数据的位置填充新数据
+				formData.value[sczl_bhkey] = response.data.班组成员[i]['编号'];
+				formData.value[sczl_namekey] = response.data.班组成员[i]['姓名'];
+				formData.value[sczl_rolekey] = response.data.班组成员[i]['角色'];
+				formData.value[sczl_ratekey] = response.data.班组成员[i]['比例'];
+				classbz.value[i] = response.data.班组成员[i]['编号'];
+			} else {
+			// 没有数据的位置清空
+				formData.value[sczl_bhkey] = '';
+				formData.value[sczl_namekey] = '';
+				formData.value[sczl_rolekey] = '';
+				formData.value[sczl_ratekey] = '';
+				classbz.value[i] = '';
+			}
+			}
+			}
+			formData.value.class=classbz.value.join(',')
+			formData.value.JTMC=JTMC
+			const responses = await MachineDetailList({workshop:CJMC.value});
+			if(responses.code===0){
+					   responses.data.map(item=>{
+						   if(item.设备编号==JTMC){
+							   formData.value.status=item.状态
+						   }
+					   })
+			}
+	}
+  }
+  console.log(formData.value)
+  // getTableData()
+}
+
+const selectData = ref([])
+//设备工作清单
+const fetchFacilityWorklist = async () => {
+
+  const response = await facilityWorklist({machine:JTMC});
+	console.log('111')
+
+  if (response.code === 0) {
+	// 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)
+	if (res.code === 0) {
+	    selectData.value = res.data
+	}
+	// console.log('33333')
+  }
+	getGluingClassLLists(JTMC)
+
+}
+const getGluingClassLLists = async (value) => {
+	console.log('222')
+	const listRes = await getGluingClassLList({ machine: value })
+      if (listRes.code === 0) {
+		BZMC.value=listRes.data[0].bz
+        FPData.value = listRes.data
+      }
+}
+
+
+//设备作业清单单击
+const sbonclick = async(row) => {
+	console.log(row)
+	// const Procedurelist = await Procedure({ Gd_gdbh: row['工单编号|质量信息'].replace(/\|$/, '') })
+	// selectData.value = Procedurelist.data;
+	// cpcode.value=row.产品代号
+	formData.value.工单编号 = row['工单编号|质量信息'].replace(/\|$/, '')
+	formData.value.印件编号 = row['印件资料'].slice(0, 2)
+	formData.value.productCode = row.产品代号
+	formData.value.产品名称 = row.产品名称
+	formData.value.工序名称 = row.工序名称
+	// _gdbhlist.value = row['工单编号|质量信息'].split('|')[0]
+	// finishedcode.value=row.产品代号
+	// const res = await getProductData({product_code:row.产品代号});
+	// ybtableData.splice(0, ybtableData.length, ...res.data.ybData);
+	// const response = await facilityPrintDetail({ workOrder: lcd_Gd_gdbh.value,code:'',productCode:row.产品代号,page:ybpage.value,limit:ybpageSize.value });
+    // // 检查接口返回的状态码
+    // if (response.code === 0) {
+	// ybtotal.value = response.data.total
+	//  yinbanselectData.value=response.data.data
+    // }
+}
+
+// 处理班组选择变化
+const BzhandleSelectionChange = (val) => {
+  console.log('选中的值:', val);
+  
+  // 验证班组一致性
+  const bzSet = new Set(val.map(item => item.bz));
+  if (bzSet.size > 1) {
+    // 弹出报错:不能选择不同班组的数据
+    ElMessage.error('不能选择不同班组的数据!');
+    return;
+  }
+  
+  // 验证角色重复性
+  const roleSet = new Set();
+  const duplicateRoles = [];
+  
+  val.forEach(item => {
+    if (roleSet.has(item.role)) {
+      duplicateRoles.push(item.role);
+    } else {
+      roleSet.add(item.role);
+    }
+  });
+  
+  if (duplicateRoles.length > 0) {
+    // 弹出报错:不能重复选择相同角色数据
+    ElMessage.error(`不能重复选择相同角色数据!重复的角色:${duplicateRoles.join(', ')}`);
+    return;
+  }
+  
+  // 所有验证通过,更新班组Id
+  formData.value.班组Id = val.map(item => item.id).join(',');
+  console.log('最终班组Id:', formData.value.班组Id);
+};
+
+// 处理班组双击
+const bzupdateCompanyFunc = (row) => {
+  console.log('双击的班组:', row);
+	SetMachineTeams(row)
+};
+
+  //数据接口调用
+  const SetMachineTeams = async(row) => {
+	   console.log(formData.value.工单编号)
+	   console.log(row)
+	  const res = await setMachineTeam({
+		  machine: JTMC.split("#")[0],
+		  order: formData.value.工单编号,
+		  yjno: formData.value.印件编号,
+		  gy_name:formData.value.工序名称,
+		  sczl_bzdh:row.bz,
+		  status:'生产',
+		  team_id:formData.value.班组Id
+	  })
+		console.log(res)
+	  if (res.code === 0) {
+		  FacilityProduction()
+		//成功
+		  successres('切换班组成功');
+	  }
+  }
+
+  // 处理设备双击
+const sbupdateCompanyFunc = (row) => {
+  console.log('双击:', row);
+  setMachineTeams(row)
+};
+
+  //数据接口调用
+  const setMachineTeams = async(row) => {
+	   console.log(formData.value.工单编号)
+	   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:'生产',
+			team_id:formData.value.班组ID
+	  })
+		console.log(res)
+	  if (res.code === 0) {
+		  FacilityProduction()
+		//成功
+		  successres('切换工单成功');
+	  }
+  }
+
+  const isSubmitting = ref(false)
+  const onchanliang = async() => {
+	  // console.log(JTMC)
+	  //判断是否为JP 检品机器【是检品机独立页面】
+	  if (JTMC.startsWith('JP')) {
+		  // JP日产量上报开启
+		  JPchanliangVisible.value = true
+		  //获取当天日期接口
+		  getTimelistsss();
+		  //获取产量上报数据信息接口
+		  getMachineReportInfos();
+	  } else{
+		  //日产量上报弹窗开启
+		  isSubmitting.value = false
+		  ReportInfo();
+	  }
+  }
+
+    //日产量详情获取 日产量上报
+	const chanliangVisible = ref(false)
+	const ReportInfo = async () => {
+		console.log(Bzlist.value)
+	  const getTimelistss = await getTimelist();
+	  console.log(getTimelistss)
+	  console.log("获取下机时间")
+	  console.log(formData)
+	  //4.1获取报工单其他信息接口
+	  // 日产量上报上机时间
+	  const newData = {
+		order: formData.value.工单编号,
+		yjno: formData.value.印件编号,
+		gxh: formData.value.工序名称.substring(0, 2),
+		gxmc: formData.value.工序名称,
+		product_name: formData.value.产品名称,
+		// yj_name: order_info.yj_name,
+		// gy_name: order_info.gy_name,
+		日期:getTimelistss.data.date,
+		下机时间:getTimelistss.data.hours,
+		// 上机时间:formData3.value.开工时间,
+		制程废品:0,
+		来料数量:0,
+		装版工时:0,
+		异常工时:0,
+		异常类型:'',
+		保养工时:0,
+		通电工时:0,
+		Gy0_ls:formData3.value.联数,
+		// 定额代号:formData.value.定额代号,
+		// sczl_jtbh: JTMC.split("#")[0],
+		// sczl_bzdh: classInfo.sczl_bzdh,
+		// sys_id: classInfo.sys_id,
+		// sys_rq: classInfo.sys_rq,
+		// mod_rq: classInfo.mod_rq,
+		// UniqId: classInfo.UniqId,
+		// Gy0_ms:order_info.Gy0_ms,
+		// Gy0_ls:order_info.Gy0_ls,
+	  };
+	  formData3.value = { ...formData3.value, ...newData };
+	  const memberCount = Math.min(Object.keys(Bzlist.value).length, 10);
+
+for (let i = 0; i < 10; i++) {
+  const memberKey = `组员${i+1}`;
+  
+  // 初始化成员对象
+  if (!formData3.value[memberKey]) {
+    formData3.value[memberKey] = {};
+  }
+  
+  if (i < memberCount && Bzlist.value[i]) {
+    // 有数据的位置填充新数据
+    formData3.value[memberKey]['编号'] = Bzlist.value[i]['编号'] || '';
+    formData3.value[memberKey]['姓名'] = Bzlist.value[i]['姓名'] || '';
+    formData3.value[memberKey]['角色'] = Bzlist.value[i]['角色'] || '';
+    formData3.value[memberKey]['比例'] = Bzlist.value[i]['比例'] || '';
+  } else {
+    // 没有数据的位置清空
+    formData3.value[memberKey] = {
+      '编号': '',
+      '姓名': '',
+      '角色': '',
+      '比例': ''
+    };
+  }
+}
+	  chanliangVisible.value = true
+  }
+
+  // 提交日产量上报
+  const chanliangenterDialog = async () => {
+		  SubmitDailyProduction()
+		  isSubmitting.value = false
+  }
+
+  const SubmitDailyProduction = async () => {
+	  const params = {
+		sczl_jtbh: JTMC,
+		sczl_gdbh: formData3.value.order,
+		sczl_yjno: formData3.value.yjno,
+		sczl_gxh: formData3.value.gxh,
+		sczl_gxmc: formData3.value.gxmc,
+		来料数量: formData3.value.来料数量,
+		sczl_cl: formData3.value.产量,
+		sczl_zcfp: formData3.value.制程废品,
+		startTime: formData3.value.上机时间||formData3.value.开工时间,
+		endTime: formData3.value.下机时间||'',
+		sczl_rq: formData3.value.日期,
+		sczl_ls: formData3.value.Gy0_ls,
+		sczl_dedh: formData3.value.定额代号,
+		工价系数: formData3.value.工价系数||1,
+		保养工时: formData3.value.保养工时,
+		装版工时: formData3.value.装版工时,
+		异常工时: formData3.value.异常工时,
+		异常类型: formData3.value.异常类型,
+		设备运行工时: formData3.value.通电工时,
+		role: formData.value.班组ID,
+		sys_id: userStore.userInfo.nickName,
+	  }
+	  console.log(params)
+	//   return;
+	  const response = await AddGluingReportData(params);
+	console.log(response)
+	if (response.code === 0) {
+	  FacilityDetail()
+	  isSubmitting.value = true
+	  chanliangVisible.value = false
+	  ElMessage({ type: 'success', message: '提交成功' });
+  }else{
+	ElMessage({ type: 'error', message: '提交失败' });
+  }
+}
+
+// 关闭弹窗
+const closeDialog = () => {
+	  chanliangVisible.value=false
+  }
+
+
+  const FacilitychanLiang = async () => {
+  try {
+    const response = await getGluingReportDataList({
+      machine: JTMC,
+      day: nodedate.value
+    });
+    
+    console.log('原始数据:', response);
+    
+    if (response.code === 0) {
+      const processedData = processTableData(response.data);
+      gytableData.value = processedData;
+    } else {
+      console.error('API返回错误:', response.msg);
+      gytableData.value = [];
+    }
+  } catch (error) {
+    console.error('获取数据失败:', error);
+    gytableData.value = [];
+  }
+}
+
+// 专门的数据处理函数
+const processTableData = (data) => {
+  return Object.values(data).map(item => {
+    // 映射组员信息
+    mapClassMembers(item);
+    
+    // 格式化其他字段
+    formatOtherFields(item);
+    
+    return item;
+  });
+}
+
+// 组员信息映射
+const mapClassMembers = (item) => {
+  if (item.class && Array.isArray(item.class)) {
+    // 先清空现有的组员字段
+    for (let i = 1; i <= 10; i++) {
+      item[`组员${i}`] = '';
+    }
+    
+    // 重新填充组员数据
+    item.class.forEach((member, index) => {
+      if (index < 10) { // 最多10个组员
+        const memberField = `组员${index + 1}`;
+        item[memberField] = `${member.姓名} (${member.角色}) ${(parseFloat(member.比例) * 100).toFixed(1)}%`;
+      }
+    });
+  }
+  return item;
+}
+
+// 格式化其他字段
+const formatOtherFields = (item) => {
+  // 格式化数字字段
+  const numberFields = ['产量', '制程废品', '来料数量', '异常工时', '装版工时', '保养工时'];
+  numberFields.forEach(field => {
+    if (item[field] !== null && item[field] !== undefined) {
+      item[field] = Number(item[field]);
+    }
+  });
+  
+//   // 格式化时间显示(可选)
+//   if (item.修改时间) {
+//     item.修改时间 = formatDateTime(item.修改时间);
+//   }
+}
+
+const gyformdata = ref({
+  工单编号: '',
+  cpmc: '',
+  yjno: '',
+  yjmc: '',
+  gxmc: '',
+  gxh: '',
+  gymc: '',
+  rq: '',
+  starttime: '',
+  num: '',
+  sj1: '',
+  sj2: '',
+  色度数: '',
+  联数: '',
+  产量: '',
+  制程废品: '',
+  制程次品: '',
+  前工序废: '',
+  来料异常: '',
+  装版总工时: '',
+  装版工时: '',
+  打样总工时: '',
+  打样工时: '',
+  保养工时: '',
+  异常总工时: '',
+  异常类型: '',
+  异常补时: '',
+  通电工时: '',
+  dedh: '',
+  码包: '',
+  码开始行: '',
+  码结束行: '',
+  主电表: '',
+  辅电表: '',
+  bzdh: '',
+  // 初始化组员数据结构
+  组员1: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员2: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员3: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员4: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员5: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员6: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员7: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员8: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员9: { 角色:'', 编号: '', 姓名: '', 比例: '' },
+  组员10: { 角色:'', 编号: '', 姓名: '', 比例: '' }
+})
+
+const gychanliangVisible = ref(false)
+
+const gytableDatadoubleClick = async(row) => {
+  console.log('双击行数据:', row)
+  GYID.value = row.Uid
+  try {
+    const res = await getGluingReportDataDetail({id: row.Uid})
+    console.log('API响应:', res)
+    
+    if(res.code === 0 && res.data){
+      // 先重置表单数据
+      Object.assign(gyformdata.value, {
+        工单编号: '',
+        cpmc: '',
+        // ... 其他字段重置
+      })
+      
+      // 映射API数据到表单
+      const apiData = res.data
+      gyformdata.value = {
+        ...gyformdata.value, // 保留初始结构
+        ...apiData, // 覆盖API数据
+        cpmc: apiData.产品名称 || '',
+		sczl_jtbh:JTMC,
+        yjno: apiData.印件号 || '',
+        yjmc: apiData.印件名称 || '',
+        gxmc: apiData.工序名称 || '',
+        gxh: apiData.工序号 || '',
+        dedh: apiData.定额代号 || '',
+		rq: nodedate.value || '',
+        starttime: apiData.日期 || '',
+        sj1: apiData.开始时间 || '',
+		sj2: apiData.结束时间 || '',
+        联数: apiData.联数 || '',
+        产量: apiData.产量 || '',
+        制程废品: apiData.制程废品 || '',
+        异常类型: apiData.异常类型 || '',
+        保养工时: apiData.保养工时 || '',
+        装版工时: apiData.装版工时 || ''
+      }
+      
+      // 处理组员数据
+      if (apiData.class && Array.isArray(apiData.class)) {
+        apiData.class.forEach((member, index) => {
+          if (index < 10) {
+            const memberKey = `组员${index + 1}`
+            gyformdata.value[memberKey] = {
+			  角色: member.角色 || '',
+              编号: member.编号 || '',
+              姓名: member.姓名 || '',
+              比例: member.比例 || ''
+            }
+          }
+        })
+      }
+      
+      gychanliangVisible.value = true
+    } else {
+      console.error('获取数据失败:', res.msg)
+      // 可以添加用户提示
+      ElMessage.error('获取数据失败: ' + (res.msg || '未知错误'))
+    }
+  } catch (error) {
+    console.error('请求失败:', error)
+    ElMessage.error('网络请求失败,请检查网络连接')
+  }
+}
+
+
+const bzVisible = ref(false)
+const GYID = ref('')
+const BZID = ref('')
+const bzenterDialog = (row) => {
+	getGluingClassLLists(JTMC)
+	bzVisible.value = true
+}
+
+// 处理班组选择变化
+const handleBzSelectionChange = (val) => {
+  console.log('选中的值:', val);
+  
+  // 验证班组一致性
+  const bzSet = new Set(val.map(item => item.bz));
+  if (bzSet.size > 1) {
+    // 弹出报错:不能选择不同班组的数据
+    ElMessage.error('不能选择不同班组的数据!');
+    return;
+  }
+  
+  // 验证角色重复性
+  const roleSet = new Set();
+  const duplicateRoles = [];
+  
+  val.forEach(item => {
+    if (roleSet.has(item.role)) {
+      duplicateRoles.push(item.role);
+    } else {
+      roleSet.add(item.role);
+    }
+  });
+  
+  if (duplicateRoles.length > 0) {
+    // 弹出报错:不能重复选择相同角色数据
+    ElMessage.error(`不能重复选择相同角色数据!重复的角色:${duplicateRoles.join(', ')}`);
+    return;
+  }
+  
+  // 所有验证通过,更新班组Id
+  BZID.value = val.map(item => item.id).join(',');
+  console.log('最终班组Id:', BZID.value);
+};
+
+// 确认
+const handleBzConfirm = async () => {
+	const res = await UpdateGluingReportClass({
+		id: GYID.value,
+		role: BZID.value
+	})
+	if(res.code === 0){
+		ElMessage.success('切换班组成功');
+		const res = await getGluingReportDataDetail({id: GYID.value})
+    console.log('API响应:', res)
+    
+    if(res.code === 0 && res.data){
+      // 先重置表单数据
+      Object.assign(gyformdata.value, {
+        工单编号: '',
+        cpmc: '',
+        // ... 其他字段重置
+      })
+      
+      // 映射API数据到表单
+      const apiData = res.data
+      gyformdata.value = {
+        ...gyformdata.value, // 保留初始结构
+        ...apiData, // 覆盖API数据
+        cpmc: apiData.产品名称 || '',
+		sczl_jtbh:JTMC,
+        yjno: apiData.印件号 || '',
+        yjmc: apiData.印件名称 || '',
+        gxmc: apiData.工序名称 || '',
+        gxh: apiData.工序号 || '',
+        dedh: apiData.定额代号 || '',
+        starttime: apiData.日期 || '',
+        sj1: apiData.开始时间 || '',
+		sj2: apiData.结束时间 || '',
+        联数: apiData.联数 || '',
+        产量: apiData.产量 || '',
+        制程废品: apiData.制程废品 || '',
+        异常类型: apiData.异常类型 || '',
+        保养工时: apiData.保养工时 || '',
+        装版工时: apiData.装版工时 || ''
+      }
+      
+      // 处理组员数据
+      if (apiData.class && Array.isArray(apiData.class)) {
+        apiData.class.forEach((member, index) => {
+          if (index < 10) {
+            const memberKey = `组员${index + 1}`
+            gyformdata.value[memberKey] = {
+			  角色: member.角色 || '',
+              编号: member.编号 || '',
+              姓名: member.姓名 || '',
+              比例: member.比例 || ''
+            }
+          }
+        })
+      }
+		bzVisible.value = false
+	}else{
+		ElMessage.error('切换班组失败');
+	}
+};
+}
+
+
+//报工数据修改确认
+
+const gychanliangenterDialog = async(row) => {
+	console.log(gyformdata.value)
+	const params = {
+		sczl_gdbh: gyformdata.value.工单编号,
+		sczl_yjno: gyformdata.value.yjno,
+		sczl_gxh: gyformdata.value.gxh,
+		sczl_gxmc: gyformdata.value.gxmc,
+		来料数量: gyformdata.value.来料数量,
+		sczl_cl: gyformdata.value.产量,
+		sczl_zcfp: gyformdata.value.制程废品,
+		startTime: gyformdata.value.starttime,
+		endTime: gyformdata.value.sj2,
+		sczl_rq: gyformdata.value.日期,
+		sczl_ls: gyformdata.value.联数,
+		sczl_dedh: gyformdata.value.定额代号,
+		工价系数: gyformdata.value.工价系数,
+		保养工时: gyformdata.value.保养工时,
+		装版工时: gyformdata.value.装版工时,
+		异常工时: gyformdata.value.异常工时,
+		异常类型: gyformdata.value.异常类型,
+		设备运行工时: gyformdata.value.设备运行工时,
+		sczl_jtbh:gyformdata.value.sczl_jtbh,
+		id: gyformdata.value.Uid,
+	}
+	console.log(params)
+	const res = await getGluingReportDetailUpdate(params)
+	if(res.code === 0){
+		ElMessage.success('修改成功');
+		FacilitychanLiang()
+		gychanliangVisible.value = false
+	}else{
+		ElMessage.error('修改失败');
+	}
+}
+
+const gycloseDialog = () => {
+	gychanliangVisible.value = false
+}
+
+
+
+
+
+//机台下拉框
+const gdzl_MachineList_address = reactive({
+  data: []
+});
+
+
+
+
+  const zdtreeType = ref(false)
+    //点击label获取表格数据
+	function duohandleClick(table) {
+	console.log(table.props.label)
+	if(table.props.label === '设备作业清单'){
+		fetchFacilityWorklist();
+	}
+	if(table.props.label === '班组人员及分配比例'){
+		getGluingClassLLists(JTMC)
+	}
+	if(table.props.label=='当班产量明细'){
+		FacilityDetail()
+		zdtreeType.value=true
+	}else{
+		zdtreeType.value=false
+	}
+	// if(table.props.label === '检验记录'){
+	// 	  InspectionRecord()
+	// }
+  }
+
+
+    //当班产量明细
+	const FacilityDetail = async () => {
+	  const today = new Date();
+	  const year = today.getFullYear();
+	  const month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始,需要补零
+	  const day = String(today.getDate()).padStart(2, '0');
+	  const hours = String(today.getHours()).padStart(2, '0');
+	  const minutes = String(today.getMinutes()).padStart(2, '0');
+	  const seconds = String(today.getSeconds()).padStart(2, '0');
+	  const currentHour = today.getHours(); // 获取当前的小时
+	  let currentDate = `${year}-${month}-${day}`;
+	  
+	  console.log("machine--->"+JTMC)
+	  console.log("Gd_gdbh--->"+formData.value.工单编号)
+	  console.log("team--->"+BZMC.value)
+	  if (!JTMC.endsWith('#')) {
+		JTMC += '#';
+	  }
+	  const response = await GluingReportList({ machine: JTMC});
+	  console.log(response)
+	//   return;
+	  // 日产量上报上机时间
+	  if (response.code === 0) {
+		console.log(response.data.length)
+	  if(response.data.length === 0){
+		console.log("currentHour--->"+currentHour)
+		   if (currentHour < 8 || (currentHour === 8 && minutes < 30)) {
+				  // 如果当前时间早于08:30, 则设置为前一天的晚班时间20:30
+				  // 需要将日期减一天
+				  const yesterDay = new Date(today.getTime() - 86400000); // 减去一天的毫秒数
+				  const yearYesterday = yesterDay.getFullYear();
+				  const monthYesterday = String(yesterDay.getMonth() + 1).padStart(2, '0');
+				  const dayYesterday = String(yesterDay.getDate()).padStart(2, '0');
+				  formData3.value.上机时间 = `${yearYesterday}-${monthYesterday}-${dayYesterday} 20:00:00`;
+			  } else {
+				  // 如果当前时间晚于或等于08:30, 则设置为当天的白班时间08:30
+				  formData3.value.上机时间 = `${currentDate} 08:00:00`;
+			  }
+	  }else{
+		  // formData.value.上机时间 = response.data.sj1
+		formData3.value.上机时间 = currentDate.split('-')[0]+'-'+response.data[0]['生产时间段'].split('>')[1]+':00'
+	  }
+
+	  CLMXData.splice(0, CLMXData.length, ...Object.values(response.data));
+	  }
+	  
+  };
+
+
+
+
+
+  // 添加状态变量控制显示内容
+const showRoleContent = ref(true); // true显示角色,false显示班组
+
+// =========== 糊盒角色和班组相关数据和方法 ===========
+// 角色相关数据
+const roleTreeData = reactive([]);
+const roleTableData = ref([]);
+const Nodemachine = ref('');
+
+// 班组相关数据
+const teamTreeData = reactive([]);
+const teamTableData = ref([]);
+
+
+
+// // 获取角色树形数据
+// const getRoleTabdata = async () => {
+//   try {
+//     const response = await getGluingcoleTab();
+//     const transformedData = [{
+//       label: "设备列表",
+//       children: Object.entries(response.data).map(([workshopName, devices]) => ({
+//         label: workshopName,
+//         children: devices.map(item => {
+//           const [deviceId, deviceName] = item.split('-->');
+//           return {
+//             label: `${deviceId} 【${deviceName}】`,
+//             params: {
+//               device_id: deviceId.trim(),
+//               device_name: deviceName.trim(),
+//               workshop_name: workshopName
+//             }
+//           };
+//         })
+//       }))
+//     }];
+//     roleTreeData.splice(0, roleTreeData.length, ...transformedData);
+//   } catch (error) {
+//     console.error('获取角色设备数据失败:', error);
+//   }
+// };
+
+// // 获取班组树形数据(可以复用角色的树形数据获取逻辑)
+// const getTeamTabdata = async () => {
+//   try {
+//     const response = await getGluingcoleTab();
+//     const transformedData = [{
+//       label: "设备列表",
+//       children: Object.entries(response.data).map(([workshopName, devices]) => ({
+//         label: workshopName,
+//         children: devices.map(item => {
+//           const [deviceId, deviceName] = item.split('-->');
+//           return {
+//             label: `${deviceId} 【${deviceName}】`,
+//             params: {
+//               device_id: deviceId.trim(),
+//               device_name: deviceName.trim(),
+//               workshop_name: workshopName
+//             }
+//           };
+//         })
+//       }))
+//     }];
+//     teamTreeData.splice(0, teamTreeData.length, ...transformedData);
+//   } catch (error) {
+//     console.error('获取班组设备数据失败:', error);
+//   }
+// };
+
+// // 初始化数据
+// getRoleTabdata();
+// getTeamTabdata();
+
+// // 角色节点点击事件
+// const handleRoleNodeClick = async (node) => {
+//   // 重置所有节点颜色
+//   const allNodes = document.querySelectorAll('.role-tree .el-tree-node');
+//   allNodes.forEach(node => {
+//     if (node.querySelector('.el-tree-node__label')) {
+//       node.querySelector('.el-tree-node__label').style.color = '';
+//     }
+//   });
+  
+//   // 设置当前节点颜色
+//   const clickedNodeId = node['$treeNodeId'];
+//   const clickedNode = document.querySelector(`.role-tree .el-tree-node[data-key="${clickedNodeId}"]`);
+//   if (clickedNode && clickedNode.querySelector('.el-tree-node__label')) {
+//     clickedNode.querySelector('.el-tree-node__label').style.color = 'red';
+//   }
+  
+//   if (!node.children) {
+//     roleNodemachine.value = node.params.device_id;
+//     const res = await getGluingcoleList({machine: node.params.device_id});
+//     roleTableData.value = res.code === 0 ? res.data : [];
+//   }
+// };
+
+// // 班组节点点击事件
+// const handleTeamNodeClick = async (node) => {
+//   // 重置所有节点颜色
+//   const allNodes = document.querySelectorAll('.team-tree .el-tree-node');
+//   allNodes.forEach(node => {
+//     if (node.querySelector('.el-tree-node__label')) {
+//       node.querySelector('.el-tree-node__label').style.color = '';
+//     }
+//   });
+  
+//   // 设置当前节点颜色
+//   const clickedNodeId = node['$treeNodeId'];
+//   const clickedNode = document.querySelector(`.team-tree .el-tree-node[data-key="${clickedNodeId}"]`);
+//   if (clickedNode && clickedNode.querySelector('.el-tree-node__label')) {
+//     clickedNode.querySelector('.el-tree-node__label').style.color = 'red';
+//   }
+  
+//   if (!node.children) {
+//     teamNodemachine.value = node.params.device_id;
+//     const res = await getGluingClassLList({machine: node.params.device_id});
+//     teamTableData.value = res.code === 0 ? res.data : [];
+//   }
+// };
+
+
+// =========== 弹窗相关变量 ===========
+const roleDialogVisible = ref(false);
+const teamDialogVisible = ref(false);
+const addRoleVisible = ref(false);
+const addTeamVisible = ref(false);
+
+
+// =========== 弹窗控制方法 ===========
+const openRoleDialog = async () => {
+  if(Nodemachine.value){
+    const res = await getGluingcoleList({machine: Nodemachine.value});
+    roleTableData.value = res.code === 0 ? res.data : [];
+    roleDialogVisible.value = true
+    add_huheformdata.jtbh = Nodemachine.value
+  }else{
+    ElMessage.error('请先选择机台编号')
+  }
+};
+
+const closeRoleDialog = () => {
+  roleDialogVisible.value = false;
+};
+
+const openTeamDialog = async () => {
+  if(Nodemachine.value){
+  const res = await getGluingClassLList({machine: Nodemachine.value});
+    teamTableData.value = res.code === 0 ? res.data : [];
+    teamDialogVisible.value = true
+  	change_huheformdata.jtbh = Nodemachine.value
+}else{
+  ElMessage.error('请先选择机台编号')
+}
+};
+
+const closeTeamDialog = () => {
+  teamDialogVisible.value = false;
+};
+
+const onAddRole = async () => {
+    console.log('新增')
+    addRoleVisible.value = true
+    add_huheformdata.jtbh = Nodemachine.value
+ 
+};
+
+const onAddTeam = async () => {
+console.log(Nodemachine.value)
+typestatus.value = 'create'
+	changeTeamVisible.value = true
+  	change_huheformdata.jtbh = Nodemachine.value
+  getGluingcoleData();
+};
+
+
+
+
+const add_huheformdata = reactive({
+  jtbh: '',
+  role1: '',
+  role2: '',
+  role3: '',
+  role4: '',
+  role5: '',
+  role6: '',
+  role7: '',
+  role8: '',
+  role9: '',
+  role10: '',
+  rate1: '',
+  rate2: '',
+  rate3: '',
+  rate4: '',
+  rate5: '',
+  rate6: '',
+  rate7: '',
+  rate8: '',
+  rate9: '',
+  rate10: '',
+  sys_id: '',
+})
+
+
+// 关闭弹窗
+const add_huhecloseDialog = () => {
+  addRoleVisible.value = false
+}
+
+
+
+// 添加确定按钮的方法实现
+const add_huheenterDialog = async () => {
+  // 这里添加表单提交逻辑
+  try {
+        console.log(add_huheformdata)
+    // return;
+    add_huheformdata.sys_id = userStore.userInfo.nickName
+    const res = await saveGluingcoleDetail(add_huheformdata);
+
+    if (res.code === 0) {
+      ElMessage.success('新增成功');
+      addRoleVisible.value = false;
+      // 刷新数据等操作
+      getGluingcoleList({machine:add_huheformdata.jtbh}).then(res => {
+      if (res.code === 0){
+        roleTableData.value = res.data
+      }
+    })
+    }
+  } catch (error) {
+    console.error('操作失败:', error);
+    ElMessage.error('操作失败');
+  }
+}
+  
+const  updata_huhedialogFormVisible = ref(false)
+const  updata_huheformdata = reactive({
+  id: '',
+  jtbh: '',
+  role1: '',
+  role2: '',
+  role3: '',
+  role4: '',
+  role5: '',
+  role6: '',
+  role7: '',
+  role8: '',
+  role9: '',
+  role10: '',
+  rate1: '',
+  rate2: '',
+  rate3: '',
+  rate4: '',
+  rate5: '',
+  rate6: '',
+  rate7: '',
+  rate8: '',
+  rate9: '',
+  rate10: '',
+  id: '',
+})
+const roleupdateCompanyFunc = async(row) => {
+  console.log(row)
+  const getGluingcoleDetaildata = await getGluingcoleDetail({id: row.id})
+  if (getGluingcoleDetaildata.code === 0){
+    Object.assign(updata_huheformdata, getGluingcoleDetaildata.data)
+    updata_huheformdata.id = row.id
+    updata_huhedialogFormVisible.value = true
+  }
+}
+
+const updata_huheenterDialog = async () => {
+  // 这里添加表单提交逻辑
+  try {
+        console.log(updata_huheformdata)
+    // return;
+    const res = await getGluingcoleDetaiEdit(updata_huheformdata);
+
+    if (res.code === 0) {
+      ElMessage.success('更新成功');
+      updata_huhedialogFormVisible.value = false;
+      // 刷新数据等操作
+      getGluingcoleList({machine:updata_huheformdata.jtbh}).then(res => {
+      if (res.code === 0){
+        roleTableData.value = res.data
+      }
+    })
+    }
+  } catch (error) {
+    console.error('操作失败:', error);
+    ElMessage.error('操作失败');
+  }
+}
+
+ const updata_huhecloseDialog = () => {
+  updata_huhedialogFormVisible.value = false
+}
+
+
+//设置
+const set_status = async (row) => {
+  console.log(row)
+    const res = await UpdateGluingcoleStatus({jtbh: row.jtbh, id: row.id});
+    if (res.code === 0) {
+      ElMessage.success('设置成功');
+      // 刷新数据等操作
+      getGluingcoleList({machine:row.jtbh}).then(res => {
+      if (res.code === 0){
+        roleTableData.value = res.data
+      }else{
+        roleTableData.value = []
+      }
+    })
+    }
+}
+
+
+
+
+
+
+
+
+const typestatus = ref('')
+const changeTeamVisible = ref(false)
+const change_huheformdata = reactive({
+jtbh: '',
+bz: '',
+role: '',
+rate: '',
+bh1: '',
+bh2: '',
+bh3: '',
+bh4: '',
+bh5: '',
+bh6: '',
+bh7: '',
+bh8: '',
+bh9: '',
+bh10: '',
+bh11: '',
+bh12: '',
+bh13: '',
+bh14: '',
+bh15: '',
+name1: '',
+name2: '',
+name3: '',
+name4: '',
+name5: '',
+name6: '',
+name7: '',
+name8: '',
+name9: '',
+name10: '',
+name11: '',
+name12: '',
+name13: '',
+name14: '',
+name15: '',
+id: '',
+sys_id: '',
+})
+
+
+// 使用 ref 创建响应式数据
+const bzOptions = ref([
+  { label: 'A 班', value: 'A 班' },
+  { label: 'B 班', value: 'B 班' }
+])
+
+const lxOptions = ref([
+  { label: '', value: '' },
+  { label: '借调', value: '借调' },
+  { label: '实习', value: '实习' }
+])
+
+// 计算属性:判断是否为借调类型
+const isBorrowEnabled = computed(() => {
+  return add_huheformdata.desc === '借调'
+})
+
+// 类型变更处理函数
+const handleTypeChange = (value) => {
+  if (value !== '借调') {
+    add_huheformdata.ins = '' // 清空说明框
+  }
+}
+
+const roleOptions = ref([]) // 角色下拉选项
+const gluingcoleData = ref({}) // 存储接口返回的完整数据
+
+// 获取下拉框数据的方法
+const getGluingcoleData = async () => {
+  try {
+    const response = await getGluingcole({ machine: change_huheformdata.jtbh })
+    console.log(response)
+    
+    if (response.code === 0) {
+      gluingcoleData.value = response.data
+      
+      // 处理角色选项:从role1到role10中过滤掉空值
+      roleOptions.value = []
+      for (let i = 1; i <= 10; i++) {
+        const roleKey = `role${i}`
+        const roleValue = response.data[roleKey]
+        if (roleValue && roleValue.trim() !== '') {
+          roleOptions.value.push({
+            label: roleValue,
+            value: roleValue,
+            rateKey: `rate${i}` // 存储对应的比例字段名
+          })
+        }
+      }
+    }
+  } catch (error) {
+    console.error('获取班组和角色数据失败:', error)
+  }
+}
+
+// 监听角色选择变化,自动填充比例
+watch(() => change_huheformdata.role, (newRole) => {
+  if (newRole && gluingcoleData.value) {
+    // 找到选中的角色对应的选项
+    const selectedOption = roleOptions.value.find(item => item.value === newRole)
+    if (selectedOption && selectedOption.rateKey) {
+      // 设置对应的比例值
+      change_huheformdata.rate = gluingcoleData.value[selectedOption.rateKey] || ''
+    }
+  }
+})
+
+// 关闭弹窗
+const change_huhecloseDialog = () => {
+changeTeamVisible.value = false
+}
+
+
+
+// 添加确定按钮的方法实现
+const change_huheenterDialog = async () => {
+  try {
+    // 构建基础参数
+    const baseParams = {
+      jtbh: change_huheformdata.jtbh,
+      bz: change_huheformdata.bz,
+      role: change_huheformdata.role,
+      rate: change_huheformdata.rate,
+      bh1: change_huheformdata.bh1,
+      bh2: change_huheformdata.bh2,
+      bh3: change_huheformdata.bh3,
+      bh4: change_huheformdata.bh4,
+      bh5: change_huheformdata.bh5,
+      bh6: change_huheformdata.bh6,
+      bh7: change_huheformdata.bh7,
+      bh8: change_huheformdata.bh8,
+      bh9: change_huheformdata.bh9,
+      bh10: change_huheformdata.bh10,
+      bh11: change_huheformdata.bh11,
+      bh12: change_huheformdata.bh12,
+      bh13: change_huheformdata.bh13,
+      bh14: change_huheformdata.bh14,
+      bh15: change_huheformdata.bh15,
+      desc: !add_huheformdata.desc ? '' : 
+        add_huheformdata.desc === '借调' ? 
+        (add_huheformdata.ins ? `${add_huheformdata.desc}-${add_huheformdata.ins}` : add_huheformdata.desc) : 
+        add_huheformdata.desc
+    }
+
+    let res
+    let successMessage = ''
+
+    if (typestatus.value === 'create') {
+      // 新增操作
+      const createParams = {
+        ...baseParams,
+        sys_id: userStore.userInfo.nickName
+      }
+      res = await AddGluingClass(createParams)
+      successMessage = '新增成功'
+    } else {
+      // 修改操作
+      const updateParams = {
+        ...baseParams,
+        id: change_huheformdata.id  
+      }
+      res = await UpdateGluingClass(updateParams)
+      successMessage = '修改成功'
+    }
+
+    // 统一处理响应
+    if (res.code === 0) {
+      ElMessage.success(successMessage)
+      changeTeamVisible.value = false
+      // 刷新数据
+      const listRes = await getGluingClassLList({ machine: change_huheformdata.jtbh })
+      if (listRes.code === 0) {
+        teamTableData.value = listRes.data
+      }
+      resetForm()
+    } else {
+      ElMessage.error(res.msg || '操作失败')
+    }
+
+  } catch (error) {
+    console.error('操作失败:', error)
+    ElMessage.error('操作失败')
+  }
+}
+
+// 在关闭弹窗后重置表单
+const resetForm = () => {
+  Object.keys(change_huheformdata).forEach(key => {
+    change_huheformdata[key] = ''
+  })
+}
+
+
+const teamupdateCompanyFunc = async(row) => {
+console.log(row)
+typestatus.value = 'update'
+Object.assign(change_huheformdata, row)
+getGluingcoleData();
+changeTeamVisible.value = true
+// const getGluingcoleDetaildata = await getGluingcoleDetail({id: row.id})
+// if (getGluingcoleDetaildata.code === 0){
+//   Object.assign(change_huheformdata, getGluingcoleDetaildata.data)
+//   changeTeamVisible.id = row.id
+//   changeTeamVisible.value = true
+// }
+}
+
+
+
+const blModel = ref(false)
+const employeeData = ref('')
+// const bz_Special = ref('')
+const getbzyg = async (value,key) => {
+  // bz_Special.value = key
+  let bzyg=''
+  bzyg=`bh${key}`
+  let bzxm=''
+  bzxm=`name${key}`
+  const response = await getYg({sczl_bh:change_huheformdata[bzyg]});
+  if (response.code === 0) {
+    if(response.data.length === 1){
+      change_huheformdata[bzxm]= response.data[0].ygxm
+      change_huheformdata[bzyg]= response.data[0].员工编号
+    }else{
+      blModel.value = true;
+      employeeData.value = response.data // 假设响应数据是数组
+    }
+  }
+}
+
+const clicked = ref(false);
+const currentIndex = ref(0);
+const tableBZRR = ref();
+// 模拟点击某一行
+const setCurrent = (row) => {
+  setTimeout(() => {
+    tableBZRR.value?.setCurrentRow(row);
+    const { 员工编号, ygxm } = row;
+    console.log("选中行数据:", row);
+  });
+};
+// 键盘事件处理逻辑
+const selectBZRR = (event) => {
+  if (event.keyCode === 40) {
+    // 向下箭头
+    if (currentIndex.value < employeeData.value.length - 1) {
+      currentIndex.value++;
+    } else {
+      // 如果是最后一行,回到第一行
+      currentIndex.value = 0;
+    }
+  } else if (event.keyCode === 38) {
+    // 向上箭头
+    if (currentIndex.value > 0) {
+      currentIndex.value--;
+    } else {
+      // 如果是第一行,跳到最后一行
+      currentIndex.value = employeeData.value.length - 1;
+    }
+  } else if (event.keyCode === 13) {
+    // 回车键,模拟触发点击事件
+    const row = employeeData.value[currentIndex.value];
+    tablebllickHandler(row); // 手动调用行点击事件
+  }
+  //高亮当前选中的行
+  setCurrent(employeeData.value[currentIndex.value]);
+};
+
+// 表格行点击事件处理
+const tablebllickHandler = async (row, column, event) => {
+  if (clicked.value) {
+    // 如果已经点击过一次,则不再执行操作
+    return;
+  }
+  for (let i = 1; i <= 15; i++) {
+    const bhKey = `bh${i}`;
+    const nameKey = `name${i}`;
+    // 如果 code 有值,且对应的 name 没有值,则清空 code 的值
+    if (change_huheformdata[bhKey] !== '' && change_huheformdata[nameKey] === '') {
+      change_huheformdata[bhKey] = '';
+      // console.log(`清空了 ${bhKey} 的值,因为 ${nameKey} 为空`);
+    }
+    // 检查 code 是否包含字母(使用正则表达式)
+    if (/[a-zA-Z]/.test(change_huheformdata[bhKey])) {
+      change_huheformdata[bhKey] = ''; // 清空 code
+      change_huheformdata[nameKey] = ''; // 清空 name
+      // console.log(`清空了 ${bhKey} 和 ${nameKey} 的值,因为 ${bhKey} 中包含字母`);
+    }
+  }
+  let nextIndex = 1;
+  // 找到下一个需要填充的空位置
+  while (
+    change_huheformdata[`bh${nextIndex}`] !== '' &&
+    change_huheformdata[`name${nextIndex}`] !== ''
+  ) {
+    nextIndex++;
+    if (nextIndex > 15) { // 这里只处理8个输入框的情况
+      // 如果所有字段都已经填满,则不做任何事情并退出函数
+      return;
+    }
+  }
+
+    // 当前按下回车的输入框索引
+    const currentInputIndex = currentIndex.value + 1;
+    // 如果找到的空位不是当前输入框,则填充前面的空位
+    if (nextIndex !== currentInputIndex) {
+      // 填充前面空位
+      change_huheformdata[`bh${nextIndex}`] = row.员工编号;
+      change_huheformdata[`name${nextIndex}`] = row.ygxm;
+      // 检查当前输入框是否需要清空
+      if (change_huheformdata[`name${currentInputIndex}`] === '' &&change_huheformdata[`bh${currentInputIndex}`] !== '') {
+        // 如果当前输入框的 name 为空,但 bh 有值,清空当前输入框
+        change_huheformdata[`bh${currentInputIndex}`] = '';
+      }
+    } else {
+      // 如果当前输入框就是下一个空位,则直接填充到当前输入框
+      change_huheformdata[`bh${currentInputIndex}`] = row.员工编号;
+      change_huheformdata[`name${currentInputIndex}`] = row.ygxm;
+    }
+    // 弹窗关闭并防止重复点击
+    setTimeout(() => {
+      blModel.value = false; // 延迟关闭弹窗
+      clicked.value = false; // 恢复点击标志
+    }, 300);
+};
+
+
+//键盘input框跳转
+const add_gdzlent = async (event,id1,id2,id3,idx) => {
+  console.log(idx)
+if(event.keyCode === 40){
+  if(id3!=''){
+  document.getElementById(id3).focus()
+  }
+}else if (event.keyCode === 13) { // Enter 或向下箭头
+  if (id2.includes('bh')){
+    console.log('姓名')
+    getbzyg('',idx)
+  }
+  if(id3!=''){
+  document.getElementById(id3).focus()
+  }
+} else if (event.keyCode === 38) { // 向上箭头
+  if(id1!=''){
+  document.getElementById(id1).focus()
+  }
+}else if (event.keyCode === 8) { // 删除箭头
+  if(id1!='' && document.getElementById(id2).value==''){
+  document.getElementById(id1).focus()
+  }
+}else if (event.keyCode === 37) { // 向左箭头
+  if(id1!='' && document.getElementById(id2).selectionStart==0){
+  document.getElementById(id1).focus()
+  }
+}else if (event.keyCode === 39) { // 向右箭头
+  if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
+  document.getElementById(id3).focus()
+  }
+}
+}
+
+
+  
+  </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;
+  }
+  
+
+  /* 媒体查询,根据需要调整断点 */
+  @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;
+  }
+
+  
+  /* 选中某行时的背景色 */
+  :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>
+  

+ 1909 - 0
src/view/yunyin/huheguanli/huhechengpinrucang.vue

@@ -0,0 +1,1909 @@
+<template>
+  <div>
+		  
+		<!-- 左侧树形结构 -->
+		<el-container>
+		  <el-aside width="250px" class="aside-container">
+			<div class="JKWTree-tree">
+			  <h3>糊盒成品入仓管理</h3>
+			  <el-tree :data="treeData"  highlight-current="true"
+				@node-click="handleNodeClick"></el-tree>
+			</div>
+		  </el-aside>
+		  <el-container>
+
+        <el-main>
+          <!-- 按钮区域 -->
+          <div class="gva-table-box">
+            <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>
+        <!-- <el-button type="primary" class="bt" @click="scpconClick" >工单生产批次信息查询</el-button> -->
+			  
+              <!-- <div style="margin-left: auto;">			
+                <el-button type="primary" class="bt" icon="Download" @click="exportExcel">导出到Excel</el-button>
+              </div> -->
+			  
+			  
+			  
+            </el-form-item>
+            <!-- 数据展示 -->
+            <el-table ref="multipleTable" height=68vh 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">
+              <el-table-column type="selection" width="45" />
+			  <el-table-column align="left"   label="入仓类型" prop="入仓类型" width="90"/>
+              <el-table-column align="left"   label="仓库编号" prop="仓库编号" width="85"/>
+              <el-table-column align="left"   label="仓库名称" prop="仓库名称" width="110"/>
+              <el-table-column align="left" sortable  label="入仓单号" prop="jjcp_num" width="120"/>
+              <el-table-column align="left" sortable  label="工单编号" prop="jjcp_gdbh" width="105"/>
+              <el-table-column align="left"   label="印件号" prop="jjcp_yjno" width="70"/>
+              <el-table-column align="left"   label="入仓数量" prop="jjcp_sl" width="90"/>
+			  <el-table-column align="left"   label="累计入仓数量" prop="jjcp_sls" width="110"/>
+			  <el-table-column align="left"  label="订单数量" prop="订单数量" width="90"/>
+			  <el-table-column align="left"  label="完成率" prop="完成率" width="70"/>
+			  <el-table-column align="left"  label="单位" prop="jjcp_dw" width="55"/>
+			  <el-table-column align="left"  label="入仓日期" prop="jjcp_sj" width="100"/>
+			  <el-table-column align="left"  label="首末版" prop="jjcp_smb" width="68"/>
+			  <el-table-column align="left"  label="印件代号" prop="jjcp_cpdh" width="110"/>
+			  <el-table-column align="left" sortable label="印件名称" prop="jjcp_cpmc" width="120"/>
+			  <el-table-column align="left" sortable label="产品编号" prop="成品编码" width="120"/>
+			  <el-table-column align="left" sortable label="产品名称" prop="成品名称" width="120"/>
+			  <el-table-column align="left" sortable label="客户料号" prop="客户料号" width="120"/>
+			  <el-table-column align="left"  label="备注" prop="jjcp_desc" width="150"/>
+			  <el-table-column align="left"  label="客户编号" prop="客户编号" width="85"/>
+			  <el-table-column align="left"  label="客户名称" prop="Gd_客户名称" width="150"/>
+			  <el-table-column align="left"  label="最近入仓日期" prop="最近入仓日期" width="120"/>
+			  <el-table-column align="left"  label="机型备注" prop="机型备注" width="120"/>
+			  <el-table-column align="left"  label="创建用户" prop="Sys_id" width="120"/>
+			  <el-table-column align="left"  label="创建时间" prop="Sys_rq" width="140"/>
+			  <el-table-column align="left"  label="修改时间" prop="Mod_rq" width="140"/>
+			  <el-table-column align="left"  label="UNIQID" prop="UniqId" width="90"/>
+            </el-table>
+            <!-- 分页 -->
+            <div class="gva-pagination">
+                  <el-pagination
+                    @size-change="handleSizeChange"
+                    @current-change="handleCurrentChange"
+                    :current-page="page"
+                    :page-size="limit"
+                    layout="total, sizes, prev, pager, next, jumper"
+                    :total="total">
+                  </el-pagination>
+                </div>
+          </div>
+		  
+          <!-- 弹出框 -->
+          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type === 'create' ? '添加' : '详情'"
+            destroy-on-close width="800px">
+            <!-- <el-scrollbar height="500px"> -->
+            <el-form :model="formData" label-position="right" label-width="75px" ref="elFormRef" :rules="rule">
+
+              <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" style="width: 120px;" />
+			   </el-form-item>
+			 </el-col>
+			 <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="24">
+			 <el-col :span="7">
+			   <el-form-item label="单据编号" prop="id">
+				 <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="24">
+			 <el-col :span="7">
+			   <el-form-item label="工单编号" prop="id">
+				 <el-input v-model="formData.jjcp_gdbh" id="工单编号"  @keydown="ent($event, '单据编号', '工单编号', '客户料号')" :clearable="true"  style="width: 120px;"  />
+			   </el-form-item>
+			 </el-col>
+			 <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="12">
+			   <el-form-item label="订单编号" prop="name">
+					 <el-input v-model="formData.订单编号" id="订单编号" disabled :clearable="true"  style="width: 120px;"  />
+			   </el-form-item>
+			 </el-col>
+		   </el-row> 
+		   
+           <el-row :gutter="24">
+			 <el-col :span="24">
+			   <el-form-item label="印件编号" prop="id">
+				 <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-row> 
+            
+			
+			<el-row :gutter="24">
+			 <el-col :span="24">
+			   <el-form-item label="产品编号" prop="id">
+				 <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-row> 
+
+            <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"  style="width: 120px;" />
+			   </el-form-item>
+			 </el-col>
+            </el-row> 
+			  
+			  <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="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="24">
+			   <el-col :span="7">
+			     <el-form-item label="入仓数量" prop="id">
+			  	 <el-input v-model="formData.jjcp_sl" id="入仓数量"  @keydown="ent($event, '入仓时间', '入仓数量', '入仓单位')" :clearable="true" style="width: 120px;" />
+			     </el-form-item>
+			   </el-col>
+			   <el-col :span="17">
+			  	<el-form-item label="入仓单位" prop="id">
+			   <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="24">
+			   <el-col :span="7">
+			     <el-form-item label="订单数量" prop="id">
+			  	 <el-input v-model="formData.订单数量" id="订单数量" @blur="" @keydown="ent($event, '入仓单位', '订单数量', '已完工')" :clearable="true" style="width: 120px;" />
+			     </el-form-item>
+			   </el-col>
+			   <el-col :span="7">
+			  	<el-form-item label="已完工" prop="id">
+			   <el-input v-model="formData.jjcp_sls" id="已完工"  @keydown="ent($event, '订单数量', '已完工', '机型备注')" :clearable="true" style="width: 120px;" />	
+			    </el-form-item>
+			   </el-col>
+			   <el-col :span="8">
+				<el-form-item label="机型备注" prop="id">
+			   <el-input v-model="formData.机型备注" id="机型备注"  @keydown="ent($event, '已完工', '机型备注', '入仓备注')" :clearable="true"  style="width: 300px;"/>	
+			    </el-form-item>
+			   </el-col>
+			  </el-row> 
+			  
+			  <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"  />
+				   </el-form-item>
+				 </el-col>
+			  </el-row> 
+			  
+            </el-form>
+            <!-- </el-scrollbar> -->
+            <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="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>
+          </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" ref="table3" >
+			<el-table-column prop="gdyj" label="工单印件" width="560" />
+		    </el-table>
+		  </el-dialog>
+		  
+		  <el-dialog v-model="TJVisible" title="各日统计" destroy-on-close width="80%px;" style="height: 80%;" >
+			<el-row :gutter="20">
+				<el-col :span="41">
+				  <el-form-item label="关键字" prop="id">
+				  <el-input v-model="keywords" :clearable="true" placeholder="2023.12.14" />
+				  </el-form-item>
+				</el-col>
+			 </el-row> 
+		    <el-table tooltip-effect="dark"  :data="TJselectData"  row-key="ID"
+		      highlight-current-row="true" border style="width:100%"  height="300px"
+		      @row-dblclick="TJSelectClick" >
+		      <el-table-column prop="jjcp_sj" label="完工日期" width="200"  />
+			  <el-table-column prop="jjcp_gdbh" label="工单编号" width="200" />
+			  <el-table-column prop="jjcp_cpmc" 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 v-model="SMVisible" title="工单入仓进程数据统计(未完成工单)" destroy-on-close style='height: 100%;margin: 0px;' width="100%">
+        <div class="block" style="margin: 0px 0px 15px 0px ;">
+          <!-- <span class="demonstration">月份选择:</span> -->
+          <!-- <el-date-picker v-model="ExcelformData['rq']" type="month" placeholder="选择月份"style='width: 10%;'></el-date-picker> -->
+          <el-input v-model="searchInfo" placeholder="搜索产品编号或产品名称"  style="width: 180px;"></el-input>
+          <el-button type="primary" @click="dwonSubmit" style='margin-left: 10px;'>定位</el-button>
+          <el-button type="primary" class="bt" icon="download" @click="exportToExcel" >导出Excel</el-button>
+          <el-button type="primary" icon="edit" @click="pd_gxclhconClick" class="bt">工序产量核查</el-button>
+          <el-button type="primary" icon="edit" @click="pd_lcdlistonClick" class="bt">流程单查询</el-button>
+        </div>
+		    <el-table tooltip-effect="dark"  ref="tableRef" :data="SMselectData"
+            style="width: 100%;height: 80vh;"  border 
+            
+            :row-style="{ height: '0px' }"            
+            :cell-style="{ padding: '2px' }"
+            :header-row-style="{ height: '0px' }"
+            :header-cell-style="{ padding: '0px' }"
+            row-key="Yj_Gdbh" highlight-current-row="true" 
+            borderstyle="width:180%"height="100%"
+            :show-overflow-tooltip="true"
+            @row-dblclick="SMSelectClick"
+            @row-click="MBRowClick">
+          <el-table-column prop="Yj_Gdbh"       label="工单编号" width="120" />
+          <el-table-column prop="yj_Yjno"       label="印件号" width="100"  />
+          <el-table-column prop="yj_yjmc"       label="印件名称" width="500" />
+          <el-table-column prop="yj_成品数量"    label="计划交货数量" width="120" />
+          <el-table-column prop="yj_实际投料"    label="印件投料" width="120" />
+          <el-table-column prop="sczl_cls"      label="包装产量" width="110" />
+          <el-table-column prop="jjcp_sls"      label="入仓数量" width="110" />
+          <el-table-column prop="jjcp_smb"      label="是否末版" width="110" />
+          <el-table-column prop="jjcp_smb"      label="缺数" width="110" />
+          <el-table-column prop="客户料号"       label="完工" width="100" />
+          <el-table-column prop="jjcp_sj"       label="最近入仓时间" width="140" />
+		    </el-table>
+		  </el-dialog>
+
+		  <!--工序产量核查【弹窗】-->
+          <el-dialog v-model="pd_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: 20px 0 0 0">
+                  <el-input v-model="gxclhcformData['gdbh']"  @keyup.enter="gxclhcProductValue" placeholder="" />
+                </el-form-item>
+                印件选择:
+                <el-select v-model="gdwhformData.yjno" placeholder="请选择" allow-create filterable style="width: 100px; margin-right: 10px;">
+                  <el-option v-for="option in gdwhformData.yinjian" @click="ongdwhfanclick" :key="option" :label="option" :value="option" />
+                </el-select>
+                <el-input v-model="inputCpmc" readonly style="width: 50vw; margin-right: 10px;" />
+              </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>
+		  
+		  
+		  <!--流程单查询【弹窗】-->
+          <el-dialog v-model="pd_lcdlist" title="工单工序生产进程" style="width: 100%;height: 100%;margin: 0px;padding: 0px;">
+            <div style="width: 100%;height: 100%;">
+              <el-button type="" @click="pd_lcdCancel">退出</el-button>
+            </div>
+            <div style="width: 100%; height: 100%; display: flex; align-items: center;">
+              <el-form-item label="工单编号" style="margin-right: 20px; padding: 0;">
+                <el-input v-model="pd_lcdformData['gdbh']" @keyup.enter="pd_lcdProductValue"/>
+              </el-form-item>
+              <el-form-item label="印件号" style="margin-right: 5px; padding: 0;">
+                <el-input v-model="pd_lcdformData['yjno']" @keyup.enter="pd_lcdProductValue"/>
+              </el-form-item>
+              <el-form-item label="" style="margin-right: 5px; padding: 0;">
+                <el-input v-model="pd_lcdformData['code']" disabled/>
+              </el-form-item>
+              <el-form-item label="" style="margin-right: 5px; padding: 0;">
+                <el-input v-model="pd_lcdformData['name']" disabled style="width: 500px"/>
+              </el-form-item>
+            </div>
+            <div style="width: 100%; height: 70vh; display: flex;">
+              <layout>
+                <layout-sider :resize-directions="['right']" :width="240" style="margin-right: 10px;height: 70vh;">
+                  <div class="JKWTree-tree">
+                    <el-tree :data="pd_lcd_treeData" @node-click="pd_lcd_handleNodeClick" default-expand-all></el-tree>
+                  </div>
+                </layout-sider>
+                <layout-main>
+                  <!-- 这里放右侧的内容 -->
+					  <div style="display: flex; align-items: center;margin-left: 20px;">
+						<el-tag type="success" style="width: 55px; height: 40px; margin-right: 10px;"><h2>流程号</h2></el-tag>
+						<h2 style="margin: 0 20px 0 0;">绿格子图标表示“已完成”</h2>
+						<el-tag type="danger" style="width: 55px; height: 40px; margin-right: 10px;"><h2>流程号</h2></el-tag>
+						<h2 style="margin: 0;">红格子图标表示“未完成”</h2>
+					  </div>
+					  <br>
+					   <el-space wrap style="margin-left: 20px;">
+                    <!-- 右侧内容 -->
+                    <template v-for="item in processList.total_process">
+          						<el-button  class="custom-button" disabled :type="! processList.process.includes(item) ? 'danger' : 'info'" plain style="width: 50px;">{{ item }}</el-button>
+                      <!-- <el-button disabled :type="! processList.process.includes(item) ? 'danger' : 'info'" plain style="width: 50px">{{ item }}</el-button> -->
+                    </template>
+                  </el-space>
+                </layout-main>
+              </layout>
+            </div>
+          </el-dialog>
+
+          			<!--工单生产批次信息查询【弹窗】-->
+			<el-dialog v-model="scpconlist" title="工单生产批次信息查询" style="width: 100%;height: 100%;margin: 0px;padding: 0px;">
+			  <el-button type="primary"   @click="ontuicclicks" style="color: white;margin-left: 20px;"  class="bt" title="退出">退出</el-button>
+			  <div 
+			    style="
+			      width: 60%; 
+			      height: 470px; 
+			      position: fixed; 
+			      left: 25%; 
+			      padding: 20px; 
+			      border-radius: 8px; 
+			      background-color: #fff; 
+			      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);">
+			    <div style="margin-top: 10px;">
+			      <!-- 提示信息 -->
+			      <hr>
+			      <p style="font-size: 14px; color: red; margin: 10px 0;">搜索栏目为空,则从最近2周完工的工单中选择</p>
+			      <p style="font-size: 14px; color: red; margin: 10px 0;">否则,以栏目值为关键字,从工单编号、产品名称、客户名称中选择</p>
+			      <hr>
+			      
+			      <!-- 输入框和按钮 -->
+			      <div style="display: flex; align-items: center; margin-top: 10px;">
+			        <el-input v-model="searchInfolcd" placeholder="Enter回车搜索工单编号" @keydown="Enterkeysearch" id="searchInfo" style="height: 40px;flex: 1;"></el-input>
+			        <el-button type="primary" title="搜索"  icon="el-icon-search" style="width: 70px;height: 40px;font-size: 18px;"  @click="onSubmitlcd" >搜索</el-button>
+					<el-button type="primary" title="查看"  icon="el-icon-search" style="width: 110px;height: 40px;font-size: 18px;"  @click="onstatsuclick" >查看流程单</el-button>
+			      </div>
+			      
+			      <!-- 表格展示区域 -->
+			      <div class="gva-table-box" style="margin-top: 15px;">
+			        <el-table 
+						ref="multipleTable"
+						style="width: 100%; height: 30vh; verflow: auto;" 
+						:row-style="{ height: '20px' }"  :header-cell-style="{ padding: '0px' }"
+						:cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+						:data="tableDatalcd" 
+						:border="true" 
+						:tooltip-effect="'dark'"
+						row-key="ID"
+						highlight-current-row
+						@row-click="tableRowClicklcd"
+						@row-dblclick="updateCompanyFunclcd"
+						@selection-change="handleSelectionChange">
+			  		<el-table-column align="left"  label="工单编号" 	  width="115"	prop="Gd_gdbh" />
+			  		<el-table-column align="left"  label="行号" 	  width="60"	prop="行号" />
+			  		<el-table-column align="left"  label="工序名称" 	 	prop="Gd_cpmc"  />
+			          <!-- <el-table-column prop="工单" label="工单编号-行号-工序名称" align="left" sortable show-overflow-tooltipmin-width="300"/> -->
+			        </el-table>
+			      </div>
+			    </div>
+			  </div>
+			  <!-- 机台生产日报表维护弹窗 -->
+			  <el-dialog v-model="popdialog" title="机台生产日报表维护" destroy-on-close width="90%" style="height: 92%; margin-left: 5%; margin-top: 1%;">
+			    <div>
+			      <!-- 顶层布局 -->
+			      <layout>
+			        <!-- 顶部的搜索区域 -->
+			        <layout-header>
+			          <el-form ref="elSearchFormRef" class="demo-form-inline" :rules="searchRule">
+			            <!-- 添加按钮 -->
+			  		  <el-button type="primary" icon="edit" style="color: white;margin-left: 20px;"   @click="ontuicclick"  class="bt" title="退出">退出</el-button>
+			          </el-form>
+			        </layout-header>
+			  
+			        <!-- 左右布局 -->
+			        <layout style="height: calc(100% - 50px); display: flex;">
+			          <!-- 左侧树形区域 -->
+			          <layout-sider style="width: 140px; margin-right: 10px; overflow: hidden;height: 584px;">
+			            <div class="JKWTree-tree" style="height: 100%; max-height: 100vh; overflow-y: auto;">
+			              <h3></h3>
+			              <el-tree
+			                :data="treeDatalcd"
+			                node-key="num"
+			                highlight-current
+			                :props="defaultProps"
+			                @node-click="handleNodeClicklcd"
+			              />
+			            </div>
+			          </layout-sider>
+			  
+			  
+			          <!-- 右侧表格区域 -->
+			          <layout-content style="flex: 1; overflow: auto;">
+			            <el-main>
+			  			 <div style="width: 100%; font-family: Arial, sans-serif; font-size: 14px;">
+			  				 <div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
+			  				   <p style="flex: 0.4; margin: 0;">工单编号:<span style="color: red;">{{ _GetorderDetail['Gd_gdbh'] }}</span></p>
+			  				   <p style="flex: 0.3; margin: 0;">产品代号:<span style="color: red;">{{ _GetorderDetail['Gd_cpdh'] }}</span></p>
+			  				   <p style="flex: 1; margin: 0;">产品名称:<span style="color: red;">{{ _GetorderDetail['Gd_cpmc'] }}</span></p>
+			  				 </div>
+			  				 <div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
+			  				   <p style="flex: 0.4; margin: 0;">订单数量:<span style="color: red;">{{ _GetorderDetail['订单数量'] }}</span></p>
+			  				   <p style="flex: 0.3; margin: 0;">实际投料:<span style="color: red;">{{ _GetorderDetail['实际投料'] }}</span></p>
+			  				   <p style="flex: 1; margin: 0;">
+			  					 单位:<span style="color: red;">{{ _GetorderDetail['计量单位'] }}</span> 
+			  					 目标合格率:<span style="color: red;">{{ _GetorderDetail['投料率'] }}</span>
+			  				   </p>
+			  				 </div>
+			  			   </div>
+			  			  
+			  			  <el-tabs v-model="activeName" @tab-click="handleClick">
+			  					<el-tab-pane label="工艺及生产班组"  @click="showTable('工艺及生产班组')"  name="first">
+			  					  <el-table tooltip-effect="dark" :data="lcdtableData" row-key="ID"
+			  					    highlight-current-row="true"
+			  					    :row-style="{ height: '0px' }" :header-cell-style="{ padding: '0px' }"
+			  					    :cell-style="{ padding: '0px' }" :header-row-style="{ height: '0px' }"
+			  					    border :show-overflow-tooltip="true" :cell-class-name="planUsageCellClass"
+			  					    style="width: 100%;height: 56vh" ref="tablesczl_gxmc"
+			  					    @row-dblclick="gyscbzSelectClick">
+			  					    <el-table-column align="left"  label="流程单号" 	  width="81"	prop="流程单号" />
+			  					    <el-table-column align="left"  label="工序号" 	  width="68"	prop="工序号" />
+			  					    <el-table-column align="left"  label="工序名称" 	  width="240"	prop="工序名称"  />
+			  					    <el-table-column align="left"  label="生产日期" 	  width="120"	prop="生产日期"  />
+			  					    <el-table-column align="left"  label="机台编号" 	  width="81"	prop="机台编号"  />
+			  					    <el-table-column align="left"  label="班组人员01"  width="105"  :formatter="(row) => `${row.sczl_bh1 || ''} ${row.name1 || ''}`"/>
+			  					    <el-table-column align="left"  label="班组人员02"  width="105"  :formatter="(row) => `${row.sczl_bh2 || ''} ${row.name2 || ''}`"/>
+			  					    <el-table-column align="left"  label="班组人员03"  width="105"  :formatter="(row) => `${row.sczl_bh3 || ''} ${row.name3 || ''}`"/>
+			  					    <el-table-column align="left"  label="班组人员04"  width="105"  :formatter="(row) => `${row.sczl_bh4 || ''} ${row.name4 || ''}`"/>
+			  					    <el-table-column align="left"  label="班组人员05"  width="105"  :formatter="(row) => `${row.sczl_bh5 || ''} ${row.name5 || ''}`"/>
+			  					    <el-table-column align="left"  label="班组人员06"  width="105"  :formatter="(row) => `${row.sczl_bh6 || ''} ${row.name6 || ''}`"/>
+			  					    <el-table-column align="left"  label="班组人员07"  width="105"  :formatter="(row) => `${row.sczl_bh7 || ''} ${row.name7 || ''}`"/>
+			  					    <el-table-column align="left"  label="班组人员08"  width="105"  :formatter="(row) => `${row.sczl_bh8 || ''} ${row.name8 || ''}`"/>
+			  					    <el-table-column align="left"  label="班组人员09"  width="105"  :formatter="(row) => `${row.sczl_bh9 || ''} ${row.name9 || ''}`"/>
+			  					    <el-table-column align="left"  label="班组人员10"  width="105"  :formatter="(row) => `${row.sczl_bh10 || ''} ${row.name10 || ''}`"/>
+			  					  </el-table>
+			  					</el-tab-pane>
+			  					
+			  					<el-tab-pane label="制程异常记录"  @click="showTable('制程异常记录')"  name="second">
+			  					  <el-table tooltip-effect="dark" :data="zcycjltableData" row-key="ID"
+			  					    highlight-current-row="true"
+			  					    :row-style="{ height: '0px' }" :header-cell-style="{ padding: '0px' }"
+			  					    :cell-style="{ padding: '0px' }" :header-row-style="{ height: '0px' }"
+			  					    border :show-overflow-tooltip="true" :cell-class-name="planUsageCellClass"
+			  					    style="width: 100%;height: 65vh" ref="tablzcycjl_gxmc"
+			  					    @row-dblclick="zcycjlSelectClick">
+			  					    <el-table-column align="left"  label="流程单号" 	  width="100"	prop="流程单号" />
+			  					    <el-table-column align="left"  label="数量" 	  	  width="100"	prop="数量" />
+			  					    <el-table-column align="left"  label="异常备注" 	  width="400"	prop="缺陷备注"  />
+			  					    <el-table-column align="left"  label="用户" 	  	  width="160"	prop="用户"  />
+			  					  </el-table>
+			  					</el-tab-pane>
+			  
+			  			  </el-tabs>
+			            </el-main>
+			          </layout-content>
+			        </layout>
+			      </layout>
+			    </div>
+			  </el-dialog>
+			</el-dialog>
+      
+        </el-main>
+      </el-container>
+    </el-container>
+
+  </div>
+</template>
+
+<script setup>
+import {
+  finishedTab,
+  finishedTabByGdbh,
+  finishedList,
+  finishedlocate,
+  finishedInfo,
+  finishedgetCk,
+  finishedgetGd,
+  finishedgetGdsl,
+  finisheddel,
+  getDayList,
+  mbList,
+  finishedadd,
+  finishedEdit
+} from '@/api/jixiaoguanli/jitairibaobiao'
+
+// 全量引入格式化工具 请按需保留
+import * as XLSX from 'xlsx'
+import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { Search, Refresh, Download } from '@element-plus/icons-vue'
+import { ref, reactive, onMounted, onBeforeMount,nextTick } from 'vue'
+import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
+import { TRUE } from 'sass'
+import { exportExcelFile } from '@/utils/excel'
+import { useUserStore } from '@/pinia/modules/user'
+import { getOrderProcessCount,PrintDetailList,getOrderProcessLeft,getOrderProcessRight } from "@/api/yunyin/yunying";
+import { StaGetOrderList,StaGetList,StaProcessList,StaGetOrderDetail,StaProcessAnomaly,} from '@/api/mes/job'
+import { RcgetTab,RcgetList,RcgetInfo,RcAdd,RcEdit,RcDel } from '@/api/mes/huhejob'
+
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
+defineOptions({
+  name: '06-packingDocuments'
+})
+
+// 侧边栏数据请求
+const treeData = reactive([]);
+
+const getTabdata = async () => {
+    //接口调用函数
+    const response  = await RcgetTab();
+	console.log(response)
+	
+	
+	const transformedData = response.data.map(item => ({
+	      label: `${item.date.replace(/-/g, '.')}【单据数: ${item.counts}张】`,
+	      children: item.sys.map(sysItem => ({
+	        label: `${sysItem.sys_id} 【记录数: ${sysItem.count}张】`,
+	        params: {
+	          date: item.date.replace(/\./g, '-'),
+	          sys_id: sysItem.sys_id,
+	          total: sysItem.count,
+	        },
+	      })),
+	    }));
+	    treeData.splice(0, treeData.length, ...transformedData);
+
+	
+	}
+	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({
+	入仓类型: "",
+	仓库编号: "",
+	仓库名称: "",
+	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({
+})
+
+const elFormRef = ref()
+const elSearchFormRef = ref()
+
+// =========== 表格控制部分 ===========
+const tableData = reactive([])
+const detailData = reactive([
+])
+const total = ref(0)
+const page = ref(1)
+const limit = ref(50)
+const searchInfo = ref('')
+const tableRef = ref(null); // 表格的引用
+const params = {
+  type: '',
+  date: '',
+  sys_id: '',
+  gdbh: '',
+  page:page.value ,
+  limit:limit.value,
+}
+
+// 分页设置
+const handleSizeChange = (val) => {
+  limit.value = val
+  params.limit = val
+  switch (params.type) {
+    case 'getTableData':
+      getTableData()
+      break
+    case 'getLocateTable':
+      GetmachineLocate()
+      break
+    default:
+      break
+  }
+}
+
+// 页面跳转
+const handleCurrentChange = (val) => {
+  page.value = val
+  params.page = val
+  switch (params.type) {
+    case 'getTableData':
+      getTableData()
+      break
+    case 'getLocateTable':
+      GetmachineLocate()
+      break
+    default:
+      break
+  }
+}
+
+
+const ExcelformData = ref({})
+
+
+// 查询
+const getTableData = async () => {
+	
+	
+  const response = await RcgetList(params);
+  console.log(response)
+  if (response.code === 0) {
+    tableData.splice(0, tableData.length, ...response.data.rows);
+    total.value = response.data.total
+  }
+}
+
+const handleNodeClick = (node, check) => {
+  params.type ='getTableData'
+  //存放当前节点的nodeId
+  if (node.params) {
+    params.date = node.params.date;
+    params.sys_id = node.params.sys_id;
+    total.value = node.params.total;
+    getTableData();
+  }
+}
+let positionvalue=ref()
+let keywords=ref()
+// 搜索
+function onSearch() {
+  params.gdbh = positionvalue.value
+  params.type = 'getLocateTable'
+  page.value = 1
+  GetmachineLocate()
+}
+const ADD=ref('0')
+//新增
+function onAdd() {
+	// 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'
+	dialogFormVisible.value = true
+}
+//删除
+// function onDel() {
+// 	Del()
+// }
+function onDel() {
+	ElMessageBox.confirm(
+			`确认删除这条数据么?`,
+			'警告', {
+				confirmButtonText: '确认',
+				cancelButtonText: '取消',
+				type: 'warning',
+			}
+		)
+		.then(async () => {
+			  console.log("用户确认删除操作");
+			   Del();
+		})
+		.catch(() => {
+			ElMessage({
+				type: 'warning',
+				message: '取消删除',
+			})
+		})
+	
+}
+
+//删除
+const Del = async () => {
+  const response = await RcDel({UniqId:lastCellValue});
+  if (response.code === 0) {
+	ElMessage({
+	  type: 'success',
+	  message: '删除成功',
+	})
+  }
+  getTableData()
+  getTabdata()
+}
+const TJVisible = ref(false)
+const TJselectData = ref([]);
+//每日统计
+function onDay() {
+	GetDayList()
+	TJVisible.value=true
+}
+const GetDayList = async (value) => {
+  const response = await getDayList({key_word:'',page:page.value,limit:limit.value});
+  console.log(response.data) 
+  if (response.code === 0) {
+	 TJselectData.value=response.data.rows
+	 console.log(TJselectData)
+  }
+}
+const SMVisible = ref(false)
+const SMselectData = ref([]);
+const _Gd_gdbh = ref(null)
+const _Gd_yjno = ref(null)
+const MBRowClick = async (row) => {
+	console.log(row)
+  _Gd_gdbh.value = row.Yj_Gdbh;
+  _Gd_yjno.value = row.yj_Yjno;
+}
+//首末版统计
+function onSMB() {
+	MbList()
+	SMVisible.value=true
+  searchInfo.value=''
+
+}
+const MbList = async (value) => {
+  const response = await mbList();
+  console.log("response",response) 
+  //查询显示所有未完成和已完成的数据
+  // if (response.code === 0) {
+	//  SMselectData.value = response.data.rows
+	//  console.log(TJselectData)
+  // }
+
+//查询显示所有未完成的数据
+if (response.code === 0) {
+  const filteredData = response.data.rows.filter(row => row.jjcp_smb === "");
+  SMselectData.value = filteredData;
+}
+
+}
+
+//=========工序产量核查===========
+const pd_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: '',
+  yjno: '',
+});
+const gdwhformData = reactive({
+  // 下拉框选项数据
+  yinjian: [],
+  // 设置默认值
+  yjno: '',
+});
+const inputCpmc = ref('')
+
+//定位按钮
+const dwonSubmit = () => {
+   const searchValue = searchInfo.value.trim();
+      if (searchValue) {
+        const matchedRow = SMselectData.value.find(row => row.Yj_Gdbh === searchValue);
+        if (matchedRow) {
+          nextTick(() => {
+            // 设置当前行以高亮显示
+            tableRef.value.setCurrentRow(matchedRow);
+ 
+            // 查找表格体的滚动容器
+            const tableBodyWrapper = tableRef.value.$el.querySelector('.el-table__body-wrapper');
+            // 获取所有具有 'current-row' 类的行
+            const targetRow = tableBodyWrapper.querySelector('.el-table__row.current-row');
+          if (targetRow) {
+            // 使用 scrollIntoView 方法滚动到目标行
+            targetRow.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
+
+            // // 可选:输出调试信息
+            // console.log('Scrolled to row:', targetRow);
+          } else {
+            dwonSubmit();
+            console.log('No row with class "current-row" found.');
+          }
+          }); 
+        } else {
+          ElMessage.warning('未找到匹配的工单编号');
+        }
+      } else {
+        ElMessage.warning('请输入搜索内容');
+      }
+};
+
+
+//导出excel表
+const exportToExcel = () => {
+	const tableCols1 = [
+		{ label: '工单编号', prop: 'Yj_Gdbh',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+		{ label: '印件号', prop: 'yj_Yjno',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+		{ label: '印件名称', prop: 'yj_yjmc',  width: '600',sortable:'sortable',fixed:'fixed',align:'left'},
+		{ label: '计划交货数量', prop: 'yj_成品数量',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+		{ label: '印件投料', prop: 'yj_实际投料',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+		{ label: '包装产量', prop: 'sczl_cls',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+		{ label: '入仓数量', prop: 'jjcp_sls',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+		{ label: '是否末版', prop: 'jjcp_smb',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+		{ label: '缺数', prop: '',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+    { label: '完工', prop: '',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+    { label: '最近入仓时间', prop: 'jjcp_sj',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+	]
+ 
+	const headers = tableCols1.map(item => ({
+		label: item.label,
+		prop: item.prop
+	}));
+
+	//SMselectData._value table中data属性
+  const data = SMselectData._value.map(item => {
+    const row = {};
+    headers.forEach(({ prop }) => {
+      row[headers.find(h => h.prop === prop).label] = item[prop];
+    });
+    return row;
+  });
+	//引入import { exportExcelFile } from '@/utils/excel'
+  exportExcelFile(data);
+};
+
+// 工序产量核查按钮
+const pd_gxclhconClick = async () => {
+  if(_Gd_gdbh.value === '' || _Gd_gdbh.value === null){
+    ElMessage({type: 'warning',message: '请选择具体的工单,再进行操作'})
+    return false;
+  }
+  gxclhcformData['gdbh'] = _Gd_gdbh.value;
+  pd_gxclhclist.value = true;
+  const response = await PrintDetailList ({workOrder:_Gd_gdbh.value});
+  console.log(response)
+  gdwhformData.yjno = response.data[0].no
+  inputCpmc.value = response.data[0].name
+  if (response.code === 0) {
+	  const noFields = response.data.map(item => item.no);
+	  gdwhformData.yinjian = noFields
+	} else {
+	  console.error('查询失败:', response.msg);
+	}
+  _getOrderProcessCount();
+};
+
+//点击印件下拉框
+const ongdwhfanclick = async() => {
+	_PrintDetailList();
+  _getOrderProcessCount();
+}
+
+//工序产量核查回车
+const gxclhcProductValue = async () => {
+  const response = await PrintDetailList ({workOrder:gxclhcformData['gdbh']});
+  gdwhformData.yjno = response.data[0].no
+  inputCpmc.value = response.data[0].name
+  if (response.code === 0) {
+	  const noFields = response.data.map(item => item.no);
+	  gdwhformData.yinjian = noFields
+	} else {
+	  console.error('查询失败:', response.msg);
+	}
+  _getOrderProcessCount();
+  _PrintDetailList();
+}
+//工序产量核查退出
+const gxclhcCancel = async () => {
+  pd_gxclhclist.value = false;
+};
+
+//印件编号获取方法接口
+const _PrintDetailList = async () => {
+  const order = gxclhcformData['gdbh'];
+  const response = await PrintDetailList ({workOrder:order});
+  const matchingItem = response.data.find(item => item.no === gdwhformData.yjno);
+    if (matchingItem) {
+		console.log(matchingItem.name)
+		inputCpmc.value = matchingItem.name;
+	} else {
+		console.log(`No matching item found for no: ${gdwhformData.yjno}`);
+	}
+}
+
+//工序产量核查方法接口
+const _getOrderProcessCount = async () => {
+  const order = gxclhcformData['gdbh'];
+  const yjno = gdwhformData.yjno;
+  const getOrderProcessCount_list = await getOrderProcessCount({order:order,yjno:yjno});
+  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}`;
+    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 pd_lcdlist = ref(false);
+const pd_lcdformData = reactive({
+  gdbh: '',
+  code: '',
+  name: '',
+  yjno: '',
+});
+// 流程单查询按钮
+const processList = ref([]);
+const pd_lcdlistonClick = async () => {
+  if(_Gd_gdbh.value === '' || _Gd_gdbh.value === null){
+    ElMessage({type: 'warning',message: '请选择具体的工单,在进行操作'})
+    return false;
+  }else{
+    pd_lcdformData['gdbh'] = _Gd_gdbh.value;
+    pd_lcdformData['yjno'] = _Gd_yjno.value;
+    pd_lcdlist.value = true;
+    processList.value = []
+    _getOrderProcessLeft_list();
+  }
+}
+const pd_lcdProductValue = async () => {
+  _getOrderProcessLeft_list();
+}
+const pd_lcd_treeData = ref([]);
+const _getOrderProcessLeft_list = async () => {
+  const order = pd_lcdformData['gdbh'];
+  const yjno = pd_lcdformData['yjno']
+  // console.log(order)
+  try {
+    //5.1流程单查询-工单工序生产进程菜单栏
+    const getOrderProcessLeft_list = await getOrderProcessLeft({ order:order,yjno:yjno});
+    console.log(getOrderProcessLeft_list)
+    pd_lcdformData['code'] = getOrderProcessLeft_list.data.Gd_info['code'];
+    pd_lcdformData['name'] = getOrderProcessLeft_list.data.Gd_info['name'];
+    pd_lcd_treeData.value = [{
+      label: order + '-' + getOrderProcessLeft_list.data.Gd_info['name'],
+      // label: order + '-' + getOrderProcessLeft_list.data.Gd_info['code'] + '-' + getOrderProcessLeft_list.data.Gd_info['name'],
+      value: undefined,
+      children: []
+    }]
+    const newData = [];
+    for (let key in getOrderProcessLeft_list.data.Gy_info) {
+      let temp = getOrderProcessLeft_list.data.Gy_info[key];
+      let concatenatedValue = `${temp.Gy0_yjno}-${temp.Gy0_gxh} ---> ${temp.Gy0_gxmc}`;
+      newData.push({ label: concatenatedValue,value: temp.Gy0_gxh });
+    }
+    pd_lcd_treeData.value[0].children = newData;
+    //5.2流程单查询-获取工单工序生产进程右侧【进入页面默认显示第一个】
+    const getOrderProcessRight_list = await getOrderProcessRight({order:order, gxNo:newData[0].value,yjno:yjno});
+    processList.value = getOrderProcessRight_list.data
+  } catch (error) {
+    console.error(error);
+  }
+};
+
+const pd_lcd_handleNodeClick = async (node) => {
+  if (node.value === undefined) return
+  const order = pd_lcdformData['gdbh'];
+  const yjno = pd_lcdformData['yjno'];
+  ////5.2流程单查询-获取工单工序生产进程右侧
+  const getOrderProcessRight_list = await getOrderProcessRight({order:order, gxNo:node.value,yjno:yjno});
+  console.log(getOrderProcessRight_list)
+  processList.value = getOrderProcessRight_list.data
+};
+
+// 流程单查询退出
+const pd_lcdCancel = async () => {
+  pd_lcdlist.value = false;
+}
+
+/*
+	工单生产批次信息查询
+*/
+//搜索
+const searchInfolcd = ref('');
+const tableDatalcd = reactive([])
+const scpconlist = ref(false);
+const scpconClick = async () => {
+  scpconlist.value = true;
+  tableDatalcd.splice(0,tableDatalcd.length,...[]);//表格数据
+  onSubmitlcd()//调用接口
+}
+//进入页面默认光标加载
+setTimeout(() => {
+	const inputElement = document.getElementById('searchInfo');
+	if (inputElement) {
+		inputElement.focus();		
+	}
+}, 100);
+			
+
+//查询按钮
+const onSubmitlcd = () => {
+  _StaGetOrderList()
+};
+//搜索回车
+const Enterkeysearch = (event) => {
+   if (event.key === 'Enter') {
+      _StaGetOrderList();
+    }
+};
+//调用接口
+const _StaGetOrderList = async (node) => {
+  const StaGetOrderListdata = await StaGetOrderList({search:searchInfolcd.value});
+  console.log(StaGetOrderListdata)
+	if (StaGetOrderListdata.data === null) {
+	  ElMessage({
+		type: 'warning',
+		message: '未搜索具体查询条件',
+		customClass: 'custom-message', // 添加自定义类名
+		duration: 3000 // 可选:设置消息显示的持续时间(单位:毫秒)
+	  });
+	}
+  tableDatalcd.splice(0,tableDatalcd.length,...StaGetOrderListdata.data);//表格数据
+};
+
+// 树形节点属性映射
+const treeDatalcd = reactive([]);
+const defaultProps = {
+  label: '流程单',
+  children: 'children',
+};
+//全局调用工单编号、印件号
+const _Gd_gdbhlcd = ref(null)
+const _Gd_yjnolcd = ref(null)
+const _GetorderDetail = ref(null)
+
+
+/*
+	弹窗页面
+*/
+const popdialog = ref(false);
+const currentRow = ref('');
+// 获取当前行数据
+const tableRowClicklcd = (row) => {
+  currentRow.value = row; // 保存当前选中行
+};
+
+// 按钮点击逻辑
+const onstatsuclick  = async () => {
+	console.log(currentRow)
+  if (!currentRow.value) {
+	ElMessage({
+	  type: "warning",
+	  message: "请先点击选择一行数据",
+	});
+	return;
+  }
+  await updateCompanyFunclcd(currentRow.value);
+};
+//双击
+const updateCompanyFunclcd = async (row) => {
+	console.log("双击",row)
+	_Gd_gdbhlcd.value = row['Gd_gdbh']
+	_Gd_yjnolcd.value =row['行号']
+	
+	const StaGetOrderDetaildata = await StaGetOrderDetail({ gdbh: row['Gd_gdbh'], yjno: row['行号'] });
+	let resultData = StaGetOrderDetaildata.data;
+	// 遍历对象,将 null 值替换为空字符串
+	Object.keys(resultData).forEach((key) => {
+	  if (resultData[key] === null) {
+	    resultData[key] = '';
+	  }
+	});
+	_GetorderDetail.value = resultData;
+	// console.log("_GetorderDetail.value", _GetorderDetail.value);
+	_StaGetList(row)
+}
+
+//左侧树形节点点击事件
+const handleNodeClicklcd = (node) => {
+  _StaProcessList(node['num'])
+  _StaProcessAnomaly()
+};
+
+//获取左侧菜单栏
+const _StaGetList = async (row) => {
+  const StaGetListdata = await StaGetList({gdbh:row['Gd_gdbh'],yjno:row['行号']});
+  console.log(StaGetListdata.msg)
+  if(StaGetListdata.msg === '成功'){
+	  treeDatalcd.splice(0, treeDatalcd.length, ...StaGetListdata.data);
+	  popdialog.value = true
+  }else{
+	  console.log(StaGetListdata.msg)
+	  ElMessage({type: 'warning',message: StaGetListdata.msg})
+  }
+};
+
+//工艺及生产班组
+const lcdtableData = reactive([])
+const _StaProcessList = async (node) => {
+  const StaProcessListdata = await StaProcessList({gdbh:_Gd_gdbhlcd.value,yjno:_Gd_yjnolcd.value,num:node});
+  lcdtableData.splice(0,lcdtableData.length,...StaProcessListdata.data);
+};
+
+//制程异常记录
+const zcycjltableData = reactive([])
+const _StaProcessAnomaly = async () => {
+  const StaProcessAnomalydata = await StaProcessAnomaly({gdbh:_Gd_gdbhlcd.value,yjno:_Gd_yjnolcd.value});
+  zcycjltableData.splice(0,zcycjltableData.length,...StaProcessAnomalydata.data);
+};
+
+//退出按钮
+const ontuicclick = async () => {
+  popdialog.value = false
+};
+
+//退出按钮
+const ontuicclicks = async () => {
+  scpconlist.value = false
+};
+
+//定位
+const GetmachineLocate = async () => {
+  const response = await finishedlocate({
+    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 {
+        ...item,
+        combinedProp: item.sczl_gdbh + '--'+item.yj_yjmc,
+        combinedProp2: item.sczl_yjgx + '-'+item.sczl_gxmc
+      };
+    });
+	  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()
+}
+const CKVisible = ref(false)
+const CKselectData = reactive([])
+//获取仓库信息
+const GetCK = async () => {
+  const response = await finishedgetCk();
+  if (response.code === 0) {
+  CKselectData.splice(0, CKselectData.length, ...response.data)
+  setCKCurrent(CKselectData[0])
+  CKVisible.value=true
+  }
+}
+//选择
+const CKSelectClick = (row, column, event) => {
+  const { 编号,名称 } = row
+  formData.value.仓库编号=编号
+  formData.value.仓库名称=名称
+  CKVisible.value = false
+}
+const table2=ref()
+const setCKCurrent = (row) => {
+  setTimeout(()=>{
+	  table2.value?.setCurrentRow(row) 
+	  const { 编号,名称 } = row
+	  formData.value.仓库编号=编号
+	  formData.value.仓库名称=名称
+  })
+}
+const CKIndex = ref(0);
+const JYCurrent = ref(0);
+const selectCK = (event) => {
+    if (event.keyCode === 40) { // 向下箭头
+        if (CKIndex.value < CKselectData.length - 1) {
+            CKIndex.value++;
+            setCKCurrent(CKselectData[CKIndex.value]);
+        } else {
+            CKIndex.value = 0;
+            setCKCurrent(CKselectData[CKIndex.value]); // 到达最后一行时回到第一行			
+        }
+    } else if (event.keyCode === 38) { // 向上箭头
+        if (CKIndex.value > 0) {
+            CKIndex.value--;
+            setCKCurrent(CKselectData[CKIndex.value]);
+        } else {
+            CKIndex.value = CKselectData.length - 1;
+            setCKCurrent(CKselectData[CKIndex.value]); // 到达第一行时回到最后一行
+        }
+    } else if (event.keyCode === 13) { // 回车键
+        CKVisible.value = false
+    }
+}
+  
+//工单编号回车事件
+const getGDsubmit = (event) => {
+	if(formData.value.jjcp_gdbh==''){
+		ElMessage({type: 'warning',message: '请填写工单编号'});
+		return
+	}
+	GetGD()
+}
+const GDVisible = ref(false)
+const GDselectData = reactive([])
+//获取工单信息
+const GetGD = async () => {
+  const response = await finishedgetGd({gdbh:formData.value.jjcp_gdbh});
+  if (response.code === 0) {
+  GDselectData.splice(0, GDselectData.length, ...response.data)
+  setGDCurrent(GDselectData[0])
+  GDVisible.value=true
+  }
+}
+//选择
+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
+  formData.value.订单编号=销售订单号
+  formData.value.jjcp_cpdh=yj_Yjdh
+  formData.value.jjcp_cpmc=yj_yjmc
+  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
+	  formData.value.订单编号=销售订单号
+	  formData.value.jjcp_cpdh=yj_Yjdh
+	  formData.value.jjcp_cpmc=yj_yjmc
+	  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);
+const selectGD = (event) => {
+    if (event.keyCode === 40) { // 向下箭头
+        if (GDIndex.value < GDselectData.length - 1) {
+            GDIndex.value++;
+            setGDCurrent(GDselectData[GDIndex.value]);
+        } else {
+            GDIndex.value = 0;
+            setGDCurrent(GDselectData[GDIndex.value]); // 到达最后一行时回到第一行			
+        }
+    } else if (event.keyCode === 38) { // 向上箭头
+        if (GDIndex.value > 0) {
+            GDIndex.value--;
+            setGDCurrent(GDselectData[GDIndex.value]);
+        } else {
+            GDIndex.value = GDselectData.length - 1;
+            setGDCurrent(GDselectData[GDIndex.value]); // 到达第一行时回到最后一行
+        }
+    } else if (event.keyCode === 13) { // 回车键
+        GDVisible.value = false
+    }
+}
+
+//获取订单资料
+const getSLsubmit = (event) => {
+	GetSL()
+}
+//获取工单数量信息
+const GetSL = async () => {
+	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':'末 板'}]
+  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
+    }
+}
+
+
+// ============== 表格控制部分结束 ===============
+
+// 获取需要的字典 可能为空 按需保留
+const setOptions = async () => {}
+
+
+// 获取需要的字典 可能为空 按需保留
+setOptions()
+
+// 多选数据
+const multipleSelection = ref([])
+// 多选
+const handleSelectionChange = (val) => {
+  if(val.length>0){
+  	// multipleSelection.value = val
+  	const lenth=val.length
+  	// ScrapFactor.gdbh=val[lenth-1].combinedProp.split('-')[0];
+  	// const parts = val[lenth-1].combinedProp2.split('-')
+  	// ScrapFactor.yjno=parts[0];
+  	// ScrapFactor.gxh=parts[1];
+  	// ScrapFactor.type=val[lenth-1].sczl_检验类别
+  	// console.log(ScrapFactor)
+  	lastCellValue=val[lenth-1].UniqId
+  	console.log(val)
+  	val.splice(0, val.length);  // 清空 val 数组	
+  	console.log(lastCellValue)
+  }
+}
+
+// 批量删除控制标记
+const deleteVisible = ref(false)
+
+// 多选删除
+const onDelete = async () => {
+  const ids = []
+  if (multipleSelection.value.length === 0) {
+    ElMessage({
+      type: 'warning',
+      message: '请选择要删除的数据'
+    })
+    return
+  }
+  multipleSelection.value &&
+    multipleSelection.value.map(item => {
+      ids.push(item.ID)
+    })
+  const res = await deleteCompanyByIds({ ids })
+  if (res.code === 0) {
+    ElMessage({
+      type: 'success',
+      message: '删除成功'
+    })
+    if (tableData.value.length === ids.length && page.value > 1) {
+      page.value--
+    }
+    deleteVisible.value = false
+    getTableData()
+  }
+}
+
+// 行为控制标记(弹窗内部需要增还是改)
+const type = ref('')
+
+// 更新行
+const updateCompanyFunc = async (row) => {
+  const res = await findCompany({ ID: row.ID })
+  type.value = 'update'
+  if (res.code === 0) {
+    formData.value = res.data.recompany
+    dialogFormVisible.value = true
+  }
+}
+
+// 弹窗控制标记
+const dialogFormVisible = ref(false)
+
+// 打开弹窗
+const openDialog = () => {
+  type.value = 'create'
+  dialogFormVisible.value = true
+}
+
+// 关闭弹窗
+const closeDialog = () => {
+  dialogFormVisible.value = false
+  formData.value = {
+    address: '',
+    image: '',
+    name: '',
+  }
+}
+// 弹窗确定
+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 RcAdd(restoredData)
+        break
+      case 'update':
+		restoredData.UniqId = lastCellValue;
+        res = await RcEdit(restoredData)
+        break
+      default:
+        // res = await createCompany(formData.value)
+        break
+    }
+    if (res.code === 0) {
+      ElMessage({
+        type: 'success',
+        message: '创建/更改成功'
+      })
+      closeDialog()
+      getTableData()
+      getTabdata()
+    }
+  dialogFormVisible.value=false
+}
+
+//键盘 input框跳转
+const ent = (event,id1,id2,id3) => {
+
+  if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
+    if(id2=='入仓类型'){
+    	getRCsubmit()
+    }
+	if(id2=='仓库编号'){
+		getCKsubmit()
+	}
+	if(id2=='工单编号'){
+		getGDsubmit()
+	}
+	if(id2=='首末板'){
+		console.log(1111)
+		getSMBsubmit()
+	}
+	if(id3!=''){
+      document.getElementById(id3).focus()
+    }
+  } else if (event.keyCode === 38) { // 向上箭头
+    if(id1!=''){
+      document.getElementById(id1).focus()
+    }
+  }else if (event.keyCode === 8) { // 删除箭头
+    if(id1!='' && document.getElementById(id2).value==''){
+      document.getElementById(id1).focus()
+    }
+    console.log(document.getElementById(id2).value)
+  }else if (event.keyCode === 37) { // 向左箭头
+    if(id1!='' && document.getElementById(id2).selectionStart==0){
+      document.getElementById(id1).focus()
+    }
+  }else if (event.keyCode === 39) { // 向右箭头
+    if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
+      document.getElementById(id3).focus()
+    }
+  }
+}
+let table=ref(5);
+let lastCellValue=ref()
+// 双击表格操作
+function doubleClick(row, column, event) {
+  type.value = 'update';
+	  lastCellValue= row['UniqId'];
+	table.value=lastCellValue
+	 dialogFormVisible.value = true
+  GetInfo(table.value)
+}
+// 单击表格操作
+function Click(row, column, event) {
+  searchInfolcd.value =row.jjcp_gdbh
+    lastCellValue= row['UniqId'];
+   console.log(lastCellValue)
+  
+}
+//获取详细信息
+const GetInfo = async (value) => {
+  const response = await RcgetInfo({UniqId:value});
+  if (response.code === 0) {
+	formData.value=response.data;
+  }
+}
+// 导出excel
+function exportExcel() {
+  console.log('导出到excel');
+}
+
+
+function openFolderDialog() {
+  console.log('导出到excel');
+}
+
+
+
+// 生命周期钩子
+onMounted(async () => {
+});
+</script>
+
+<style>
+.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;
+}
+
+/* 选中某行时的背景色*/
+.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: 5px !important;
+  padding: 5px !important;
+  font-size: 15px;
+}
+.el-tabs__header{
+  margin: 0px !important;
+}
+.gva-table-box{
+  position: relative;
+  padding: 0px !important;
+  z-index: 2;
+}
+.mab{
+  margin-bottom: 5px;
+}
+/* 工序产量核查高亮 */
+:deep(.lan-plan-usage-lows  div) {
+  color: blue !important;
+  font-weight: bold;
+}
+.aside-container {
+  height: 80vh; /* 设置你希望的高度 */
+  overflow-y: auto; /* 允许垂直滚动 */
+}
+ 
+.JKWTree-tree {
+  /* 确保内部内容不会撑破 aside 容器 */
+  height: calc(100% - 40px);
+  max-height: 100%; /* 或设置为 calc(100% - 某个值),如果需要考虑标题的高度等 */
+}
+
+/* .aside-header {
+  position: absolute;
+  top: 0; 
+  left: 0;
+  right: 0; 
+  height: 40px;
+  line-height: 40px;
+  background-color: #f5f5f5;
+  padding: 0 10px;
+  box-sizing: border-box; 
+  z-index: 1; 
+} */
+
+/* 如果需要,可以为 h3 也设置样式,以确保它在滚动区域外或包含在内 */
+.JKWTree-tree h3 {
+  /* position: absolute;
+  top: 0;  */
+  margin: 0; /* 移除默认的 margin */
+  padding: 10px; /* 添加一些 padding,如果需要 */
+  background-color: #f5f5f5; /* 可选:添加背景色 */
+  z-index: 1; 
+}
+/* tree组件背景高亮 */
+:deep(.el-tree-node:focus > .el-tree-node__content){
+	background: #ff80ff !important;
+}
+/*!* 流程单查询按钮颜色控制未完成*/
+:deep(.custom-button.el-button--info) {
+	background-color: palegreen !important;
+  color: #155724;
+  font-size: 20px;
+  border-color: #c3e6cb;
+}
+/* 已完成 */
+:deep(.custom-button.el-button--danger) {
+	background-color: rgb(236, 135, 135) !important;
+  color: #721c24;
+  font-size: 20px;
+  border-color: #f5c6cb;
+}
+</style>

+ 570 - 0
src/view/yunyin/huheguanli/huherole.vue

@@ -0,0 +1,570 @@
+<template>
+    <div>
+      <layout>
+        <layout-header>
+          <div class="">
+            <!--          按钮部分-->
+            <el-form ref="elSearchFormRef"   class="demo-form-inline" :rules="searchRule" >
+              <el-form-item>
+                <!-- <el-input v-model="searchInfo" placeholder="搜索工单编号" clearable style="width: 200px;margin: 5px"></el-input> -->
+                <el-button type="primary" class="bt" icon="edit"     @click="on_add"   title="新增">新增</el-button>
+                <!-- <el-button type="primary" class="bt" icon="download" @click="hzToExcel" >导出到Excel(汇总)</el-button>
+                <el-button type="primary" class="bt" icon="download" @click="mxToExcel" >导出到Excel(明细)</el-button> -->
+              </el-form-item>
+            </el-form>
+  
+        
+  
+          </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" class="treecolor" @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: 76vh" tooltip-effect="dark"
+                        :row-style="{ height: '25px' }"  :header-cell-style="{ padding: '0px' }"
+                        :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+                        :data="hztableData"  border row-key="ID"
+                        size="small"
+                        :cell-class-name="gxbgCellClass"
+                        highlight-current-row="true" @row-dblclick="updateCompanyFunc"
+                        @row-click="hztableRowClick" :show-overflow-tooltip="true"
+                        @selection-change="handleSelectionChange">
+               <el-table-column  sortable align="center" label="机台编号" prop="jtbh"  width="120" />
+               <el-table-column  sortable align="center" label="角色1" prop="role1"  width="120" />
+               <el-table-column  sortable align="center" label="角色2" prop="role2"  width="120" />
+               <el-table-column  sortable align="center" label="角色3" prop="role3"  width="120" />
+               <el-table-column  sortable align="center" label="角色4" prop="role4"  width="120" />
+               <el-table-column  sortable align="center" label="角色5" prop="role5"  width="120" />
+               <el-table-column  sortable align="center" label="角色6" prop="role6"  width="120" />
+               <el-table-column  sortable align="center" label="角色7" prop="role7"  width="120" />
+               <el-table-column  sortable align="center" label="角色8" prop="role8"  width="120" />
+               <el-table-column  sortable align="center" label="角色9" prop="role9"  width="120" />
+               <el-table-column  sortable align="center" label="角色10" prop="role10"  width="120" />
+               <el-table-column  sortable align="center" label="比例1" prop="rate1"  width="120" />
+               <el-table-column  sortable align="center" label="比例2" prop="rate2"  width="120" />
+               <el-table-column  sortable align="center" label="比例3" prop="rate3"  width="120" />
+               <el-table-column  sortable align="center" label="比例4" prop="rate4"  width="120" />
+               <el-table-column  sortable align="center" label="比例5" prop="rate5"  width="120" />
+               <el-table-column  sortable align="center" label="比例6" prop="rate6"  width="120" />
+               <el-table-column  sortable align="center" label="比例7" prop="rate7"  width="120" />
+               <el-table-column  sortable align="center" label="比例8" prop="rate8"  width="120" />
+               <el-table-column  sortable align="center" label="比例9" prop="rate9"  width="120" />
+               <el-table-column  sortable align="center" label="比例10" prop="rate10"  width="120" />
+               <el-table-column  sortable align="center" label="创建人员" prop="sys_id"  width="200" />
+               <el-table-column  sortable align="center" label="创建时间" prop="sys_rq"  width="200" />
+               <el-table-column sortable align="center" label="状态" prop="status" width="200">
+                <template #default="scope">
+                    <span :style="{ color: scope.row.status === 1 ? '#67C23A' : '#F56C6C' }">
+                    {{ scope.row.status === 1 ? '已设置' : '未设置' }}
+                    </span>
+                </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" width="80">
+					  <template #default="{ row, $index }">
+						<el-button @click="set_status(row,$index)" type="success" size="small" 
+								   style="font-size: 16px;padding: 0px;width: 60px;">
+						  设置
+						</el-button>
+					  </template>
+					</el-table-column>
+
+
+              </el-table>
+  
+              <!-- 分页 -->
+              <div class="gva-pagination">
+                <el-pagination layout="total" :current-page="page" :page-size="pageSize"
+                 :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
+              </div>
+            </div>
+
+ <!-- 新增弹窗 -->
+ <el-dialog
+			  v-model="add_huhedialogFormVisible"
+			  :before-close="add_huhecloseDialog"
+			  style="width: 73%; max-height: 80%; overflow-y: auto; margin-top: 4%;"
+			  :title="'新增糊盒角色'"
+			  destroy-on-close>
+              <el-form label-width="100px" :model="add_huheformdata">
+                <el-col :span="10">
+                    <el-form-item label="机台编号" prop="jtbh">
+                    <el-input v-model="add_huheformdata.jtbh" id="jtbh" placeholder="请输入机台编号" @keydown="add_gdzlent($event, '', 'jtbh', 'role1')" />
+                </el-form-item>
+                </el-col>
+
+                <el-row :gutter="24" class="form-row">
+				  <el-col :span="24">
+					<el-form-item label="角色:" class="mab" prop="keyOrder" label-width='110'>
+					  <el-input v-model="add_huheformdata.role1"  style="width: 80px;" id ='role1'  @keydown="add_gdzlent($event, 'jtbh', 'role1', 'role2')"/>
+					  <el-input v-model="add_huheformdata.role2" style="width: 80px;" id ='role2'  @keydown="add_gdzlent($event, 'role1', 'role2', 'role3')"/>
+					  <el-input v-model="add_huheformdata.role3"  style="width: 80px;" id ='role3'  @keydown="add_gdzlent($event, 'role2', 'role3', 'role4')"/>
+					  <el-input v-model="add_huheformdata.role4"  style="width: 80px;" id ='role4'  @keydown="add_gdzlent($event, 'role3', 'role4', 'role5')"/>
+					  <el-input v-model="add_huheformdata.role5"  style="width: 80px;" id ='role5'  @keydown="add_gdzlent($event, 'role4', 'role5', 'role6')"/>
+					  <el-input v-model="add_huheformdata.role6"  style="width: 80px;" id ='role6'  @keydown="add_gdzlent($event, 'role5', 'role6', 'role7')"/>
+					  <el-input v-model="add_huheformdata.role7"  style="width: 80px;" id ='role7'  @keydown="add_gdzlent($event, 'role6', 'role7', 'role8')"/>
+					  <el-input v-model="add_huheformdata.role8"  style="width: 80px;" id ='role8'  @keydown="add_gdzlent($event, 'role7', 'role8', 'role9')"/>
+					  <el-input v-model="add_huheformdata.role9"  style="width: 80px;" id ='role9'  @keydown="add_gdzlent($event, 'role8', 'role9', 'role10')"/>
+					  <el-input v-model="add_huheformdata.role10"  style="width: 80px;" id ='role10'  @keydown="add_gdzlent($event, 'role9', 'role10', 'rate1')"/>
+					</el-form-item>
+				  </el-col>
+				</el-row>
+
+                <el-row :gutter="24" class="form-row">
+				  <el-col :span="24">
+					<el-form-item label="比例:" class="mab" prop="keyOrder" label-width='110'>
+					  <el-input v-model="add_huheformdata.rate1"  style="width: 80px;" id ='rate1'  @keydown="add_gdzlent($event, 'cm14', 'rate1', 'rate2')"/>
+					  <el-input v-model="add_huheformdata.rate2" style="width: 80px;" id ='rate2'  @keydown="add_gdzlent($event, 'rate1', 'rate2', 'rate3')"/>
+					  <el-input v-model="add_huheformdata.rate3"  style="width: 80px;" id ='rate3'  @keydown="add_gdzlent($event, 'rate2', 'rate3', 'rate4')"/>
+					  <el-input v-model="add_huheformdata.rate4"  style="width: 80px;" id ='rate4'  @keydown="add_gdzlent($event, 'rate3', 'rate4', 'rate5')"/>
+					  <el-input v-model="add_huheformdata.rate5"  style="width: 80px;" id ='rate5'  @keydown="add_gdzlent($event, 'rate4', 'rate5', 'rate6')"/>
+					  <el-input v-model="add_huheformdata.rate6"  style="width: 80px;" id ='rate6'  @keydown="add_gdzlent($event, 'rate5', 'rate6', 'rate7')"/>
+					  <el-input v-model="add_huheformdata.rate7"  style="width: 80px;" id ='rate7'  @keydown="add_gdzlent($event, 'rate6', 'rate7', 'rate8')"/>
+					  <el-input v-model="add_huheformdata.rate8"  style="width: 80px;" id ='rate8'  @keydown="add_gdzlent($event, 'rate7', 'rate8', 'rate9')"/>
+					  <el-input v-model="add_huheformdata.rate9"  style="width: 80px;" id ='rate9'  @keydown="add_gdzlent($event, 'rate8', 'rate9', 'rate10')"/>
+					  <el-input v-model="add_huheformdata.rate10"  style="width: 80px;" id ='rate10'  @keydown="add_gdzlent($event, 'rate9', 'rate10', 'rate1')"/>
+					</el-form-item>
+				  </el-col>
+				</el-row>
+
+            </el-form>
+			  <template #footer>
+				<div class="dialog-footer" style="display: flex; justify-content: flex-end; padding: 10px;">
+				  <el-button type="primary" @click="add_huhecloseDialog">取消</el-button>
+				  <el-button type="primary" @click="add_huheenterDialog">确定</el-button>
+				</div>
+			  </template>
+			  
+			</el-dialog>
+
+            <el-dialog
+			  v-model="updata_huhedialogFormVisible"
+			  :before-close="updata_huhecloseDialog"
+			  style="width: 73%; max-height: 80%; overflow-y: auto; margin-top: 4%;"
+			  :title="'修改糊盒角色'"
+			  destroy-on-close>
+              <el-form label-width="100px" :model="updata_huheformdata">
+                <el-col :span="10">
+                    <el-form-item label="机台编号" prop="jtbh">
+                    <el-input v-model="updata_huheformdata.jtbh" id="jtbh" placeholder="请输入机台编号" @keydown="add_gdzlent($event, '', 'jtbh', 'role1')" />
+                </el-form-item>
+                </el-col>
+
+                <el-row :gutter="24" class="form-row">
+				  <el-col :span="24">
+					<el-form-item label="角色:" class="mab" prop="keyOrder" label-width='110'>
+					  <el-input v-model="updata_huheformdata.role1"  style="width: 80px;" id ='role1'  @keydown="add_gdzlent($event, 'jtbh', 'role1', 'role2')"/>
+					  <el-input v-model="updata_huheformdata.role2" style="width: 80px;" id ='role2'  @keydown="add_gdzlent($event, 'role1', 'role2', 'role3')"/>
+					  <el-input v-model="updata_huheformdata.role3"  style="width: 80px;" id ='role3'  @keydown="add_gdzlent($event, 'role2', 'role3', 'role4')"/>
+					  <el-input v-model="updata_huheformdata.role4"  style="width: 80px;" id ='role4'  @keydown="add_gdzlent($event, 'role3', 'role4', 'role5')"/>
+					  <el-input v-model="updata_huheformdata.role5"  style="width: 80px;" id ='role5'  @keydown="add_gdzlent($event, 'role4', 'role5', 'role6')"/>
+					  <el-input v-model="updata_huheformdata.role6"  style="width: 80px;" id ='role6'  @keydown="add_gdzlent($event, 'role5', 'role6', 'role7')"/>
+					  <el-input v-model="updata_huheformdata.role7"  style="width: 80px;" id ='role7'  @keydown="add_gdzlent($event, 'role6', 'role7', 'role8')"/>
+					  <el-input v-model="updata_huheformdata.role8"  style="width: 80px;" id ='role8'  @keydown="add_gdzlent($event, 'role7', 'role8', 'role9')"/>
+					  <el-input v-model="updata_huheformdata.role9"  style="width: 80px;" id ='role9'  @keydown="add_gdzlent($event, 'role8', 'role9', 'role10')"/>
+					  <el-input v-model="updata_huheformdata.role10"  style="width: 80px;" id ='role10'  @keydown="add_gdzlent($event, 'role9', 'role10', 'rate1')"/>
+					</el-form-item>
+				  </el-col>
+				</el-row>
+
+                <el-row :gutter="24" class="form-row">
+				  <el-col :span="24">
+					<el-form-item label="比例:" class="mab" prop="keyOrder" label-width='110'>
+					  <el-input v-model="updata_huheformdata.rate1"  style="width: 80px;" id ='rate1'  @keydown="add_gdzlent($event, 'cm14', 'rate1', 'rate2')"/>
+					  <el-input v-model="updata_huheformdata.rate2" style="width: 80px;" id ='rate2'  @keydown="add_gdzlent($event, 'rate1', 'rate2', 'rate3')"/>
+					  <el-input v-model="updata_huheformdata.rate3"  style="width: 80px;" id ='rate3'  @keydown="add_gdzlent($event, 'rate2', 'rate3', 'rate4')"/>
+					  <el-input v-model="updata_huheformdata.rate4"  style="width: 80px;" id ='rate4'  @keydown="add_gdzlent($event, 'rate3', 'rate4', 'rate5')"/>
+					  <el-input v-model="updata_huheformdata.rate5"  style="width: 80px;" id ='rate5'  @keydown="add_gdzlent($event, 'rate4', 'rate5', 'rate6')"/>
+					  <el-input v-model="updata_huheformdata.rate6"  style="width: 80px;" id ='rate6'  @keydown="add_gdzlent($event, 'rate5', 'rate6', 'rate7')"/>
+					  <el-input v-model="updata_huheformdata.rate7"  style="width: 80px;" id ='rate7'  @keydown="add_gdzlent($event, 'rate6', 'rate7', 'rate8')"/>
+					  <el-input v-model="updata_huheformdata.rate8"  style="width: 80px;" id ='rate8'  @keydown="add_gdzlent($event, 'rate7', 'rate8', 'rate9')"/>
+					  <el-input v-model="updata_huheformdata.rate9"  style="width: 80px;" id ='rate9'  @keydown="add_gdzlent($event, 'rate8', 'rate9', 'rate10')"/>
+					  <el-input v-model="updata_huheformdata.rate10"  style="width: 80px;" id ='rate10'  @keydown="add_gdzlent($event, 'rate9', 'rate10', 'rate1')"/>
+					</el-form-item>
+				  </el-col>
+				</el-row>
+
+            </el-form>
+			  <template #footer>
+				<div class="dialog-footer" style="display: flex; justify-content: flex-end; padding: 10px;">
+				  <el-button type="primary" @click="updata_huhecloseDialog">取消</el-button>
+				  <el-button type="primary" @click="updata_huheenterDialog">确定</el-button>
+				</div>
+			  </template>
+			  
+			</el-dialog>
+            
+            
+
+  
+          </el-main>
+        </layout-content>
+        </layout>
+      </layout>
+    </div>
+  </template>
+  <script setup>
+  // 全量引入格式化工具 请按需保留
+  import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
+  import { getGluingcoleTab,getGluingcoleList,getGluingcoleDetail,getGluingcoleDetaiEdit,UpdateGluingcoleStatus,saveGluingcoleDetail} from '@/api/mes/huhejob'
+  import {ref, reactive} from 'vue'
+  import { exportExcelFile } from '@/utils/excel'
+    import { useUserStore } from '@/pinia/modules/user'
+  import {ElMessage} from "element-plus";
+import SysDictionary from '@/view/superAdmin/dictionary/sysDictionary.vue';
+  defineOptions({name: 'Company'})
+
+  const userStore = useUserStore()
+const _username = ref('')
+_username.value = userStore.userInfo.userName + '/' + userStore.userInfo.nickName
+  // =========== 获取左侧树侧形结构 ===========
+  const treeData = reactive([]);
+
+const getTabdata = async () => {
+    try {
+        // 接口调用函数
+        const response = await getGluingcoleTab();
+        console.log(response);
+        
+        // 创建树形结构:根节点 -> 车间 -> 设备
+        const transformedData = [{
+            label: "设备列表",
+            children: Object.entries(response.data).map(([workshopName, devices]) => {
+                return {
+                    label: workshopName,
+                    children: devices.map(item => {
+                        // 分割设备编号和设备名称
+                        const [deviceId, deviceName] = item.split('-->');
+                        return {
+                            label: `${deviceId} 【${deviceName}】`,
+                            params: {
+                                device_id: deviceId.trim(),
+                                device_name: deviceName.trim(),
+                                workshop_name: workshopName // 可选:添加车间名称到参数中
+                            }
+                        };
+                    })
+                };
+            })
+        }];
+        
+        // 清空并更新树数据
+        treeData.splice(0, treeData.length, ...transformedData);
+        
+    } catch (error) {
+        console.error('获取设备数据失败:', error);
+    }
+}
+
+getTabdata();
+  
+
+const hztableData = ref([])
+const nodemachine = ref('')
+const handleNodeClick = async (node) => {
+    // 取消所有节点的颜色
+  const allNodes = document.querySelectorAll('.treecolor .el-tree-node');
+  allNodes.forEach(node => {
+    node.querySelector('.el-tree-node__label').style.color = '';
+  });
+  // 获取点击的节点
+  const clickedNodeId = node['$treeNodeId'];
+  const clickedNode = document.querySelector(`.treecolor .el-tree-node[data-key="${clickedNodeId}"]`);
+  if (clickedNode) {
+    // 给当前点击的节点改变颜色
+    clickedNode.querySelector('.el-tree-node__label').style.color = 'red';
+  }
+
+  console.log(node)
+  if(!node.children){
+    nodemachine.value = node.params.device_id
+    getGluingcoleList({machine:node.params.device_id}).then(res => {
+      if (res.code === 0){
+        hztableData.value = res.data
+      }else{
+        hztableData.value = []
+      }
+    })
+  }
+} 
+
+
+
+const add_huhedialogFormVisible = ref(false)
+const add_huheformdata = reactive({
+  jtbh: '',
+  role1: '',
+  role2: '',
+  role3: '',
+  role4: '',
+  role5: '',
+  role6: '',
+  role7: '',
+  role8: '',
+  role9: '',
+  role10: '',
+  rate1: '',
+  rate2: '',
+  rate3: '',
+  rate4: '',
+  rate5: '',
+  rate6: '',
+  rate7: '',
+  rate8: '',
+  rate9: '',
+  rate10: '',
+  sys_id: '',
+})
+const on_add = () => {
+  console.log('新增')
+  if(nodemachine.value){
+    add_huhedialogFormVisible.value = true
+    add_huheformdata.jtbh = nodemachine.value
+  }else{
+    ElMessage.error('请先选择机台编号')
+  }
+}
+
+// 关闭弹窗
+const add_huhecloseDialog = () => {
+  add_huhedialogFormVisible.value = false
+}
+
+
+
+// 添加确定按钮的方法实现
+const add_huheenterDialog = async () => {
+  // 这里添加表单提交逻辑
+  try {
+        console.log(add_huheformdata)
+    // return;
+    add_huheformdata.sys_id = userStore.userInfo.nickName
+    const res = await saveGluingcoleDetail(add_huheformdata);
+
+    if (res.code === 0) {
+      ElMessage.success('新增成功');
+      add_huhedialogFormVisible.value = false;
+      // 刷新数据等操作
+      getGluingcoleList({machine:add_huheformdata.jtbh}).then(res => {
+      if (res.code === 0){
+        hztableData.value = res.data
+      }
+    })
+    }
+  } catch (error) {
+    console.error('操作失败:', error);
+    ElMessage.error('操作失败');
+  }
+}
+  
+const  updata_huhedialogFormVisible = ref(false)
+const  updata_huheformdata = reactive({
+  id: '',
+  jtbh: '',
+  role1: '',
+  role2: '',
+  role3: '',
+  role4: '',
+  role5: '',
+  role6: '',
+  role7: '',
+  role8: '',
+  role9: '',
+  role10: '',
+  rate1: '',
+  rate2: '',
+  rate3: '',
+  rate4: '',
+  rate5: '',
+  rate6: '',
+  rate7: '',
+  rate8: '',
+  rate9: '',
+  rate10: '',
+  id: '',
+})
+const updateCompanyFunc = async(row) => {
+  console.log(row)
+  const getGluingcoleDetaildata = await getGluingcoleDetail({id: row.id})
+  if (getGluingcoleDetaildata.code === 0){
+    Object.assign(updata_huheformdata, getGluingcoleDetaildata.data)
+    updata_huheformdata.id = row.id
+    updata_huhedialogFormVisible.value = true
+  }
+}
+
+const updata_huheenterDialog = async () => {
+  // 这里添加表单提交逻辑
+  try {
+        console.log(updata_huheformdata)
+    // return;
+    const res = await getGluingcoleDetaiEdit(updata_huheformdata);
+
+    if (res.code === 0) {
+      ElMessage.success('更新成功');
+      updata_huhedialogFormVisible.value = false;
+      // 刷新数据等操作
+      getGluingcoleList({machine:updata_huheformdata.jtbh}).then(res => {
+      if (res.code === 0){
+        hztableData.value = res.data
+      }
+    })
+    }
+  } catch (error) {
+    console.error('操作失败:', error);
+    ElMessage.error('操作失败');
+  }
+}
+
+ const updata_huhecloseDialog = () => {
+  updata_huhedialogFormVisible.value = false
+}
+
+
+//设置
+const set_status = async (row) => {
+  console.log(row)
+    const res = await UpdateGluingcoleStatus({jtbh: row.jtbh, id: row.id});
+    if (res.code === 0) {
+      ElMessage.success('设置成功');
+      // 刷新数据等操作
+      getGluingcoleList({machine:row.jtbh}).then(res => {
+      if (res.code === 0){
+        hztableData.value = res.data
+      }else{
+        hztableData.value = []
+      }
+    })
+    }
+}
+
+
+  //键盘input框跳转
+  const add_gdzlent = async (event,id1,id2,id3,idx) => {
+	if(event.keyCode === 40){
+	  if(id3!=''){
+		document.getElementById(id3).focus()
+	  }
+	}else if (event.keyCode === 13) { // Enter 或向下箭头
+	  if(id3!=''){
+		document.getElementById(id3).focus()
+	  }
+	} else if (event.keyCode === 38) { // 向上箭头
+	  if(id1!=''){
+		document.getElementById(id1).focus()
+	  }
+	}else if (event.keyCode === 8) { // 删除箭头
+	  if(id1!='' && document.getElementById(id2).value==''){
+		document.getElementById(id1).focus()
+	  }
+	}else if (event.keyCode === 37) { // 向左箭头
+	  if(id1!='' && document.getElementById(id2).selectionStart==0){
+		document.getElementById(id1).focus()
+	  }
+	}else if (event.keyCode === 39) { // 向右箭头
+	  if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
+		document.getElementById(id3).focus()
+	  }
+	}
+  }
+  
+  </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;
+  }
+  
+
+  /* 媒体查询,根据需要调整断点 */
+  @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;
+  }
+
+  
+  /* 选中某行时的背景色 */
+  :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>
+  

+ 802 - 0
src/view/yunyin/huheguanli/huheteam.vue

@@ -0,0 +1,802 @@
+<template>
+  <div>
+    <layout>
+      <layout-header>
+        <div class="">
+          <!--          按钮部分-->
+          <el-form ref="elSearchFormRef"   class="demo-form-inline" :rules="searchRule" >
+            <el-form-item>
+              <!-- <el-input v-model="searchInfo" placeholder="搜索工单编号" clearable style="width: 200px;margin: 5px"></el-input> -->
+              <el-button type="primary" class="bt" icon="edit"     @click="on_add"   title="新增">新增</el-button>
+              <!-- <el-button type="primary" class="bt" icon="download" @click="hzToExcel" >导出到Excel(汇总)</el-button>
+              <el-button type="primary" class="bt" icon="download" @click="mxToExcel" >导出到Excel(明细)</el-button> -->
+            </el-form-item>
+          </el-form>
+
+      
+
+        </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" class="treecolor" @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: 76vh" tooltip-effect="dark"
+                      :row-style="{ height: '25px' }"  :header-cell-style="{ padding: '0px' }"
+                      :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+                      :data="hztableData"  border row-key="ID"
+                      size="small"
+                      :cell-class-name="gxbgCellClass"
+                      highlight-current-row="true" @row-dblclick="updateCompanyFunc"
+                      @row-click="hztableRowClick" :show-overflow-tooltip="true"
+                      @selection-change="handleSelectionChange">
+             <el-table-column  sortable align="center" label="机台编号" prop="jtbh"  width="120" />
+             <el-table-column  sortable align="center" label="班组" prop="bz"  width="120" />
+             <el-table-column  sortable align="center" label="角色" prop="role"  width="120" />
+             <el-table-column  sortable align="center" label="比例" prop="rate"  width="120" />
+             <el-table-column  sortable align="center" label="人员1" prop="bh1"  width="120" />
+             <el-table-column  sortable align="center" label="姓名1" prop="name1"  width="120" />
+             <el-table-column  sortable align="center" label="人员2" prop="bh2"  width="120" />
+             <el-table-column  sortable align="center" label="姓名2" prop="name2"  width="120" />
+             <el-table-column  sortable align="center" label="人员3" prop="bh3"  width="120" />
+             <el-table-column  sortable align="center" label="姓名3" prop="name3"  width="120" />
+             <el-table-column  sortable align="center" label="人员4" prop="bh4"  width="120" />
+             <el-table-column  sortable align="center" label="姓名4" prop="name4"  width="120" />
+             <el-table-column  sortable align="center" label="人员5" prop="bh5"  width="120" />
+             <el-table-column  sortable align="center" label="姓名5" prop="name5"  width="120" />
+             <el-table-column  sortable align="center" label="人员6" prop="bh6"  width="120" />
+             <el-table-column  sortable align="center" label="姓名6" prop="name6"  width="120" />
+             <el-table-column  sortable align="center" label="人员7" prop="bh7"  width="120" />
+             <el-table-column  sortable align="center" label="姓名7" prop="name7"  width="120" />
+             <el-table-column  sortable align="center" label="人员8" prop="bh8"  width="120" />
+             <el-table-column  sortable align="center" label="姓名8" prop="name8"  width="120" />
+             <el-table-column  sortable align="center" label="人员9" prop="bh9"  width="120" />
+             <el-table-column  sortable align="center" label="姓名9" prop="name9"  width="120" />
+             <el-table-column  sortable align="center" label="人员10" prop="bh10"  width="120" />
+             <el-table-column  sortable align="center" label="姓名10" prop="name10"  width="120" />
+             <el-table-column  sortable align="center" label="人员11" prop="bh11"  width="120" />
+             <el-table-column  sortable align="center" label="姓名11" prop="name11"  width="120" />
+             <el-table-column  sortable align="center" label="人员12" prop="bh12"  width="120" />
+             <el-table-column  sortable align="center" label="姓名12" prop="name12"  width="120" />
+             <el-table-column  sortable align="center" label="人员13" prop="bh13"  width="120" />
+             <el-table-column  sortable align="center" label="姓名13" prop="name13"  width="120" />
+             <el-table-column  sortable align="center" label="人员14" prop="bh14"  width="120" />
+             <el-table-column  sortable align="center" label="姓名14" prop="name14"  width="120" />
+             <el-table-column  sortable align="center" label="人员15" prop="bh15"  width="120" />
+             <el-table-column  sortable align="center" label="姓名15" prop="name15"  width="120" />
+             <el-table-column  sortable align="center" label="创建人员" prop="sys_id"  width="200" />
+             <el-table-column  sortable align="center" label="创建时间" prop="sys_rq"  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" />
+            </div>
+          </div>
+
+                    <!-- 组员及分配比例         -->
+                    <el-dialog v-model="blModel" :before-close="() => blModel = false" style="width: 20%" @keydown="selectBZRR($event)">
+            <el-form>
+              <div>
+                <el-table :data="employeeData" border :show-overflow-tooltip="true" :cell-class-name="blplanUsageCellClass" 
+				 highlight-current-row="true"
+				 ref="tableBZRR"
+				 @row-click="tablebllickHandler($event)">
+                  <el-table-column prop="员工编号" label="员工编号"></el-table-column>
+                  <el-table-column prop="ygxm" label="员工姓名"></el-table-column>
+                </el-table>
+              </div>
+            </el-form>
+          </el-dialog>
+
+
+<!-- 弹窗 -->
+<el-dialog
+      v-model="add_huhedialogFormVisible"
+      :before-close="add_huhecloseDialog"
+      style="width: 73%; max-height: 80%; overflow-y: auto; margin-top: 4%;"
+      :title="typestatus === 'create' ? '新增糊盒班组' : '修改糊盒班组'"
+      destroy-on-close>
+            <el-form label-width="100px" :model="add_huheformdata">
+              <el-row :gutter="24" class="form-row">
+  <el-col :span="10">
+    <el-form-item label="机台编号" prop="jtbh">
+      <el-input v-model="add_huheformdata.jtbh" id="jtbh" placeholder="请输入机台编号" @keydown="add_gdzlent($event, '', 'jtbh', 'bz')" />
+    </el-form-item>
+  </el-col>
+  <el-col :span="10">
+    <el-form-item label="班组" prop="bz">
+      <!-- 将 el-input 改为 el-select -->
+      <el-select v-model="add_huheformdata.bz" id="bz" placeholder="请选择班组" @keydown="add_gdzlent($event, 'jtbh', 'bz', 'role')">
+        <el-option
+          v-for="item in bzOptions"
+          :key="item.value"
+          :label="item.label"
+          :value="item.value">
+        </el-option>
+      </el-select>
+    </el-form-item>
+  </el-col>
+</el-row>
+<el-row :gutter="24" class="form-row">
+  <el-col :span="10">
+    <el-form-item label="角色" prop="role">
+      <!-- 将 el-input 改为 el-select -->
+      <el-select v-model="add_huheformdata.role" id="role" placeholder="请选择角色" @keydown="add_gdzlent($event, 'bz', 'role', 'rate')">
+        <el-option
+          v-for="item in roleOptions"
+          :key="item.value"
+          :label="item.label"
+          :value="item.value">
+        </el-option>
+      </el-select>
+    </el-form-item>
+  </el-col>
+  <el-col :span="10">
+    <el-form-item label="比例" prop="rate">
+      <el-input v-model="add_huheformdata.rate" id="rate" placeholder="请输入比例" @keydown="add_gdzlent($event, 'role', 'rate', 'bh1')" />
+    </el-form-item>
+  </el-col>
+</el-row>
+              
+              
+              <el-row :gutter="24" class="form-row">
+        <el-col :span="24">
+        <el-form-item label="编号:" class="mab" prop="keyOrder" label-width='110'>
+          <el-input v-model="add_huheformdata.bh1"  style="width: 80px;" id ='bh1'  @keydown="add_gdzlent($event, 'rate', 'bh1', 'bh2','1')"/>
+          <el-input v-model="add_huheformdata.bh2" style="width: 80px;" id ='bh2'  @keydown="add_gdzlent($event, 'bh1', 'bh2', 'bh3','2')"/>
+          <el-input v-model="add_huheformdata.bh3"  style="width: 80px;" id ='bh3'  @keydown="add_gdzlent($event, 'bh2', 'bh3', 'bh4','3')"/>
+          <el-input v-model="add_huheformdata.bh4"  style="width: 80px;" id ='bh4'  @keydown="add_gdzlent($event, 'bh3', 'bh4', 'bh5','4')"/>
+          <el-input v-model="add_huheformdata.bh5"  style="width: 80px;" id ='bh5'  @keydown="add_gdzlent($event, 'bh4', 'bh5', 'bh6','5')"/>
+          <el-input v-model="add_huheformdata.bh6"  style="width: 80px;" id ='bh6'  @keydown="add_gdzlent($event, 'bh5', 'bh6', 'bh7','6')"/>
+          <el-input v-model="add_huheformdata.bh7"  style="width: 80px;" id ='bh7'  @keydown="add_gdzlent($event, 'bh6', 'bh7', 'bh8','7')"/>
+          <el-input v-model="add_huheformdata.bh8"  style="width: 80px;" id ='bh8'  @keydown="add_gdzlent($event, 'bh7', 'bh8', 'bh9','8')"/>
+          <el-input v-model="add_huheformdata.bh9"  style="width: 80px;" id ='bh9'  @keydown="add_gdzlent($event, 'bh8', 'bh9', 'bh10','9')"/>
+          <el-input v-model="add_huheformdata.bh10"  style="width: 80px;" id ='bh10'  @keydown="add_gdzlent($event, 'bh9', 'bh10', 'bh11','10')"/>
+          <el-input v-model="add_huheformdata.bh11"  style="width: 80px;" id ='bh11'  @keydown="add_gdzlent($event, 'bh10', 'bh11', 'bh12','11')"/>
+          <el-input v-model="add_huheformdata.bh12"  style="width: 80px;" id ='bh12'  @keydown="add_gdzlent($event, 'bh11', 'bh12', 'bh13','12')"/>
+          <el-input v-model="add_huheformdata.bh13"  style="width: 80px;" id ='bh13'  @keydown="add_gdzlent($event, 'bh12', 'bh13', 'bh14','13')"/>
+          <el-input v-model="add_huheformdata.bh14"  style="width: 80px;" id ='bh14'  @keydown="add_gdzlent($event, 'bh13', 'bh14', 'bh15','14')"/>
+          <el-input v-model="add_huheformdata.bh15"  style="width: 80px;" id ='bh15'  @keydown="add_gdzlent($event, 'bh14', 'bh15', 'name1','15')"/>
+        </el-form-item>
+        </el-col>
+      </el-row>
+
+              <el-row :gutter="24" class="form-row">
+        <el-col :span="24">
+        <el-form-item label="人员:" class="mab" prop="keyOrder" label-width='110'>
+          <el-input v-model="add_huheformdata.name1"  style="width: 80px;" id ='name1'  @keydown="add_gdzlent($event, 'rate', 'name1', 'name2')"/>
+          <el-input v-model="add_huheformdata.name2" style="width: 80px;" id ='name2'  @keydown="add_gdzlent($event, 'name1', 'name2', 'name3')"/>
+          <el-input v-model="add_huheformdata.name3"  style="width: 80px;" id ='name3'  @keydown="add_gdzlent($event, 'name2', 'name3', 'name4')"/>
+          <el-input v-model="add_huheformdata.name4"  style="width: 80px;" id ='name4'  @keydown="add_gdzlent($event, 'name3', 'name4', 'name5')"/>
+          <el-input v-model="add_huheformdata.name5"  style="width: 80px;" id ='name5'  @keydown="add_gdzlent($event, 'name4', 'name5', 'name6')"/>
+          <el-input v-model="add_huheformdata.name6"  style="width: 80px;" id ='name6'  @keydown="add_gdzlent($event, 'name5', 'name6', 'name7')"/>
+          <el-input v-model="add_huheformdata.name7"  style="width: 80px;" id ='name7'  @keydown="add_gdzlent($event, 'name6', 'name7', 'name8')"/>
+          <el-input v-model="add_huheformdata.name8"  style="width: 80px;" id ='name8'  @keydown="add_gdzlent($event, 'name7', 'name8', 'name9')"/>
+          <el-input v-model="add_huheformdata.name9"  style="width: 80px;" id ='name9'  @keydown="add_gdzlent($event, 'name8', 'name9', 'name10')"/>
+          <el-input v-model="add_huheformdata.name10"  style="width: 80px;" id ='name10'  @keydown="add_gdzlent($event, 'name9', 'name10', 'name11')"/>
+          <el-input v-model="add_huheformdata.name11"  style="width: 80px;" id ='name11'  @keydown="add_gdzlent($event, 'name10', 'name11', 'name12')"/>
+          <el-input v-model="add_huheformdata.name12"  style="width: 80px;" id ='name12'  @keydown="add_gdzlent($event, 'name11', 'name12', 'name13')"/>
+          <el-input v-model="add_huheformdata.name13"  style="width: 80px;" id ='name13'  @keydown="add_gdzlent($event, 'name12', 'name13', 'name14')"/>
+          <el-input v-model="add_huheformdata.name14"  style="width: 80px;" id ='name14'  @keydown="add_gdzlent($event, 'name13', 'name14', 'name15')"/>
+          <el-input v-model="add_huheformdata.name15"  style="width: 80px;" id ='name15'  @keydown="add_gdzlent($event, 'name14', 'name15', 'sys_id')"/>
+        </el-form-item>
+        </el-col>
+      </el-row>
+
+      <el-row :gutter="24" class="form-row">
+    <el-col :span="10">
+      <el-form-item label="类型" prop="desc">
+        <el-select 
+          v-model="add_huheformdata.desc" 
+          id="desc" 
+          placeholder="请选择类型" 
+          @keydown="add_gdzlent($event, 'bz', 'role', 'rate')"
+          @change="handleTypeChange"
+        >
+          <el-option
+            v-for="item in lxOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+    </el-col>
+    <el-col :span="10">
+      <el-form-item label="说明" prop="ins">
+        <el-input 
+          v-model="add_huheformdata.ins" 
+          id="ins" 
+          placeholder="请输入说明" 
+          :disabled="!isBorrowEnabled"
+          @keydown="add_gdzlent($event, 'role', 'rate', 'bh1')" 
+        />
+      </el-form-item>
+    </el-col>
+  </el-row>
+
+          </el-form>
+      <template #footer>
+      <div class="dialog-footer" style="display: flex; justify-content: flex-end; padding: 10px;">
+        <el-button type="primary" @click="add_huhecloseDialog">取消</el-button>
+        <el-button type="primary" @click="add_huheenterDialog">确定</el-button>
+      </div>
+      </template>
+      
+    </el-dialog>
+
+
+          
+          
+
+
+        </el-main>
+      </layout-content>
+      </layout>
+    </layout>
+  </div>
+</template>
+<script setup>
+// 全量引入格式化工具 请按需保留
+import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
+import { getGluingcoleTab,getGluingClassLList,AddGluingClass,getGluingcole,UpdateGluingClass,saveGluingcoleDetail} from '@/api/mes/huhejob'
+import {getYg,} from '@/api/jixiaoguanli/jitairibaobiao'
+import {ref, reactive,watch,onMounted,computed } from 'vue'
+import { exportExcelFile } from '@/utils/excel'
+import { useUserStore } from '@/pinia/modules/user'
+import {ElMessage} from "element-plus";
+import SysDictionary from '@/view/superAdmin/dictionary/sysDictionary.vue';
+defineOptions({name: 'Company'})
+
+const userStore = useUserStore()
+const _username = ref('')
+_username.value = userStore.userInfo.userName + '/' + userStore.userInfo.nickName
+// =========== 获取左侧树侧形结构 ===========
+const treeData = reactive([]);
+
+const getTabdata = async () => {
+    try {
+        // 接口调用函数
+        const response = await getGluingcoleTab();
+        console.log(response);
+        
+        // 创建树形结构:根节点 -> 车间 -> 设备
+        const transformedData = [{
+            label: "设备列表",
+            children: Object.entries(response.data).map(([workshopName, devices]) => {
+                return {
+                    label: workshopName,
+                    children: devices.map(item => {
+                        // 分割设备编号和设备名称
+                        const [deviceId, deviceName] = item.split('-->');
+                        return {
+                            label: `${deviceId} 【${deviceName}】`,
+                            params: {
+                                device_id: deviceId.trim(),
+                                device_name: deviceName.trim(),
+                                workshop_name: workshopName // 可选:添加车间名称到参数中
+                            }
+                        };
+                    })
+                };
+            })
+        }];
+        
+        // 清空并更新树数据
+        treeData.splice(0, treeData.length, ...transformedData);
+        
+    } catch (error) {
+        console.error('获取设备数据失败:', error);
+    }
+}
+
+getTabdata();
+
+
+const hztableData = ref([])
+const nodemachine = ref('')
+const handleNodeClick = async (node) => {
+  // 取消所有节点的颜色
+const allNodes = document.querySelectorAll('.treecolor .el-tree-node');
+allNodes.forEach(node => {
+  node.querySelector('.el-tree-node__label').style.color = '';
+});
+// 获取点击的节点
+const clickedNodeId = node['$treeNodeId'];
+const clickedNode = document.querySelector(`.treecolor .el-tree-node[data-key="${clickedNodeId}"]`);
+if (clickedNode) {
+  // 给当前点击的节点改变颜色
+  clickedNode.querySelector('.el-tree-node__label').style.color = 'red';
+}
+
+console.log(node)
+if(!node.children){
+  nodemachine.value = node.params.device_id
+  getGluingClassLList({machine:node.params.device_id}).then(res => {
+    if (res.code === 0){
+      hztableData.value = res.data
+    }else{
+      console.log('1212112')
+      hztableData.value = []
+    }
+  })
+}
+} 
+
+
+const typestatus = ref('')
+const add_huhedialogFormVisible = ref(false)
+const add_huheformdata = reactive({
+jtbh: '',
+bz: '',
+role: '',
+rate: '',
+bh1: '',
+bh2: '',
+bh3: '',
+bh4: '',
+bh5: '',
+bh6: '',
+bh7: '',
+bh8: '',
+bh9: '',
+bh10: '',
+bh11: '',
+bh12: '',
+bh13: '',
+bh14: '',
+bh15: '',
+name1: '',
+name2: '',
+name3: '',
+name4: '',
+name5: '',
+name6: '',
+name7: '',
+name8: '',
+name9: '',
+name10: '',
+name11: '',
+name12: '',
+name13: '',
+name14: '',
+name15: '',
+id: '',
+sys_id: '',
+})
+
+const on_add = () => {
+console.log('新增')
+typestatus.value = 'create'
+if(nodemachine.value){
+  add_huhedialogFormVisible.value = true
+  add_huheformdata.jtbh = nodemachine.value
+  getGluingcoleData();
+}else{
+  ElMessage.error('请先选择机台编号')
+}
+}
+
+// 使用 ref 创建响应式数据
+const bzOptions = ref([
+  { label: 'A 班', value: 'A 班' },
+  { label: 'B 班', value: 'B 班' }
+])
+
+const lxOptions = ref([
+  { label: '', value: '' },
+  { label: '借调', value: '借调' },
+  { label: '实习', value: '实习' }
+])
+
+// 计算属性:判断是否为借调类型
+const isBorrowEnabled = computed(() => {
+  return add_huheformdata.desc === '借调'
+})
+
+// 类型变更处理函数
+const handleTypeChange = (value) => {
+  if (value !== '借调') {
+    add_huheformdata.ins = '' // 清空说明框
+  }
+}
+
+
+const roleOptions = ref([]) // 角色下拉选项
+const gluingcoleData = ref({}) // 存储接口返回的完整数据
+
+// 获取下拉框数据的方法
+const getGluingcoleData = async () => {
+  try {
+    const response = await getGluingcole({ machine: add_huheformdata.jtbh })
+    console.log(response)
+    
+    if (response.code === 0) {
+      gluingcoleData.value = response.data
+      
+      // 处理角色选项:从role1到role10中过滤掉空值
+      roleOptions.value = []
+      for (let i = 1; i <= 10; i++) {
+        const roleKey = `role${i}`
+        const roleValue = response.data[roleKey]
+        if (roleValue && roleValue.trim() !== '') {
+          roleOptions.value.push({
+            label: roleValue,
+            value: roleValue,
+            rateKey: `rate${i}` // 存储对应的比例字段名
+          })
+        }
+      }
+    }
+  } catch (error) {
+    console.error('获取班组和角色数据失败:', error)
+  }
+}
+
+// 监听角色选择变化,自动填充比例
+watch(() => add_huheformdata.role, (newRole) => {
+  if (newRole && gluingcoleData.value) {
+    // 找到选中的角色对应的选项
+    const selectedOption = roleOptions.value.find(item => item.value === newRole)
+    if (selectedOption && selectedOption.rateKey) {
+      // 设置对应的比例值
+      add_huheformdata.rate = gluingcoleData.value[selectedOption.rateKey] || ''
+    }
+  }
+})
+
+// 关闭弹窗
+const add_huhecloseDialog = () => {
+add_huhedialogFormVisible.value = false
+}
+
+
+
+// 添加确定按钮的方法实现
+const add_huheenterDialog = async () => {
+  try {
+    // 构建基础参数
+    const baseParams = {
+      jtbh: add_huheformdata.jtbh,
+      bz: add_huheformdata.bz,
+      role: add_huheformdata.role,
+      rate: add_huheformdata.rate,
+      bh1: add_huheformdata.bh1,
+      bh2: add_huheformdata.bh2,
+      bh3: add_huheformdata.bh3,
+      bh4: add_huheformdata.bh4,
+      bh5: add_huheformdata.bh5,
+      bh6: add_huheformdata.bh6,
+      bh7: add_huheformdata.bh7,
+      bh8: add_huheformdata.bh8,
+      bh9: add_huheformdata.bh9,
+      bh10: add_huheformdata.bh10,
+      bh11: add_huheformdata.bh11,
+      bh12: add_huheformdata.bh12,
+      bh13: add_huheformdata.bh13,
+      bh14: add_huheformdata.bh14,
+      bh15: add_huheformdata.bh15,
+      desc: !add_huheformdata.desc ? '' : 
+        add_huheformdata.desc === '借调' ? 
+        (add_huheformdata.ins ? `${add_huheformdata.desc}-${add_huheformdata.ins}` : add_huheformdata.desc) : 
+        add_huheformdata.desc
+    }
+
+    let res
+    let successMessage = ''
+    if (typestatus.value === 'create') {
+      // 新增操作
+      const createParams = {
+        ...baseParams,
+        sys_id: userStore.userInfo.nickName
+      }
+      res = await AddGluingClass(createParams)
+      successMessage = '新增成功'
+    } else {
+      // 修改操作
+      const updateParams = {
+        ...baseParams,
+        id: add_huheformdata.id  
+      }
+      res = await UpdateGluingClass(updateParams)
+      successMessage = '修改成功'
+    }
+
+    // 统一处理响应
+    if (res.code === 0) {
+      ElMessage.success(successMessage)
+      add_huhedialogFormVisible.value = false
+      // 刷新数据
+      const listRes = await getGluingClassLList({ machine: add_huheformdata.jtbh })
+      if (listRes.code === 0) {
+        hztableData.value = listRes.data
+      }
+      resetForm()
+    } else {
+      ElMessage.error(res.msg || '操作失败')
+    }
+
+  } catch (error) {
+    console.error('操作失败:', error)
+    ElMessage.error('操作失败')
+  }
+}
+
+// 在关闭弹窗后重置表单
+const resetForm = () => {
+  Object.keys(add_huheformdata).forEach(key => {
+    add_huheformdata[key] = ''
+  })
+}
+
+
+const updateCompanyFunc = async(row) => {
+console.log(row)
+typestatus.value = 'update'
+Object.assign(add_huheformdata, row)
+getGluingcoleData();
+add_huhedialogFormVisible.value = true
+// const getGluingcoleDetaildata = await getGluingcoleDetail({id: row.id})
+// if (getGluingcoleDetaildata.code === 0){
+//   Object.assign(add_huheformdata, getGluingcoleDetaildata.data)
+//   add_huhedialogFormVisible.id = row.id
+//   add_huhedialogFormVisible.value = true
+// }
+}
+
+
+
+
+//键盘input框跳转
+const add_gdzlent = async (event,id1,id2,id3,idx) => {
+  console.log(idx)
+if(event.keyCode === 40){
+  if(id3!=''){
+  document.getElementById(id3).focus()
+  }
+}else if (event.keyCode === 13) { // Enter 或向下箭头
+  if (id2.includes('bh')){
+    console.log('姓名')
+    getbzyg('',idx)
+  }
+  if(id3!=''){
+  document.getElementById(id3).focus()
+  }
+} else if (event.keyCode === 38) { // 向上箭头
+  if(id1!=''){
+  document.getElementById(id1).focus()
+  }
+}else if (event.keyCode === 8) { // 删除箭头
+  if(id1!='' && document.getElementById(id2).value==''){
+  document.getElementById(id1).focus()
+  }
+}else if (event.keyCode === 37) { // 向左箭头
+  if(id1!='' && document.getElementById(id2).selectionStart==0){
+  document.getElementById(id1).focus()
+  }
+}else if (event.keyCode === 39) { // 向右箭头
+  if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
+  document.getElementById(id3).focus()
+  }
+}
+}
+
+const blModel = ref(false)
+const employeeData = ref('')
+// const bz_Special = ref('')
+const getbzyg = async (value,key) => {
+  // bz_Special.value = key
+  let bzyg=''
+  bzyg=`bh${key}`
+  let bzxm=''
+  bzxm=`name${key}`
+  const response = await getYg({sczl_bh:add_huheformdata[bzyg]});
+  if (response.code === 0) {
+    if(response.data.length === 1){
+      add_huheformdata[bzxm]= response.data[0].ygxm
+      add_huheformdata[bzyg]= response.data[0].员工编号
+    }else{
+      blModel.value = true;
+      employeeData.value = response.data // 假设响应数据是数组
+    }
+  }
+}
+
+const clicked = ref(false);
+const currentIndex = ref(0);
+const tableBZRR = ref();
+// 模拟点击某一行
+const setCurrent = (row) => {
+  setTimeout(() => {
+    tableBZRR.value?.setCurrentRow(row);
+    const { 员工编号, ygxm } = row;
+    console.log("选中行数据:", row);
+  });
+};
+// 键盘事件处理逻辑
+const selectBZRR = (event) => {
+  if (event.keyCode === 40) {
+    // 向下箭头
+    if (currentIndex.value < employeeData.value.length - 1) {
+      currentIndex.value++;
+    } else {
+      // 如果是最后一行,回到第一行
+      currentIndex.value = 0;
+    }
+  } else if (event.keyCode === 38) {
+    // 向上箭头
+    if (currentIndex.value > 0) {
+      currentIndex.value--;
+    } else {
+      // 如果是第一行,跳到最后一行
+      currentIndex.value = employeeData.value.length - 1;
+    }
+  } else if (event.keyCode === 13) {
+    // 回车键,模拟触发点击事件
+    const row = employeeData.value[currentIndex.value];
+    tablebllickHandler(row); // 手动调用行点击事件
+  }
+  //高亮当前选中的行
+  setCurrent(employeeData.value[currentIndex.value]);
+};
+
+// 表格行点击事件处理
+const tablebllickHandler = async (row, column, event) => {
+  if (clicked.value) {
+    // 如果已经点击过一次,则不再执行操作
+    return;
+  }
+  for (let i = 1; i <= 15; i++) {
+    const bhKey = `bh${i}`;
+    const nameKey = `name${i}`;
+    // 如果 code 有值,且对应的 name 没有值,则清空 code 的值
+    if (add_huheformdata[bhKey] !== '' && add_huheformdata[nameKey] === '') {
+      add_huheformdata[bhKey] = '';
+      // console.log(`清空了 ${bhKey} 的值,因为 ${nameKey} 为空`);
+    }
+    // 检查 code 是否包含字母(使用正则表达式)
+    if (/[a-zA-Z]/.test(add_huheformdata[bhKey])) {
+      add_huheformdata[bhKey] = ''; // 清空 code
+      add_huheformdata[nameKey] = ''; // 清空 name
+      // console.log(`清空了 ${bhKey} 和 ${nameKey} 的值,因为 ${bhKey} 中包含字母`);
+    }
+  }
+  let nextIndex = 1;
+  // 找到下一个需要填充的空位置
+  while (
+    add_huheformdata[`bh${nextIndex}`] !== '' &&
+    add_huheformdata[`name${nextIndex}`] !== ''
+  ) {
+    nextIndex++;
+    if (nextIndex > 15) { // 这里只处理8个输入框的情况
+      // 如果所有字段都已经填满,则不做任何事情并退出函数
+      return;
+    }
+  }
+
+    // 当前按下回车的输入框索引
+    const currentInputIndex = currentIndex.value + 1;
+    // 如果找到的空位不是当前输入框,则填充前面的空位
+    if (nextIndex !== currentInputIndex) {
+      // 填充前面空位
+      add_huheformdata[`bh${nextIndex}`] = row.员工编号;
+      add_huheformdata[`name${nextIndex}`] = row.ygxm;
+      // 检查当前输入框是否需要清空
+      if (add_huheformdata[`name${currentInputIndex}`] === '' &&add_huheformdata[`bh${currentInputIndex}`] !== '') {
+        // 如果当前输入框的 name 为空,但 bh 有值,清空当前输入框
+        add_huheformdata[`bh${currentInputIndex}`] = '';
+      }
+    } else {
+      // 如果当前输入框就是下一个空位,则直接填充到当前输入框
+      add_huheformdata[`bh${currentInputIndex}`] = row.员工编号;
+      add_huheformdata[`name${currentInputIndex}`] = row.ygxm;
+    }
+    // 弹窗关闭并防止重复点击
+    setTimeout(() => {
+      blModel.value = false; // 延迟关闭弹窗
+      clicked.value = false; // 恢复点击标志
+    }, 300);
+};
+
+</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;
+}
+
+
+/* 媒体查询,根据需要调整断点 */
+@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;
+}
+
+
+/* 选中某行时的背景色 */
+: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>