From 6942c113c1601e6cf48899ab6dec50866662dcec Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期五, 17 四月 2026 14:17:44 +0800
Subject: [PATCH] 入库功能更改

---
 src/views/salesManagement/salesLedger/index.vue |  105 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 99 insertions(+), 6 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index ace1ee9..282b41d 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -63,8 +63,10 @@
                      style="width: 140px">
             <el-option label="鏈叆搴�"
                        :value="0" />
-            <el-option label="宸插叆搴�"
+            <el-option label="閮ㄥ垎鍏ュ簱"
                        :value="1" />
+            <el-option label="宸插叆搴�"
+                       :value="2" />
           </el-select>
         </el-form-item>
         <el-form-item>
@@ -214,6 +216,18 @@
                           type="danger">涓嶈冻</el-tag>
                 </template>
               </el-table-column>
+              <el-table-column label="鍏ュ簱鐘舵��"
+                               width="100px"
+                               align="center">
+                <template #default="scope">
+                  <el-tag v-if="scope.row.productStockStatus == 1"
+                          type="success">宸插叆搴�</el-tag>
+                  <el-tag v-else-if="scope.row.productStockStatus == 0"
+                          type="info">鏈嚭搴�</el-tag>
+                  <el-tag v-else
+                          type="danger">涓嶈冻</el-tag>
+                </template>
+              </el-table-column>
               <!-- <el-table-column label="鍙戣揣鐘舵��" width="140" align="center">
 								<template #default="scope">
 									<el-tag :type="getShippingStatusType(scope.row)" size="small">
@@ -328,6 +342,8 @@
             <el-tag v-if="Number(scope.row.stockStatus) === 0"
                     type="info">鏈叆搴�</el-tag>
             <el-tag v-else-if="Number(scope.row.stockStatus) === 1"
+                    type="success">閮ㄥ垎鍏ュ簱</el-tag>
+            <el-tag v-else-if="Number(scope.row.stockStatus) === 2"
                     type="success">宸插叆搴�</el-tag>
             <el-tag v-else
                     type="info">-</el-tag>
@@ -1613,6 +1629,46 @@
         </div>
       </template>
     </el-dialog>
+    <!-- 鍏ュ簱浜у搧閫夋嫨寮圭獥 -->
+    <el-dialog v-model="stockDialogVisible"
+               title="閫夋嫨鍏ュ簱浜у搧"
+               width="60%"
+               :close-on-click-modal="false">
+      <el-table :data="stockProductList"
+                border
+                stripe
+                v-loading="stockLoading"
+                height="400px"
+                @selection-change="val => selectedStockProductIds = val.map(item => item.id)">
+        <el-table-column type="selection"
+                         width="55"
+                         align="center" />
+        <el-table-column align="center"
+                         label="搴忓彿"
+                         type="index"
+                         width="60" />
+        <el-table-column prop="productCategory"
+                         label="浜у搧澶х被"
+                         show-overflow-tooltip />
+        <el-table-column prop="specificationModel"
+                         label="瑙勬牸鍨嬪彿"
+                         show-overflow-tooltip />
+        <el-table-column prop="quantity"
+                         label="鏁伴噺"
+                         width="100" />
+        <el-table-column prop="floorCode"
+                         label="妤煎眰缂栧彿"
+                         show-overflow-tooltip />
+      </el-table>
+      <template #footer>
+        <el-button @click="stockDialogVisible = false">鍙栨秷</el-button>
+        <el-button type="primary"
+                   @click="submitStock"
+                   :disabled="selectedStockProductIds.length === 0">
+          纭鍏ュ簱
+        </el-button>
+      </template>
+    </el-dialog>
   </div>
 </template>
 
@@ -1688,6 +1744,13 @@
   const processFlowSelectBoundRouteId = ref(null);
   const processFlowSelectBoundRouteName = ref("");
 
+  // 鍏ュ簱寮圭獥鐩稿叧
+  const stockDialogVisible = ref(false);
+  const stockProductList = ref([]);
+  const selectedStockProductIds = ref([]);
+  const stockLoading = ref(false);
+  const currentStockLedgerId = ref(null);
+
   // 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁
   const operationType = ref("");
   const dialogFormVisible = ref(false);
@@ -1700,7 +1763,7 @@
       entryDateStart: undefined,
       entryDateEnd: undefined,
       deliveryStatus: undefined, // 鍙戣揣鐘舵�侊細1鏈彂璐� 2瀹℃壒涓� 3瀹℃壒澶辫触 4宸插彂璐�
-      stockStatus: undefined, // 鍏ュ簱鐘舵�侊細0鏈叆搴� 1宸插叆搴�
+      stockStatus: undefined, // 鍏ュ簱鐘舵�侊細0鏈叆搴� 1閮ㄥ垎鍏ュ簱 2宸插叆搴�
     },
     form: {
       salesContractNo: "",
@@ -2614,12 +2677,37 @@
       ElMessage.warning("鎵�閫夋暟鎹己灏慽d锛屾棤娉曞叆搴�");
       return;
     }
-    if (Number(row.stockStatus) === 1) {
-      ElMessage.info("璇ュ彴璐﹀凡鍏ュ簱锛屾棤闇�閲嶅鎿嶄綔");
+    if (Number(row.stockStatus) === 2) {
+      ElMessage.info("璇ュ彴璐﹀凡鍏ㄩ儴鍏ュ簱锛屾棤闇�閲嶅鎿嶄綔");
       return;
     }
+
+    currentStockLedgerId.value = id;
+    selectedStockProductIds.value = [];
+    stockProductList.value = [];
+    stockDialogVisible.value = true;
+    stockLoading.value = true;
+
     try {
-      await ElMessageBox.confirm("纭瀵规墍閫夊彴璐︽墽琛屽叆搴擄紵", "鎻愮ず", {
+      const res = await productList({ salesLedgerId: id, type: 1 });
+      stockProductList.value = [];
+      stockProductList.value =
+        res.data.filter(item => item.productStockStatus == 0) || [];
+    } catch (e) {
+      proxy?.$modal?.msgError?.("鑾峰彇浜у搧鍒楄〃澶辫触");
+    } finally {
+      stockLoading.value = false;
+    }
+  };
+
+  const submitStock = async () => {
+    if (selectedStockProductIds.value.length === 0) {
+      ElMessage.warning("璇烽�夋嫨鑷冲皯涓�涓骇鍝佽繘琛屽叆搴�");
+      return;
+    }
+
+    try {
+      await ElMessageBox.confirm("纭瀵规墍閫変骇鍝佹墽琛屽叆搴擄紵", "鎻愮ず", {
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
         type: "warning",
@@ -2627,10 +2715,15 @@
     } catch {
       return;
     }
+
     proxy?.$modal?.loading?.("姝e湪鍏ュ簱锛岃绋嶅��...");
     try {
-      await salesStock({ id });
+      await salesStock({
+        salesLedgerId: currentStockLedgerId.value,
+        salesLedgerProducts: selectedStockProductIds.value,
+      });
       proxy?.$modal?.msgSuccess?.("鍏ュ簱鎴愬姛");
+      stockDialogVisible.value = false;
       await getList();
     } catch (e) {
       proxy?.$modal?.msgError?.("鍏ュ簱澶辫触锛岃绋嶅悗閲嶈瘯");

--
Gitblit v1.9.3