From 36b909e117c3ccc22dd266a94479e2a02335d261 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 26 三月 2026 18:03:34 +0800
Subject: [PATCH] 军泰伟业 1.生产订单新增编辑逻辑重写

---
 src/views/productionManagement/processRoute/processRouteItem/index.vue |  100 +++++++-------------------------------------------
 1 files changed, 14 insertions(+), 86 deletions(-)

diff --git a/src/views/productionManagement/processRoute/processRouteItem/index.vue b/src/views/productionManagement/processRoute/processRouteItem/index.vue
index 65035ec..f1d46fc 100644
--- a/src/views/productionManagement/processRoute/processRouteItem/index.vue
+++ b/src/views/productionManagement/processRoute/processRouteItem/index.vue
@@ -63,11 +63,9 @@
         <el-button 
             icon="Grid" 
             @click="toggleView"
-            style="margin-right: 10px;"
         >
           鍗$墖瑙嗗浘
         </el-button>
-        <el-button type="primary" @click="handleAdd">鏂板</el-button>
       </div>
     </div>
     <el-table
@@ -87,10 +85,6 @@
           {{ getProcessName(scope.row.processId) || '-' }}
         </template>
       </el-table-column>
-      <el-table-column label="浜у搧鍚嶇О" prop="productName" min-width="160" />
-      <el-table-column label="鍥剧焊缂栧彿" prop="model" min-width="140" />
-      <el-table-column label="瑙勬牸鍨嬪彿" prop="drawingNumber" min-width="160" />
-      <el-table-column label="鍗曚綅" prop="unit" width="100" />
       <el-table-column label="鏄惁璐ㄦ" prop="isQuality" width="100">
         <template #default="scope">
           {{scope.row.isQuality ? "鏄�" : "鍚�"}}
@@ -117,11 +111,9 @@
           <el-button 
               icon="Menu" 
               @click="toggleView"
-              style="margin-right: 10px;"
           >
             琛ㄦ牸瑙嗗浘
           </el-button>
-          <el-button type="primary" @click="handleAdd">鏂板</el-button>
         </div>
       </div>
       <div v-loading="tableLoading" class="card-container">
@@ -141,18 +133,8 @@
             <div class="card-process-name">{{ getProcessName(item.processId) || '-' }}</div>
           </div>
           
-          <!-- 浜у搧淇℃伅 -->
           <div class="card-content">
-            <div v-if="item.productName" class="product-info">
-              <div class="product-name">{{ item.productName }}</div>
-              <div class="product-model">{{ item.drawingNumber || '-' }}</div>
-              <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>
-            <div v-else class="product-info empty">鏆傛棤浜у搧淇℃伅</div>
+            <el-tag type="primary" class="product-tag" v-if="item.isQuality">璐ㄦ</el-tag>
           </div>
           
           <!-- 鎿嶄綔鎸夐挳 -->
@@ -194,23 +176,6 @@
           </el-select>
         </el-form-item>
 
-        <el-form-item label="浜у搧鍚嶇О" prop="productModelId">
-          <el-button type="primary" @click="showProductSelectDialog = true">
-            {{ form.productName && form.model 
-              ? `${form.productName} - ${form.model}` 
-              : '閫夋嫨浜у搧' }}
-          </el-button>
-        </el-form-item>
-
-        <el-form-item label="鍗曚綅" prop="unit">
-          <el-input 
-              v-model="form.unit" 
-              :placeholder="form.productModelId ? '鏍规嵁閫夋嫨鐨勪骇鍝佽嚜鍔ㄥ甫鍑�' : '璇峰厛閫夋嫨浜у搧'" 
-              clearable 
-              :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>
@@ -237,18 +202,11 @@
       </template>
     </el-dialog>
 
-    <!-- 浜у搧閫夋嫨瀵硅瘽妗� -->
-    <ProductSelectDialog
-        v-model="showProductSelectDialog"
-        @confirm="handleProductSelect"
-        single
-    />
   </div>
 </template>
 
 <script setup>
 import { ref, computed, getCurrentInstance, onMounted, onUnmounted, nextTick } 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";
 import { processList } from "@/api/productionManagement/productionProcess.js";
@@ -283,7 +241,6 @@
 });
 
 const processOptions = ref([]);
-const showProductSelectDialog = ref(false);
 const staffList = ref([]);
 
 const treeProps = {
@@ -307,17 +264,12 @@
   id: undefined,
   routeId: routeId.value,
   processId: undefined,
-  productModelId: undefined,
-  productName: "",
-  model: "",
-  unit: "",
   isQuality: false,
   userPower: [],
 });
 
 const rules = {
   processId: [{ required: true, message: '璇烽�夋嫨宸ュ簭', trigger: 'change' }],
-  productModelId: [{ required: true, message: '璇烽�夋嫨浜у搧', trigger: 'change' }],
 };
 
 // 鏍规嵁宸ュ簭ID鑾峰彇宸ュ簭鍚嶇О
@@ -395,10 +347,6 @@
     id: row.id,
     routeId: routeId.value,
     processId: row.processId,
-    productModelId: row.productModelId,
-    productName: row.productName || "",
-    model: row.model || "",
-    unit: row.unit || "",
     isQuality: row.isQuality,
     userPower: userPowerIds,
   };
@@ -447,20 +395,6 @@
     .catch(() => {});
 };
 
-// 浜у搧閫夋嫨
-const handleProductSelect = (products) => {
-  if (products && products.length > 0) {
-    const product = products[0];
-    form.value.productModelId = product.id;
-    form.value.productName = product.productName;
-    form.value.model = product.model;
-    form.value.unit = product.unit || "";
-    showProductSelectDialog.value = false;
-    // 瑙﹀彂琛ㄥ崟楠岃瘉
-    formRef.value?.validateField('productModelId');
-  }
-};
-
 // 鎻愪氦
 const handleSubmit = () => {
   formRef.value.validate((valid) => {
@@ -480,7 +414,6 @@
               productOrderId: orderId.value,
               productRouteId: routeId.value,
               processId: form.value.processId,
-              productModelId: form.value.productModelId,
               isQuality: form.value.isQuality,
               userPower: userPowerNames.join(','),
               dragSort,
@@ -488,7 +421,6 @@
           : addOrUpdateProcessRouteItem({
               routeId: routeId.value,
               processId: form.value.processId,
-              productModelId: form.value.productModelId,
               isQuality: form.value.isQuality,
               userPower: userPowerNames.join(','),
               dragSort,
@@ -514,14 +446,12 @@
           ? addOrUpdateProductProcessRouteItem({
               id: form.value.id,
               processId: form.value.processId,
-              productModelId: form.value.productModelId,
               isQuality: form.value.isQuality,
               userPower: userPowerNames.join(','),
             })
           : addOrUpdateProcessRouteItem({
               routeId: routeId.value,
               processId: form.value.processId,
-              productModelId: form.value.productModelId,
               id: form.value.id,
               isQuality: form.value.isQuality,
               userPower: userPowerNames.join(','),
@@ -550,10 +480,8 @@
     id: undefined,
     routeId: routeId.value,
     processId: undefined,
-    productModelId: undefined,
-    productName: "",
-    model: "",
-    unit: "",
+    isQuality: false,
+    userPower: [],
   };
   formRef.value?.resetFields();
 };
@@ -800,20 +728,20 @@
 
 .process-card {
   flex-shrink: 0;
-  width: 220px;
+  width: 160px;
   background: #fff;
+  border: 1px solid #e4e7ed;
   border-radius: 8px;
-  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
   padding: 16px;
   display: flex;
   flex-direction: column;
   cursor: move;
-  transition: all 0.3s;
+  transition: all 0.2s;
 }
 
 .process-card:hover {
-  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
-  transform: translateY(-2px);
+  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
 }
 
 .card-header {
@@ -822,20 +750,20 @@
 }
 
 .card-number {
-  width: 36px;
-  height: 36px;
-  line-height: 36px;
+  width: 28px;
+  height: 28px;
+  line-height: 28px;
   border-radius: 50%;
   background: #409eff;
   color: #fff;
   font-weight: bold;
-  font-size: 16px;
+  font-size: 13px;
   margin: 0 auto 8px;
 }
 
 .card-process-name {
   font-size: 14px;
-  color: #333;
+  color: #303133;
   font-weight: 500;
   word-break: break-all;
 }
@@ -843,7 +771,7 @@
 .card-content {
   flex: 1;
   margin-bottom: 12px;
-  min-height: 60px;
+  min-height: 40px;
   display: flex;
   align-items: center;
   justify-content: center;

--
Gitblit v1.9.3