From 01a0dbc37d2df7557f6bab27a8f3f78970b8251e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 01 四月 2026 17:39:03 +0800
Subject: [PATCH] 军泰伟业 1.军泰伟业-库存管理增加库位 2.军泰伟业-生产入库要审核,加个入库审核菜单,入库数量,库位,通过不通过

---
 src/views/productionManagement/productionOrder/New.vue |  133 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 116 insertions(+), 17 deletions(-)

diff --git a/src/views/productionManagement/productionOrder/New.vue b/src/views/productionManagement/productionOrder/New.vue
index 500145d..e5831e2 100644
--- a/src/views/productionManagement/productionOrder/New.vue
+++ b/src/views/productionManagement/productionOrder/New.vue
@@ -402,6 +402,28 @@
     formState.value.productModelId = product.id;
     formState.value.unit = product.unit;
     formState.value.routeId = product.routeId;
+    
+    // 淇濆瓨浜у搧鍘熸湁鐨勫浘绾告枃浠�
+    if (product.salesLedgerFiles && product.salesLedgerFiles.length > 0) {
+      formState.value.salesLedgerFiles = product.salesLedgerFiles.map(file => ({
+        id: file.id,
+        name: file.name,
+        url: file.url,
+        type: file.type,
+        isExisting: true // 鏍囪涓哄凡瀛樺湪鐨勬枃浠�
+      }));
+      // 鍚屾鍒癴ileList鐢ㄤ簬鍙嶆樉
+      fileList.value = formState.value.salesLedgerFiles.map(file => ({
+        id: file.id,
+        name: file.name,
+        url: file.url,
+        isExisting: true
+      }));
+    } else {
+      formState.value.salesLedgerFiles = [];
+      fileList.value = [];
+    }
+    
     showProductSelectDialog.value = false;
     
     // 1. 閫氳繃浜у搧鑷甫鐨剅outeId鑾峰彇宸ュ簭鍒楄〃
@@ -426,7 +448,8 @@
     const items = res.data || [];
     processRouteItemsOptions.value = items;
     
-    // 鑷姩娣诲姞宸ュ簭
+    // 鑷姩娣诲姞宸ュ簭锛岃鍒掓暟浣跨敤鍩烘湰淇℃伅鐨勯渶姹傛暟閲�
+    const demandQty = formState.value.quantity || 1;
     processRouteItems.value = items.map(item => ({
       processId: item.processId,
       processName: item.processName,
@@ -434,7 +457,7 @@
       userPower: item.userPower ? item.userPower.split(',') : [],
       planStartTime: "",
       planEndTime: "",
-      planNum: 1,
+      planNum: demandQty,
       isQuality: item.isQuality || false,
     }));
   });
@@ -496,11 +519,18 @@
   }
 }, { deep: true });
 
-// 鐩戝惉闇�姹傛暟閲忓彉鍖栵紝閲嶆柊璁$畻鐗╂枡闇�姹傛暟閲�
+// 鐩戝惉闇�姹傛暟閲忓彉鍖栵紝閲嶆柊璁$畻鐗╂枡闇�姹傛暟閲忓拰宸ュ簭璁″垝鏁�
 watch(() => formState.value.quantity, (newQty) => {
+  // 鏇存柊鐗╂枡娓呭崟鐨勯渶姹傛暟閲�
   if (productStructureRecords.value.length > 0 && newQty) {
     productStructureRecords.value.forEach(item => {
       item.demandedQuantity = (item.unitQuantity || 1) * newQty;
+    });
+  }
+  // 鏇存柊宸ュ簭鐨勮鍒掓暟
+  if (processRouteItems.value.length > 0 && newQty) {
+    processRouteItems.value.forEach(item => {
+      item.planNum = newQty;
     });
   }
 });
@@ -606,26 +636,66 @@
   return true;
 };
 
-const handleDrawingUploadSuccess = (response, file, fileList) => {
+const handleDrawingUploadSuccess = (response, file, uploadFileList) => {
   console.log('涓婁紶鎴愬姛鍝嶅簲', response);
   console.log('response.data', response.data);
   if (response.code === 200) {
-    formState.value.tempFileIds = [response.data?.tempId];
-    formState.value.salesLedgerFiles = [{
+    // 灏嗘柊涓婁紶鐨勬枃浠舵坊鍔犲埌salesLedgerFiles涓�
+    const newFile = {
       tempId: response.data?.tempId,
-      originalName: response.data?.originalName || file.name,
+      name: response.data?.originalName || file.name,
       tempPath: response.data?.tempPath,
-      type: response.data?.type || 14
-    }];
+      type: response.data?.type || 14,
+      isNew: true // 鏍囪涓烘柊涓婁紶鐨勬枃浠�
+    };
+    
+    // 娣诲姞鏂版枃浠跺埌salesLedgerFiles
+    if (!formState.value.salesLedgerFiles) {
+      formState.value.salesLedgerFiles = [];
+    }
+    formState.value.salesLedgerFiles.push(newFile);
+    
+    // 鏇存柊tempFileIds
+    formState.value.tempFileIds = formState.value.salesLedgerFiles
+      .filter(f => f.tempId)
+      .map(f => f.tempId);
+    
     proxy.$modal.msgSuccess("涓婁紶鎴愬姛");
   } else {
     proxy.$modal.msgError(response.msg || "涓婁紶澶辫触");
   }
 };
 
-const handleDrawingRemove = (file) => {
-  formState.value.tempFileIds = [];
-  formState.value.salesLedgerFiles = [];
+const handleDrawingRemove = (file, uploadFileList) => {
+  // 浠巗alesLedgerFiles涓Щ闄ゅ搴旂殑鏂囦欢
+  if (formState.value.salesLedgerFiles) {
+    const index = formState.value.salesLedgerFiles.findIndex(item => {
+      // 鏍规嵁id鎴杢empId鍖归厤
+      if (file.id && item.id === file.id) return true;
+      if (file.response?.data?.tempId && item.tempId === file.response.data.tempId) return true;
+      if (file.name && item.name === file.name) return true;
+      return false;
+    });
+    
+    if (index > -1) {
+      const removedFile = formState.value.salesLedgerFiles[index];
+      // 鏍囪涓哄凡鍒犻櫎锛堢敤浜庡悗绔鐞嗭級
+      if (removedFile.id) {
+        removedFile.isDeleted = true;
+      } else {
+        // 鏂颁笂浼犵殑鏂囦欢鐩存帴绉婚櫎
+        formState.value.salesLedgerFiles.splice(index, 1);
+      }
+    }
+  }
+  
+  // 鏇存柊tempFileIds
+  formState.value.tempFileIds = formState.value.salesLedgerFiles
+    .filter(f => f.tempId && !f.isDeleted)
+    .map(f => f.tempId);
+  
+  // 鍚屾鏇存柊fileList
+  fileList.value = uploadFileList || [];
 };
 
 const handleSubmit = () => {
@@ -636,10 +706,6 @@
         proxy.$modal.msgError("璇烽�夋嫨浜у搧");
         return;
       }
-      if (!formState.value.productModelId) {
-        proxy.$modal.msgError("璇烽�夋嫨瑙勬牸");
-        return;
-      }
 
       // 澶勭悊鎻愪氦鏁版嵁 - 灏唘serPower鏁扮粍杞崲涓洪�楀彿鍒嗛殧鐨勫瓧绗︿覆
       const processedProcessRouteItems = processRouteItems.value.map(item => ({
@@ -647,12 +713,45 @@
         userPower: Array.isArray(item.userPower) ? item.userPower.join(',') : item.userPower
       }));
 
+      // 澶勭悊鏂囦欢鏁版嵁 - 鍖呭惈宸插瓨鍦ㄧ殑銆佹柊涓婁紶鐨勫拰宸插垹闄ょ殑
+      const processedFiles = (formState.value.salesLedgerFiles || []).map(file => {
+        if (file.isNew) {
+          // 鏂颁笂浼犵殑鏂囦欢
+          return {
+            tempId: file.tempId,
+            name: file.name,
+            tempPath: file.tempPath,
+            type: file.type,
+            isNew: true
+          };
+        } else if (file.isDeleted) {
+          // 宸插垹闄ょ殑鍘熸湁鏂囦欢
+          return {
+            id: file.id,
+            name: file.name,
+            url: file.url,
+            type: file.type,
+            isDeleted: true
+          };
+        } else {
+          // 淇濈暀鐨勫師鏈夋枃浠�
+          return {
+            id: file.id,
+            name: file.name,
+            url: file.url,
+            type: file.type,
+            isExisting: true
+          };
+        }
+      });
+
       // 缁勮鎻愪氦鏁版嵁
       const submitData = {
         ...formState.value,
         processRouteItems: processedProcessRouteItems,
         productStructureRecords: productStructureRecords.value,
-        files: formState.value.salesLedgerFiles,
+        salesLedgerFiles: processedFiles,
+        files: processedFiles,
       };
 
       addProductOrder(submitData).then(res => {

--
Gitblit v1.9.3