From 9f9792cae8f0ba0293e2ea5dc215896a3b6c20cc Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 09 一月 2026 13:51:06 +0800
Subject: [PATCH] 浪潮 1.采购管理和其他模块取消关联

---
 src/views/index.vue                                                        |  244 +++++++-------
 src/views/procurementManagement/procurementLedger/index.vue                |  463 ----------------------------
 src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue |  230 +++++++++-----
 src/views/procurementManagement/paymentEntry/index.vue                     |   18 
 4 files changed, 284 insertions(+), 671 deletions(-)

diff --git a/src/views/index.vue b/src/views/index.vue
index 67c8654..e06a40b 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -18,126 +18,126 @@
 						</div>
 					</div>
 				</div>
-				<div class="data-cards">
-					<div class="data-card sales">
-						<div class="data-title">閿�鍞暟鎹�</div>
-						<div class="data-num">
-							<div>
-								<div class="data-desc">鏈湀閿�鍞/鍏�</div>
-								<div class="data-value">{{businessInfo.monthSaleMoney}}</div>
-							</div>
-							<div>
-								<div class="data-desc">鏈紑绁ㄩ噾棰�/鍏�</div>
-								<div class="data-value">{{businessInfo.monthSaleHaveMoney}}</div>
-							</div>
-						</div>
-						
-					</div>
-					<div class="data-card purchase">
-						<div class="data-title">閲囪喘鏁版嵁</div>
-						<div class="data-num">
-							<div>
-								<div class="data-desc">鏈湀閲囪喘棰�/鍏�</div>
-								<div class="data-value">{{businessInfo.monthPurchaseMoney}}</div>
-							</div>
-							<div>
-								<div class="data-desc">寰呬粯娆鹃噾棰�/鍏�</div>
-								<div class="data-value">{{businessInfo.monthPurchaseHaveMoney}}</div>
-							</div>
-						</div>
-					</div>
-					<div class="data-card inventory">
-						<div class="data-title">搴撳瓨鏁版嵁</div>
-						<div class="data-num">
-							<div>
-								<div class="data-desc">褰撳墠搴撳瓨鎬婚噺/浠�</div>
-								<div class="data-value">{{businessInfo.inventoryNum}}</div>
-							</div>
-							<div>
-								<div class="data-desc">浠婃棩鍏ュ簱/浠�</div>
-								<div class="data-value">{{businessInfo.todayInventoryNum}}</div>
-							</div>
-						</div>
-					</div>
-				</div>
+<!--				<div class="data-cards">-->
+<!--					<div class="data-card sales">-->
+<!--						<div class="data-title">閿�鍞暟鎹�</div>-->
+<!--						<div class="data-num">-->
+<!--							<div>-->
+<!--								<div class="data-desc">鏈湀閿�鍞/鍏�</div>-->
+<!--								<div class="data-value">{{businessInfo.monthSaleMoney}}</div>-->
+<!--							</div>-->
+<!--							<div>-->
+<!--								<div class="data-desc">鏈紑绁ㄩ噾棰�/鍏�</div>-->
+<!--								<div class="data-value">{{businessInfo.monthSaleHaveMoney}}</div>-->
+<!--							</div>-->
+<!--						</div>-->
+<!--						-->
+<!--					</div>-->
+<!--					<div class="data-card purchase">-->
+<!--						<div class="data-title">閲囪喘鏁版嵁</div>-->
+<!--						<div class="data-num">-->
+<!--							<div>-->
+<!--								<div class="data-desc">鏈湀閲囪喘棰�/鍏�</div>-->
+<!--								<div class="data-value">{{businessInfo.monthPurchaseMoney}}</div>-->
+<!--							</div>-->
+<!--							<div>-->
+<!--								<div class="data-desc">寰呬粯娆鹃噾棰�/鍏�</div>-->
+<!--								<div class="data-value">{{businessInfo.monthPurchaseHaveMoney}}</div>-->
+<!--							</div>-->
+<!--						</div>-->
+<!--					</div>-->
+<!--					<div class="data-card inventory">-->
+<!--						<div class="data-title">搴撳瓨鏁版嵁</div>-->
+<!--						<div class="data-num">-->
+<!--							<div>-->
+<!--								<div class="data-desc">褰撳墠搴撳瓨鎬婚噺/浠�</div>-->
+<!--								<div class="data-value">{{businessInfo.inventoryNum}}</div>-->
+<!--							</div>-->
+<!--							<div>-->
+<!--								<div class="data-desc">浠婃棩鍏ュ簱/浠�</div>-->
+<!--								<div class="data-value">{{businessInfo.todayInventoryNum}}</div>-->
+<!--							</div>-->
+<!--						</div>-->
+<!--					</div>-->
+<!--				</div>-->
 			</div>
 			<!-- 鍙筹細寰呭姙浜嬮」 -->
-			<div class="todo-panel">
-				<div class="section-title">寰呭姙浜嬮」</div>
-				<ul class="todo-list" v-if="todoList.length > 0">
-					<li v-for="item in todoList" :key="item.id">
-						<div style="display: flex;flex-direction: column;justify-content: space-between;width: 100%;gap: 20px">
-							<div style="display: flex;justify-content: space-between;align-items: center;">
-								<div class="todo-title">娴佺▼缂栧彿锛歿{item.approveId}}</div>
-								<div class="todo-division">鐢宠閮ㄩ棬锛歿{item.approveDeptName}}</div>
-								<div class="todo-time">{{item.approveTime}}</div>
-							</div>
-							<div class="todo-division">瀹℃壒浜嬬敱锛歿{item.approveReason}}</div>
-						</div>
-					</li>
-				</ul>
-				<div v-else style="text-align: center">
-					鏆傛棤鏁版嵁
-				</div>
-			</div>
-		</div>
-		
-		<!-- 涓儴妯悜涓ゆ爮 -->
-		<div class="dashboard-row">
-			<div class="main-panel">
-				<div class="section-title">瀹㈡埛鍚堝悓閲戦鍒嗘瀽</div>
-				<div class="contract-summary">
-					<div class="contract-info">
-						<img src="../assets/images/khtitle.png" alt="" style="width: 42px"/>
-						<div class="contract-card">
-							<div class="contract-name">鎬诲悎鍚岄噾棰�(鍏�)</div>
-							<div class="contract-meta">
-								<div class="main-amount">{{sum}}</div>
-								<div>鍛ㄥ悓姣�: <span class="up">{{yny}}% </span> 鏃ョ幆姣�: <span class="up">{{chain}}% </span></div>
-							</div>
-						</div>
-					</div>
-				</div>
-				<div style="display: flex;align-items: center;gap: 20px;justify-content: space-evenly;height: 180px;margin-top: 20px">
-					<div>
-						<Echarts ref="chart" :legend="pieLegend" :chartStyle="chartStylePie"
-										 :series="materialPieSeries"
-										 :tooltip="pieTooltip"></Echarts>
-					</div>
-					<ul class="contract-list">
-						<li v-for="item in materialPieSeries[0].data" :key="item.name">
-							<div style="display: flex;align-items: center;justify-content: space-between;width: 100%">
-								<div class="line" :style="{color: item.itemStyle.color}">鈼弡{item.name}}</div>
-								<div style="width: 70px">{{item.rate}}%</div>
-								<div>锟{item.value}}</div>
-							</div>
-						</li>
-					</ul>
-				</div>
-			</div>
-			<div class="main-panel">
-				<div style="display: flex;justify-content: space-between;">
-					<div class="section-title">搴旀敹搴斾粯缁熻</div>
-<!--					<el-radio-group v-model="radio1" size="large" @change="statisticsReceivable">-->
-<!--						<el-radio-button label="鎸夊懆" :value="1" />-->
-<!--						<el-radio-button label="鎸夋湀" :value="2" />-->
-<!--						<el-radio-button label="鎸夊搴�" :value="3" />-->
-<!--					</el-radio-group>-->
-				</div>
-				<Echarts ref="chart"
-								 :color="barColors2"
-								 :chartStyle="chartStyle"
-								 :grid="grid"
-								 :series="barSeries"
-								 :tooltip="tooltip"
-								 :xAxis="xAxis"
-								 :yAxis="yAxis"
-								 style="height: 260px"></Echarts>
-			</div>
-		</div>
+<!--			<div class="todo-panel">-->
+<!--				<div class="section-title">寰呭姙浜嬮」</div>-->
+<!--				<ul class="todo-list" v-if="todoList.length > 0">-->
+<!--					<li v-for="item in todoList" :key="item.id">-->
+<!--						<div style="display: flex;flex-direction: column;justify-content: space-between;width: 100%;gap: 20px">-->
+<!--							<div style="display: flex;justify-content: space-between;align-items: center;">-->
+<!--								<div class="todo-title">娴佺▼缂栧彿锛歿{item.approveId}}</div>-->
+<!--								<div class="todo-division">鐢宠閮ㄩ棬锛歿{item.approveDeptName}}</div>-->
+<!--								<div class="todo-time">{{item.approveTime}}</div>-->
+<!--							</div>-->
+<!--							<div class="todo-division">瀹℃壒浜嬬敱锛歿{item.approveReason}}</div>-->
+<!--						</div>-->
+<!--					</li>-->
+<!--				</ul>-->
+<!--				<div v-else style="text-align: center">-->
+<!--					鏆傛棤鏁版嵁-->
+<!--				</div>-->
+<!--			</div>-->
+<!--		</div>-->
+<!--		-->
+<!--		&lt;!&ndash; 涓儴妯悜涓ゆ爮 &ndash;&gt;-->
+<!--		<div class="dashboard-row">-->
+<!--			<div class="main-panel">-->
+<!--				<div class="section-title">瀹㈡埛鍚堝悓閲戦鍒嗘瀽</div>-->
+<!--				<div class="contract-summary">-->
+<!--					<div class="contract-info">-->
+<!--						<img src="../assets/images/khtitle.png" alt="" style="width: 42px"/>-->
+<!--						<div class="contract-card">-->
+<!--							<div class="contract-name">鎬诲悎鍚岄噾棰�(鍏�)</div>-->
+<!--							<div class="contract-meta">-->
+<!--								<div class="main-amount">{{sum}}</div>-->
+<!--								<div>鍛ㄥ悓姣�: <span class="up">{{yny}}% </span> 鏃ョ幆姣�: <span class="up">{{chain}}% </span></div>-->
+<!--							</div>-->
+<!--						</div>-->
+<!--					</div>-->
+<!--				</div>-->
+<!--				<div style="display: flex;align-items: center;gap: 20px;justify-content: space-evenly;height: 180px;margin-top: 20px">-->
+<!--					<div>-->
+<!--						<Echarts ref="chart" :legend="pieLegend" :chartStyle="chartStylePie"-->
+<!--										 :series="materialPieSeries"-->
+<!--										 :tooltip="pieTooltip"></Echarts>-->
+<!--					</div>-->
+<!--					<ul class="contract-list">-->
+<!--						<li v-for="item in materialPieSeries[0].data" :key="item.name">-->
+<!--							<div style="display: flex;align-items: center;justify-content: space-between;width: 100%">-->
+<!--								<div class="line" :style="{color: item.itemStyle.color}">鈼弡{item.name}}</div>-->
+<!--								<div style="width: 70px">{{item.rate}}%</div>-->
+<!--								<div>锟{item.value}}</div>-->
+<!--							</div>-->
+<!--						</li>-->
+<!--					</ul>-->
+<!--				</div>-->
+<!--			</div>-->
+<!--			<div class="main-panel">-->
+<!--				<div style="display: flex;justify-content: space-between;">-->
+<!--					<div class="section-title">搴旀敹搴斾粯缁熻</div>-->
+<!--&lt;!&ndash;					<el-radio-group v-model="radio1" size="large" @change="statisticsReceivable">&ndash;&gt;-->
+<!--&lt;!&ndash;						<el-radio-button label="鎸夊懆" :value="1" />&ndash;&gt;-->
+<!--&lt;!&ndash;						<el-radio-button label="鎸夋湀" :value="2" />&ndash;&gt;-->
+<!--&lt;!&ndash;						<el-radio-button label="鎸夊搴�" :value="3" />&ndash;&gt;-->
+<!--&lt;!&ndash;					</el-radio-group>&ndash;&gt;-->
+<!--				</div>-->
+<!--				<Echarts ref="chart"-->
+<!--								 :color="barColors2"-->
+<!--								 :chartStyle="chartStyle"-->
+<!--								 :grid="grid"-->
+<!--								 :series="barSeries"-->
+<!--								 :tooltip="tooltip"-->
+<!--								 :xAxis="xAxis"-->
+<!--								 :yAxis="yAxis"-->
+<!--								 style="height: 260px"></Echarts>-->
+<!--			</div>-->
+<!--		</div>-->
 		
 		<!-- 搴曢儴妯悜涓ゆ爮 -->
-		<div class="dashboard-row">
+<!--		<div class="dashboard-row">-->
 <!--			<div class="main-panel">-->
 <!--				<div class="section-title">璐ㄩ噺缁熻</div>-->
 <!--				<div class="quality-cards">-->
@@ -155,11 +155,11 @@
 <!--								 :yAxis="yAxis1"-->
 <!--								 style="height: 260px"></Echarts>-->
 <!--			</div>-->
-			<div class="main-panel">
-				<div class="section-title">鍥炴涓庡紑绁ㄥ垎鏋�</div>
-				<Echarts ref="chart" :chartStyle="chartStyle" :grid="grid" :legend="lineLegend" :series="lineSeries"
-								 :tooltip="tooltipLine" :xAxis="xAxis2" :yAxis="yAxis2" style="height: 270px;"></Echarts>
-			</div>
+<!--			<div class="main-panel">-->
+<!--				<div class="section-title">鍥炴涓庡紑绁ㄥ垎鏋�</div>-->
+<!--				<Echarts ref="chart" :chartStyle="chartStyle" :grid="grid" :legend="lineLegend" :series="lineSeries"-->
+<!--								 :tooltip="tooltipLine" :xAxis="xAxis2" :yAxis="yAxis2" style="height: 270px;"></Echarts>-->
+<!--			</div>-->
 		</div>
 	</div>
 </template>
@@ -507,7 +507,7 @@
 	min-width: 0;
 	background-color: #EFF2FB; /* 浣跨敤鎸囧畾鐨勮儗鏅鑹� */
 	background-image: url("../assets/images/denglu.png");
-	background-size: cover;
+	background-size: 100% 260%;
 	background-position: center;
 	background-repeat: no-repeat;
 	border-radius: 12px;
diff --git a/src/views/procurementManagement/paymentEntry/index.vue b/src/views/procurementManagement/paymentEntry/index.vue
index 3ce2a8d..02fda1a 100644
--- a/src/views/procurementManagement/paymentEntry/index.vue
+++ b/src/views/procurementManagement/paymentEntry/index.vue
@@ -83,15 +83,12 @@
 						</el-table-column>
 						<el-table-column label="浠樻鏂瑰紡" prop="paymentMethod">
 							<template #default="scope">
-								<el-select
+								<el-input
 									:disabled="!scope.row.editType"
 									v-model="scope.row.paymentMethod"
-									placeholder="璇烽�夋嫨"
+									placeholder="璇疯緭鍏�"
 									clearable
-								>
-									<el-option label="鐢垫眹" value="鐢垫眹" />
-									<el-option label="鎵垮厬" value="鎵垮厬" />
-								</el-select>
+								/>
 							</template>
 						</el-table-column>
 						<el-table-column label="鐧昏浜�" prop="registrant" />
@@ -212,14 +209,11 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="浠樻鏂瑰紡锛�" prop="paymentMethod">
-              <el-select
+              <el-input
                 v-model="form.paymentMethod"
-                placeholder="璇烽�夋嫨"
+                placeholder="璇疯緭鍏�"
                 clearable
-              >
-                <el-option label="鐢垫眹" value="鐢垫眹" />
-                <el-option label="鎵垮厬" value="鎵垮厬" />
-              </el-select>
+              />
             </el-form-item>
           </el-col>
 					<el-col :span="12">
diff --git a/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue b/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue
index f939be4..6290804 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 disabled 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,34 +51,43 @@
 const { proxy } = getCurrentInstance()
 
 defineOptions({
-  name: "鏉ョエ鍙拌处琛ㄥ崟",
+	name: "鏉ョエ鍙拌处琛ㄥ崟",
 });
-const temFutureTickets = ref(0)
+const temFutureTickets = ref(0) // 鍒濆鏈潵绁ㄦ暟
+const initialTicketsNum = ref(0) // 鍒濆鏉ョエ鏁�
+const initialTicketsAmount = ref(0) // 鍒濆鏉ョエ閲戦
+const quantity = 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.toFixed(2);
-    form.taxInclusiveUnitPrice = data.taxInclusiveUnitPrice;
-    form.futureTickets = data.futureTickets;
-    temFutureTickets.value = data.futureTickets;
-  }
+	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;
+		form.ticketRegistrationId = data.ticketRegistrationId;
+		// 鑾峰彇鎬绘暟閲忥紝濡傛灉鏁版嵁涓湁 quantity 瀛楁鍒欎娇鐢紝鍚﹀垯浣跨敤鏉ョエ鏁�+鏈潵绁ㄦ暟
+		quantity.value = data.quantity || (Number(data.ticketsNum || 0) + Number(data.futureTickets || 0));
+	}
 };
 
 const inputTicketsNum = (val) => {
@@ -87,15 +96,44 @@
 		proxy.$modal.msgWarning("鍚◣鍗曚环涓嶈兘涓洪浂鎴栨湭瀹氫箟");
 		return;
 	}
-	if (Number(form.ticketsNum) > Number(temFutureTickets.value)) {
-		proxy.$modal.msgWarning("寮�绁ㄦ暟涓嶅緱澶т簬鏈紑绁ㄦ暟");
-		form.ticketsNum = temFutureTickets.value
+	
+	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);
 	}
 	
 	// 纭繚鎵�鏈夋暟鍊奸兘杞崲涓烘暟瀛楃被鍨嬭繘琛岃绠�
-	const ticketsAmount = Number(form.ticketsNum) * Number(form.taxInclusiveUnitPrice);
-	const futureTickets = Number(temFutureTickets.value) - Number(form.ticketsNum);
-	form.futureTickets = Number(futureTickets.toFixed(2));
+	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));
 	form.ticketsAmount = Number(ticketsAmount.toFixed(2));
 };
 const inputTicketsAmount = (val) => {
@@ -105,23 +143,53 @@
 		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))
+	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;
 		return;
 	}
 	
 	// 纭繚鎵�鏈夋暟鍊奸兘杞崲涓烘暟瀛楃被鍨嬭繘琛岃绠�
-	const ticketsNum = Number(val) / Number(form.taxInclusiveUnitPrice);
-	form.ticketsNum = Number(ticketsNum.toFixed(2));
+	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));
 };
 
 defineExpose({
-  load,
-  form,
-  resetForm,
+	load,
+	form,
+	resetForm,
 });
 </script>
 
diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index 4fbf775..30dacdb 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -39,7 +39,6 @@
     <div class="table_list">
       <div style="display: flex;justify-content: flex-end;margin-bottom: 20px;">
         <el-button type="primary" @click="openForm('add')">鏂板鍙拌处</el-button>
-        <el-button type="success" @click="openScanAddDialog">鎵爜鏂板</el-button>
         <el-button @click="handleOut">瀵煎嚭</el-button>
         <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
       </div>
@@ -148,7 +147,7 @@
         <el-table-column
           fixed="right"
           label="鎿嶄綔"
-          min-width="150"
+          min-width="100"
           align="center"
         >
           <template #default="scope">
@@ -160,14 +159,6 @@
 							:disabled="scope.row.receiptPaymentAmount>0 || scope.row.recorderName !== userStore.nickName"
               >缂栬緫</el-button
             >
-            <el-button
-              link
-              type="success"
-              size="small"
-              @click="showQRCode(scope.row)"
-              >鐢熸垚浜岀淮鐮�</el-button
-            >
-
           </template>
         </el-table-column>
       </el-table>
@@ -204,20 +195,12 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesLedgerId">
-              <el-select
-                v-model="form.salesLedgerId"
-                placeholder="璇烽�夋嫨"
+            <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesContractNo">
+              <el-input
+                v-model="form.salesContractNo"
+                placeholder="璇疯緭鍏�"
                 clearable
-                @change="salesLedgerChange"
-              >
-                <el-option
-                  v-for="item in salesContractList"
-                  :key="item.id"
-                  :label="item.salesContractNo"
-                  :value="item.id"
-                />
-              </el-select>
+              />
             </el-form-item>
           </el-col>
         </el-row>
@@ -551,221 +534,6 @@
         </div>
       </template>
     </el-dialog>
-    
-    <!-- 浜岀淮鐮佹樉绀哄璇濇 -->
-    <el-dialog
-      v-model="qrCodeDialogVisible"
-      title="閲囪喘鍚堝悓鍙蜂簩缁寸爜"
-      width="400px"
-      center
-    >
-      <div style="text-align: center;">
-        <img :src="qrCodeUrl" alt="浜岀淮鐮�" style="width:200px;height:200px;" />
-        <div style="margin: 20px;">
-          <el-button type="primary" @click="downloadQRCode">涓嬭浇浜岀淮鐮佸浘鐗�</el-button>
-        </div>
-      </div>
-    </el-dialog>
-
-    <!-- 鎵爜鏂板瀵硅瘽妗� -->
-    <el-dialog
-      v-model="scanAddDialogVisible"
-      title="鎵爜鏂板閲囪喘鍙拌处"
-      width="70%"
-      @close="closeScanAddDialog"
-    >
-      <el-form
-        :model="scanAddForm"
-        label-width="140px"
-        label-position="top"
-        :rules="scanAddRules"
-        ref="scanAddFormRef"
-      >
-        <el-row :gutter="20">
-          <el-col :span="24">
-            <el-form-item label="鎵爜鍐呭锛�">
-              <el-input
-                v-model="scanAddForm.scanContent"
-                type="textarea"
-                :rows="3"
-                placeholder="璇锋壂鎻忎簩缁寸爜鎴栨墜鍔ㄨ緭鍏ラ噰璐悎鍚屼俊鎭�"
-                @input="parseScanContent"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="閲囪喘鍚堝悓鍙凤細" prop="purchaseContractNumber">
-              <el-input
-                v-model="scanAddForm.purchaseContractNumber"
-                placeholder="璇疯緭鍏�"
-                clearable
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="渚涘簲鍟嗗悕绉帮細" prop="supplierName">
-              <el-input
-                v-model="scanAddForm.supplierName"
-                placeholder="璇疯緭鍏�"
-                clearable
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="椤圭洰鍚嶇О锛�" prop="projectName">
-              <el-input
-                v-model="scanAddForm.projectName"
-                placeholder="璇疯緭鍏�"
-                clearable
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鍚堝悓閲戦(鍏�)锛�" prop="contractAmount">
-              <el-input-number
-                v-model="scanAddForm.contractAmount"
-                :precision="2"
-                :step="0.1"
-                clearable
-                style="width: 100%"
-                placeholder="璇疯緭鍏�"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="浠樻鏂瑰紡锛�">
-              <el-input
-                v-model="scanAddForm.paymentMethod"
-                placeholder="璇疯緭鍏�"
-                clearable
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="褰曞叆浜猴細">
-              <el-input v-model="scanAddForm.recorderName" disabled />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="24">
-            <el-form-item label="澶囨敞锛�">
-              <el-input
-                v-model="scanAddForm.remark"
-                type="textarea"
-                :rows="2"
-                placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�"
-                clearable
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitScanAdd">纭鏂板</el-button>
-          <el-button @click="closeScanAddDialog">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-
-    <!-- 鎵爜鐧昏瀵硅瘽妗� -->
-    <el-dialog
-      v-model="scanDialogVisible"
-      title="鎵爜鐧昏"
-      width="60%"
-      @close="closeScanDialog"
-    >
-      <el-form
-        :model="scanForm"
-        label-width="120px"
-        label-position="left"
-        :rules="scanRules"
-        ref="scanFormRef"
-      >
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="閲囪喘鍚堝悓鍙凤細">
-              <el-input v-model="scanForm.purchaseContractNumber" disabled />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="渚涘簲鍟嗗悕绉帮細">
-              <el-input v-model="scanForm.supplierName" disabled />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="椤圭洰鍚嶇О锛�">
-              <el-input v-model="scanForm.projectName" disabled />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鎵爜鏃堕棿锛�">
-              <el-input v-model="scanForm.scanTime" disabled />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="鎵爜浜猴細">
-              <el-input v-model="scanForm.scannerName" disabled />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鎵爜鐘舵�侊細">
-              <el-tag :type="scanForm.scanStatus === '宸叉壂鐮�' ? 'success' : 'warning'">
-                {{ scanForm.scanStatus }}
-              </el-tag>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="24">
-            <el-form-item label="鎵爜澶囨敞锛�">
-              <el-input
-                v-model="scanForm.scanRemark"
-                type="textarea"
-                :rows="3"
-                placeholder="璇疯緭鍏ユ壂鐮佸娉ㄤ俊鎭�"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="24">
-            <el-form-item label="鎵爜璁板綍锛�">
-              <el-table :data="scanRecords" border style="width: 100%" stripe>
-                <el-table-column label="搴忓彿" type="index" width="60" align="center" />
-                <el-table-column label="鎵爜鏃堕棿" prop="scanTime" width="180" />
-                <el-table-column label="鎵爜浜�" prop="scannerName" width="120" />
-                <el-table-column label="鎵爜鐘舵��" prop="scanStatus" width="100">
-                  <template #default="scope">
-                    <el-tag :type="scope.row.scanStatus === '宸叉壂鐮�' ? 'success' : 'warning'">
-                      {{ scope.row.scanStatus }}
-                    </el-tag>
-                  </template>
-                </el-table-column>
-                <el-table-column label="澶囨敞" prop="scanRemark" />
-              </el-table>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitScan">纭鎵爜</el-button>
-          <el-button @click="closeScanDialog">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
   </div>
 </template>
 
@@ -781,12 +549,10 @@
   addOrUpdateSalesLedgerProduct,
   delProduct,
   delLedgerFile,
-  getProductInfoByContractNo,
 } from "@/api/salesManagement/salesLedger.js";
 import {
   addOrEditPurchase,
   delPurchase,
-  getSalesNo,
   purchaseListPage,
   productList,
   getPurchaseById,
@@ -794,7 +560,6 @@
   createPurchaseNo,
 } from "@/api/procurementManagement/procurementLedger.js";
 import useFormData from "@/hooks/useFormData.js";
-import QRCode from "qrcode";
 const { proxy } = getCurrentInstance();
 const tableData = ref([]);
 const productData = ref([]);
@@ -803,7 +568,6 @@
 const modelOptions = ref([]);
 const userList = ref([]);
 const productOptions = ref([]);
-const salesContractList = ref([]);
 const supplierList = ref([]);
 const tableLoading = ref(false);
 const page = reactive({
@@ -817,10 +581,6 @@
 import dayjs from "dayjs";
 
 const userStore = useUserStore();
-
-// 浜岀淮鐮佺浉鍏冲彉閲�
-const qrCodeDialogVisible = ref(false);
-const qrCodeUrl = ref("");
 
 // 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁
 const operationType = ref("");
@@ -840,7 +600,7 @@
   },
   form: {
     purchaseContractNumber: "",
-    salesLedgerId: "",
+    salesContractNo: "",
     projectName: "",
     recorderId: "",
     entryDate: "",
@@ -1018,9 +778,6 @@
   }
   userListNoPage().then((res) => {
     userList.value = res.data;
-  });
-  getSalesNo().then((res) => {
-    salesContractList.value = res;
   });
   getOptions().then((res) => {
     supplierList.value = res.data;
@@ -1364,212 +1121,6 @@
     }
   }
 };
-// 閿�鍞悎鍚岄�夋嫨鏀瑰彉鏂规硶
-const salesLedgerChange = async (row) => {
-  console.log("row", row);
-  var index = salesContractList.value.findIndex((item) => item.id == row);
-  console.log("index", index);
-  if (index > -1) {
-    form.value.projectName = salesContractList.value[index].projectName;
-    await querygProductInfoByContractNo();
-  }
-};
-
-const querygProductInfoByContractNo = async () => {
-  const { code, data } = await getProductInfoByContractNo({
-    contractNo: form.value.salesLedgerId,
-  });
-  if (code == 200) {
-    productData.value = data;
-  }
-};
-
-// 鏄剧ず浜岀淮鐮�
-const showQRCode = async (row) => {
-  try {
-    // 鏋勫缓浜岀淮鐮佸唴瀹癸紝鍙寘鍚噰璐悎鍚屽彿锛堢函鏂囨湰锛�
-    const qrContent = row.purchaseContractNumber || '';
-    // 妫�鏌ュ唴瀹规槸鍚︿负绌�
-    if (!qrContent || qrContent.trim() === '') {
-      proxy.$modal.msgWarning("璇ヨ娌℃湁閲囪喘鍚堝悓鍙凤紝鏃犳硶鐢熸垚浜岀淮鐮�");
-      return;
-    }
-    qrCodeUrl.value = await QRCode.toDataURL(qrContent, {
-      width: 200,
-      margin: 2,
-      color: {
-        dark: '#000000',
-        light: '#FFFFFF'
-      }
-    });
-    qrCodeDialogVisible.value = true;
-  } catch (error) {
-    console.error('鐢熸垚浜岀淮鐮佸け璐�:', error);
-    proxy.$modal.msgError("鐢熸垚浜岀淮鐮佸け璐ワ細" + error.message);
-  }
-};
-
-// 涓嬭浇浜岀淮鐮�
-const downloadQRCode = () => {
-  if (!qrCodeUrl.value) {
-    proxy.$modal.msgWarning("浜岀淮鐮佹湭鐢熸垚");
-    return;
-  }
-  
-  const a = document.createElement('a');
-  a.href = qrCodeUrl.value;
-  a.download = `閲囪喘鍚堝悓鍙蜂簩缁寸爜_${new Date().getTime()}.png`;
-  document.body.appendChild(a);
-  a.click();
-  document.body.removeChild(a);
-  proxy.$modal.msgSuccess("涓嬭浇鎴愬姛");
-};
-
-// 鎵爜鏂板瀵硅瘽妗嗙浉鍏冲彉閲�
-const scanAddDialogVisible = ref(false);
-const scanAddForm = reactive({
-  scanContent: "",
-  purchaseContractNumber: "",
-  supplierName: "",
-  projectName: "",
-  contractAmount: "",
-  paymentMethod: "",
-  recorderName: "",
-  scanRemark: "",
-});
-const scanAddRules = {
-  purchaseContractNumber: [{ required: true, message: "璇疯緭鍏ラ噰璐悎鍚屽彿", trigger: "blur" }],
-  supplierName: [{ required: true, message: "璇疯緭鍏ヤ緵搴斿晢鍚嶇О", trigger: "blur" }],
-  projectName: [{ required: true, message: "璇疯緭鍏ラ」鐩悕绉�", trigger: "blur" }],
-};
-
-// 鎵爜鐧昏瀵硅瘽妗嗙浉鍏冲彉閲�
-const scanDialogVisible = ref(false);
-const scanForm = reactive({
-  purchaseContractNumber: "",
-  supplierName: "",
-  projectName: "",
-  scanTime: "",
-  scannerName: "",
-  scanStatus: "鏈壂鐮�",
-  scanRemark: "",
-});
-const scanRules = {
-  scanRemark: [{ required: true, message: "璇疯緭鍏ユ壂鐮佸娉�", trigger: "blur" }],
-};
-const scanRecords = ref([]);
-
-// 鎵撳紑鎵爜鏂板瀵硅瘽妗�
-const openScanAddDialog = () => {
-  scanAddForm.scanContent = "";
-  scanAddForm.purchaseContractNumber = "";
-  scanAddForm.supplierName = "";
-  scanAddForm.projectName = "";
-  scanAddForm.contractAmount = "";
-  scanAddForm.paymentMethod = "";
-  scanAddForm.recorderName = userStore.nickName;
-  scanAddForm.scanRemark = "";
-  scanAddDialogVisible.value = true;
-};
-
-// 瑙f瀽鎵爜鍐呭锛堟ā鎷熻В鏋愪簩缁寸爜鏁版嵁锛�
-const parseScanContent = (content) => {
-  if (!content) return;
-  
-  // 妯℃嫙瑙f瀽浜岀淮鐮佸唴瀹癸紝杩欓噷鍙互鏍规嵁瀹為檯闇�姹傝皟鏁磋В鏋愰�昏緫
-  // 鍋囪鎵爜鍐呭鏍煎紡涓猴細鍚堝悓鍙穦渚涘簲鍟唡椤圭洰|閲戦|浠樻鏂瑰紡
-  const parts = content.split('|');
-  if (parts.length >= 3) {
-    scanAddForm.purchaseContractNumber = parts[0] || "";
-    scanAddForm.supplierName = parts[1] || "";
-    scanAddForm.projectName = parts[2] || "";
-    scanAddForm.contractAmount = parts[3] || "";
-    scanAddForm.paymentMethod = parts[4] || "";
-  }
-};
-
-// 鍏抽棴鎵爜鏂板瀵硅瘽妗�
-const closeScanAddDialog = () => {
-  scanAddDialogVisible.value = false;
-  proxy.resetForm("scanAddFormRef");
-};
-
-// 鎻愪氦鎵爜鏂板
-const submitScanAdd = () => {
-  proxy.$refs["scanAddFormRef"].validate((valid) => {
-    if (valid) {
-      // 鏋勫缓鏂板鏁版嵁
-      const newData = {
-        purchaseContractNumber: scanAddForm.purchaseContractNumber,
-        supplierName: scanAddForm.supplierName,
-        projectName: scanAddForm.projectName,
-        contractAmount: scanAddForm.contractAmount,
-        paymentMethod: scanAddForm.paymentMethod,
-        recorderName: scanAddForm.recorderName,
-        entryDate: getCurrentDate(),
-        remark: scanAddForm.scanRemark,
-        type: 2
-      };
-      
-      // 妯℃嫙鏂板鎴愬姛
-      proxy.$modal.msgSuccess("鎵爜鏂板鎴愬姛锛�");
-      closeScanAddDialog();
-      
-      // 鍙互閫夋嫨鏄惁鍒锋柊鍒楄〃
-      // getList();
-    }
-  });
-};
-
-// 鎵撳紑鎵爜鐧昏瀵硅瘽妗�
-const openScanDialog = (row) => {
-  scanForm.purchaseContractNumber = row.purchaseContractNumber;
-  scanForm.supplierName = row.supplierName;
-  scanForm.projectName = row.projectName;
-  scanForm.scanTime = getCurrentDateTime();
-  scanForm.scannerName = userStore.nickName;
-  scanForm.scanStatus = "鏈壂鐮�";
-  scanForm.scanRemark = "";
-  scanRecords.value = [];
-  scanDialogVisible.value = true;
-};
-
-// 鍏抽棴鎵爜鐧昏瀵硅瘽妗�
-const closeScanDialog = () => {
-  scanDialogVisible.value = false;
-  proxy.resetForm("scanFormRef");
-};
-
-// 鎻愪氦鎵爜鐧昏
-const submitScan = () => {
-  proxy.$refs["scanFormRef"].validate((valid) => {
-    if (valid) {
-      // 娣诲姞鎵爜璁板綍
-      scanRecords.value.push({
-        ...scanForm,
-        id: Date.now(), // 妯℃嫙ID
-        scanTime: getCurrentDateTime(),
-      });
-      scanForm.scanStatus = "宸叉壂鐮�";
-      scanForm.scanRemark = scanForm.scanRemark || "鏃�";
-      proxy.$modal.msgSuccess("鎵爜鐧昏鎴愬姛锛�");
-      closeScanDialog();
-    }
-  });
-};
-
-// 鑾峰彇褰撳墠鏃ユ湡鏃堕棿
-function getCurrentDateTime() {
-  const now = new Date();
-  const year = now.getFullYear();
-  const month = String(now.getMonth() + 1).padStart(2, "0");
-  const day = String(now.getDate()).padStart(2, "0");
-  const hours = String(now.getHours()).padStart(2, "0");
-  const minutes = String(now.getMinutes()).padStart(2, "0");
-  const seconds = String(now.getSeconds()).padStart(2, "0");
-  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
-}
-
 
 
 onMounted(() => {

--
Gitblit v1.9.3