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

+ 1 - 1
index.html

@@ -13,8 +13,8 @@
 		<meta http-equiv="expires" content="0">
 	
     <link rel="icon" href="favicon.ico">
+    <link rel="stylesheet" type="text/css" media="print" href="luckysheet/css/print-lock.css">
     <!-- <link rel="stylesheet" type="text/css" media="print" href="https://cdn.jsdelivr.net/npm/vue-plugin-hiprint@latest/dist/print-lock.css"> -->
-    <link rel="stylesheet" type="text/css" media="print" href="./src/assets/css/print-lock.css">
     <title></title>
 </head>
 

+ 352 - 0
public/luckysheet/css/print-lock.css

@@ -0,0 +1,352 @@
+@media print {
+  body {
+    margin: 0px;
+    padding: 0px;
+  }
+}
+
+@page {
+  margin: 0;
+}
+
+.hiprint-printPaper * {
+  box-sizing: border-box;
+  -moz-box-sizing: border-box; /* Firefox */
+  -webkit-box-sizing: border-box; /* Safari */
+}
+
+.hiprint-printPaper *:focus {
+  outline: -webkit-focus-ring-color auto 0px;
+}
+
+.hiprint-printPaper {
+  position: relative;
+  padding: 0 0 0 0;
+  page-break-after: always;
+  -webkit-user-select: none; /* Chrome/Safari/Opera */
+  -moz-user-select: none; /* Firefox */
+  user-select: none;
+  overflow-x: hidden;
+  overflow: hidden;
+}
+
+.hiprint-printPaper .hiprint-printPaper-content {
+  position: relative;
+}
+
+/* 火狐浏览器打印 第一页过后 重叠问题 */
+@-moz-document url-prefix() {
+  .hiprint-printPaper .hiprint-printPaper-content {
+    position: relative;
+    margin-top: 20px;
+    top: -20px
+  }
+}
+
+.hiprint-printPaper.design {
+  overflow: visible;
+}
+
+
+.hiprint-printTemplate .hiprint-printPanel {
+  page-break-after: always;
+}
+
+.hiprint-printPaper, hiprint-printPanel {
+  box-sizing: border-box;
+  border: 0px;
+}
+
+.hiprint-printPanel .hiprint-printPaper:last-child {
+  page-break-after: avoid;
+}
+
+.hiprint-printTemplate .hiprint-printPanel:last-child {
+  page-break-after: avoid;
+}
+
+.hiprint-printPaper .hideheaderLinetarget {
+  border-top: 0px dashed rgb(201, 190, 190) !important;
+}
+
+.hiprint-printPaper .hidefooterLinetarget {
+  border-top: 0px dashed rgb(201, 190, 190) !important;
+}
+
+.hiprint-printPaper.design {
+  border: 1px dashed rgba(170, 170, 170, 0.7);
+}
+
+.design .hiprint-printElement-table-content, .design .hiprint-printElement-longText-content {
+  overflow: hidden;
+  box-sizing: border-box;
+}
+
+.design .resize-panel {
+  box-sizing: border-box;
+  border: 1px dotted;
+}
+
+.hiprint-printElement-text {
+  background-color: transparent;
+  background-repeat: repeat;
+  padding: 0 0 0 0;
+  border: 0.75pt none rgb(0, 0, 0);
+  direction: ltr;
+  font-family: 'SimSun';
+  font-size: 9pt;
+  font-style: normal;
+  font-weight: normal;
+  padding-bottom: 0pt;
+  padding-left: 0pt;
+  padding-right: 0pt;
+  padding-top: 0pt;
+  text-align: left;
+  text-decoration: none;
+  line-height: 9.75pt;
+  box-sizing: border-box;
+  word-wrap: break-word;
+  word-break: break-all;
+}
+
+.design .hiprint-printElement-text-content {
+  border: 1px dashed rgb(206, 188, 188);
+  box-sizing: border-box;
+}
+
+.hiprint-printElement-longText {
+  background-color: transparent;
+  background-repeat: repeat;
+  border: 0.75pt none rgb(0, 0, 0);
+  direction: ltr;
+  font-family: 'SimSun';
+  font-size: 9pt;
+  font-style: normal;
+  font-weight: normal;
+  padding-bottom: 0pt;
+  padding-left: 0pt;
+  padding-right: 0pt;
+  padding-top: 0pt;
+  text-align: left;
+  text-decoration: none;
+  line-height: 9.75pt;
+  box-sizing: border-box;
+  word-wrap: break-word;
+  word-break: break-all;
+  /*white-space: pre-wrap*/
+}
+
+
+.hiprint-printElement-table {
+  background-color: transparent;
+  background-repeat: repeat;
+  color: rgb(0, 0, 0);
+  border-color: rgb(0, 0, 0);
+  border-style: none;
+  direction: ltr;
+  font-family: 'SimSun';
+  font-size: 9pt;
+  font-style: normal;
+  font-weight: normal;
+  padding-bottom: 0pt;
+  padding-left: 0pt;
+  padding-right: 0pt;
+  padding-top: 0pt;
+  text-align: left;
+  text-decoration: none;
+  padding: 0 0 0 0;
+  box-sizing: border-box;
+  line-height: 9.75pt;
+}
+
+.hiprint-printElement-table thead {
+  background: #e8e8e8;
+  font-weight: 700;
+}
+
+table.hiprint-printElement-tableTarget {
+  width: 100%;
+}
+
+.hiprint-printElement-tableTarget, .hiprint-printElement-tableTarget tr, .hiprint-printElement-tableTarget td {
+  border-color: rgb(0, 0, 0);
+  /*border-style: none;*/
+  /*border: 1px solid rgb(0, 0, 0);*/
+  font-weight: normal;
+  direction: ltr;
+  padding-bottom: 0pt;
+  padding-left: 4pt;
+  padding-right: 4pt;
+  padding-top: 0pt;
+  text-decoration: none;
+  vertical-align: middle;
+  box-sizing: border-box;
+  word-wrap: break-word;
+  word-break: break-all;
+  /*line-height: 9.75pt;
+  font-size: 9pt;*/
+}
+
+.hiprint-printElement-tableTarget-border-all {
+  border: 1px solid;
+}
+.hiprint-printElement-tableTarget-border-none {
+  border: 0px solid;
+}
+.hiprint-printElement-tableTarget-border-lr {
+  border-left: 1px solid;
+  border-right: 1px solid;
+}
+.hiprint-printElement-tableTarget-border-left {
+  border-left: 1px solid;
+}
+.hiprint-printElement-tableTarget-border-right {
+  border-right: 1px solid;
+}
+.hiprint-printElement-tableTarget-border-tb {
+  border-top: 1px solid;
+  border-bottom: 1px solid;
+}
+.hiprint-printElement-tableTarget-border-top {
+  border-top: 1px solid;
+}
+.hiprint-printElement-tableTarget-border-bottom {
+  border-bottom: 1px solid;
+}
+
+.hiprint-printElement-tableTarget-border-td-none td {
+  border: 0px solid;
+}
+.hiprint-printElement-tableTarget-border-td-all td:not(:nth-last-child(-n+2)) {
+  border-right: 1px solid;
+}
+.hiprint-printElement-tableTarget-border-td-all td:not(last-child) {
+  border-right: 1px solid;
+}
+.hiprint-printElement-tableTarget-border-td-all td:last-child {
+  border-left: 1px solid;
+}
+.hiprint-printElement-tableTarget-border-td-all td:last-child:first-child {
+  border-left: none;
+}
+
+/*.hiprint-printElement-tableTarget tr,*/
+.hiprint-printElement-tableTarget td {
+  height: 18pt;
+}
+
+.hiprint-printPaper .hiprint-paperNumber {
+  font-size: 9pt;
+}
+
+.design .hiprint-printElement-table-handle {
+  position: absolute;
+  height: 21pt;
+  width: 21pt;
+  background: red;
+  z-index: 1;
+}
+
+.hiprint-printPaper .hiprint-paperNumber-disabled {
+  float: right !important;
+  right: 0 !important;
+  color: gainsboro !important;
+}
+
+.hiprint-printElement-vline, .hiprint-printElement-hline {
+  border: 0px none rgb(0, 0, 0);
+
+}
+
+.hiprint-printElement-vline {
+  border-left: 0.75pt solid #000;
+  border-right: 0px none rgb(0, 0, 0) !important;
+  border-bottom: 0px none rgb(0, 0, 0) !important;
+  border-top: 0px none rgb(0, 0, 0) !important;
+}
+
+.hiprint-printElement-hline {
+  border-top: 0.75pt solid #000;
+  border-right: 0px none rgb(0, 0, 0) !important;
+  border-bottom: 0px none rgb(0, 0, 0) !important;
+  border-left: 0px none rgb(0, 0, 0) !important;
+}
+
+.hiprint-printElement-oval, .hiprint-printElement-rect {
+  border: 0.75pt solid #000;
+}
+
+.hiprint-text-content-middle {
+}
+
+.hiprint-text-content-middle > div {
+  display: grid;
+  align-items: center;
+}
+
+.hiprint-text-content-bottom {
+}
+
+.hiprint-text-content-bottom > div {
+  display: grid;
+  align-items: flex-end;
+}
+
+.hiprint-text-content-wrap {
+}
+
+.hiprint-text-content-wrap .hiprint-text-content-wrap-nowrap {
+  white-space: nowrap;
+}
+
+.hiprint-text-content-wrap .hiprint-text-content-wrap-clip {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: clip;
+}
+
+.hiprint-text-content-wrap .hiprint-text-content-wrap-ellipsis {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+/*hi-grid-row */
+.hi-grid-row {
+  position: relative;
+  height: auto;
+  margin-right: 0;
+  margin-left: 0;
+  zoom: 1;
+  display: block;
+  box-sizing: border-box;
+}
+
+.hi-grid-row::after, .hi-grid-row::before {
+  display: table;
+  content: '';
+  box-sizing: border-box;
+}
+
+.hi-grid-col {
+  display: block;
+  box-sizing: border-box;
+  position: relative;
+  float: left;
+  flex: 0 0 auto;
+}
+
+.table-grid-row {
+  margin-left: -0pt;
+  margin-right: -0pt;
+}
+
+.tableGridColumnsGutterRow {
+  padding-left: 0pt;
+  padding-right: 0pt;
+}
+
+.hiprint-gridColumnsFooter {
+  text-align: left;
+  clear: both;
+}

+ 23 - 4
src/api/mes/job.js

@@ -1562,6 +1562,24 @@ export const updateWorkOrderPlanManufacture = (data) => {
   })
 }
 
+//判断工序是否已经存在报工
+export const checkProcessReport = (data) => {
+  return service({
+    url: '/mes_server/work_order_process/checkProcessReport',
+    method: 'post',
+    data,
+    donNotShowError: true
+  })
+}
+
+//拆分工序
+export const confirmProcessSplit = (data) => {
+  return service({
+    url: '/mes_server/work_order_process/confirmProcessSplit',
+    method: 'post',
+    data
+  })
+}
 
 
 //工单大工序列表
@@ -1650,16 +1668,17 @@ export const UpdateProcess = (data) => {
   return service({
     url: '/mes_server/work_order_process/UpdateProcess',
     method: 'post',
-    data
+    data,
+    donNotShowError: true
   })
 }
 
 //工单工艺资料删除
-export const DeleteProcess = (params) => {
+export const DeleteProcess = (data) => {
   return service({
     url: '/mes_server/work_order_process/DeleteProcess',
-    method: 'get',
-    params
+    method: 'post',
+    data
   })
 }
 

+ 8 - 5
src/utils/request.js

@@ -110,11 +110,14 @@ service.interceptors.response.use(
       }
       return response.data
     } else {
-      ElMessage({
-        showClose: true,
-        message: response.data.msg || decodeURI(response.headers.msg),
-        type: 'error'
-      })
+      // 如果配置了 donNotShowError,则不弹出错误提示
+      if (!response.config.donNotShowError) {
+        ElMessage({
+          showClose: true,
+          message: response.data.msg || decodeURI(response.headers.msg),
+          type: 'error'
+        })
+      }
       if (response.data.data && response.data.data.reload) {
         userStore.token = ''
         localStorage.clear()

+ 191 - 210
src/view/performance/WorkScoreReporting/gongfenbaogong.vue

@@ -145,58 +145,38 @@
                 <!-- 工分报工对话框 -->
                 <el-dialog
                   v-model="workScoreDialogVisible"
-                  width="100%"
-                  height="100%"
-                  fullscreen
+                  width="100vw"
+                  height="100vh"
                   :show-close="false"
+                  :modal="false"
+                  :close-on-click-modal="false"
+                  style="padding: 0; margin: 0; overflow: hidden; background: white;"
                 >
-                  <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 style="height: 100vh; display: flex; flex-direction: column; overflow: hidden; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: white;">
+                    <!-- 头部 -->
+                    <div style="background-color: #1f2937; color: white; padding: 15px; display: flex; justify-content: space-between; align-items: center; flex-shrink: 0;">
+                      <span style="font-size: 18px; font-weight: bold;">{{ add_formData['工序'] }}工分报工</span>
+                      <el-button type="danger" @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;">
-                        <div v-if="orderInfoList.length > 0" style="display: flex; flex-wrap: wrap; gap: 20px; font-size: 16px; font-weight: bold;">
-                          <p style="margin: 5px 0;"><strong>订单编号:</strong> {{ orderInfoList[0]['订单编号'] }}</p>
-                          <p style="margin: 5px 0;"><strong>生产款号:</strong> {{ orderInfoList[0]['生产款号'] }}</p>
-                          <p style="margin: 5px 0;"><strong>款式:</strong> {{ orderInfoList[0]['款式'] }}</p>
-                          <p style="margin: 5px 0;"><strong>机台号:</strong> {{ add_formData['机台号'] }}</p>
-                          <p style="margin: 5px 0;"><strong>工序:</strong> {{ add_formData['工序'] }}</p>
-                          <p style="margin: 5px 0;"><strong>组别:</strong> {{ add_formData['组别'] }}</p>
-                        </div>
-                      </div>
-                       
-                      <!-- 选择操作上报人员 -->
-                      <div style="margin-bottom: 20px;">
-                        <h3 style="font-size: 18px; margin-bottom: 15px;">选择操作上报人员</h3>
-                        <div class="employee-grid" style="grid-template-columns: repeat(8, 1fr); gap: 10px;">
-                          <div 
-                            v-for="employee in employees" 
-                            :key="employee['员工编号']"
-                            class="employee-card"
-                            :class="{ selected: selectedEmployee === employee['员工编号'] }"
-                            @click="selectEmployee(employee)"
-                            draggable="true"
-                            @dragstart="onDragStart($event, employee)"
-                          >
-                            <div class="employee-avatar" :style="{ backgroundColor: getAvatarColor(employee['员工编号']) }">
-                              {{ employee['员工姓名'].charAt(0) }}
-                            </div>
-                            <div class="employee-name" style="font-size: 18px;">{{ employee['员工姓名'] }}</div>
-                            <div class="employee-id"  style="font-size: 14px;">{{ employee['员工编号'] }}</div>
-                          </div>
-                        </div>
+                    
+                    <!-- 订单信息(占满一行) -->
+                    <div style="background-color: #333; color: white; padding: 12px; flex-shrink: 0;">
+                      <div v-if="orderInfoList.length > 0" style="display: flex; flex-wrap: wrap; gap: 20px; font-size: 14px; font-weight: bold;">
+                        <p style="margin: 5px 0;"><strong>订单编号:</strong> {{ orderInfoList[0]['订单编号'] }}</p>
+                        <p style="margin: 5px 0;"><strong>生产款号:</strong> {{ orderInfoList[0]['生产款号'] }}</p>
+                        <p style="margin: 5px 0;"><strong>款式:</strong> {{ orderInfoList[0]['款式'] }}</p>
+                        <p style="margin: 5px 0;"><strong>机台号:</strong> {{ add_formData['机台号'] }}</p>
+                        <p style="margin: 5px 0;"><strong>工序:</strong> {{ add_formData['工序'] }}</p>
+                        <p style="margin: 5px 0;"><strong>组别:</strong> {{ add_formData['组别'] }}</p>
                       </div>
                     </div>
                     
-                    <!-- 下方:工艺部件信息 -->
-                    <div style="flex: 1; display: flex; flex-wrap: wrap; gap: 10px;">
-                      <div v-if="add_formData['工序'] === '车缝' && processParts.length > 0" style="flex: 0 0 30%; width: 180px;  border-right: 1px solid #e0e0e0;">
-                        <h3 style="font-size: 20px;">部件顺序</h3>
-                        <div class="part-list">
+                    <!-- 下方:左右分栏 -->
+                    <div style="flex: 1; display: flex; min-height: 0; overflow: hidden;">
+                      <!-- 左侧:部件顺序(加宽) -->
+                      <div v-if="add_formData['工序'] === '车缝' && processParts.length > 0" style="width: 280px; border-right: 1px solid #e0e0e0; display: flex; flex-direction: column; overflow: hidden;">
+                        <h3 style="font-size: 18px; padding: 15px; margin: 0; border-bottom: 1px solid #e0e0e0; background-color: #f5f5f5; flex-shrink: 0;">部件顺序</h3>
+                        <div class="part-list" style="flex: 1; overflow-y: scroll; overflow-x: hidden;">
                           <div 
                             v-for="(part, index) in processParts" 
                             :key="part['部件编号']"
@@ -212,162 +192,171 @@
                         </div>
                       </div>
                       
-                      <!-- 右侧:工艺列表 -->
-                      <div style="flex: 1; min-width: 400px; padding-left: 20px;">
-                        <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>
-                            <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 style="flex: 1; display: flex; flex-direction: column; min-height: 0; overflow: hidden;">
+                        <!-- 上报人员选择 -->
+                        <div style="padding: 12px; border-bottom: 1px solid #e0e0e0; background-color: #fafafa; flex-shrink: 0;">
+                          <h3 style="font-size: 16px; margin-bottom: 10px;">选择操作上报人员</h3>
+                          <div class="employee-grid" style="grid-template-columns: repeat(8, 1fr); gap: 8px;">
+                            <div 
+                              v-for="employee in employees" 
+                              :key="employee['员工编号']"
+                              class="employee-card"
+                              :class="{ selected: selectedEmployee === employee['员工编号'] }"
+                              @click="selectEmployee(employee)"
+                              draggable="true"
+                              @dragstart="onDragStart($event, employee)"
+                            >
+                              <div class="employee-avatar" :style="{ backgroundColor: getAvatarColor(employee['员工编号']) }">
+                                {{ employee['员工姓名'].charAt(0) }}
+                              </div>
+                              <div class="employee-name" style="font-size: 14px;">{{ employee['员工姓名'] }}</div>
+                              <div class="employee-id"  style="font-size: 12px;">{{ employee['员工编号'] }}</div>
                             </div>
                           </div>
-                          
-                          <!-- 工艺列表 -->
-                          <el-table :data="partProcesses[selectedPartIndex]" style="width: 100%;">
-                            <el-table-column prop="工艺编号" label="序号" width="70" />
-                            <el-table-column prop="工艺名称" label="工艺名称" />
-                            <el-table-column label="报工人员" width="120">
-                              <template #default="scope">
-                                <div v-if="getReportingData(selectedPartIndex, scope.$index).staffList">
-                                  <div v-for="(staff, staffIndex) in getReportingData(selectedPartIndex, scope.$index).staffList" :key="staffIndex" style="margin-bottom: 5px;">
+                        </div>
+                        
+                        <!-- 工艺列表 -->
+                        <div style="flex: 1; overflow-y: scroll; overflow-x: auto; padding: 15px;">
+                          <div v-if="add_formData['工序'] === '车缝' && selectedPartIndex !== -1 && partProcesses[selectedPartIndex] && partProcesses[selectedPartIndex].length > 0">
+                            <div style="display: flex; align-items: center; margin-bottom: 15px;">
+                              <h4 style="margin: 0; font-size: 14px;">部件: {{ processParts[selectedPartIndex]['部件编号'] }} - {{ processParts[selectedPartIndex]['部件名称'] }}</h4>
+                              <div style="margin-left: auto;">
+                                <el-button type="primary" @click="submitWorkScore" style="width: 80px; height: 32px;">提交</el-button>
+                              </div>
+                            </div>
+                            
+                            <!-- 工艺列表 -->
+                            <div style="max-height: calc(100vh - 380px); overflow-y: auto;">
+                              <el-table :data="partProcesses[selectedPartIndex]" style="width: 100%;">
+                                <el-table-column prop="工艺编号" label="序号" width="70" />
+                                <el-table-column prop="工艺名称" label="工艺名称" />
+                                <el-table-column label="报工人员" width="120">
+                                  <template #default="scope">
+                                    <div v-if="getReportingData(selectedPartIndex, scope.$index).staffList">
+                                      <div v-for="(staff, staffIndex) in getReportingData(selectedPartIndex, scope.$index).staffList" :key="staffIndex" style="margin-bottom: 5px;">
+                                        <el-input 
+                                          v-model="staff.staff_name" 
+                                          style="width: 100%;" 
+                                          readonly
+                                          @click="fillSelectedEmployee(staff, 'staff_name')"
+                                          @drop="onDrop($event, selectedPartIndex, scope.$index, staffIndex)"
+                                          @dragover="onDragOver($event)"
+                                        />
+                                      </div>
+                                    </div>
                                     <el-input 
-                                      v-model="staff.staff_name" 
+                                      v-else 
+                                      v-model="getReportingData(selectedPartIndex, scope.$index).staff_name" 
                                       style="width: 100%;" 
-                                      :disabled="!!partQuantities[selectedPartIndex]"
-                                      @input="clearPartQuantity(selectedPartIndex)"
-                                      @drop="onDrop($event, selectedPartIndex, scope.$index, staffIndex)"
+                                      readonly
+                                      @click="fillSelectedEmployee(getReportingData(selectedPartIndex, scope.$index), 'staff_name')"
+                                      @drop="onDrop($event, selectedPartIndex, scope.$index)"
                                       @dragover="onDragOver($event)"
                                     />
-                                  </div>
-                                </div>
-                                <el-input 
-                                  v-else 
-                                  v-model="getReportingData(selectedPartIndex, scope.$index).staff_name" 
-                                  style="width: 100%;" 
-                                  :disabled="!!partQuantities[selectedPartIndex]"
-                                  @input="clearPartQuantity(selectedPartIndex)"
-                                  @drop="onDrop($event, selectedPartIndex, scope.$index)"
-                                  @dragover="onDragOver($event)"
-                                />
-                              </template>
-                            </el-table-column>
-                            <el-table-column label="报工数量" width="120">
-                              <template #default="scope">
-                                <div v-if="getReportingData(selectedPartIndex, scope.$index).staffList">
-                                  <div v-for="(staff, staffIndex) in getReportingData(selectedPartIndex, scope.$index).staffList" :key="staffIndex" style="margin-bottom: 5px;">
+                                  </template>
+                                </el-table-column>
+                                <el-table-column label="报工数量" width="120">
+                                  <template #default="scope">
+                                    <div v-if="getReportingData(selectedPartIndex, scope.$index).staffList">
+                                      <div v-for="(staff, staffIndex) in getReportingData(selectedPartIndex, scope.$index).staffList" :key="staffIndex" style="margin-bottom: 5px;">
+                                        <el-input 
+                                          v-model.number="staff.number" 
+                                          type="number" 
+                                          style="width: 100%;" 
+                                        />
+                                      </div>
+                                    </div>
                                     <el-input 
-                                      v-model.number="staff.number" 
+                                      v-else 
+                                      v-model.number="getReportingData(selectedPartIndex, scope.$index).number" 
                                       type="number" 
                                       style="width: 100%;" 
-                                      :disabled="!!partQuantities[selectedPartIndex]"
-                                      @input="clearPartQuantity(selectedPartIndex)"
                                     />
-                                  </div>
-                                </div>
-                                <el-input 
-                                  v-else 
-                                  v-model.number="getReportingData(selectedPartIndex, scope.$index).number" 
-                                  type="number" 
-                                  style="width: 100%;" 
-                                  :disabled="!!partQuantities[selectedPartIndex]"
-                                  @input="clearPartQuantity(selectedPartIndex)"
-                                />
-                              </template>
-                            </el-table-column>
-                            <el-table-column label="操作" width="100">
-                              <template #default="scope">
-                                <el-button size="small" @click="addPerson(selectedPartIndex, scope.$index)">添加人员</el-button>
-                              </template>
-                            </el-table-column>
-                          </el-table>
-                        </div>
-                        
-                        <!-- 非车缝工序:直接显示工艺列表 -->
-                        <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>
-                            <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>
+                                  </template>
+                                </el-table-column>
+                                <el-table-column label="操作" width="100">
+                                  <template #default="scope">
+                                    <el-button size="small" @click="addPerson(selectedPartIndex, scope.$index)">添加人员</el-button>
+                                  </template>
+                                </el-table-column>
+                              </el-table>
                             </div>
                           </div>
                           
-                          <!-- 工艺列表 -->
-                          <el-table :data="partProcesses[0]" style="width: 100%;">
-                            <el-table-column prop="工艺编号" label="工艺编号" width="100" />
-                            <el-table-column prop="工艺名称" label="工艺名称" />
-                            <el-table-column label="报工人员" width="120">
-                              <template #default="scope">
-                                <div v-if="getReportingData(0, scope.$index).staffList">
-                                  <div v-for="(staff, staffIndex) in getReportingData(0, scope.$index).staffList" :key="staffIndex" style="margin-bottom: 5px;">
+                          <!-- 非车缝工序:直接显示工艺列表 -->
+                          <div v-else-if="add_formData['工序'] !== '车缝' && partProcesses.length > 0 && partProcesses[0].length > 0">
+                            <div style="display: flex; align-items: center; margin-bottom: 15px;">
+                              <h4 style="margin: 0; font-size: 14px;">工艺列表</h4>
+                              <div style="margin-left: auto;">
+                                <el-button type="primary" @click="submitWorkScore" style="width: 80px; height: 32px;">提交</el-button>
+                              </div>
+                            </div>
+                            
+                            <!-- 工艺列表 -->
+                            <div style="max-height: calc(100vh - 380px); overflow-y: auto;">
+                              <el-table :data="partProcesses[0]" style="width: 100%;">
+                                <el-table-column prop="工艺编号" label="工艺编号" width="100" />
+                                <el-table-column prop="工艺名称" label="工艺名称" />
+                                <el-table-column label="报工人员" width="120">
+                                  <template #default="scope">
+                                    <div v-if="getReportingData(0, scope.$index).staffList">
+                                      <div v-for="(staff, staffIndex) in getReportingData(0, scope.$index).staffList" :key="staffIndex" style="margin-bottom: 5px;">
+                                        <el-input 
+                                          v-model="staff.staff_name" 
+                                          style="width: 100%;" 
+                                          readonly
+                                          @click="fillSelectedEmployee(staff, 'staff_name')"
+                                          @drop="onDrop($event, 0, scope.$index, staffIndex)"
+                                          @dragover="onDragOver($event)"
+                                        />
+                                      </div>
+                                    </div>
                                     <el-input 
-                                      v-model="staff.staff_name" 
+                                      v-else 
+                                      v-model="getReportingData(0, scope.$index).staff_name" 
                                       style="width: 100%;" 
-                                      :disabled="!!partQuantities[0]"
-                                      @input="clearPartQuantity(0)"
-                                      @drop="onDrop($event, 0, scope.$index, staffIndex)"
+                                      readonly
+                                      @click="fillSelectedEmployee(getReportingData(0, scope.$index), 'staff_name')"
+                                      @drop="onDrop($event, 0, scope.$index)"
                                       @dragover="onDragOver($event)"
                                     />
-                                  </div>
-                                </div>
-                                <el-input 
-                                  v-else 
-                                  v-model="getReportingData(0, scope.$index).staff_name" 
-                                  style="width: 100%;" 
-                                  :disabled="!!partQuantities[0]"
-                                  @input="clearPartQuantity(0)"
-                                  @drop="onDrop($event, 0, scope.$index)"
-                                  @dragover="onDragOver($event)"
-                                />
-                              </template>
-                            </el-table-column>
-                            <el-table-column label="报工数量" width="120">
-                              <template #default="scope">
-                                <div v-if="getReportingData(0, scope.$index).staffList">
-                                  <div v-for="(staff, staffIndex) in getReportingData(0, scope.$index).staffList" :key="staffIndex" style="margin-bottom: 5px;">
+                                  </template>
+                                </el-table-column>
+                                <el-table-column label="报工数量" width="120">
+                                  <template #default="scope">
+                                    <div v-if="getReportingData(0, scope.$index).staffList">
+                                      <div v-for="(staff, staffIndex) in getReportingData(0, scope.$index).staffList" :key="staffIndex" style="margin-bottom: 5px;">
+                                        <el-input 
+                                          v-model.number="staff.number" 
+                                          type="number" 
+                                          style="width: 100%;" 
+                                        />
+                                      </div>
+                                    </div>
                                     <el-input 
-                                      v-model.number="staff.number" 
+                                      v-else 
+                                      v-model.number="getReportingData(0, scope.$index).number" 
                                       type="number" 
                                       style="width: 100%;" 
-                                      :disabled="!!partQuantities[0]"
-                                      @input="clearPartQuantity(0)"
                                     />
-                                  </div>
-                                </div>
-                                <el-input 
-                                  v-else 
-                                  v-model.number="getReportingData(0, scope.$index).number" 
-                                  type="number" 
-                                  style="width: 100%;" 
-                                  :disabled="!!partQuantities[0]"
-                                  @input="clearPartQuantity(0)"
-                                />
-                              </template>
-                            </el-table-column>
-                            <el-table-column label="操作" width="100">
-                              <template #default="scope">
-                                <el-button size="small" @click="addPerson(0, scope.$index)">添加人员</el-button>
-                              </template>
-                            </el-table-column>
-                          </el-table>
-                        </div>
-                        
-                        <div v-else-if="loadingProcess" style="text-align: center; padding: 50px;">
-                          <p style="margin-top: 10px;">加载中...</p>
-                        </div>
-                        <div v-else style="text-align: center; padding: 50px; color: #999;">
-                          暂无工艺信息
+                                  </template>
+                                </el-table-column>
+                                <el-table-column label="操作" width="100">
+                                  <template #default="scope">
+                                    <el-button size="small" @click="addPerson(0, scope.$index)">添加人员</el-button>
+                                  </template>
+                                </el-table-column>
+                              </el-table>
+                            </div>
+                          </div>
+                          
+                          <div v-else-if="loadingProcess" style="text-align: center; padding: 50px;">
+                            <p style="margin-top: 10px;">加载中...</p>
+                          </div>
+                          <div v-else style="text-align: center; padding: 50px; color: #999;">
+                            暂无工艺信息
+                          </div>
                         </div>
                       </div>
                     </div>
@@ -537,12 +526,14 @@ const getEmployeeData = async (machineId) => {
 const selectEmployee = (employee) => {
   selectedEmployee.value = employee.员工编号
   add_formData['人员'] = employee.员工姓名
-  // 将选中的员工姓名填入所有报工人员列
-  for (let i = 0; i < reportingData.value.length; i++) {
-    if (reportingData.value[i]) {
-      for (let j = 0; j < reportingData.value[i].length; j++) {
-        reportingData.value[i][j].staff_name = employee.员工姓名;
-      }
+}
+
+// 将选中的员工填充到指定的input框
+const fillSelectedEmployee = (row, field) => {
+  if (selectedEmployee.value) {
+    const selectedEmp = employees.value.find(emp => emp['员工编号'] === selectedEmployee.value);
+    if (selectedEmp) {
+      row[field] = selectedEmp['员工姓名'];
     }
   }
 }
@@ -610,17 +601,14 @@ const loadProcessParts = async () => {
         partProcesses.value = new Array(response.data.length).fill([]);
         reportingData.value = new Array(response.data.length).fill([]);
         
-        // 设置初始选中第一个部件
+        // 设置初始选中第一个部件并加载其工艺
         if (response.data.length > 0) {
           selectedPartIndex.value = 0;
+          // 只加载第一个部件的工艺
+          await loadPartProcesses(0, response.data[0]['部件编号']);
         } else {
           selectedPartIndex.value = -1;
         }
-        
-        // 获取每个部件的工艺
-        for (let i = 0; i < response.data.length; i++) {
-          await loadPartProcesses(i, response.data[i]['部件编号']);
-        }
       } else {
         // 非车缝工序:直接返回工艺数据
         processParts.value = []; // 非车缝没有部件
@@ -702,25 +690,15 @@ const getReportingData = (partIndex, processIndex) => {
 };
 
 //选择部件
-const selectPart = (index) => {
+const selectPart = async (index) => {
   selectedPartIndex.value = index;
-};
-
-//更新工艺报工数量
-const updateProcessQuantities = (partIndex) => {
-  const quantity = partQuantities.value[partIndex];
-  if (quantity && reportingData.value[partIndex]) {
-    for (let i = 0; i < reportingData.value[partIndex].length; i++) {
-      reportingData.value[partIndex][i].number = quantity;
-    }
+  // 如果该部件的工艺还未加载,则加载
+  if (!partProcesses.value[index] || partProcesses.value[index].length === 0) {
+    const partCode = processParts.value[index]['部件编号'];
+    await loadPartProcesses(index, partCode);
   }
 };
 
-//清除部件上报数量
-const clearPartQuantity = (partIndex) => {
-  partQuantities.value[partIndex] = '';
-};
-
 // 拖拽相关函数
 let draggedEmployee = null;
 
@@ -1016,7 +994,7 @@ const _list = ref('');
 //订单信息数据
 const orderInfoList = reactive([]);
 
-//查询
+// 查询
 const add_onSubmit = async ()=>{
   if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
     warningres('搜索内容不能为空')
@@ -1034,7 +1012,7 @@ const add_onSubmit = async ()=>{
         // 清空并更新订单信息列表
         orderInfoList.length = 0;
         orderInfoList.splice(0, response.data.list.length, ...response.data.list);
-        successres('查询成功');
+        // successres('查询成功');
 
         // 获取工分报工历史记录
         await getGongfenHistory();
@@ -1045,6 +1023,9 @@ const add_onSubmit = async ()=>{
         const ddOrderAttachments = await OrderAttachments({order:searchValue,desc:'订单资料附件'})
         jstableData.splice(0,jsOrderAttachments.data.list.length,...jsOrderAttachments.data.list);
         ddtableData.splice(0,ddOrderAttachments.data.list.length,...ddOrderAttachments.data.list);
+        
+        // 查询成功后自动打开报工弹窗
+        openWorkScoreDialog();
       } else {
         warningres(response.msg || '查询失败');
         orderInfoList.length = 0;

+ 1 - 1
src/view/performance/baozhuangbaogong.vue

@@ -281,7 +281,7 @@
 						:header-row-style="{ height: '20px' }"
 						:data="add_tableData"
 						border
-						row-key="ID"
+						row-key="UniqId"
 						size="small"
 						highlight-current-row="true"
 						@row-dblclick="updateCompanyFunc"

+ 1 - 1
src/view/performance/caiqiebaogong.vue

@@ -135,7 +135,7 @@
 						<el-table ref="multipleTable" style="width: 100%;height: 52vh" tooltip-effect="dark"
 								  :row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
 								  :cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
-								  :data="bgjdhz_tableData"  border row-key="ID"
+								  :data="bgjdhz_tableData"  border row-key="UniqId"
 								  size="small" 
 								  highlight-current-row="true" @row-dblclick="updateCompanyFunc"
 								  @row-click="tableRowClick" :show-overflow-tooltip="true"

+ 1 - 1
src/view/performance/chafengbaogong.vue

@@ -213,7 +213,7 @@
 						:header-row-style="{ height: '20px' }"
 						:data="add_tableData"
 						border
-						row-key="ID"
+						row-key="UniqId"
 						size="small"
 						highlight-current-row="true"
 						@row-dblclick="updateCompanyFunc"

+ 1 - 2
src/view/performance/datangbaogong.vue

@@ -103,7 +103,7 @@
 											<el-table ref="multipleTableRef" style="width: 100%;height: 53vh"
 												:row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
 												:cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
-												:data="add_tableData" border row-key="ID" size="small"
+												:data="add_tableData" border row-key="UniqId" size="small"
 												highlight-current-row="true" tooltip-effect="dark"
 												@row-dblclick="add_updateCompanyFunc" @row-click="add_tableRowClick" @row-contextmenu="handleRightClick"
 												:show-overflow-tooltip="true"
@@ -454,7 +454,6 @@ const add_onSubmit = async ()=>{
 	 //获取尺码
 	 sizeDatas.splice(0, getSpotLists.data.headers.length, ...getSpotLists.data.headers); //型号数据
 	 if(getSpotLists.data.result.ci_num === 0 || getSpotLists.data.result.ci_num === '0'){
-		 errorres('已上报,无需再次报工')
 		 add_searchInfo.value = ''
 	 }
 	 console.log(getSpotLists)

+ 2 - 3
src/view/performance/houdaoshougong.vue

@@ -103,7 +103,7 @@
 									<el-table ref="multipleTableRef" style="width: 100%;height: 53vh"
 										:row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
 										:cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
-										:data="add_tableData" border row-key="ID" size="small"
+										:data="add_tableData" border row-key="UniqId" size="small"
 										highlight-current-row="true" tooltip-effect="dark"
 										@row-dblclick="add_updateCompanyFunc" @row-click="add_tableRowClick" @row-contextmenu="handleRightClick"
 										:show-overflow-tooltip="true"
@@ -458,7 +458,6 @@ const add_onSubmit = async ()=>{
 	 //获取尺码
 	 sizeDatas.splice(0, getSpotLists.data.headers.length, ...getSpotLists.data.headers); //型号数据
 	 if(getSpotLists.data.result.ci_num === 0 || getSpotLists.data.result.ci_num === '0'){
-		 errorres('已上报,无需再次报工')
 		 add_searchInfo.value = ''
 	 }
 	 console.log(getSpotLists)
@@ -490,7 +489,7 @@ const add_onSubmit = async ()=>{
 	 const ddOrderAttachments = await OrderAttachments({order:searchValue,desc:'订单资料附件'})
 	 jstableData.splice(0,jsOrderAttachments.data.list.length,...jsOrderAttachments.data.list);
 	 ddtableData.splice(0,ddOrderAttachments.data.list.length,...ddOrderAttachments.data.list);
-	 
+	 baogongslpd();
 }
 
 //点击显示表格高亮

+ 1 - 1
src/view/performance/zongjianbaogong.vue

@@ -281,7 +281,7 @@
 						:header-row-style="{ height: '20px' }"
 						:data="add_tableData"
 						border
-						row-key="ID"
+						row-key="UniqId"
 						size="small"
 						highlight-current-row="true"
 						@row-dblclick="updateCompanyFunc"

Разница между файлами не показана из-за своего большого размера
+ 2 - 23
src/view/yunyin/shengchanguanli/components/print.vue


+ 384 - 123
src/view/yunyin/shengchanguanli/gongdanziliao.vue

@@ -17,7 +17,8 @@
 				<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="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="danger" icon="edit"   @click="delgd_delclick"  	v-if="delall=== true" :disabled="ysSelection === ''"  class="bt" title="选中复选框进行删除颜色数据">删除颜色资料</el-button>
+				<el-button type="danger" icon="edit"   @click="delgy_delclick"  	v-if="delall=== true" :disabled="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>
 
@@ -88,6 +89,7 @@
 				  <el-table-column align="left"  label="单位"    		prop="单位" 		width="60" />
 				  <el-table-column align="left"  label="面料"       	prop="面料" 		width="180" />
 				  <el-table-column align="left"  label="备注"       	prop="要求" 		width="180" />
+				  <el-table-column align="left"  label="计划制造工分"        	prop="计划制造工分"		width="180" />
 				  <el-table-column align="left"  label="粘衬"        	prop="粘衬"		width="180" />
 				  <el-table-column align="left"  label="箱唛要求"   	prop="箱唛要求" 	width="180" />
 				  <el-table-column align="left"  label="制单人"    	prop="Sys_id" 	width="160" />
@@ -176,15 +178,17 @@
 							@row-click="clickybupdate2"
 							:row-class-name="rowClassStyle2"
 							@selection-change="selectionChange($event, '工艺资料')"
-							style="width: 100%;height: 36vh" border tooltip-effect="dark" :data="gytableData" row-key="id">
+							style="width: 100%;height: 36vh" border tooltip-effect="dark" :data="gytableData" row-key="id"
+							:summary-method="gySummaries"
+							show-summary>
 					<el-table-column type="selection" width="30" />
 					<el-table-column align="left" label="部件编号" prop="部件编号" width="80"/>
 					<el-table-column align="left" label="部件名称" prop="部件名称" width="150"/>
 					<el-table-column align="left" label="工艺编号" prop="工艺编号" width="80"/>
 					<el-table-column align="left" label="工艺名称" prop="工艺名称" width="200"/>
-					<el-table-column align="left" label="大工艺" prop="大工艺" width="80"/>
-					<el-table-column align="left" label="标准工时" prop="标准工时" width="80"/>
-					<el-table-column align="left" label="标准公分" prop="标准公分" width="80"/>
+					<el-table-column align="left" label="生产工序" prop="大工艺" width="80"/>
+					<el-table-column align="left" label="工时" prop="标准工时" width="80"/>
+					<el-table-column align="left" label="分" prop="标准公分" width="80"/>
 					<el-table-column align="left" label="备注" prop="备注" width="150"/>
 					<el-table-column align="left" label="系数" prop="系数" width="60"/>
 					<el-table-column align="left" label="系统人" prop="系统人" width="100"/>
@@ -366,144 +370,148 @@
 		     <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>
+		         <el-row :gutter="20" style="width: max-content; display: flex; align-items: center;">
+		           <!-- 第一组 -->
+		           <div style="display: flex; align-items: center; white-space: nowrap;">
+		             <span style="width: 80px; text-align: right; margin-right: 8px;">订单编号:</span>
+		             <el-input v-model="gyDetailFormData.订单编号" disabled style="width: 100px;" />
 		           </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 style="display: flex; align-items: center; white-space: nowrap;">
+		             <span style="width: 80px; text-align: right; margin-right: 8px;">客户编号:</span>
+		             <el-input v-model="gyDetailFormData.客户编号" disabled style="width: 70px;" />
 		           </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 style="display: flex; align-items: center; white-space: nowrap;">
+		             <span style="width: 80px; text-align: right; margin-right: 8px;">生产款号:</span>
+		             <el-input v-model="gyDetailFormData.生产款号" disabled style="width: 280px;" />
 		           </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 style="display: flex; align-items: center; white-space: nowrap;">
+		             <span style="width: 60px; text-align: right; margin-right: 8px;">款式:</span>
+		             <el-input v-model="gyDetailFormData.款式" disabled style="width: 200px;" />
 		           </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: 60px; text-align: right; margin-right: 8px;">接单日期:</span>
+		             <el-input v-model="gyDetailFormData.接单日期" disabled style="width: 160px;" />
 		           </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>
+		         </el-row>
+		         <el-row :gutter="20" style="width: max-content; display: flex; align-items: center; margin-top: 10px;">
+		           <!-- 第六组 -->
+		           <div style="display: flex; align-items: center; white-space: nowrap;">
+		             <span style="width: 80px; text-align: right; margin-right: 8px;">落货日期:</span>
+		             <el-input v-model="gyDetailFormData.落货日期" disabled style="width: 160px;" />
+		           </div>
+		           <!-- 第七组 -->
+		           <div style="display: flex; align-items: center; white-space: nowrap;">
+		             <span style="width: 80px; text-align: right; margin-right: 8px;">审核日期:</span>
+		             <el-input v-model="gyDetailFormData.审核日期" disabled style="width: 160px;" />
+		           </div>
+		           <!-- 第八组 -->
+		           <div style="display: flex; align-items: center; white-space: nowrap;">
+		             <span style="width: 60px; text-align: right; margin-right: 8px;">审核:</span>
+		             <el-input v-model="gyDetailFormData.审核" disabled style="width: 100px;" />
+		           </div>
+		           <!-- 第九组 -->
+		           <div style="display: flex; align-items: center; white-space: nowrap;">
+		             <span style="width: 80px; text-align: right; margin-right: 8px;">订单数量:</span>
+		             <el-input v-model="gyDetailFormData.订单数量" disabled style="width: 100px;" />
+		           </div>
+		           <!-- 第十组 - 计划制造工分 + 修改按钮 -->
+		           <div style="display: flex; align-items: center; white-space: nowrap;">
+		             <span style="width: 100px; text-align: right; margin-right: 8px;">计划制造工分:</span>
+		             <el-input v-model="gyDetailFormData.计划制造工分" style="width: 120px;" />
+		             <el-button  type="primary" style="margin-left: 10px;" @click="handleUpdatePlanManufacture">修改制造工分</el-button>
 		           </div>
 		         </el-row>
 		       </div>
 		       
 		       <!-- 工艺列表表格 -->
-		       <div style="height: calc(100vh - 200px); overflow: auto; border: 1px solid #EBEEF5; border-radius: 4px;">
+		       <div style="height: calc(100vh - 230px); 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;" />
+		           style="width: 100%; min-width: 1200px;"
+		           :show-overflow-tooltip="true"
+		           max-height="calc(100vh - 250px)"
+		           :summary-method="gyDetailSummaries"
+		           show-summary>
+		           <!-- <el-table-column type="index" width="50" fixed="left" /> -->
+		           <el-table-column align="left" label="部件编号" prop="部件编号" width="100" />
+		           <el-table-column align="left" label="部件名称" prop="部件名称" width="150" />
+		           <el-table-column align="left" label="工艺编号" prop="工序编号" width="100" />
+		           <el-table-column align="left" label="工艺名称" prop="工序名称" width="250">
+		             <template #default="scope">
+		               <template v-if="userStore.userInfo.nickName === '邢科芳'">
+		                 {{ scope.row.工序名称 }}
+		               </template>
+		               <el-input v-else v-model="scope.row.工序名称" size="small" style="width: 240px;" @blur="handleUpdateProcess(scope.row)" />
 		             </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;" />
+		           <el-table-column align="left" label="大工序" prop="大工序" width="100" :filters="dagongxuFilters" :filter-method="filterDaGongXu">
+		             <template #default="scope">
+		               <template v-if="userStore.userInfo.nickName === '邢科芳'">
+		                 {{ scope.row.大工序 }}
+		               </template>
+		               <el-input v-else v-model="scope.row.大工序" size="small" style="width: 60px;" @blur="handleUpdateProcess(scope.row)" />
 		             </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;" />
+		           <el-table-column align="left" label="秒" prop="秒" width="60">
+		             <template #default="scope">
+		               <template v-if="userStore.userInfo.nickName === '邢科芳'">
+		                 {{ scope.row.秒 }}
+		               </template>
+		               <el-input v-else v-model="scope.row.秒" size="small" style="width: 50px;" @blur="handleUpdateProcess(scope.row)" />
 		             </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;" />
+		           <el-table-column align="left" label="分" prop="分" width="60">
+		             <template #default="scope">
+		               <template v-if="userStore.userInfo.nickName === '邢科芳'">
+		                 {{ scope.row.分 }}
+		               </template>
+		               <el-input v-else v-model="scope.row.分" size="small" style="width: 50px;" @blur="handleUpdateProcess(scope.row)" />
 		             </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;" />
+		           <el-table-column align="left" label="工分" prop="定额分" width="70">
+		             <template #default="scope">
+		               <el-input v-model="scope.row.定额分" size="small" style="width: 60px;" @blur="handleUpdateProcess(scope.row)" />
 		             </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;" />
+		           <el-table-column align="left" label="金额" prop="金额" width="80">
+		             <template #default="scope">
+		               <template v-if="userStore.userInfo.nickName === '邢科芳'">
+		                 {{ scope.row.金额 }}
+		               </template>
+		               <el-input v-else v-model="scope.row.金额" size="small" style="width: 70px;" @blur="handleUpdateProcess(scope.row)" />
 		             </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;" />
+		           <el-table-column align="left" label="难度系数" prop="难度系数" width="80">
+		             <template #default="scope">
+		               <template v-if="userStore.userInfo.nickName === '邢科芳'">
+		                 {{ scope.row.难度系数 }}
+		               </template>
+		               <el-input v-else v-model="scope.row.难度系数" size="small" style="width: 60px;" @blur="handleUpdateProcess(scope.row)" />
 		             </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;" />
+		           <el-table-column align="left" label="备注" prop="备注" width="120">
+		             <template #default="scope">
+		               <template v-if="userStore.userInfo.nickName === '邢科芳'">
+		                 {{ scope.row.备注 }}
+		               </template>
+		               <el-input v-else v-model="scope.row.备注" size="small" style="width: 100px;" @blur="handleUpdateProcess(scope.row)" />
 		             </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;" />
+		           <el-table-column align="left" label="状态" prop="状态" width="60">
+		             <template #default="scope">
+		               <span>{{ scope.row.状态 === 0 ? '正常' : '拆分' }}</span>
 		             </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>
+		           <el-table-column align="left" label="操作" width="150" fixed="right">
+		             <template #default="scope">
+		               <el-button size="small" type="success" style="margin-right: 5px;" @click="handleSplitProcess(scope.row)">拆分</el-button>
+		               <el-button size="small" type="danger" @click="handleDeleteProcess(scope.row)">删除</el-button>
 		             </template>
 		           </el-table-column>
 		         </el-table>
@@ -511,6 +519,30 @@
 		     </div>
 		   </el-dialog>
 		   
+		   <!-- 拆分弹窗 -->
+		   <el-dialog v-model="splitDialogVisible" title="拆分工序" width="450px" style="top: 30%;" @close="splitDialogVisible = false">
+		     <div style="padding: 20px;">
+		       <div v-if="hasReportData" style="color: #f56c6c; margin-bottom: 15px; font-weight: bold; text-align: center;">
+		         ⚠️ 该工序已存在报工数据
+		       </div>
+		       <div style="margin-bottom: 15px; text-align: center;">
+		         <span>将复制 {{ currentSplitRow?.工序编号 || '' }}-{{ currentSplitRow?.工序名称 || '' }},拆分数量为:</span>
+		       </div>
+		       <div style="display: flex; justify-content: center;">
+		         <el-input 
+		           v-model="splitQuantity" 
+		           type="number" 
+		           placeholder="请输入拆分数量" 
+		           style="width: 200px;"
+		         />
+		       </div>
+		     </div>
+		     <template #footer>
+		       <el-button @click="splitDialogVisible = false">取消</el-button>
+		       <el-button type="primary" @click="confirmSplitProcess">确定</el-button>
+		     </template>
+		   </el-dialog>
+		   
 		   <!-- 修改颜色资料弹窗 -->
 		   <el-dialog v-model="dialogFormVisible" :before-close="edit_closeDialog" 
 		   style="width: 80%; max-height: 80%; overflow-y: auto; margin-top: 4%;"
@@ -2243,7 +2275,7 @@
 		destroy-on-close
 	  >
 		<el-form :model="importProcessForm" label-width="100px">
-		  <el-form-item label="单编号">
+		  <el-form-item label="单编号">
 			<el-input v-model="importProcessForm.workorderNo" disabled />
 		  </el-form-item>
 		  <el-form-item label="款号">
@@ -2304,13 +2336,15 @@
   import axios from 'axios';
   import * as XLSX from 'xlsx';
   import jsPDF from 'jspdf';
+  import 'vxe-table/lib/style.css';
+  import { VxeTable, VxeColumn } from 'vxe-table';
   import Sortable from '@/utils/vendor/sortable.esm.js'
   import {Datalist,WorkOrderList,WorkOrderAdd,PrintListData,
   printDetailAdd,PrintDetailDel,orderDataDel,getWorkOrder,
   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,getWorkOrderInfo,getWorkOrderProcess,updateWorkOrderPlanManufacture} from '@/api/mes/job'
+  importProcess,getWorkOrderProcess,updateWorkOrderPlanManufacture,checkProcessReport,confirmProcessSplit} from '@/api/mes/job'
   import {ParList,ProcessList} from '@/api/yunyin/product'
   import PrintPage from './components/print.vue'
   import luckyexcelPage from './components/luckyexcel.vue'
@@ -4790,6 +4824,16 @@ const sortTableData = ref([])
     工艺列表: []
   })
   
+  // 大工序筛选器
+  const dagongxuFilters = computed(() => {
+    const processes = new Set(gyDetailFormData.工艺列表.map(item => item.大工序).filter(Boolean))
+    return Array.from(processes).map(process => ({ text: process, value: process }))
+  })
+  
+  const filterDaGongXu = (value, row) => {
+    return row.大工序 === value
+  }
+  
   const gdgyupdateCompanyFunc = async (row) => {
     const workorder = _Gd_gdbh.value || row['订单编号'] || ''
     if (!workorder) {
@@ -4799,9 +4843,9 @@ const sortTableData = ref([])
     
     try {
       // 获取订单信息
-      const orderInfoRes = await getWorkOrderInfo({ workorder })
-      if (orderInfoRes.code === 0 && orderInfoRes.data) {
-        const data = orderInfoRes.data
+      const orderInfoRes = await WorkOrderList({ search: workorder, page: 1, limit: 1 })
+      if (orderInfoRes.code === 0 && orderInfoRes.data && orderInfoRes.data.data && orderInfoRes.data.data.length > 0) {
+        const data = orderInfoRes.data.data[0]
         gyDetailFormData.订单编号 = data['订单编号'] || ''
         gyDetailFormData.客户编号 = data['客户编号'] || ''
         gyDetailFormData.生产款号 = data['生产款号'] || ''
@@ -4812,6 +4856,7 @@ const sortTableData = ref([])
         gyDetailFormData.审核 = data['审核'] || ''
         gyDetailFormData.订单数量 = data['订单数量'] || ''
         gyDetailFormData.计划制造工分 = data['计划制造工分'] || ''
+        gyDetailFormData.Uniqid = data['Uniqid'] || ''
       }
       
       // 获取工艺列表
@@ -4833,6 +4878,127 @@ const sortTableData = ref([])
     gyDetailDialogVisible.value = false
   }
   
+  // 修改计划制造工分
+  const handleUpdatePlanManufacture = async () => {
+    try {
+      const result = await updateWorkOrderPlanManufacture({
+        id: gyDetailFormData.Uniqid,
+        number: gyDetailFormData.计划制造工分,
+        sys_id: userStore.userInfo.nickName
+      })
+      if (result.code === 0) {
+        ElMessage.success('修改成功')
+      } else {
+        // ElMessage.error(result.msg || '修改失败')
+      }
+    } catch (error) {
+      ElMessage.error('修改失败')
+    }
+  }
+  
+  // 拆分弹窗相关
+  const splitDialogVisible = ref(false)
+  const splitQuantity = ref('')
+  const currentSplitRow = ref(null)
+  const hasReportData = ref(false)
+  
+  // 处理拆分工艺
+  const handleSplitProcess = async (row) => {
+    currentSplitRow.value = row
+    splitQuantity.value = ''
+    
+    try {
+      const result = await checkProcessReport({
+        workorder: gyDetailFormData.订单编号,
+        process_code: row.工序编号
+      })
+      
+      if (result.code === 0) {
+        hasReportData.value = false
+      } else if (result.code === 1) {
+        hasReportData.value = true
+      }
+      
+      splitDialogVisible.value = true
+    } catch (error) {
+      ElMessage.error('检查工序报工状态失败')
+    }
+  }
+  
+  // 确认拆分
+  const confirmSplitProcess = async () => {
+    if (!splitQuantity.value || isNaN(splitQuantity.value) || parseInt(splitQuantity.value) <= 0) {
+      ElMessage.error('请输入有效的拆分数量')
+      return
+    }
+    
+    try {
+      const result = await confirmProcessSplit({
+        id: currentSplitRow.value.id,
+        number: parseInt(splitQuantity.value),
+        sys_id: userStore.userInfo.nickName
+      })
+      
+      if (result.code === 0) {
+        ElMessage.success('拆分成功')
+        splitDialogVisible.value = false
+        // 刷新表格数据
+        await gdgyupdateCompanyFunc()
+      } else {
+        // ElMessage.error(result.msg || '拆分失败')
+      }
+    } catch (error) {
+      ElMessage.error('拆分失败')
+    }
+  }
+  
+  // 删除工艺
+  const handleDeleteProcess = async (row) => {
+    try {
+      const result = await DeleteProcess({ id: row.id })
+      if (result.code === 0) {
+        ElMessage.success('删除成功')
+        // 从列表中移除该行
+        const index = gyDetailFormData.工艺列表.findIndex(item => item.id === row.id)
+        if (index > -1) {
+          gyDetailFormData.工艺列表.splice(index, 1)
+        }
+      } else {
+        // ElMessage.error(result.msg || '删除失败')
+      }
+    } catch (error) {
+      ElMessage.error('删除失败')
+    }
+  }
+  
+  // 修改工艺
+  const handleUpdateProcess = async (row) => {
+    try {
+      const result = await UpdateProcess({
+        id: row.id,
+        process_name: row.工序名称 || '',
+        big_process: row.大工序 || '',
+        standard_hour: row.秒 || '',
+        standard_minutes: row.分 || '',
+        standard_score: row.定额分 || '',
+        money: row.金额 || '',
+        coefficient: row.难度系数 || '',
+        remark: row.备注 || '',
+        mod_id: userStore.userInfo.nickName,
+        part_code: row.部件编号 || '',
+        part_name: row.部件名称 || '',
+        process_code: row.工序编号 || ''
+      })
+      if (result.code === 0) {
+        ElMessage.success('修改成功')
+      } else {
+        // ElMessage.error(result.msg || '修改失败')
+      }
+    } catch (error) {
+      // 忽略错误,不提示
+    }
+  }
+  
   // =========== 订单打印 ===========
   //弹窗
   const order_viewVisible = ref(false)
@@ -5374,10 +5540,11 @@ const sortTableData = ref([])
 	  if(jsOrderAttachments.code === 0 && ddOrderAttachments.code === 0){
 		jstableData.splice(0,jsOrderAttachments.data.list.length,...jsOrderAttachments.data.list);
 		ddtableData.splice(0,ddOrderAttachments.data.list.length,...ddOrderAttachments.data.list);
-		if(_username.value === fhdOrderAttachments.data.list[0]['sys_id'] || _username.value === 'admin/超级管理员'){
-			fhdtableData.splice(0,fhdOrderAttachments.data.list.length,...fhdOrderAttachments.data.list);
+		if(fhdOrderAttachments.data && fhdOrderAttachments.data.list && fhdOrderAttachments.data.list.length > 0){
+			if(_username.value === fhdOrderAttachments.data.list[0]['sys_id'] || _username.value === 'admin/超级管理员'){
+				fhdtableData.splice(0,fhdOrderAttachments.data.list.length,...fhdOrderAttachments.data.list);
+			}
 		}
-		
 	  }
   }
   
@@ -5511,12 +5678,14 @@ const sortTableData = ref([])
   const gySelection = ref('')
     // 颜色资料多选、工艺资料多选
 	const selectionChange = (selection, type) => {
-	const ids = selection.map(item => item.Uniqid ?? item.UniqID ?? item.UniqId)
 	if (type === '颜色资料') {
+	  const ids = selection.map(item => item.Uniqid ?? item.UniqID ?? item.UniqId)
 	  console.log('[颜色资料] 勾选 Uniqid:', ids)
 	  ysSelection.value = ids.filter((v) => v != null && v !== '').join(',')
 	}
 	if (type === '工艺资料') {
+	  const ids = selection.map(item => item.id)
+	  console.log('[工艺资料] 勾选 id:', ids)
 	  gySelection.value = ids.filter((v) => v != null && v !== '').join(',')
 	}
   }
@@ -5552,6 +5721,27 @@ const sortTableData = ref([])
 		}
 	};
   
+  // 删除工艺资料
+  const delgy_delclick = async () => {
+    try {
+      if (gySelection.value !== '') {
+        const res = await DeleteProcess({ id: gySelection.value });
+        if (res.code === 0) {
+          ElMessage.success('工艺资料删除成功');
+          // 刷新工艺资料表格
+          const processListData = await GetProcessList({ workorder: _Gd_gdbh.value });
+          if (processListData?.code === 0 && Array.isArray(processListData.data)) {
+            gytableData.splice(0, gytableData.length, ...processListData.data);
+          } else {
+            gytableData.splice(0, gytableData.length);
+          }
+        }
+      }
+    } catch (err) {
+      ElMessage.error(err);
+    }
+  };
+  
   const fj_Selection = ref('')//存储选中Uniqid
   const fjSelection = ref('')
   const fjdelall = ref(true)
@@ -5624,10 +5814,10 @@ const sortTableData = ref([])
 			  sums[index] = '总数量合计';  
 			  return;  
 		  }  
-	
+
 		  if (summableLabels.includes(column.label)) {  
 			  const values = data.map(item => Number(item[column.property]));  
-	
+
 			  // 检查数组中是否所有值都是 NaN  
 			  if (!values.every(value => isNaN(value))) {  
 				  sums[index] = values.reduce((prev, curr) => {  
@@ -5644,9 +5834,69 @@ const sortTableData = ref([])
 			  }  
 		  }  
 	  });  
-	
+
+	  return sums;  
+  };
+
+	//工艺资料合计
+	const gySummaries = ({ columns, data }) => {  
+	  const sums = [];  
+	  columns.forEach((column, index) => {  
+		  if (index === 6) {  
+			  sums[index] = '合计';  
+			  return;  
+		  }  
+
+		  if (column.label === '工分') {  
+			  const values = data.map(item => Number(item[column.property]));  
+
+			  if (!values.every(value => isNaN(value))) {  
+				  const total = values.reduce((prev, curr) => {  
+					  const value = Number(curr);  
+					  if (!isNaN(value)) {  
+						  return prev + value; 
+					  }  
+					  return prev;  
+				  }, 0);  
+				  sums[index] = total.toFixed(2);  
+			  } else {  
+				   sums[index] = 'N/A';  
+			  }  
+		  }  
+	  });  
+
 	  return sums;  
   };  
+
+	//工艺详情弹窗合计
+	const gyDetailSummaries = (param) => {  
+	  const { columns, data } = param;  
+	  const sums = [];  
+	  let total = 0;  
+	  let count = 0;  
+	  
+	  data.forEach(item => {  
+		if (item && item['定额分'] !== undefined) {  
+		  const val = Number(item['定额分']);  
+		  if (!isNaN(val)) {  
+			total += val;  
+			count++;  
+		  }  
+		}  
+	  });  
+	  
+	  columns.forEach((column, index) => {  
+		if (column.prop === '工序名称') {  
+		  sums[index] = '合计';  
+		} else if (column.label === '工分') {  
+		  sums[index] = count > 0 ? total.toFixed(2) : '0.00';  
+		} else {  
+		  sums[index] = '';  
+		}  
+	  });  
+	  
+	  return sums;  
+  };
   
   // 面料合计
   // const mlgetSummaries = (param) => {  
@@ -5882,6 +6132,13 @@ const sortTableData = ref([])
       if (response.data.code === 0) {
         ElMessage.success('导入成功')
         closeImportProcessDialog()
+        // 刷新工艺资料表格数据
+        const processListData = await GetProcessList({ workorder: _Gd_gdbh.value });
+        if (processListData?.code === 0 && Array.isArray(processListData.data)) {
+          gytableData.splice(0, gytableData.length, ...processListData.data);
+        } else {
+          gytableData.splice(0, gytableData.length);
+        }
       } else {
         ElMessage.error(response.data.msg || '导入失败')
       }
@@ -6410,5 +6667,9 @@ const sortTableData = ref([])
   .sort-gy-num-input {
     width: 100%;
   }
+  .gy-detail-dialog .el-table__fixed,
+  .gy-detail-dialog .el-table__fixed-right {
+    bottom: 17px !important;
+  }
 </style>
   

Некоторые файлы не были показаны из-за большого количества измененных файлов