From 59e4906ad374bb44b481012b4b2a7d3d077b8677 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期一, 06 七月 2026 17:00:00 +0800
Subject: [PATCH] 排班模块逻辑修改

---
 src/views/productionManagement/productionOrder/index.vue |  102 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 76 insertions(+), 26 deletions(-)

diff --git a/src/views/productionManagement/productionOrder/index.vue b/src/views/productionManagement/productionOrder/index.vue
index 9c7682b..ba1d155 100644
--- a/src/views/productionManagement/productionOrder/index.vue
+++ b/src/views/productionManagement/productionOrder/index.vue
@@ -8,7 +8,7 @@
                     placeholder="璇疯緭鍏�"
                     clearable
                     prefix-icon="Search"
-                    style="width: 160px;"
+                    style="width: 160px"
                     @change="handleQuery" />
         </el-form-item>
         <el-form-item label="浜у搧鍚嶇О:">
@@ -16,7 +16,7 @@
                     placeholder="璇疯緭鍏�"
                     clearable
                     prefix-icon="Search"
-                    style="width: 160px;"
+                    style="width: 160px"
                     @change="handleQuery" />
         </el-form-item>
         <el-form-item label="瑙勬牸:">
@@ -24,13 +24,13 @@
                     placeholder="璇疯緭鍏�"
                     clearable
                     prefix-icon="Search"
-                    style="width: 160px;"
+                    style="width: 160px"
                     @change="handleQuery" />
         </el-form-item>
         <el-form-item label="鐘舵��:">
           <el-select v-model="searchForm.status"
                      placeholder="璇烽�夋嫨"
-                     style="width: 160px;"
+                     style="width: 160px"
                      @change="handleQuery">
             <el-option label="寰呭紑濮�"
                        value="1" />
@@ -38,8 +38,8 @@
                        value="2" />
             <el-option label="宸插畬鎴�"
                        value="3" />
-            <el-option label="宸插彇娑�"
-                       value="4" />
+            <!--            <el-option label="宸插彇娑�"-->
+            <!--                       value="4" />-->
             <el-option label="宸茬粨鏉�"
                        value="5" />
           </el-select>
@@ -67,13 +67,17 @@
                 :tableLoading="tableLoading"
                 :row-class-name="tableRowClassName"
                 :isSelection="true"
-                :selectable="row => !row.endOrder"
+                :selectable="(row) => !row.endOrder"
                 @selection-change="handleSelectionChange"
                 @pagination="pagination">
         <template #completionStatus="{ row }">
           <el-progress :percentage="toProgressPercentage(row?.completionStatus)"
                        :color="progressColor(toProgressPercentage(row?.completionStatus))"
-                       :status="toProgressPercentage(row?.completionStatus) >= 100 ? 'success' : ''" />
+                       :status="
+              toProgressPercentage(row?.completionStatus) >= 100
+                ? 'success'
+                : ''
+            " />
         </template>
         <template #processRouteStatus="{ row }">
           <div v-if="row.processRouteStatus && row.processRouteStatus.length"
@@ -85,7 +89,14 @@
                 <div class="step-circle"
                      :class="{ 'is-completed': item.percentage >= 100 }">
                   <span class="step-percentage"
-                        :style="{ color: item.percentage >= 70 ? item.percentage >= 100 ? '#67c23a' : '#f56c6c' : '#000' }">{{ item.percentage }}%</span>
+                        :style="{
+                      color:
+                        item.percentage >= 70
+                          ? item.percentage >= 100
+                            ? '#67c23a'
+                            : '#f56c6c'
+                          : '#000',
+                    }">{{ item.percentage }}%</span>
                 </div>
                 <div class="step-name">{{ item.name }}</div>
               </div>
@@ -104,7 +115,7 @@
         <el-form-item label="宸ヨ壓璺嚎">
           <el-select v-model="bindForm.routeId"
                      placeholder="璇烽�夋嫨宸ヨ壓璺嚎"
-                     style="width: 100%;"
+                     style="width: 100%"
                      :loading="bindRouteLoading">
             <el-option v-for="item in routeOptions"
                        :key="item.id"
@@ -125,18 +136,23 @@
     <!-- 鏉ユ簮鏁版嵁寮圭獥 -->
     <el-dialog v-model="sourceDataDialogVisible"
                title="鏉ユ簮鏁版嵁"
-               width="1200px">
+               width="1200px"
+               top="5vh"
+               class="source-data-dialog"
+               append-to-body>
       <div v-if="sourceRowData"
            class="applyno-summary1">
         <div class="summary-item">
           <span class="summary-label">浜у搧鍚嶇О锛�</span>
           <span class="summary-value">
-            <el-tag type="primary">{{ sourceRowData.productName || '-' }}</el-tag>
+            <el-tag type="primary">{{
+              sourceRowData.productName || "-"
+            }}</el-tag>
           </span>
         </div>
         <div class="summary-item">
           <span class="summary-label">瑙勬牸锛�</span>
-          <span class="summary-value">{{ sourceRowData.model || '-' }}</span>
+          <span class="summary-value">{{ sourceRowData.model || "-" }}</span>
         </div>
         <div class="summary-item">
           <span class="summary-label">璁㈠崟闇�姹傛暟閲忥細</span>
@@ -152,39 +168,49 @@
               <div class="info-grid">
                 <div class="info-item">
                   <div class="info-label">璁″垝鍙�</div>
-                  <div class="info-value">{{ item.mpsNo || '-' }}</div>
+                  <div class="info-value">{{ item.mpsNo || "-" }}</div>
                 </div>
                 <div class="info-item">
                   <div class="info-label">鏁版嵁鏉ユ簮</div>
                   <div class="info-value">
                     <el-tag :type="item.source === '閿�鍞�' ? 'primary' : 'warning'">
-                      {{ item.source || '鏈煡' }}
+                      {{ item.source || "鏈煡" }}
                     </el-tag>
                   </div>
                 </div>
                 <div class="info-item">
                   <div class="info-label">鍚堝悓鍙�</div>
-                  <div class="info-value">{{ item.salesContractNo || '-' }}</div>
+                  <div class="info-value">
+                    {{ item.salesContractNo || "-" }}
+                  </div>
                 </div>
                 <div class="info-item">
                   <div class="info-label">瀹㈡埛鍚嶇О</div>
-                  <div class="info-value">{{ item.customerName || '-' }}</div>
+                  <div class="info-value">{{ item.customerName || "-" }}</div>
                 </div>
                 <div class="info-item">
                   <div class="info-label">椤圭洰鍚嶇О</div>
-                  <div class="info-value">{{ item.projectName || '-' }}</div>
+                  <div class="info-value">{{ item.projectName || "-" }}</div>
                 </div>
                 <div class="info-item">
                   <div class="info-label">璁″垝闇�姹傛暟閲�</div>
-                  <div class="info-value">{{ item.qtyRequired || 0 }} {{ item.unit || '' }}</div>
+                  <div class="info-value">
+                    {{ item.qtyRequired || 0 }} {{ item.unit || "" }}
+                  </div>
                 </div>
                 <div class="info-item">
                   <div class="info-label">鍗曚綅</div>
-                  <div class="info-value">{{ item.unit || '-' }}</div>
+                  <div class="info-value">{{ item.unit || "-" }}</div>
                 </div>
                 <div class="info-item">
                   <div class="info-label">闇�姹傛棩鏈�</div>
-                  <div class="info-value">{{ item.requiredDate ? dayjs(item.requiredDate).format('YYYY-MM-DD') : '-' }}</div>
+                  <div class="info-value">
+                    {{
+                      item.requiredDate
+                        ? dayjs(item.requiredDate).format("YYYY-MM-DD")
+                        : "-"
+                    }}
+                  </div>
                 </div>
               </div>
             </div>
@@ -378,7 +404,8 @@
         {
           name: "缁戝畾宸ヨ壓璺嚎",
           type: "text",
-          showHide: row => !row.processRouteCode && !row.endOrder,
+          showHide: row =>
+            !row.processRouteCode && !row.endOrder && row.status !== 3,
           clickFun: row => {
             openBindRouteDialog(row, "add");
           },
@@ -386,7 +413,8 @@
         {
           name: "鏇存崲宸ヨ壓璺嚎",
           type: "text",
-          showHide: row => row.processRouteCode && !row.endOrder,
+          showHide: row =>
+            row.processRouteCode && !row.endOrder && row.status !== 3,
           clickFun: row => {
             openBindRouteDialog(row, "change");
           },
@@ -487,7 +515,7 @@
     if (!Number.isFinite(n)) return 0;
     if (n <= 0) return 0;
     if (n >= 100) return 100;
-    return Math.round(n);
+    return parseFloat(n.toFixed(2));
   };
 
   // 30/50/80/100 鍒嗘棰滆壊锛氱孩/姗�/钃�/缁�
@@ -726,7 +754,7 @@
           technologyRoutingId: data.technologyRoutingId,
           orderId,
           type: "order",
-          editable: !row.endOrder,
+          editable: !row.endOrder && row.status !== 3,
         },
       });
     } catch (e) {
@@ -946,13 +974,19 @@
 
   .source-table-container {
     margin-top: 20px;
+    flex: 1;
+    min-height: 0;
+    max-height: 500px;
+    overflow: auto;
   }
 
   .source-data-cards-container {
     display: flex;
     flex-direction: column;
     gap: 16px;
-    max-height: 500px;
+    flex: 1;
+    min-height: 0;
+    max-height: none;
     overflow-y: auto;
     padding: 10px;
     background-color: #f5f7fa;
@@ -1022,4 +1056,20 @@
       }
     }
   }
+
+  .source-data-dialog {
+    .el-dialog {
+      display: flex;
+      flex-direction: column;
+      max-height: 90vh;
+    }
+
+    .el-dialog__body {
+      flex: 1;
+      min-height: 0;
+      display: flex;
+      flex-direction: column;
+      overflow: hidden;
+    }
+  }
 </style>

--
Gitblit v1.9.3