From 5f09dde37cbe8e22d7af973ee5bc3a2b72abff6e Mon Sep 17 00:00:00 2001
From: 张诺 <2864490065@qq.com>
Date: 星期四, 24 七月 2025 10:43:45 +0800
Subject: [PATCH] 归还数量

---
 src/views/equipment/management/mould/equipmentRequisitionDialog.vue |   86 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 77 insertions(+), 9 deletions(-)

diff --git a/src/views/equipment/management/mould/equipmentRequisitionDialog.vue b/src/views/equipment/management/mould/equipmentRequisitionDialog.vue
index c3f6907..c8c088d 100644
--- a/src/views/equipment/management/mould/equipmentRequisitionDialog.vue
+++ b/src/views/equipment/management/mould/equipmentRequisitionDialog.vue
@@ -87,10 +87,17 @@
           >(鏈�澶歿{ remainingReturnQuantity }}鍙�)</span
         >
         <span
-          style="color: #ff4d4f; font-size: 12px; margin-left: 8px"
+          style="color: #67c23a; font-size: 12px; margin-left: 8px"
           v-else
           >(宸插叏閮ㄥ綊杩�)</span
         >
+        <!-- 褰掕繕瀹屾垚鎻愮ず -->
+        <div 
+          v-if="remainingReturnQuantity > 0 && form.returnQuantity === remainingReturnQuantity"
+          style="color: #67c23a; font-size: 12px; margin-top: 4px"
+        >
+          馃挕 鎻愮ず锛氭湰娆″綊杩樺悗灏嗗畬鎴愬叏閮ㄥ綊杩�
+        </div>
       </el-form-item>
       <!-- 浣跨敤寮�濮嬫椂闂� - 鍙湪闈炲綊杩樻ā寮忔樉绀� -->
       <el-form-item label="浣跨敤寮�濮嬫椂闂�" prop="usageStartTime" v-if="!isReturnMode">
@@ -136,7 +143,7 @@
 
 <script setup>
 import { ref, watch, computed, onMounted } from "vue";
-import { ElMessage } from "element-plus";
+import { ElMessage, ElMessageBox } from "element-plus";
 import { getEquipmentList } from "@/api/publicApi/index.js";
 import { addOrEditUsageRecord } from "@/api/equipment/requisition/index.js";
 
@@ -313,8 +320,8 @@
   emit("update:modelValue", false);
 }
 
-function handleSubmit() {
-  formRef.value.validate((valid) => {
+function handleSubmit () {
+  formRef.value.validate(async (valid) => {
     if (!valid) return;
     
     let submitData = { ...form.value };
@@ -326,20 +333,81 @@
       const alreadyReturnedQuantity = props.formData.totalReturnNo || 0;
       const newTotalReturnedQuantity = alreadyReturnedQuantity + currentReturnQuantity;
       
+      // 鍒ゆ柇鏄惁鍏ㄩ儴褰掕繕瀹屾垚
+      let equipmentStatus = 2; // 榛樿涓洪儴鍒嗗綊杩�
+      let isFullyReturned = newTotalReturnedQuantity >= totalUsageQuantity;
+      
+      if (isFullyReturned) {
+        equipmentStatus = 3; // 鍏ㄩ儴褰掕繕瀹屾垚
+        
+        // 鍏ㄩ儴褰掕繕鏃剁殑纭鎻愮ず
+        try {
+          await ElMessageBox.confirm(
+            `纭灏嗚澶�"${props.formData.equipmentName || '鏈煡璁惧'}"鍏ㄩ儴褰掕繕鍚楋紵褰掕繕鍚庤澶囩姸鎬佸皢鍙樹负"宸插綊杩�"銆俙,
+            '纭鍏ㄩ儴褰掕繕',
+            {
+              confirmButtonText: '纭褰掕繕',
+              cancelButtonText: '鍙栨秷',
+              type: 'success',
+            }
+          );
+        } catch (error) {
+          if (error === 'cancel') {
+            ElMessage.info('宸插彇娑堝綊杩樻搷浣�');
+            return;
+          }
+        }
+        
+        console.log('璁惧褰掕繕瀹屾垚:', {
+          璁惧鍚嶇О: props.formData.equipmentName,
+          鎬讳娇鐢ㄦ暟閲�: totalUsageQuantity,
+          鏂扮殑褰掕繕鎬绘暟: newTotalReturnedQuantity,
+          鐘舵��: '宸插叏閮ㄥ綊杩�'
+        });
+      } else {
+        console.log('璁惧閮ㄥ垎褰掕繕:', {
+          璁惧鍚嶇О: props.formData.equipmentName,
+          鎬讳娇鐢ㄦ暟閲�: totalUsageQuantity,
+          宸插綊杩樻暟閲�: newTotalReturnedQuantity,
+          鍓╀綑鏈綊杩�: totalUsageQuantity - newTotalReturnedQuantity,
+          鐘舵��: '閮ㄥ垎褰掕繕'
+        });
+      }
+      
       submitData = {
         ...props.formData,
         totalReturnNo: newTotalReturnedQuantity,
         returnQuantity: currentReturnQuantity,
         returnTime: form.value.returnTime,
-        equipmentStatus: 2,
+        equipmentStatus: equipmentStatus,
         remarks: form.value.remarks,
         usageQuantity: totalUsageQuantity
       };
     }
-    
-    addOrEditUsageRecord(submitData);
-    emit("submit", submitData);
-    handleClose();
+
+    try {
+      let {code,data} = await addOrEditUsageRecord(submitData);
+      if (code !== 200) {
+        ElMessage.error(data.msg || "鎿嶄綔澶辫触");
+        return;
+      }
+      if(code == 200 && data == 1){
+        // 鏍规嵁褰掕繕鐘舵�佺粰鍑轰笉鍚岀殑鎴愬姛鎻愮ず
+        if (isReturnMode.value && submitData.equipmentStatus === 3) {
+          ElMessage.success("璁惧宸插叏閮ㄥ綊杩樺畬鎴愶紒");
+        } else if (isReturnMode.value && submitData.equipmentStatus === 2) {
+          ElMessage.success("璁惧閮ㄥ垎褰掕繕鎴愬姛锛�");
+        } else {
+          ElMessage.success("鎿嶄綔鎴愬姛锛�");
+        }
+        
+        emit("submit", submitData);
+      }
+      handleClose();
+    } catch (error) {
+      console.error('鎻愪氦澶辫触:', error);
+      ElMessage.error("鎿嶄綔澶辫触锛岃绋嶅悗鍐嶈瘯");
+    }
   });
 }
 </script>

--
Gitblit v1.9.3