zck 2 недель назад
Родитель
Сommit
b469e6032c

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

@@ -1535,6 +1535,35 @@ export const importProcess = (data) => {
   })
 }
 
+//获取工单基本信息和工单计划制造工分
+export const getWorkOrderInfo = (params) => {
+  return service({
+    url: '/mes_server/work_order_process/getWorkOrderInfo',
+    method: 'get',
+    params
+  })
+}
+
+//获取工单工艺信息
+export const getWorkOrderProcess = (params) => {
+  return service({
+    url: '/mes_server/work_order_process/getWorkOrderProcess',
+    method: 'get',
+    params
+  })
+}
+
+//修改工单计划制造工分
+export const updateWorkOrderPlanManufacture = (data) => {
+  return service({
+    url: '/mes_server/work_order_process/updateWorkOrderPlanManufacture',
+    method: 'post',
+    data
+  })
+}
+
+
+
 //工单大工序列表
 export const MajorprocessList = (params) => {
   return service({

+ 2 - 3
src/view/performance/WorkScoreReporting/WorkReportEntry.vue

@@ -4,8 +4,7 @@
       <!-- 左侧块 -->
       <div class="left-block" @click="navigateToReporting">
         <h2>产量报工</h2>
-        <p v-if="process">当前工序: {{ process }}</p>
-        <p v-else>正在检测工序...</p>
+        <p>点击进入产量报工</p>
       </div>
        
       <!-- 右侧块 -->
@@ -179,7 +178,7 @@ onMounted(() => {
 
 .left-block h2,
 .right-block h2 {
-  font-size: 18px;
+  font-size: 36px;
   margin-bottom: 15px;
   font-weight: bold;
 }

+ 25 - 19
src/view/performance/WorkScoreReporting/gongfenbaogong.vue

@@ -145,11 +145,17 @@
                 <!-- 工分报工对话框 -->
                 <el-dialog
                   v-model="workScoreDialogVisible"
-                  :title="add_formData['工序'] + '工分报工'"
                   width="100%"
                   height="100%"
                   fullscreen
+                  :show-close="false"
                 >
+                  <template #header>
+                    <div style="display: flex; justify-content: space-between; align-items: center; width: 100%;">
+                      <span>{{ add_formData['工序'] }}工分报工</span>
+                      <el-button @click="workScoreDialogVisible = false" style="width: 80px; height: 32px;">关闭</el-button>
+                    </div>
+                  </template>
                   <div style="height: 84vh; display: flex; flex-direction: column;">
                     <div style="width: 100%;">
                       <div style="background-color: #333; color: white; padding: 20px; border-radius: 8px;">
@@ -211,12 +217,15 @@
                         <div v-if="add_formData['工序'] === '车缝' && selectedPartIndex !== -1 && partProcesses[selectedPartIndex] && partProcesses[selectedPartIndex].length > 0">
                           <div style="display: flex; align-items: center; margin-bottom: 20px;">
                             <h4 style="margin: 0; font-size: 16px;">部件: {{ processParts[selectedPartIndex]['部件编号'] }} - {{ processParts[selectedPartIndex]['部件名称'] }} </h4>
-                            <el-input 
-                              v-model="partQuantities[selectedPartIndex]" 
-                              placeholder="填写上报数量" 
-                              style="margin-left: auto; width: 150px;"
-                              @input="updateProcessQuantities(selectedPartIndex)"
-                            ></el-input>
+                            <div style="margin-left: auto; display: flex; align-items: center;">
+                              <el-input 
+                                v-model="partQuantities[selectedPartIndex]" 
+                                placeholder="填写上报数量" 
+                                style="width: 150px;"
+                                @input="updateProcessQuantities(selectedPartIndex)"
+                              ></el-input>
+                              <el-button type="primary" @click="submitWorkScore" style="margin-left: 10px; width: 80px; height: 32px;">提交</el-button>
+                            </div>
                           </div>
                           
                           <!-- 工艺列表 -->
@@ -283,12 +292,15 @@
                         <div v-else-if="add_formData['工序'] !== '车缝' && partProcesses.length > 0 && partProcesses[0].length > 0">
                           <div style="display: flex; align-items: center; margin-bottom: 20px;">
                             <h4 style="margin: 0; font-size: 16px;">工艺列表</h4>
-                            <el-input 
-                              v-model="partQuantities[0]" 
-                              placeholder="填写上报数量" 
-                              style="margin-left: auto; width: 150px;"
-                              @input="updateProcessQuantities(0)"
-                            ></el-input>
+                            <div style="margin-left: auto; display: flex; align-items: center;">
+                              <el-input 
+                                v-model="partQuantities[0]" 
+                                placeholder="填写上报数量" 
+                                style="width: 150px;"
+                                @input="updateProcessQuantities(0)"
+                              ></el-input>
+                              <el-button type="primary" @click="submitWorkScore" style="margin-left: 10px; width: 80px; height: 32px;">提交</el-button>
+                            </div>
                           </div>
                           
                           <!-- 工艺列表 -->
@@ -360,12 +372,6 @@
                       </div>
                     </div>
                   </div>
-                  <template #footer>
-                    <span class="dialog-footer" style="text-align: right;">
-                      <el-button @click="workScoreDialogVisible = false" style="width: 80px;height: 50px;">取消</el-button>
-                      <el-button type="primary" @click="submitWorkScore"  style="width: 80px;height: 50px;">提交</el-button>
-                    </span>
-                  </template>
                 </el-dialog>
         </layout-content>
       </layout>

+ 1 - 1
src/view/yunyin/renliziyuan/renyuanjibenziliao.vue

@@ -642,7 +642,7 @@ const _ygjbzledit = async ()=>{
 }
 .staff-tree-panel {
   min-height: 260px;
-  max-height: 420px;
+  max-height: 640px;
   overflow: auto;
 }
 .yunyin-page-header :deep(.arco-layout-header) {

+ 273 - 23
src/view/yunyin/shengchanguanli/gongdanziliao.vue

@@ -16,8 +16,8 @@
 				<el-button type="primary" icon="Plus" class="bt" :disabled="!_Gd_gdbh" @click="openProcessAdd">新增工艺资料</el-button>
 				<el-button type="primary" icon="Sort" class="bt" :disabled="!_Gd_gdbh" @click="openSortDialog">部件与工艺排序</el-button>
 				<el-button type="primary" icon="edit"   @click="BOMclick"   class="bt"   title="BOM面料">批量修改新增BOM资料</el-button>
-				<el-button type="primary" icon="edit"   @click="del_ddzlClick" 	v-if="table_del=== true" :disabled="table_Selection === ''"  class="bt" title="选中复选框进行删除订单数据">删除订单资料</el-button>
-				<el-button type="primary" icon="edit"   @click="delgd_delclick"  	v-if="delall=== true" :disabled="ysSelection === '' && gySelection === ''"  class="bt" title="选中复选框进行删除颜色数据">删除颜色资料</el-button>
+				<el-button type="danger" icon="edit"   @click="del_ddzlClick" 	v-if="table_del=== true" :disabled="table_Selection === ''"  class="bt" title="选中复选框进行删除订单数据">删除订单资料</el-button>
+				<el-button type="danger" icon="edit"   @click="delgd_delclick"  	v-if="delall=== true" :disabled="ysSelection === '' && gySelection === ''"  class="bt" title="选中复选框进行删除颜色数据">删除颜色资料</el-button>
 				<el-button type="primary" icon="edit"   @click="copyProductData"  :disabled="!_Gd_gdbh"  class="bt" title="复制产品资料">复制产品资料</el-button>
 				<el-button type="primary" icon="upload" @click="openImportProcessDialog" :disabled="!_Gd_gdbh" class="bt" title="导入工艺资料">导入工艺资料</el-button>
 
@@ -359,6 +359,158 @@
 			  </el-tabs>
   
 				
+		   <!-- 工艺资料详情弹窗 -->
+		   <el-dialog v-model="gyDetailDialogVisible" :before-close="closeGyDetailDialog" 
+		   style="width: 100vw; height: 100vh; margin: 0; padding: 0; top: 0; left: 0;"
+		   title="工艺资料详情" destroy-on-close class="gy-detail-dialog">
+		     <div style="padding: 20px; height: calc(100vh - 80px); overflow: hidden; box-sizing: border-box;">
+		       <!-- 上方信息 -->
+		       <div style="margin-bottom: 15px; overflow-x: auto;">
+		         <el-row :gutter="15" style="width: max-content; display: flex; align-items: flex-start;">
+		           <!-- 第一列 -->
+		           <div style="display: flex; flex-direction: column; gap: 10px;">
+		             <div style="display: flex; align-items: center; white-space: nowrap;">
+		               <span style="width: 90px; text-align: right; margin-right: 10px;">订单编号:</span>
+		               <el-input v-model="gyDetailFormData.订单编号" disabled style="width: 200px;" />
+		             </div>
+		             <div style="display: flex; align-items: center; white-space: nowrap;">
+		               <span style="width: 90px; text-align: right; margin-right: 10px;">接单日期:</span>
+		               <el-input v-model="gyDetailFormData.接单日期" disabled style="width: 180px;" />
+		             </div>
+		           </div>
+		           <!-- 第二列 -->
+		           <div style="display: flex; flex-direction: column; gap: 10px;">
+		             <div style="display: flex; align-items: center; white-space: nowrap;">
+		               <span style="width: 90px; text-align: right; margin-right: 10px;">客户编号:</span>
+		               <el-input v-model="gyDetailFormData.客户编号" disabled style="width: 150px;" />
+		             </div>
+		             <div style="display: flex; align-items: center; white-space: nowrap;">
+		               <span style="width: 90px; text-align: right; margin-right: 10px;">审核:</span>
+		               <el-input v-model="gyDetailFormData.审核" disabled style="width: 120px;" />
+		             </div>
+		           </div>
+		           <!-- 第三列 -->
+		           <div style="display: flex; flex-direction: column; gap: 10px;">
+		             <div style="display: flex; align-items: center; white-space: nowrap;">
+		               <span style="width: 90px; text-align: right; margin-right: 10px;">生产款号:</span>
+		               <el-input v-model="gyDetailFormData.生产款号" disabled style="width: 180px;" />
+		             </div>
+		             <div style="display: flex; align-items: center; white-space: nowrap;">
+		               <span style="width: 90px; text-align: right; margin-right: 10px;">订单数量:</span>
+		               <el-input v-model="gyDetailFormData.订单数量" disabled style="width: 120px;" />
+		             </div>
+		           </div>
+		           <!-- 第四列 -->
+		           <div style="display: flex; flex-direction: column; gap: 10px;">
+		             <div style="display: flex; align-items: center; white-space: nowrap;">
+		               <span style="width: 90px; text-align: right; margin-right: 10px;">款式:</span>
+		               <el-input v-model="gyDetailFormData.款式" disabled style="width: 250px;" />
+		             </div>
+		             <div style="display: flex; align-items: center; white-space: nowrap;">
+		               <span style="width: 90px; text-align: right; margin-right: 10px;">计划制造工分:</span>
+		               <el-input v-model="gyDetailFormData.计划制造工分" disabled style="width: 150px;" />
+		             </div>
+		           </div>
+		           <!-- 第五列 -->
+		           <div style="display: flex; flex-direction: column; gap: 10px;">
+		             <div style="display: flex; align-items: center; white-space: nowrap;">
+		               <span style="width: 90px; text-align: right; margin-right: 10px;">落货日期:</span>
+		               <el-input v-model="gyDetailFormData.落货日期" disabled style="width: 180px;" />
+		             </div>
+		           </div>
+		           <!-- 第六列 -->
+		           <div style="display: flex; flex-direction: column; gap: 10px;">
+		             <div style="display: flex; align-items: center; white-space: nowrap;">
+		               <span style="width: 90px; text-align: right; margin-right: 10px;">审核日期:</span>
+		               <el-input v-model="gyDetailFormData.审核日期" disabled style="width: 180px;" />
+		             </div>
+		           </div>
+		         </el-row>
+		       </div>
+		       
+		       <!-- 工艺列表表格 -->
+		       <div style="height: calc(100vh - 200px); overflow: auto; border: 1px solid #EBEEF5; border-radius: 4px;">
+		         <el-table 
+		           :data="gyDetailFormData.工艺列表" 
+		           border 
+		           size="small"
+		           style="width: 100%;"
+		           :show-overflow-tooltip="true">
+		           <el-table-column align="left" label="部件编号" width="100">
+		             <template #default="{ row }">
+		               <el-input v-model="row.部件编号" size="small" style="width: 90px;" />
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="部件名称" width="150">
+		             <template #default="{ row }">
+		               <el-input v-model="row.部件名称" size="small" style="width: 140px;" />
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="工序编号" width="100">
+		             <template #default="{ row }">
+		               <el-input v-model="row.工序编号" size="small" style="width: 90px;" />
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="工序名称" width="250">
+		             <template #default="{ row }">
+		               <el-input v-model="row.工序名称" size="small" style="width: 240px;" />
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="大工序" width="100">
+		             <template #default="{ row }">
+		               <el-input v-model="row.大工序" size="small" style="width: 90px;" />
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="秒" width="80">
+		             <template #default="{ row }">
+		               <el-input v-model.number="row.秒" size="small" style="width: 70px;" />
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="分" width="80">
+		             <template #default="{ row }">
+		               <el-input v-model="row.分" size="small" style="width: 70px;" />
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="定额分" width="100">
+		             <template #default="{ row }">
+		               <el-input v-model="row.定额分" size="small" style="width: 90px;" />
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="金额" width="100">
+		             <template #default="{ row }">
+		               <el-input v-model="row.金额" size="small" style="width: 90px;" />
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="难度系数" width="100">
+		             <template #default="{ row }">
+		               <el-input v-model="row.难度系数" size="small" style="width: 90px;" />
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="备注" width="150">
+		             <template #default="{ row }">
+		               <el-input v-model="row.备注" size="small" style="width: 140px;" />
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="状态" width="100">
+		             <template #default="{ row }">
+		               <el-select v-model="row.状态" size="small" style="width: 90px;">
+		                 <el-option :value="0" label="正常" />
+		                 <el-option :value="1" label="拆分" />
+		               </el-select>
+		             </template>
+		           </el-table-column>
+		           <el-table-column align="left" label="操作" width="200">
+		             <template #default="{ row }">
+		               <el-button size="small" type="primary" plain>修改</el-button>
+		               <el-button size="small" type="success" plain>拆分</el-button>
+		               <el-button size="small" type="danger" plain>删除</el-button>
+		             </template>
+		           </el-table-column>
+		         </el-table>
+		       </div>
+		     </div>
+		   </el-dialog>
+		   
 		   <!-- 修改颜色资料弹窗 -->
 		   <el-dialog v-model="dialogFormVisible" :before-close="edit_closeDialog" 
 		   style="width: 80%; max-height: 80%; overflow-y: auto; margin-top: 4%;"
@@ -497,7 +649,8 @@
 					  </el-form-item>
 					  <el-form-item label="款式" label-width="100px">
 						<el-select v-model="add_gdscgdformData['款式']" id="款式"
-						  @keydown="add_gdzlent($event, '订单数量', '款式', '落货日期')" placeholder="请选择款式">
+						  filterable allow-create default-first-option
+						  @keydown="add_gdzlent($event, '订单数量', '款式', '落货日期')" placeholder="请选择或输入款式">
 						  <el-option v-for="style in productStyleList" :key="style" :label="style" :value="style" />
 						</el-select>
 					  </el-form-item>
@@ -899,6 +1052,7 @@
 		  
 					  <el-form-item label="款式" label-width="100px">
 						<el-select v-model="edit_ddformData['款式']" id='款式'
+							filterable allow-create default-first-option
 						  @keydown="add_gdzlent($event, '订单数量', '款式', '落货日期')" placeholder="请选择款式">
 						  <el-option v-for="style in productStyleList" :key="style" :label="style" :value="style" />
 						</el-select>
@@ -1180,84 +1334,105 @@
 						style="width: 80px;"
 						id="cm1"
 						@input="handleSizeInput('cm1')"
+						@keydown="add_gdzlent($event, '', 'cm1', 'cm2')"
 						/>
 						<el-input
 						v-model="cmformdata.cm2"
 						style="width: 80px;"
 						id="cm2"
 						@input="handleSizeInput('cm2')"
+						@keydown="add_gdzlent($event, 'cm1', 'cm2', 'cm3')"
 						/>
 						<el-input
 						v-model="cmformdata.cm3"
 						style="width: 80px;"
 						id="cm3"
 						@input="handleSizeInput('cm3')"
+						@keydown="add_gdzlent($event, 'cm2', 'cm3', 'cm4')"
 						/>
 						<el-input
 						v-model="cmformdata.cm4"
 						style="width: 80px;"
 						id="cm4"
 						@input="handleSizeInput('cm4')"
+						@keydown="add_gdzlent($event, 'cm3', 'cm4', 'cm5')"
 						/>
 						<el-input
 						v-model="cmformdata.cm5"
 						style="width: 80px;"
 						id="cm5"
 						@input="handleSizeInput('cm5')"
+						@keydown="add_gdzlent($event, 'cm4', 'cm5', 'cm6')"
 						/>
 						<el-input
 						v-model="cmformdata.cm6"
 						style="width: 80px;"
 						id="cm6"
 						@input="handleSizeInput('cm6')"
+						@keydown="add_gdzlent($event, 'cm5', 'cm6', 'cm7')"
 						/>
 						<el-input
 						v-model="cmformdata.cm7"
 						style="width: 80px;"
 						id="cm7"
 						@input="handleSizeInput('cm7')"
+						@keydown="add_gdzlent($event, 'cm6', 'cm7', 'cm8')"
 						/>
 						<el-input
 						v-model="cmformdata.cm8"
 						style="width: 80px;"
 						id="cm8"
 						@input="handleSizeInput('cm8')"
+						@keydown="add_gdzlent($event, 'cm7', 'cm8', 'cm9')"
 						/>
 						<el-input
 						v-model="cmformdata.cm9"
 						style="width: 80px;"
 						id="cm9"
 						@input="handleSizeInput('cm9')"
+						@keydown="add_gdzlent($event, 'cm8', 'cm9', 'cm10')"
 						/>
 						<el-input
 						v-model="cmformdata.cm10"
 						style="width: 80px;"
+						id="cm10"
 						@input="handleSizeInput('cm10')"
+						@keydown="add_gdzlent($event, 'cm9', 'cm10', 'cm11')"
 						/>
 						<el-input
 						v-model="cmformdata.cm11"
 						style="width: 80px;"
+						id="cm11"
 						@input="handleSizeInput('cm11')"
+						@keydown="add_gdzlent($event, 'cm10', 'cm11', 'cm12')"
 						/>
 						<el-input
 						v-model="cmformdata.cm12"
 						style="width: 80px;"
+						id="cm12"
 						@input="handleSizeInput('cm12')"
+						@keydown="add_gdzlent($event, 'cm11', 'cm12', 'cm13')"
 						/>
 						<el-input
 						v-model="cmformdata.cm13"
 						style="width: 80px;"
+						id="cm13"
 						@input="handleSizeInput('cm13')"
+						@keydown="add_gdzlent($event, 'cm12', 'cm13', 'cm14')"
 						/>
 						<el-input
 						v-model="cmformdata.cm14"
 						style="width: 80px;"
+						id="cm14"
 						@input="handleSizeInput('cm14')"
+						@keydown="add_gdzlent($event, 'cm13', 'cm14', 'sctotal')"
 						/>
 						<el-input
 						v-model="cmformdata.sctotal"
 						style="width: 80px;"
+						id="sctotal"
 						@input="handleSizeInput('sctotal')"
+						@keydown="add_gdzlent($event, 'cm14', 'sctotal', 'zds1')"
 						/>
 					</el-form-item>
 					</el-col>
@@ -1712,6 +1887,7 @@
         v-model="sortPartGyDialogVisible"
         title="调整部件 / 工艺序号排序"
         :width="'min(1280px, 90vw)'"
+        :max-height="'85vh'"
         align-center
         destroy-on-close
         append-to-body
@@ -2076,7 +2252,7 @@
 		  <el-form-item label="Excel文件">
 			<el-upload
 			  ref="importProcessUploadRef"
-			  class="upload-demo"
+			  class="upload-demo import-process-upload"
 			  action="#"
 			  :auto-upload="false"
 			  :show-file-list="true"
@@ -2085,6 +2261,7 @@
 			  :on-change="handleImportProcessFileChange"
 			  :on-remove="handleImportProcessFileRemove"
 			  :before-upload="beforeImportProcessUpload"
+			  list-type="text"
 			>
 			  <el-button type="primary" icon="upload">选择文件</el-button>
 			</el-upload>
@@ -2133,7 +2310,7 @@
   getSuborder,PrintDataEdit,WorkOrderEdit,gdAnnexAdd,upload,OrderAttachments,
   getPonumber,FabricEdit,orderBomList,FabricDetail,fabricList,Bomdel,delfujian,Read_File,Read_Add,PartList,GetProcessList,
   AddPart,UpdatePartInfo,DeletePart,AddProcess,UpdateProcess,DeleteProcess,getproducttype,workorderprocessCopy,sortProcess,getProductStyleList,
-  importProcess} from '@/api/mes/job'
+  importProcess,getWorkOrderInfo,getWorkOrderProcess,updateWorkOrderPlanManufacture} from '@/api/mes/job'
   import {ParList,ProcessList} from '@/api/yunyin/product'
   import PrintPage from './components/print.vue'
   import luckyexcelPage from './components/luckyexcel.vue'
@@ -3515,37 +3692,48 @@ const sortTableData = ref([])
       const n = Number(v)
       return Number.isFinite(n) ? n : undefined
     }
-    const limit = req?.limit ?? PROCESS_LIB_LIST_LIMIT
     const q = String(req?.search ?? '').trim()
-    const params = { page: 1, limit }
-    if (q) {
-      params.search = q
-    }
     try {
-      const res = await ProcessList(params)
+      // 使用 GetProcessList 获取当前工单的工艺数据
+      const res = await GetProcessList({ workorder: _Gd_gdbh.value })
       if (res?.code !== 0) {
         processLibNameOptions.value = []
         processLibByName.value = {}
         return
       }
-      const list = res?.data?.list ?? []
+      const list = res?.data ?? []
+      
+      // 根据大工艺筛选数据
+      let filteredList = list
+      if (q) {
+        filteredList = list.filter((row) => {
+          const bp = String(row.big_process ?? row['大工艺'] ?? row['生产工序'] ?? '').trim()
+          // 车缝包含车缝和烫工(小烫按部件算)
+          if (q === '车缝') {
+            return bp === '车缝' || bp === '烫工'
+          }
+          // 其他工序直接匹配
+          return bp === q
+        })
+      }
+      
       const seen = new Set()
       const opts = []
       const byName = {}
-      for (const row of list) {
+      for (const row of filteredList) {
         const name = String(row.gy_name ?? row['工艺名称'] ?? '').trim()
         if (!name || seen.has(name)) continue
         seen.add(name)
-        const sort = String(row.gy_sort ?? row.gy_code ?? row['工艺序号'] ?? '').trim()
-        const bp = String(row.big_process ?? row['生产工序'] ?? '').trim()
+        const sort = String(row.gy_sort ?? row.gy_code ?? row['工艺序号'] ?? row['工艺编号'] ?? '').trim()
+        const bp = String(row.big_process ?? row['大工艺'] ?? row['生产工序'] ?? '').trim()
         opts.push({ value: name, code: sort, big_process: bp })
         byName[name] = {
           gy_sort: sort,
-          gy_code: String(row.gy_code ?? '').trim(),
+          gy_code: String(row.gy_code ?? row['工艺编号'] ?? '').trim(),
           big_process: bp,
           standard_hour: toNum(row.standard_hour ?? row['标准工时']),
-          standard_score: toNum(row.standard_score ?? row['标准工分']),
-          difficulty_coef: toNum(row.difficulty_coef ?? row['难度系数']) ?? 1,
+          standard_score: toNum(row.standard_score ?? row['标准公分'] ?? row['标准工分']),
+          difficulty_coef: toNum(row.difficulty_coef ?? row['系数'] ?? row['难度系数']) ?? 1,
         }
       }
       processLibNameOptions.value = opts
@@ -3919,7 +4107,7 @@ const sortTableData = ref([])
 	try {
 	  for (const row of validRows) {
 		const res = await AddPart({
-			workorder: _Gd_gdbh.value,
+			workorder: _Gd_sckh.value,
 			part_name: row.part_name,
 			part_code: row.part_code,
 			part_type: row.part_type,
@@ -4110,7 +4298,7 @@ const sortTableData = ref([])
 	}
   }
 
-  // 构建车缝工序的部件-工艺分组
+  // 构建车缝工序的部件-工艺分组(包含车缝和烫工)
   const buildSortSewingGroups = (parts, processes) => {
 	const list = sortByPartSortAsc(Array.isArray(parts) ? parts : [])
 	console.log('部件列表:', list)
@@ -4130,7 +4318,8 @@ const sortTableData = ref([])
 		.filter((g) => {
 		  const bigProcess = String(g.big_process ?? g.大工艺 ?? '').trim()
 		  const processPartName = String(g.part_name ?? g.部件名称 ?? '').trim()
-		  const match = bigProcess === '车缝' && processPartName === partName
+		  // 车缝包含车缝和烫工(小烫按部件算)
+		  const match = (bigProcess === '车缝' || bigProcess === '烫工') && processPartName === partName
 		  console.log('过滤工艺:', { bigProcess, processPartName, partName, match })
 		  return match
 		})
@@ -4585,6 +4774,64 @@ const sortTableData = ref([])
 	  visible.value = false;
   }
   
+  // =========== 工艺资料详情弹窗 ===========
+  const gyDetailDialogVisible = ref(false)
+  const gyDetailFormData = reactive({
+    订单编号: '',
+    客户编号: '',
+    生产款号: '',
+    款式: '',
+    落货日期: '',
+    审核日期: '',
+    接单日期: '',
+    审核: '',
+    订单数量: '',
+    计划制造工分: '',
+    工艺列表: []
+  })
+  
+  const gdgyupdateCompanyFunc = async (row) => {
+    const workorder = _Gd_gdbh.value || row['订单编号'] || ''
+    if (!workorder) {
+      ElMessage.warning('请先选择订单')
+      return
+    }
+    
+    try {
+      // 获取订单信息
+      const orderInfoRes = await getWorkOrderInfo({ workorder })
+      if (orderInfoRes.code === 0 && orderInfoRes.data) {
+        const data = orderInfoRes.data
+        gyDetailFormData.订单编号 = data['订单编号'] || ''
+        gyDetailFormData.客户编号 = data['客户编号'] || ''
+        gyDetailFormData.生产款号 = data['生产款号'] || ''
+        gyDetailFormData.款式 = data['款式'] || ''
+        gyDetailFormData.落货日期 = data['落货日期'] || ''
+        gyDetailFormData.审核日期 = data['审核日期'] || ''
+        gyDetailFormData.接单日期 = data['接单日期'] || ''
+        gyDetailFormData.审核 = data['审核'] || ''
+        gyDetailFormData.订单数量 = data['订单数量'] || ''
+        gyDetailFormData.计划制造工分 = data['计划制造工分'] || ''
+      }
+      
+      // 获取工艺列表
+      const processRes = await getWorkOrderProcess({ workorder })
+      if (processRes.code === 0 && Array.isArray(processRes.data)) {
+        gyDetailFormData.工艺列表 = processRes.data
+      } else {
+        gyDetailFormData.工艺列表 = []
+      }
+      
+      gyDetailDialogVisible.value = true
+    } catch (error) {
+      console.error('获取工艺资料详情失败', error)
+      ElMessage.error('获取工艺资料详情失败')
+    }
+  }
+  
+  const closeGyDetailDialog = () => {
+    gyDetailDialogVisible.value = false
+  }
   
   // =========== 订单打印 ===========
   //弹窗
@@ -5615,12 +5862,12 @@ const sortTableData = ref([])
     }
     
     const formData = new FormData()
-    formData.append('workorder', _Gd_sckh.value)
+    formData.append('workorder', _Gd_gdbh.value)
     formData.append('file', importProcessFile)
     formData.append('sys_id', userStore.userInfo.nickName)
     
     // 调试:检查 formData 内容
-    console.log('workorder:', _Gd_sckh.value)
+    console.log('workorder:', _Gd_gdbh.value)
     console.log('sys_id:', userStore.userInfo.nickName)
     console.log('formData entries:', [...formData.entries()])
     
@@ -5781,6 +6028,9 @@ const sortTableData = ref([])
   ::v-deep(.el-upload-list--picture-card) {  
 	  margin-left: 100px;
   }
+  ::v-deep(.import-process-upload .el-upload__input) {
+    display: none !important;
+  }
   ::v-deep(.el-checkbox__inner) {  
 	  width: 20px;
 	  height: 20px;