From f3363b799cafad9fa664bbd54c3429797c8b23c5 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期三, 28 一月 2026 14:00:28 +0800
Subject: [PATCH] Merge branch 'dev_New' of http://114.132.189.42:9002/r/product-inventory-management into dev_New
---
src/views/procurementManagement/invoiceEntry/components/Modal.vue | 122 +++++++++++++++++-----------------------
1 files changed, 52 insertions(+), 70 deletions(-)
diff --git a/src/views/procurementManagement/invoiceEntry/components/Modal.vue b/src/views/procurementManagement/invoiceEntry/components/Modal.vue
index 08aaaec..efd4a4e 100644
--- a/src/views/procurementManagement/invoiceEntry/components/Modal.vue
+++ b/src/views/procurementManagement/invoiceEntry/components/Modal.vue
@@ -96,22 +96,6 @@
/>
</el-form-item>
</el-col>
- <el-col :span="12">
- <el-form-item label="涓婁紶闄勪欢">
- <FileUpload
- :showTip="false"
- accept="*"
- :autoUpload="true"
- :action="action"
- :headers="{
- Authorization: 'Bearer ' + getToken(),
- }"
- :limit="10"
- @success="uploadSuccess"
- @remove="removeFile"
- />
- </el-form-item>
- </el-col>
</el-row>
<el-form-item label="浜у搧淇℃伅锛�"> </el-form-item>
@@ -149,7 +133,7 @@
/>
<el-table-column label="鏈寮�绁ㄦ暟" prop="ticketsNum" width="180">
<template #default="scope">
- <el-input-number :step="0.1" :min="0" style="width: 100%"
+ <el-input-number :step="0.1" :min="0" :max="scope.row.tempFutureTickets || 0" style="width: 100%"
:precision="2"
v-model="scope.row.ticketsNum"
@change="invoiceNumBlur(scope.row)"
@@ -205,14 +189,12 @@
import { defineEmits } from 'vue';
import { useModal } from "@/hooks/useModal";
import useFormData from "@/hooks/useFormData";
-import FileUpload from "@/components/Upload/FileUpload.vue";
import {
getPurchaseNoById,
getInfo,
addOrUpdateRegistration,
} from "@/api/procurementManagement/invoiceEntry.js";
import { getPurchaseById } from "@/api/procurementManagement/procurementLedger.js";
-import { getToken } from "@/utils/auth";
import useUserStore from "@/store/modules/user";
import dayjs from "dayjs";
@@ -221,7 +203,6 @@
});
const userStore = useUserStore();
-const action = import.meta.env.VITE_APP_BASE_API + "/file/upload";
const formRef = ref();
const { proxy } = getCurrentInstance();
const { form } = useFormData({
@@ -237,7 +218,6 @@
salesContractNoId: undefined, // 寮�绁ㄦ棩鏈�
enterDate: dayjs().format("YYYY-MM-DD"),
productData: [], // 琛ㄦ牸
- tempFileIds: [], // 鏂囦欢
});
const selectedContracts = ref([]); // 瀛樺偍閫変腑鐨勫悎鍚屾暟鎹�
@@ -398,10 +378,11 @@
result.data.productData.forEach(item => {
allProductData.push({
...item,
- id: contractId, // 鏄庣‘璁剧疆鍚堝悓ID
+ purchaseLedgerId: contractId, // 娣诲姞鍚堝悓ID鐢ㄤ簬绛涢��
purchaseLedgerNo: contract.purchaseContractNumber, // 娣诲姞閲囪喘鍚堝悓鍙�
supplierName: contract.supplierName, // 娣诲姞渚涘簲鍟嗗悕绉�
projectName: contract.projectName // 娣诲姞椤圭洰鍚嶇О
+ // 淇濈暀浜у搧鏈韩鐨刬d锛屼笉瑕嗙洊
});
});
}
@@ -421,23 +402,29 @@
// 璁剧疆浜у搧鏁版嵁锛屽苟鍒濆鍖栧紑绁ㄦ暟閲忓拰閲戦
allProductData.forEach(item => {
- // 鏈寮�绁ㄦ暟榛樿涓烘�绘暟閲�
- item.ticketsNum = Number(item.quantity || 0);
- // 鏈寮�绁ㄩ噾棰濋粯璁や负鍚◣鎬讳环
- item.ticketsAmount = Number(item.taxInclusiveTotalPrice || 0);
- // 淇濆瓨鍘熷鏈潵绁ㄦ暟鍜岄噾棰濓紙鐢ㄤ簬璁$畻锛�
- item.tempFutureTickets = Number(item.quantity || 0);
- item.tempFutureTicketsAmount = Number(item.taxInclusiveTotalPrice || 0);
- // 鏈潵绁ㄦ暟鍜岄噾棰濆垵濮嬩负0锛堝洜涓哄叏閮ㄥ紑绁級
- item.futureTickets = 0;
- item.futureTicketsAmount = 0;
+ // 淇濆瓨鈥滃師濮嬫湭鏉ョエ鏁�/閲戦鈥濓紙鐢ㄤ簬鏍¢獙涓庤绠楋級
+ // 浼樺厛浣跨敤鍚庣杩斿洖鐨� futureTickets/futureTicketsAmount锛涙病鏈夊垯鍥為��鍒� quantity/taxInclusiveTotalPrice
+ item.tempFutureTickets = Number(
+ item.futureTickets !== undefined ? item.futureTickets : (item.quantity || 0)
+ );
+ item.tempFutureTicketsAmount = Number(
+ item.futureTicketsAmount !== undefined ? item.futureTicketsAmount : (item.taxInclusiveTotalPrice || 0)
+ );
+
+ // 鏂板鏃讹細鏈寮�绁ㄩ粯璁や笉濉紙0锛夛紝閬垮厤涓�鎵撳紑灏辨妸鈥滄湭鏉ョエ鏁扳�濇墸鎴� 0
+ item.ticketsNum = 0;
+ item.ticketsAmount = 0;
+
+ // 椤甸潰灞曠ず鐨勨�滄湭鏉ョエ鏁�/鏈潵绁ㄩ噾棰濃�濋粯璁ゅ睍绀哄師濮嬫湭鏉ュ��
+ item.futureTickets = item.tempFutureTickets;
+ item.futureTicketsAmount = item.tempFutureTicketsAmount;
});
form.productData = allProductData;
- // 璁$畻鍙戠エ閲戦锛氭墍鏈変骇鍝佺殑鍚◣鎬讳环涔嬪拰
+ // 璁$畻鍙戠エ閲戦锛氭墍鏈変骇鍝佺殑鏈寮�绁ㄩ噾棰濅箣鍜岋紙鏂板榛樿 0锛�
const totalAmount = allProductData.reduce((sum, item) => {
- return sum + (Number(item.taxInclusiveTotalPrice) || 0);
+ return sum + (Number(item.ticketsAmount) || 0);
}, 0);
form.invoiceAmount = totalAmount.toFixed(2);
@@ -476,9 +463,8 @@
row.ticketsNum = 0;
}
if (Number(row.ticketsNum) > Number(row.tempFutureTickets)) {
- proxy.$modal.msgWarning("鏈寮�绁ㄦ暟涓嶅緱澶т簬鏈紑绁ㄦ暟");
- row.ticketsNum = 0;
- return;
+ proxy.$modal.msgWarning("鏈寮�绁ㄦ暟涓嶈兘澶т簬鏈潵绁ㄦ暟");
+ row.ticketsNum = Number(row.tempFutureTickets || 0);
}
// 璁$畻鏈鏉ョエ閲戦
row.ticketsAmount = (row.ticketsNum * row.taxInclusiveUnitPrice).toFixed(2)
@@ -497,12 +483,19 @@
// 璁$畻鏄惁瓒呰繃鏉ョエ鎬婚噾棰�
if (row.ticketsAmount > row.tempFutureTicketsAmount) {
proxy.$modal.msgWarning("鏈鏉ョエ閲戦涓嶅緱澶т簬鏈潵绁ㄩ噾棰�");
- row.ticketsAmount = 0;
+ row.ticketsAmount = Number(row.tempFutureTicketsAmount || 0);
}
// 璁$畻鏈鏉ョエ鏁�
row.ticketsNum = Number(
(row.ticketsAmount / row.taxInclusiveUnitPrice).toFixed(2)
);
+ // 妫�鏌ユ湰娆″紑绁ㄦ暟鏄惁澶т簬鏈潵绁ㄦ暟
+ if (Number(row.ticketsNum) > Number(row.tempFutureTickets)) {
+ proxy.$modal.msgWarning("鏈寮�绁ㄦ暟涓嶈兘澶т簬鏈潵绁ㄦ暟");
+ row.ticketsNum = Number(row.tempFutureTickets || 0);
+ // 閲嶆柊璁$畻鏈鏉ョエ閲戦
+ row.ticketsAmount = (row.ticketsNum * row.taxInclusiveUnitPrice).toFixed(2);
+ }
// 璁$畻鏈潵绁ㄦ暟
row.futureTickets = (row.tempFutureTickets - row.ticketsNum).toFixed(2)
// 璁$畻鏈潵绁ㄩ噾棰�
@@ -539,15 +532,6 @@
await getTableData(type, selectedRows);
};
-const uploadSuccess = (response) => {
- form.tempFileIds.push(response.data.tempId);
- console.log(form);
-};
-
-const removeFile = (file) => {
- const { tempId } = file.response.data;
- form.tempFileIds = form.tempFileIds.filter((item) => item !== tempId);
-};
const closeAndRefresh = () => {
closeModal();
@@ -563,22 +547,21 @@
const batchData = selectedContracts.value.map(contract => {
// 绛涢�夊嚭灞炰簬褰撳墠鍚堝悓鐨勪骇鍝佹暟鎹�
const contractProductData = form.productData.filter(item =>
- item.id === contract.id
+ item.purchaseLedgerId === contract.id
);
// 涓烘瘡涓噰璐悎鍚屽垱寤虹嫭绔嬬殑瀵硅薄
return {
- // 鍩虹琛ㄥ崟鏁版嵁
- invoiceNumber: form.invoiceNumber,
- invoiceAmount: form.invoiceAmount,
- entryDate: form.entryDate,
- enterDate: form.enterDate,
- issUerId: form.issUerId, // 褰曞叆浜篿d
- issUer: form.issUer, // 褰曞叆浜�
- tempFileIds: form.tempFileIds,
-
- // 鍚堝悓瀹為檯淇℃伅
- purchaseLedgerId: contract.id, // 浣跨敤id浣滀负瀛楁鍚嶏紝鍊间负purchaseLedgerId
+ // 鍩虹琛ㄥ崟鏁版嵁
+ invoiceNumber: form.invoiceNumber,
+ invoiceAmount: form.invoiceAmount,
+ entryDate: form.entryDate,
+ enterDate: form.enterDate,
+ issUerId: form.issUerId, // 褰曞叆浜篿d
+ issUer: form.issUer, // 褰曞叆浜�
+
+ // 鍚堝悓瀹為檯淇℃伅
+ purchaseLedgerId: contract.id, // 浣跨敤id浣滀负瀛楁鍚嶏紝鍊间负purchaseLedgerId
purchaseContractNumber: contract.purchaseContractNumber, // 浣跨敤瀹為檯鐨勯噰璐悎鍚屽彿
salesContractNo: contract.salesContractNo, // 浣跨敤瀹為檯鐨勯攢鍞悎鍚屽彿
supplierName: contract.supplierName, // 浣跨敤瀹為檯鐨勪緵搴斿晢鍚嶇О
@@ -609,17 +592,16 @@
// 鍗曚釜鍚堝悓鎻愪氦閫昏緫 - 浠ユ暟缁勬牸寮忎紶閫�
const singleContract = selectedContracts.value[0];
const singleFormArray = [{
- // 鍩虹琛ㄥ崟鏁版嵁
- invoiceNumber: form.invoiceNumber,
- invoiceAmount: form.invoiceAmount,
- entryDate: form.entryDate,
- enterDate: form.enterDate,
- issUerId: form.issUerId, // 褰曞叆浜篿d
- issUer: form.issUer, // 褰曞叆浜�
- tempFileIds: form.tempFileIds,
-
- // 鍚堝悓瀹為檯淇℃伅
- purchaseLedgerId: singleContract.id, // 浣跨敤id浣滀负瀛楁鍚嶏紝鍊间负purchaseLedgerId
+ // 鍩虹琛ㄥ崟鏁版嵁
+ invoiceNumber: form.invoiceNumber,
+ invoiceAmount: form.invoiceAmount,
+ entryDate: form.entryDate,
+ enterDate: form.enterDate,
+ issUerId: form.issUerId, // 褰曞叆浜篿d
+ issUer: form.issUer, // 褰曞叆浜�
+
+ // 鍚堝悓瀹為檯淇℃伅
+ purchaseLedgerId: singleContract.id, // 浣跨敤id浣滀负瀛楁鍚嶏紝鍊间负purchaseLedgerId
purchaseContractNumber: singleContract.purchaseContractNumber, // 浣跨敤瀹為檯鐨勯噰璐悎鍚屽彿
salesContractNo: singleContract.salesContractNo, // 浣跨敤瀹為檯鐨勯攢鍞悎鍚屽彿
supplierName: singleContract.supplierName, // 浣跨敤瀹為檯鐨勪緵搴斿晢鍚嶇О
--
Gitblit v1.9.3