From dc8977cdbeb979df84d9b81a3be364223e8f2731 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 29 十月 2026 13:52:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_宁夏_万通新材料' into dev_宁夏_万通新材料
---
src/views/erp/finance/payment/modules/form.vue | 65 ++++++++++++++++++++++++++------
1 files changed, 53 insertions(+), 12 deletions(-)
diff --git a/src/views/erp/finance/payment/modules/form.vue b/src/views/erp/finance/payment/modules/form.vue
index b9c8cd4..ea9c530 100644
--- a/src/views/erp/finance/payment/modules/form.vue
+++ b/src/views/erp/finance/payment/modules/form.vue
@@ -11,30 +11,27 @@
import { message } from 'ant-design-vue';
import { useVbenForm } from '#/adapter/form';
-import { getAccountSimpleList } from '#/api/erp/finance/account';
import {
createFinancePayment,
getFinancePayment,
updateFinancePayment,
} from '#/api/erp/finance/payment';
+import { getPurchaseInvoiceSimpleList } from '#/api/erp/purchase/invoice';
import { useFormSchema } from '../data';
import ItemForm from './item-form.vue';
const emit = defineEmits(['success']);
const formData = ref<
- ErpFinancePaymentApi.FinancePayment & {
- fileUrl?: string;
- }
+ ErpFinancePaymentApi.FinancePayment
>({
id: undefined,
no: '',
supplierId: undefined,
- accountId: undefined,
+ accountName: undefined,
financeUserId: undefined,
paymentTime: undefined,
remark: '',
- fileUrl: undefined,
totalPrice: 0,
discountPrice: 0,
paymentPrice: 0,
@@ -71,6 +68,20 @@
if (changedFields.includes('supplierId')) {
formData.value.supplierId = values.supplierId;
}
+ // 鍏宠仈鏉ョエ鍙樺寲鏃讹紝鍔犺浇鏉ョエ淇℃伅渚涙槑缁嗚嚜鍔ㄧ敓鎴�
+ if (changedFields.includes('invoiceId')) {
+ formData.value.invoiceId = values.invoiceId;
+ handleInvoiceChange(values.invoiceId);
+ }
+ // 鍚堣浠樻鐢辨槑缁嗚嚜鍔ㄨ绠楋紝涔熷厑璁哥敤鎴锋墜鍔ㄤ慨鏀癸紱淇敼鍚庨噸鏂拌绠楀疄闄呬粯娆�
+ if (changedFields.includes('totalPrice')) {
+ formData.value.totalPrice = values.totalPrice ?? 0;
+ formData.value.paymentPrice =
+ formData.value.totalPrice - (values.discountPrice || 0);
+ formApi.setValues({
+ paymentPrice: formData.value.paymentPrice,
+ });
+ }
// 鐩殑锛氬悓姝ュ埌 item-form 缁勪欢锛岃Е鍙戞暣浣撶殑浠锋牸璁$畻
if (changedFields.includes('discountPrice')) {
formData.value.discountPrice = values.discountPrice;
@@ -83,6 +94,27 @@
}
},
});
+
+/** 鍏宠仈鏉ョエ鍙樺寲鏃讹紝鍔犺浇鏉ョエ淇℃伅锛屼緵浠樻鏄庣粏鑷姩鐢熸垚 */
+async function handleInvoiceChange(invoiceId: number | undefined) {
+ if (formType.value === 'detail' || !invoiceId) {
+ if (!invoiceId) {
+ formData.value.invoice = undefined;
+ }
+ return;
+ }
+ const supplierId = formData.value.supplierId;
+ if (!supplierId) {
+ return;
+ }
+ const invoices = await getPurchaseInvoiceSimpleList(supplierId);
+ // 璇锋眰鏈熼棿鏉ョエ宸插啀娆″垏鎹㈡椂锛屼涪寮冭繃鏈熺粨鏋滐紝閬垮厤鍥炴樉閿欎贡
+ if (formData.value.invoiceId !== invoiceId) {
+ return;
+ }
+ const invoice = invoices.find((item) => item.id === invoiceId);
+ formData.value.invoice = invoice;
+}
/** 鏇存柊浠樻椤� */
function handleUpdateItems(items: ErpFinancePaymentApi.FinancePaymentItem[]) {
@@ -152,12 +184,6 @@
formApi.setDisabled(formType.value === 'detail');
formApi.updateSchema(useFormSchema(formType.value));
if (!data || !data.id) {
- // 鏂板鏃讹紝榛樿閫変腑璐︽埛
- const accountList = await getAccountSimpleList();
- const defaultAccount = accountList.find((item) => item.defaultStatus);
- if (defaultAccount) {
- await formApi.setValues({ accountId: defaultAccount.id });
- }
return;
}
modalApi.lock();
@@ -165,6 +191,20 @@
formData.value = await getFinancePayment(data.id);
// 璁剧疆鍒� values
await formApi.setValues(formData.value, false);
+ // 璇︽儏妯″紡涓嬶紝鍏宠仈鏉ョエ瀛楁鐢� Input 灞曠ず鏉ョエ缂栧彿
+ if (formType.value === 'detail' && formData.value?.invoice) {
+ await formApi.setFieldValue('invoiceId', formData.value.invoice.no);
+ }
+ if (formData.value?.attachmentList?.length) {
+ const blobIds = formData.value.attachmentList.map((item) => ({
+ uid: String(item.id),
+ name: item.name || '',
+ url: item.url || '',
+ status: 'done',
+ id: item.id,
+ }));
+ await formApi.setFieldValue('blobIds', blobIds);
+ }
} finally {
modalApi.unlock();
}
@@ -187,6 +227,7 @@
:supplier-id="formData?.supplierId"
:disabled="formType === 'detail'"
:discount-price="formData?.discountPrice ?? 0"
+ :invoice="formData?.invoice"
@update:items="handleUpdateItems"
@update:total-price="handleUpdateTotalPrice"
@update:payment-price="handleUpdatePaymentPrice"
--
Gitblit v1.9.3