From 11d7990309ddace2fa600cbeae58e3ab5ac368f9 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 20 九月 2026 19:25:45 +0800
Subject: [PATCH] 新疆-融邦 1. 委外管理:新增合作商档案、委外订单、往来台账三个页面及接口;合作商附件弹框支持直接上传/删除并即时保存。   2. 信托基金与代储台账:客户档案加「信托基金 / 代储金额」并对超限标红提示;销售台账拆「卖油 / 代储」页签,代储走油库+储罐+合同金额,卖油保留产品明细;台账列表加审批状态与超限红字;审批中心显示销售合同号并能下钻台账明细。   3. 储罐号带入库存:储罐信息表单加「是否启用 / 用途 / 租客信息」联动与校验;库存管理、批号明细、入库/出库表单与列表补齐储罐号、油品、物流、过磅等字段展示。   4. 出库即发货与往来备件:出库台账区分「发货单 / 油品出库」两类来源并分别处理详情;新增备件出入库流水页面。   5. 车辆管理与残油联动:新增车辆管理页面;油品出入库表单物流信息顺序调整,车牌/车挂牌号联动只读。   6. 油品出库联动发货台账:发货台账加「发货单号 / 销售合同号」筛选,修复油品出库行批号列取错字段。   7. 采购申请模块:新增采购申请页面及接口。   8. 付款流水组件:抽出公共「付款流水」弹框组件,采购付款分栏、收付款台账与委外往来台账复用。   9. 列调整:收付款台账删除「付款金额 / 退货金额」;委外往来台账删除「回款金额」,并去掉金额列右对齐。

---
 src/views/inventoryManagement/issueManagement/index.vue |   48 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 47 insertions(+), 1 deletions(-)

diff --git a/src/views/inventoryManagement/issueManagement/index.vue b/src/views/inventoryManagement/issueManagement/index.vue
index 2bba7d0..f89648f 100644
--- a/src/views/inventoryManagement/issueManagement/index.vue
+++ b/src/views/inventoryManagement/issueManagement/index.vue
@@ -53,8 +53,15 @@
     </div>
     <el-dialog v-model="dialogFormVisible" :title="'鏂板鍑哄簱'" width="40%" @close="closeDia">
       <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
-        <el-form-item label="鍑哄簱鏁伴噺锛�" prop="salesContractNo">
+        <el-form-item label="鍑哄簱鏁伴噺锛�" prop="inboundQuantity">
           <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.inboundQuantity" placeholder="璇疯緭鍏�" clearable />
+        </el-form-item>
+        <el-form-item label="鍑哄簱鎵规锛�" prop="batchNo">
+          <el-select v-model="form.batchNo" placeholder="璇烽�夋嫨鍑哄簱鎵规" clearable filterable
+            v-loading="batchLoading" style="width: 100%">
+            <el-option v-for="item in batchOptions" :key="item.batchNo"
+              :label="`${item.batchNo}锛堝彲鐢� ${item.availableQuantity}锛塦" :value="item.batchNo" />
+          </el-select>
         </el-form-item>
         <el-form-item label="鍑哄簱鏃ユ湡锛�" prop="projectName">
           <el-date-picker style="width: 100%" v-model="form.inboundTime" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
@@ -89,6 +96,7 @@
   getStockManagePage,
     delStockManage,
     stockOut,
+    getBatchNoList,
 } from "@/api/inventoryManagement/stockManage.js";
 
 const userStore = useUserStore()
@@ -121,6 +129,7 @@
   rules: {
     inboundTime: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
     inboundQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    batchNo: [{ required: true, message: "璇烽�夋嫨鍑哄簱鎵规", trigger: "change" }],
     nickname: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
   }
 })
@@ -179,6 +188,10 @@
 
 const currentRowNum = ref(0)
 const salesLedgerProductId = ref(null);
+const currentRowProductModelId = ref(null)
+// 鍑哄簱鎵规鍙�夐」锛堝彲鐢ㄩ噺 = 搴撳瓨閲� - 閿佸畾鏁伴噺锛�
+const batchOptions = ref([])
+const batchLoading = ref(false)
 
 // 鎵撳紑寮规
 const openForm = async (row) => {
@@ -186,15 +199,18 @@
   currentRowId.value = row.id
   currentRowNum.value = row.inboundNum0
   salesLedgerProductId.value = row.salesLedgerProductId
+  currentRowProductModelId.value = row.productModelId
   form.value = {}
   // 鍒濆鍖栬〃鍗曟暟鎹�
   form.value = {
     productrecordId: '',
     inboundQuantity: '', // 鍑哄簱鏁伴噺娓呯┖
+    batchNo: '', // 鍑哄簱鎵规娓呯┖
     inboundTime: getCurrentDate(), // 榛樿褰撳墠鏃ユ湡
     nickName: '', // 榛樿褰撳墠鐢ㄦ埛
   }
   console.log('form',form.value)
+  loadBatchOptions()
   // 鍔犺浇鐢ㄦ埛鍒楄〃
   try {
     const userLists = await userListNoPageByTenantId()
@@ -204,17 +220,47 @@
   }
 }
 
+// 鍔犺浇瑙勬牸鍨嬪彿涓嬬殑鍙敤鎵规
+const loadBatchOptions = async () => {
+  batchOptions.value = []
+  if (!currentRowProductModelId.value) {
+    proxy.$modal.msgWarning('褰撳墠璁板綍缂哄皯瑙勬牸鍨嬪彿锛屾棤娉曟煡璇㈠嚭搴撴壒娆�')
+    return
+  }
+  batchLoading.value = true
+  try {
+    const res = await getBatchNoList(currentRowProductModelId.value)
+    batchOptions.value = res.data || []
+  } catch (error) {
+    console.error('鏌ヨ鍑哄簱鎵规澶辫触:', error)
+  } finally {
+    batchLoading.value = false
+  }
+}
+
 // 鎻愪氦琛ㄥ崟
 const submitForm = () => {
   let num = Number(form.value.inboundQuantity)
   if(num <= 0 || num > currentRowNum.value){
     return proxy.$modal.msgWarning("璇峰~鍏ユ湁鏁堟暟瀛�")
   }
+  // 搴撳瓨鎸夋壒娆$鐞嗐�佹棤鍏堣繘鍏堝嚭锛屾暟閲忎笉鑳借秴杩囨墍閫夋壒娆$殑鍙敤閲�
+  const selectedBatch = batchOptions.value.find(
+    item => item.batchNo === form.value.batchNo
+  )
+  if (selectedBatch && num > Number(selectedBatch.availableQuantity)) {
+    return proxy.$modal.msgWarning(
+      `鍑哄簱鏁伴噺涓嶈兘瓒呰繃鎵规銆�${selectedBatch.batchNo}銆嶇殑鍙敤閲� ${selectedBatch.availableQuantity}`
+    )
+  }
   proxy.$refs["formRef"].validate(valid => {
     if (valid && currentRowId.value) {
       const outData = {
         id: currentRowId.value, // 鍘熷璁板綍ID
+        type: 2, // 2=閿�鍞嚭搴擄紝鍑哄簱鍗宠嚜鍔ㄧ敓鎴愬彂璐у彴璐�
         salesLedgerProductId: salesLedgerProductId.value,
+        productModelId: currentRowProductModelId.value,
+        batchNo: form.value.batchNo, // 鍑哄簱鎵规锛堥攢鍞嚭搴撳繀濉級
         quantity: form.value.inboundQuantity, // 鍑哄簱鏁伴噺
         time: form.value.inboundTime, // 鍑哄簱鏃堕棿
         userId: form.value.nickName // 鎿嶄綔浜�

--
Gitblit v1.9.3