From b02312bc17dcfd15f4852efc5145c3551e69b9aa Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期二, 23 十二月 2025 10:31:44 +0800
Subject: [PATCH] 发货前校验产品库存修改

---
 src/views/salesManagement/salesLedger/index.vue |   62 +++++++++++++++++++------------
 1 files changed, 38 insertions(+), 24 deletions(-)

diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 8c7c448..d4fbe20 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -45,16 +45,22 @@
         <el-table-column align="center" type="selection" width="55" />
         <el-table-column type="expand">
           <template #default="props">
-            <el-table :data="props.row.children" border show-summary :summary-method="summarizeChildrenTable">
-              <el-table-column align="center" label="搴忓彿" type="index" width="60" />
-              <el-table-column label="浜у搧澶х被" prop="productCategory" />
-              <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
-              <el-table-column label="鍗曚綅" prop="unit" />
-              <el-table-column label="鏁伴噺" prop="quantity" />
-              <el-table-column label="绋庣巼(%)" prop="taxRate" />
-              <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
-              <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
-              <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
+            <el-table :data="props.row.children" border show-summary :summary-method="summarizeChildrenTable" style="min-width: 1200px;"
+                      scrollbar-always-on>
+              <el-table-column align="center" label="搴忓彿" type="index" width="70" />
+              <el-table-column label="浜у搧澶х被" prop="productCategory" width="160" />
+              <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="220" />
+              <el-table-column label="鍗曚綅" prop="unit" width="100" />
+              <el-table-column label="鏁伴噺" prop="quantity" width="120" />
+              <el-table-column label="绋庣巼(%)" prop="taxRate" width="120" />
+              <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" width="160" />
+              <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" width="180" />
+              <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" width="180" />
+<!--              <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center">-->
+<!--                <template #default="scope">-->
+<!--                  <el-button link type="primary" size="small" @click="openDeliveryForm(props.row, scope.row)">鍙戣揣</el-button>-->
+<!--                </template>-->
+<!--              </el-table-column>-->
             </el-table>
           </template>
         </el-table-column>
@@ -70,9 +76,9 @@
         <el-table-column label="褰曞叆浜�" prop="entryPersonName" width="100" show-overflow-tooltip />
         <el-table-column label="褰曞叆鏃ユ湡" prop="entryDate" width="120" show-overflow-tooltip />
         <el-table-column label="绛捐鏃ユ湡" prop="executionDate" width="120" show-overflow-tooltip />
-        <el-table-column fixed="right" label="鎿嶄綔" min-width="200" align="center">
+        <el-table-column fixed="right" label="鎿嶄綔" min-width="150" align="center">
           <template #default="scope">
-            <el-button link type="primary" size="small" :disabled="scope.row.invoiceTotal>0 || scope.row.entryPersonName !== userStore.nickName" @click="openForm('edit', scope.row)">缂栬緫</el-button>
+            <el-button link type="primary" size="small" @click="openForm('edit', scope.row)">缂栬緫</el-button>
 <!--            <el-button link type="primary" size="small" @click="openForm('view', scope.row)">璇︽儏</el-button>-->
             <el-button link type="primary" size="small" @click="downLoadFile(scope.row)">闄勪欢</el-button>
             <el-button link type="primary" size="small" @click="openDeliveryForm(scope.row)">鍙戣揣</el-button>
@@ -459,7 +465,7 @@
 import pagination from "@/components/PIMTable/Pagination.vue";
 import {onMounted, ref} from "vue";
 import { addShippingInfo } from "@/api/salesManagement/deliveryLedger.js";
-import { ElMessageBox } from "element-plus";
+import {ElMessage, ElMessageBox} from "element-plus";
 import useUserStore from "@/store/modules/user";
 import { userListNoPage } from "@/api/system/user.js";
 import FileList from "./fileList.vue";
@@ -472,11 +478,15 @@
   delLedger,
   addOrUpdateSalesLedgerProduct,
   delProduct,
-  delLedgerFile,
+  delLedgerFile, getProductInventory,
 } from "@/api/salesManagement/salesLedger.js";
 import { modelList, productTreeList } from "@/api/basicData/product.js";
 import useFormData from "@/hooks/useFormData.js";
 import dayjs from "dayjs";
+import {
+  getStockInPage
+} from "@/api/inventoryManagement/stockIn.js";
+
 
 const userStore = useUserStore();
 const { proxy } = getCurrentInstance();
@@ -588,7 +598,7 @@
 
 // 鍙戣揣鐩稿叧
 const deliveryFormVisible = ref(false);
-const currentDeliveryRow = ref(null);
+const currentDeliveryContext = ref(null);
 const deliveryFormData = reactive({
   deliveryForm: {
     shippingDate: "",
@@ -1524,12 +1534,16 @@
 
 // 鎵撳紑鍙戣揣寮规
 const openDeliveryForm = (row) => {
-  currentDeliveryRow.value = row;
-  deliveryForm.value = {
-    shippingDate: getCurrentDate(),
-    shippingCarNumber: "",
-  };
-  deliveryFormVisible.value = true;
+  getProductInventory({ salesLedgerId: row.id, type:1 }).then((res) => {
+    currentDeliveryRow.value = row;
+    deliveryForm.value = {
+      shippingDate: getCurrentDate(),
+      shippingCarNumber: "",
+    };
+    deliveryFormVisible.value = true;
+  }).catch(err => {
+    ElMessage.error(err.msg);
+  });
 };
 
 // 鎻愪氦鍙戣揣琛ㄥ崟
@@ -1537,14 +1551,14 @@
   proxy.$refs["deliveryFormRef"].validate((valid) => {
     if (valid) {
       addShippingInfo({
-        salesLedgerId: currentDeliveryRow.value.id,
+        salesLedgerId: currentDeliveryContext.value.parentRow.id,
+        salesLedgerProductId: currentDeliveryContext.value.productRow.id,
         shippingDate: deliveryForm.value.shippingDate,
         shippingCarNumber: deliveryForm.value.shippingCarNumber,
       })
         .then(() => {
           proxy.$modal.msgSuccess("鍙戣揣鎴愬姛");
           closeDeliveryDia();
-          getList();
         })
         .catch(() => {
           proxy.$modal.msgError("鍙戣揣澶辫触锛岃閲嶈瘯");
@@ -1557,7 +1571,7 @@
 const closeDeliveryDia = () => {
   proxy.resetForm("deliveryFormRef");
   deliveryFormVisible.value = false;
-  currentDeliveryRow.value = null;
+  currentDeliveryContext.value = null;
 };
 
 onMounted(() => {

--
Gitblit v1.9.3