From 3712799f3e0904f28e4268deaa5c5ee291323c38 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 08 一月 2026 09:27:53 +0800
Subject: [PATCH] 军泰伟业 1.迁移仓库

---
 src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue |  228 ++++++++++++++++++++------------------------------------
 1 files changed, 81 insertions(+), 147 deletions(-)

diff --git a/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue b/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue
index 6290804..e26d73c 100644
--- a/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue
+++ b/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue
@@ -1,48 +1,48 @@
 <template>
-	<el-form :model="form">
-		<el-row :gutter="20">
-			<el-col :span="12">
-				<el-form-item label="閲囪喘鍚堝悓鍙凤細">
-					<el-tag size="large">{{ form.purchaseContractNumber }}</el-tag>
-				</el-form-item>
-			</el-col>
-			<el-col :span="12">
-				<el-form-item label="閿�鍞悎鍚屽彿锛�">
-					<el-text>{{ form.salesContractNo }}</el-text>
-				</el-form-item>
-			</el-col>
-			<el-col :span="12">
-				<el-form-item label="鍚◣鍗曚环(鍏�)锛�">
-					<el-text type="primary">{{ form.taxInclusiveUnitPrice }}</el-text>
-				</el-form-item>
-			</el-col>
-			<el-col :span="12">
-				<el-form-item label="鍒涘缓鏃堕棿锛�">
-					<el-text>{{ form.createdAt }}</el-text>
-				</el-form-item>
-			</el-col>
-			<el-col :span="12">
-				<el-form-item label="鍙戠エ鍙凤細">
-					<el-input v-model="form.invoiceNumber" />
-				</el-form-item>
-			</el-col>
-			<el-col :span="12">
-				<el-form-item label="鏉ョエ鏁帮細">
-					<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-form :model="form">
+    <el-row :gutter="20">
+      <el-col :span="12">
+        <el-form-item label="閲囪喘鍚堝悓鍙凤細">
+          <el-tag size="large">{{ form.purchaseContractNumber }}</el-tag>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="閿�鍞悎鍚屽彿锛�">
+          <el-text>{{ form.salesContractNo }}</el-text>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="鍚◣鍗曚环(鍏�)锛�">
+          <el-text type="primary">{{ form.taxInclusiveUnitPrice }}</el-text>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="鍒涘缓鏃堕棿锛�">
+          <el-text>{{ form.createdAt }}</el-text>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="鍙戠エ鍙凤細">
+          <el-input v-model="form.invoiceNumber" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="鏉ョエ鏁帮細">
+          <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-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>
-	</el-form>
+        </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>
+  </el-form>
 </template>
 
 <script setup>
@@ -51,43 +51,36 @@
 const { proxy } = getCurrentInstance()
 
 defineOptions({
-	name: "鏉ョエ鍙拌处琛ㄥ崟",
+  name: "鏉ョエ鍙拌处琛ㄥ崟",
 });
-const temFutureTickets = ref(0) // 鍒濆鏈潵绁ㄦ暟
-const initialTicketsNum = ref(0) // 鍒濆鏉ョエ鏁�
-const initialTicketsAmount = ref(0) // 鍒濆鏉ョエ閲戦
-const quantity = ref(0) // 鎬绘暟閲�
+const temFutureTickets = ref(0)
 const { form, resetForm } = useFormData({
-	id: undefined,
-	purchaseContractNumber: undefined, // 閲囪喘鍚堝悓鍙�
-	salesContractNo: undefined, // 閿�鍞悎鍚屽彿
-	createdAt: undefined, // 鍒涘缓鏃堕棿
-	invoiceNumber: undefined, // 鍙戠エ鍙�
-	ticketsNum: undefined, // 鏉ョエ鏁�
-	ticketsAmount: undefined, // 鏉ョエ閲戦
+  id: undefined,
+  purchaseContractNumber: undefined, // 閲囪喘鍚堝悓鍙�
+  salesContractNo: undefined, // 閿�鍞悎鍚屽彿
+  createdAt: undefined, // 鍒涘缓鏃堕棿
+  invoiceNumber: undefined, // 鍙戠エ鍙�
+  ticketsNum: undefined, // 鏉ョエ鏁�
+  ticketsAmount: undefined, // 鏉ョエ閲戦
 	taxInclusiveUnitPrice: undefined, // 鍚◣鍗曚环
 	ticketRegistrationId: undefined, // 鍚◣鍗曚环
 });
 
 const load = async (id) => {
-	const { code, data } = await getProductRecordById({ id });
-	if (code === 200) {
-		form.id = data.id;
-		form.purchaseContractNumber = data.purchaseContractNumber;
-		form.salesContractNo = data.salesContractNo;
-		form.createdAt = data.createdAt;
-		form.invoiceNumber = data.invoiceNumber;
-		form.ticketsNum = data.ticketsNum;
-		form.ticketsAmount = data.ticketsAmount ? Number(data.ticketsAmount).toFixed(2) : 0;
-		form.taxInclusiveUnitPrice = data.taxInclusiveUnitPrice;
-		form.futureTickets = data.futureTickets;
-		temFutureTickets.value = data.futureTickets;
-		initialTicketsNum.value = data.ticketsNum || 0;
-		initialTicketsAmount.value = data.ticketsAmount || 0;
+  const { code, data } = await getProductRecordById({ id });
+  if (code === 200) {
+    form.id = data.id;
+    form.purchaseContractNumber = data.purchaseContractNumber;
+    form.salesContractNo = data.salesContractNo;
+    form.createdAt = data.createdAt;
+    form.invoiceNumber = data.invoiceNumber;
+    form.ticketsNum = data.ticketsNum;
+    form.ticketsAmount = data.ticketsAmount.toFixed(2);
+    form.taxInclusiveUnitPrice = data.taxInclusiveUnitPrice;
+    form.futureTickets = data.futureTickets;
+    temFutureTickets.value = data.futureTickets;
 		form.ticketRegistrationId = data.ticketRegistrationId;
-		// 鑾峰彇鎬绘暟閲忥紝濡傛灉鏁版嵁涓湁 quantity 瀛楁鍒欎娇鐢紝鍚﹀垯浣跨敤鏉ョエ鏁�+鏈潵绁ㄦ暟
-		quantity.value = data.quantity || (Number(data.ticketsNum || 0) + Number(data.futureTickets || 0));
-	}
+  }
 };
 
 const inputTicketsNum = (val) => {
@@ -96,44 +89,15 @@
 		proxy.$modal.msgWarning("鍚◣鍗曚环涓嶈兘涓洪浂鎴栨湭瀹氫箟");
 		return;
 	}
-	
-	const newTicketsNum = Number(form.ticketsNum) || 0;
-	const currentTicketsNum = Number(initialTicketsNum.value) || 0;
-	
-	// 璁$畻鏂板鐨勬潵绁ㄦ暟
-	const addedTicketsNum = newTicketsNum - currentTicketsNum;
-	
-	// 璁$畻鏂扮殑鏈潵绁ㄦ暟 = 鍒濆鏈潵绁ㄦ暟 - 鏂板鐨勬潵绁ㄦ暟
-	const newFutureTickets = Number(temFutureTickets.value) - addedTicketsNum;
-	
-	// 楠岃瘉锛氭柊鐨勬潵绁ㄦ暟 + 鏂扮殑鏈潵绁ㄦ暟 鈮� quantity
-	if (newTicketsNum + newFutureTickets > Number(quantity.value)) {
-		proxy.$modal.msgWarning(`鏉ョエ鏁�+鏈潵绁ㄦ暟涓嶈兘澶т簬鎬绘暟閲�(${quantity.value})`);
-		// 闄愬埗鏉ョエ鏁帮紝浣垮叾婊¤冻锛氭潵绁ㄦ暟 + 鏈潵绁ㄦ暟 鈮� quantity
-		// 鏈�澶ф潵绁ㄦ暟 = quantity - 鍒濆鏈潵绁ㄦ暟 + 鍒濆鏉ョエ鏁�
-		const maxTicketsNum = Number(quantity.value) - Number(temFutureTickets.value) + Number(initialTicketsNum.value);
-		form.ticketsNum = Math.max(0, Math.min(maxTicketsNum, newTicketsNum));
-		// 閲嶆柊璁$畻
-		const recalculatedAddedTicketsNum = Number(form.ticketsNum) - Number(initialTicketsNum.value);
-		const recalculatedFutureTickets = Number(temFutureTickets.value) - recalculatedAddedTicketsNum;
-		form.futureTickets = Number(recalculatedFutureTickets.toFixed(2));
-		const ticketsAmount = Number(form.ticketsNum) * Number(form.taxInclusiveUnitPrice);
-		form.ticketsAmount = Number(ticketsAmount.toFixed(2));
-		return;
-	}
-	
-	// 妫�鏌ユ柊澧炵殑鏉ョエ鏁版槸鍚﹀ぇ浜庡垵濮嬫湭鏉ョエ鏁�
-	if (addedTicketsNum > Number(temFutureTickets.value)) {
-		proxy.$modal.msgWarning("鏂板寮�绁ㄦ暟涓嶅緱澶т簬鏈紑绁ㄦ暟");
-		form.ticketsNum = Number(initialTicketsNum.value) + Number(temFutureTickets.value);
+	if (Number(form.ticketsNum) > Number(temFutureTickets.value)) {
+		proxy.$modal.msgWarning("寮�绁ㄦ暟涓嶅緱澶т簬鏈紑绁ㄦ暟");
+		form.ticketsNum = temFutureTickets.value
 	}
 	
 	// 纭繚鎵�鏈夋暟鍊奸兘杞崲涓烘暟瀛楃被鍨嬭繘琛岃绠�
-	const finalTicketsNum = Number(form.ticketsNum) || 0;
-	const finalAddedTicketsNum = finalTicketsNum - Number(initialTicketsNum.value);
-	const finalFutureTickets = Number(temFutureTickets.value) - finalAddedTicketsNum;
-	const ticketsAmount = finalTicketsNum * Number(form.taxInclusiveUnitPrice);
-	form.futureTickets = Number(finalFutureTickets.toFixed(2));
+	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) => {
@@ -143,53 +107,23 @@
 		return;
 	}
 	
-	const newTicketsAmount = Number(val) || 0;
-	
-	// 璁$畻鏂扮殑鏉ョエ鏁�
-	const newTicketsNum = newTicketsAmount / Number(form.taxInclusiveUnitPrice);
-	const currentTicketsNum = Number(initialTicketsNum.value) || 0;
-	
-	// 璁$畻鏂板鐨勬潵绁ㄦ暟
-	const addedTicketsNum = newTicketsNum - currentTicketsNum;
-	
-	// 璁$畻鏂扮殑鏈潵绁ㄦ暟 = 鍒濆鏈潵绁ㄦ暟 - 鏂板鐨勬潵绁ㄦ暟
-	const newFutureTickets = Number(temFutureTickets.value) - addedTicketsNum;
-	
-	// 楠岃瘉锛氭柊鐨勬潵绁ㄦ暟 + 鏂扮殑鏈潵绁ㄦ暟 鈮� quantity
-	if (newTicketsNum + newFutureTickets > Number(quantity.value)) {
-		proxy.$modal.msgWarning(`鏉ョエ鏁�+鏈潵绁ㄦ暟涓嶈兘澶т簬鎬绘暟閲�(${quantity.value})`);
-		// 闄愬埗鏉ョエ鏁帮紝浣垮叾婊¤冻锛氭潵绁ㄦ暟 + 鏈潵绁ㄦ暟 鈮� quantity
-		const maxTicketsNum = Number(quantity.value) - Number(temFutureTickets.value) + Number(initialTicketsNum.value);
-		form.ticketsNum = Math.max(0, Math.min(maxTicketsNum, newTicketsNum));
-		form.ticketsAmount = Number((form.ticketsNum * Number(form.taxInclusiveUnitPrice)).toFixed(2));
-		const recalculatedAddedTicketsNum = Number(form.ticketsNum) - Number(initialTicketsNum.value);
-		const recalculatedFutureTickets = Number(temFutureTickets.value) - recalculatedAddedTicketsNum;
-		form.futureTickets = Number(recalculatedFutureTickets.toFixed(2));
-		return;
-	}
-	
-	// 妫�鏌ユ柊澧炵殑鏉ョエ閲戦鏄惁澶т簬鍒濆鏈潵绁ㄦ暟瀵瑰簲鐨勯噾棰�
-	const maxAddedAmount = Number(temFutureTickets.value * form.taxInclusiveUnitPrice);
-	if (addedTicketsNum > 0 && addedTicketsNum * Number(form.taxInclusiveUnitPrice) > maxAddedAmount) {
-		proxy.$modal.msgWarning("鏂板鏉ョエ閲戦涓嶅緱澶т簬鏈紑绁ㄩ噾棰�");
-		form.ticketsAmount = Number((initialTicketsAmount.value + maxAddedAmount).toFixed(2));
-		form.ticketsNum = Number((currentTicketsNum + Number(temFutureTickets.value)).toFixed(2));
-		form.futureTickets = 0;
+	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 finalTicketsNum = Number(newTicketsNum.toFixed(2));
-	const finalAddedTicketsNum = finalTicketsNum - Number(initialTicketsNum.value);
-	const finalFutureTickets = Number(temFutureTickets.value) - finalAddedTicketsNum;
-	form.ticketsNum = finalTicketsNum;
-	form.futureTickets = Number(finalFutureTickets.toFixed(2));
+	const ticketsNum = Number(val) / Number(form.taxInclusiveUnitPrice);
+	form.ticketsNum = Number(ticketsNum.toFixed(2));
 };
 
 defineExpose({
-	load,
-	form,
-	resetForm,
+  load,
+  form,
+  resetForm,
 });
 </script>
 

--
Gitblit v1.9.3