From 04687ca035e6fa517e88470aac7247812f85eb95 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 17 四月 2026 17:09:29 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/views/productionManagement/processRoute/processRouteItem/index.vue |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 57 insertions(+), 3 deletions(-)

diff --git a/src/views/productionManagement/processRoute/processRouteItem/index.vue b/src/views/productionManagement/processRoute/processRouteItem/index.vue
index 99d89a9..b673a81 100644
--- a/src/views/productionManagement/processRoute/processRouteItem/index.vue
+++ b/src/views/productionManagement/processRoute/processRouteItem/index.vue
@@ -47,7 +47,13 @@
         </div>
       </div>
     </el-card>
-    
+    <div class="section-title" style="margin-bottom: 10px;">浜у搧缁撴瀯</div>
+    <ProductStructureDetail
+      class="product-structure-panel"
+      style="margin-bottom: 20px;"
+      embedded
+      :bom-id="route.query.bomId"
+    />
     <!-- 琛ㄦ牸瑙嗗浘 -->
     <div v-if="viewMode === 'table'" class="section-header">
       <div class="section-title">宸ヨ壓璺嚎椤圭洰鍒楄〃</div>
@@ -82,6 +88,21 @@
       <el-table-column label="浜у搧鍚嶇О" prop="productName" min-width="160" />
       <el-table-column label="瑙勬牸鍚嶇О" prop="model" min-width="140" />
       <el-table-column label="鍗曚綅" prop="unit" width="100" />
+      <el-table-column label="鏄惁璐ㄦ" prop="isQuality" width="100">
+        <template #default="scope">
+          {{scope.row.isQuality ? "鏄�" : "鍚�"}}
+        </template>
+      </el-table-column>
+      <el-table-column label="鏄惁鍏ュ簱" prop="inbound" width="100">
+        <template #default="scope">
+          {{ scope.row.inbound ? "鏄�" : "鍚�" }}
+        </template>
+      </el-table-column>
+      <el-table-column label="鏄惁鎶ュ伐" prop="reportWork" width="100">
+        <template #default="scope">
+          {{ scope.row.reportWork ? "鏄�" : "鍚�" }}
+        </template>
+      </el-table-column>
       <el-table-column label="鎿嶄綔" align="center" fixed="right" width="150">
         <template #default="scope">
           <el-button type="primary" link size="small" @click="handleEdit(scope.row)" :disabled="scope.row.isComplete">缂栬緫</el-button>
@@ -129,6 +150,11 @@
               <div v-if="item.model" class="product-model">
                 {{ item.model }}
                 <!-- <span v-if="item.unit" class="product-unit">{{ item.unit }}</span> -->
+              </div>
+              <el-tag type="primary" class="product-tag" v-if="item.isQuality">璐ㄦ</el-tag>
+              <div class="product-flags">
+                <span>鍏ュ簱锛歿{ item.inbound ? "鏄�" : "鍚�" }}</span>
+                <span>鎶ュ伐锛歿{ item.reportWork ? "鏄�" : "鍚�" }}</span>
               </div>
             </div>
             <div v-else class="product-info empty">鏆傛棤浜у搧淇℃伅</div>
@@ -189,11 +215,15 @@
               :disabled="true" 
           />
         </el-form-item>
+
+        <el-form-item label="鏄惁璐ㄦ" prop="isQuality">
+          <el-switch v-model="form.isQuality" :active-value="true" inactive-value="false"/>
+        </el-form-item>
       </el-form>
 
       <template #footer>
-        <el-button @click="closeDialog">鍙栨秷</el-button>
         <el-button type="primary" @click="handleSubmit" :loading="submitLoading">纭畾</el-button>
+        <el-button @click="closeDialog">鍙栨秷</el-button>
       </template>
     </el-dialog>
 
@@ -207,7 +237,7 @@
 </template>
 
 <script setup>
-import { ref, computed, getCurrentInstance, onMounted, onUnmounted, nextTick } from "vue";
+import { ref, computed, getCurrentInstance, onMounted, onUnmounted, nextTick, defineAsyncComponent } from "vue";
 import ProductSelectDialog from "@/views/basicData/product/ProductSelectDialog.vue";
 import { findProcessRouteItemList, addOrUpdateProcessRouteItem, sortProcessRouteItem, batchDeleteProcessRouteItem } from "@/api/productionManagement/processRouteItem.js";
 import { findProductProcessRouteItemList, deleteRouteItem, addRouteItem, addOrUpdateProductProcessRouteItem, sortRouteItem } from "@/api/productionManagement/productProcessRoute.js";
@@ -218,6 +248,7 @@
 
 const route = useRoute()
 const { proxy } = getCurrentInstance() || {};
+const ProductStructureDetail = defineAsyncComponent(() => import("@/views/productionManagement/productStructure/Detail/index.vue"));
 
 const routeId = computed(() => route.query.id);
 const orderId = computed(() => route.query.orderId);
@@ -262,6 +293,7 @@
   productName: "",
   model: "",
   unit: "",
+  isQuality: false,
 });
 
 const rules = {
@@ -340,6 +372,7 @@
     productName: row.productName || "",
     model: row.model || "",
     unit: row.unit || "",
+    isQuality: row.isQuality,
   };
   dialogVisible.value = true;
 };
@@ -402,12 +435,14 @@
               productRouteId: routeId.value,
               processId: form.value.processId,
               productModelId: form.value.productModelId,
+              isQuality: form.value.isQuality,
               dragSort,
             })
           : addOrUpdateProcessRouteItem({
               routeId: routeId.value,
               processId: form.value.processId,
               productModelId: form.value.productModelId,
+              isQuality: form.value.isQuality,
               dragSort,
             });
 
@@ -432,12 +467,14 @@
               id: form.value.id,
               processId: form.value.processId,
               productModelId: form.value.productModelId,
+              isQuality: form.value.isQuality,
             })
           : addOrUpdateProcessRouteItem({
               routeId: routeId.value,
               processId: form.value.processId,
               productModelId: form.value.productModelId,
               id: form.value.id,
+              isQuality: form.value.isQuality,
             });
 
         updatePromise
@@ -733,6 +770,19 @@
   color: #409eff;
 }
 
+.product-tag {
+  margin: 10px 0;
+}
+
+.product-flags {
+  margin-top: 8px;
+  display: flex;
+  justify-content: center;
+  gap: 12px;
+  color: #606266;
+  font-size: 12px;
+}
+
 .card-footer {
   display: flex;
   justify-content: space-around;
@@ -798,6 +848,10 @@
   align-items: center;
 }
 
+.product-structure-panel {
+  margin: 12px 0 20px;
+}
+
 /* 宸ヨ壓璺嚎淇℃伅鍗$墖鏍峰紡 */
 .route-info-card {
   margin-bottom: 20px;

--
Gitblit v1.9.3