From 0964a3d755ab490b709acca3a12df323a5053c8e Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 23 四月 2026 13:35:09 +0800
Subject: [PATCH] 发货记录增加数量+“库存预警”字段移至库存管理+点击销售合同号自动跳转到销售台账

---
 src/views/salesManagement/deliveryLedger/index.vue        |   11 +++++++++++
 src/views/reportAnalysis/projectProfit/index.vue          |   23 ++++++++++++++++++++++-
 src/views/inventoryManagement/receiptManagement/index.vue |    8 ++++++++
 src/views/salesManagement/salesLedger/index.vue           |   12 ++++++++++++
 4 files changed, 53 insertions(+), 1 deletions(-)

diff --git a/src/views/inventoryManagement/receiptManagement/index.vue b/src/views/inventoryManagement/receiptManagement/index.vue
index 2414a5c..398c006 100644
--- a/src/views/inventoryManagement/receiptManagement/index.vue
+++ b/src/views/inventoryManagement/receiptManagement/index.vue
@@ -36,6 +36,7 @@
         <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="200" show-overflow-tooltip />
         <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip />
         <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" width="90" show-overflow-tooltip />
+        <el-table-column label="搴撳瓨棰勮" prop="warnNum" width="90" show-overflow-tooltip />
         <el-table-column label="鍚◣鍗曚环" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />
         <el-table-column label="鍚◣鎬讳环" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />
         <el-table-column label="绋庣巼(%)" prop="taxRate" width="80" show-overflow-tooltip />
@@ -97,6 +98,11 @@
           <el-table-column label="鏈鍏ュ簱鏁伴噺" prop="quantityStock" width="150">
             <template #default="scope">
               <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.quantityStock" />
+            </template>
+          </el-table-column>
+          <el-table-column label="搴撳瓨棰勮" prop="warnNum" width="150">
+            <template #default="scope">
+              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.warnNum" />
             </template>
           </el-table-column>
           <el-table-column label="绋庣巼(%)" prop="taxRate" width="120" />
@@ -313,6 +319,7 @@
     productList.value = productRes.data.map(item => ({
       ...item,
       quantityStock: 0,
+      warnNum: 0,
       originalQuantityStock: Number(item.quantityStock ?? item.inboundQuantity ?? 0),
     }))
   } catch (error) {
@@ -434,6 +441,7 @@
         nickName: userStore.nickName,
         details: selectedRows.value.map(product => ({
           id: product.id,
+          warnNum: product.warnNum,
           // id: product.salesLedgerProductId,
           inboundQuantity: Number(product.quantityStock)
         })),
diff --git a/src/views/reportAnalysis/projectProfit/index.vue b/src/views/reportAnalysis/projectProfit/index.vue
index eaa264b..bbf9b46 100644
--- a/src/views/reportAnalysis/projectProfit/index.vue
+++ b/src/views/reportAnalysis/projectProfit/index.vue
@@ -22,7 +22,12 @@
           total: pagination.total,
         }"
         @pagination="changePage"
-      ></PIMTable>
+      >
+      <template #customerContractNo="{ row }">
+         <el-button type="primary" text @click="showDetail(row)">{{ row.customerContractNo }}
+					</el-button>
+        </template>
+      </PIMTable>
     </div>
   </div>
 </template>
@@ -32,7 +37,10 @@
 import { getPurchaseList } from "@/api/procurementManagement/projectProfit";
 import { onMounted, getCurrentInstance } from "vue";
 import { ElMessageBox } from "element-plus";
+import { useRouter, useRoute } from "vue-router";
 
+const router = useRouter();
+  const route = useRoute();
 const { proxy } = getCurrentInstance();
 
 defineOptions({
@@ -58,6 +66,8 @@
       label: "閿�鍞悎鍚屽彿",
       align: "center",
       prop: "customerContractNo",
+      dataType: "slot",
+      slot: "customerContractNo",
     },
     {
       label: "瀹㈡埛鍚嶇О",
@@ -97,6 +107,17 @@
   ]
 );
 
+const showDetail = (row) => {
+  
+ router.push({
+      path: "/salesManagement/salesLedger",
+      query: {
+        customerContractNo: row.customerContractNo
+      },
+    });
+};
+
+
 const changePage = ({ page }) => {
   pagination.currentPage = page;
   onCurrentChange(page);
diff --git a/src/views/salesManagement/deliveryLedger/index.vue b/src/views/salesManagement/deliveryLedger/index.vue
index 2bad2af..8e4bb8e 100644
--- a/src/views/salesManagement/deliveryLedger/index.vue
+++ b/src/views/salesManagement/deliveryLedger/index.vue
@@ -33,6 +33,7 @@
         <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" show-overflow-tooltip />
         <el-table-column label="鍙戣揣鏃堕棿" prop="shippingDate" show-overflow-tooltip />
         <el-table-column label="鍙戣揣杞︾墝鍙�" prop="shippingCarNumber" show-overflow-tooltip />
+        <el-table-column label="鍙戣揣鏁伴噺" prop="quantity" show-overflow-tooltip />
         <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center">
           <template #default="scope">
             <el-button link type="primary" size="small" @click="openForm('edit', scope.row)">缂栬緫</el-button>
@@ -78,6 +79,13 @@
           <el-col :span="24">
             <el-form-item label="鍙戣揣杞︾墝鍙凤細" prop="shippingCarNumber">
               <el-input v-model="form.shippingCarNumber" placeholder="璇疯緭鍏�" clearable />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="30">
+          <el-col :span="24">
+            <el-form-item label="鍙戣揣鏁伴噺锛�" prop="quantity">
+               <el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'edit'" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -129,6 +137,7 @@
     customerName: "",
     shippingDate: "",
     shippingCarNumber: "",
+    quantity: "",
   },
   rules: {
     salesContractNo: [{ required: true, message: "璇烽�夋嫨閿�鍞鍗�", trigger: "change" }],
@@ -190,6 +199,7 @@
       customerName: row.customerName ?? "",
       shippingDate: row.shippingDate || getCurrentDate(),
       shippingCarNumber: row.shippingCarNumber ?? "",
+      quantity: row.quantity ?? "",
     };
   } else {
     form.value = {
@@ -198,6 +208,7 @@
       customerName: "",
       shippingDate: getCurrentDate(),
       shippingCarNumber: "",
+      quantity: "",
     };
   }
   
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 7eb949d..03fcf57 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -836,6 +836,7 @@
   import useFormData from "@/hooks/useFormData.js";
   import dayjs from "dayjs";
   import { getStockInPage } from "@/api/inventoryManagement/stockIn.js";
+  import { useRouter, useRoute } from "vue-router";
 
   const userStore = useUserStore();
   const { proxy } = getCurrentInstance();
@@ -857,6 +858,8 @@
   const approverNodes = ref([{ id: 1, userId: null }]);
   let nextApproverId = 2;
 
+const router = useRouter();
+  const route = useRoute();
   // 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁
   const operationType = ref("");
   const dialogFormVisible = ref(false);
@@ -2025,7 +2028,16 @@
   };
 
   onMounted(() => {
+    console.log(route.query,"route.query");
+    
+    if(route.query.customerContractNo){
+      searchForm.salesContractNo = route.query.customerContractNo
     getList();
+
+    }else{
+    getList();
+
+    }
   });
 </script>
 

--
Gitblit v1.9.3