From f388ea8993f8e1a0673d291a301b9eb78d61e86d Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 25 八月 2025 16:13:45 +0800
Subject: [PATCH] 采购管理修改

---
 src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue |   61 +++++++++++++++++++++++++-----
 1 files changed, 51 insertions(+), 10 deletions(-)

diff --git a/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue b/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue
index ea5b259..f939be4 100644
--- a/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue
+++ b/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue
@@ -12,8 +12,8 @@
         </el-form-item>
       </el-col>
       <el-col :span="12">
-        <el-form-item label="鏉ョエ閲戦锛�">
-          <el-text type="primary">{{ form.taxInclusiveTotalPrice }}</el-text>
+        <el-form-item label="鍚◣鍗曚环(鍏�)锛�">
+          <el-text type="primary">{{ form.taxInclusiveUnitPrice }}</el-text>
         </el-form-item>
       </el-col>
       <el-col :span="12">
@@ -23,17 +23,22 @@
       </el-col>
       <el-col :span="12">
         <el-form-item label="鍙戠エ鍙凤細">
-          <el-input v-model="form.invoiceNumber" />
+          <el-input disabled v-model="form.invoiceNumber" />
         </el-form-item>
       </el-col>
       <el-col :span="12">
         <el-form-item label="鏉ョエ鏁帮細">
-          <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.ticketsNum" @input="inputTicketsNum" />
+          <el-input-number :step="0.1" :min="0" style="width: 100%" v-model="form.ticketsNum" @change="inputTicketsNum" :precision="2"/>
         </el-form-item>
       </el-col>
       <el-col :span="12">
-        <el-form-item label="鏉ョエ閲戦锛�">
-          <el-text type="success">{{ form.ticketsAmount }}</el-text>
+        <el-form-item label="鏈鏉ョエ閲戦(鍏�)锛�">
+					<el-input-number :step="0.1" :min="0" style="width: 100%" v-model="form.ticketsAmount" @change="inputTicketsAmount" :precision="2"/>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="鏈潵绁ㄦ暟锛�">
+          <el-text type="success">{{ form.futureTickets }}</el-text>
         </el-form-item>
       </el-col>
     </el-row>
@@ -43,11 +48,12 @@
 <script setup>
 import useFormData from "@/hooks/useFormData";
 import { getProductRecordById } from "@/api/procurementManagement/procurementInvoiceLedger";
+const { proxy } = getCurrentInstance()
 
 defineOptions({
   name: "鏉ョエ鍙拌处琛ㄥ崟",
 });
-
+const temFutureTickets = ref(0)
 const { form, resetForm } = useFormData({
   id: undefined,
   purchaseContractNumber: undefined, // 閲囪喘鍚堝悓鍙�
@@ -56,7 +62,7 @@
   invoiceNumber: undefined, // 鍙戠エ鍙�
   ticketsNum: undefined, // 鏉ョエ鏁�
   ticketsAmount: undefined, // 鏉ョエ閲戦
-  taxInclusiveTotalPrice: undefined, // 鍚◣鎬讳环
+	taxInclusiveUnitPrice: undefined, // 鍚◣鍗曚环
 });
 
 const load = async (id) => {
@@ -69,12 +75,47 @@
     form.invoiceNumber = data.invoiceNumber;
     form.ticketsNum = data.ticketsNum;
     form.ticketsAmount = data.ticketsAmount.toFixed(2);
-    form.taxInclusiveTotalPrice = data.taxInclusiveTotalPrice;
+    form.taxInclusiveUnitPrice = data.taxInclusiveUnitPrice;
+    form.futureTickets = data.futureTickets;
+    temFutureTickets.value = data.futureTickets;
   }
 };
 
 const inputTicketsNum = (val) => {
-  form.ticketsAmount = (val * form.taxInclusiveTotalPrice).toFixed(2);
+	// 纭繚鍚◣鍗曚环瀛樺湪涓斾笉涓洪浂
+	if (!form.taxInclusiveUnitPrice || Number(form.taxInclusiveUnitPrice) === 0) {
+		proxy.$modal.msgWarning("鍚◣鍗曚环涓嶈兘涓洪浂鎴栨湭瀹氫箟");
+		return;
+	}
+	if (Number(form.ticketsNum) > Number(temFutureTickets.value)) {
+		proxy.$modal.msgWarning("寮�绁ㄦ暟涓嶅緱澶т簬鏈紑绁ㄦ暟");
+		form.ticketsNum = temFutureTickets.value
+	}
+	
+	// 纭繚鎵�鏈夋暟鍊奸兘杞崲涓烘暟瀛楃被鍨嬭繘琛岃绠�
+	const ticketsAmount = Number(form.ticketsNum) * Number(form.taxInclusiveUnitPrice);
+	const futureTickets = Number(temFutureTickets.value) - Number(form.ticketsNum);
+	form.futureTickets = Number(futureTickets.toFixed(2));
+	form.ticketsAmount = Number(ticketsAmount.toFixed(2));
+};
+const inputTicketsAmount = (val) => {
+	// 纭繚鍚◣鍗曚环瀛樺湪涓斾笉涓洪浂
+	if (!form.taxInclusiveUnitPrice || Number(form.taxInclusiveUnitPrice) === 0) {
+		proxy.$modal.msgWarning("鍚◣鍗曚环涓嶈兘涓洪浂鎴栨湭瀹氫箟");
+		return;
+	}
+	
+	if (Number(val) > Number(form.futureTickets*form.taxInclusiveUnitPrice)) {
+		proxy.$modal.msgWarning("鏈鏉ョエ閲戦涓嶅緱澶т簬鎬婚噾棰�");
+		form.ticketsAmount = (form.futureTickets*form.taxInclusiveUnitPrice).toFixed(2)
+		const ticketsNum = Number(form.ticketsAmount) / Number(form.taxInclusiveUnitPrice);
+		form.ticketsNum = Number(ticketsNum.toFixed(2))
+		return;
+	}
+	
+	// 纭繚鎵�鏈夋暟鍊奸兘杞崲涓烘暟瀛楃被鍨嬭繘琛岃绠�
+	const ticketsNum = Number(val) / Number(form.taxInclusiveUnitPrice);
+	form.ticketsNum = Number(ticketsNum.toFixed(2));
 };
 
 defineExpose({

--
Gitblit v1.9.3