From f9e6eb6fc2c2e0c2a2b17238b817fcbfcb6bab56 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 10 八月 2026 16:38:45 +0800
Subject: [PATCH] feat(erp): 添加采购来票管理和付款关联功能
---
src/views/erp/finance/payment/data.ts | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 55 insertions(+), 2 deletions(-)
diff --git a/src/views/erp/finance/payment/data.ts b/src/views/erp/finance/payment/data.ts
index 22aa220..85cf9ad 100644
--- a/src/views/erp/finance/payment/data.ts
+++ b/src/views/erp/finance/payment/data.ts
@@ -6,6 +6,7 @@
import { erpPriceInputFormatter } from '@vben/utils';
import { getAccountSimpleList } from '#/api/erp/finance/account';
+import { getPurchaseInvoiceSimpleList } from '#/api/erp/purchase/invoice';
import { getSupplierSimpleList } from '#/api/srm/supplier';
import { getSimpleUserList } from '#/api/system/user';
import { getRangePickerDefaultProps } from '#/utils';
@@ -50,7 +51,7 @@
fieldName: 'supplierId',
label: '渚涘簲鍟�',
component: 'ApiSelect',
- componentProps: {
+ componentProps: (_values, form) => ({
disabled: formType === 'detail',
placeholder: '璇烽�夋嫨渚涘簲鍟�',
allowClear: true,
@@ -58,8 +59,54 @@
api: getSupplierSimpleList,
labelField: 'name',
valueField: 'id',
- },
+ onChange: () => {
+ // 渚涘簲鍟嗗彉鍖栧悗锛屾竻绌哄凡閫夌殑鍏宠仈鏉ョエ
+ form.setFieldValue('invoiceId', undefined);
+ },
+ }),
rules: 'required',
+ },
+ {
+ fieldName: 'invoiceId',
+ label: '鍏宠仈鏉ョエ',
+ component: formType === 'detail' ? 'Input' : 'Select',
+ componentProps:
+ formType === 'detail'
+ ? {
+ disabled: true,
+ placeholder: '--',
+ }
+ : undefined,
+ rules: 'required',
+ dependencies: {
+ // 渚濊禆 invoiceId 鑷韩锛岀‘淇濈紪杈戝洖鏄炬椂閲嶆柊鍔犺浇閫夐」浠ュ尮閰嶅凡閫夋潵绁�
+ triggerFields: ['supplierId', 'invoiceId'],
+ disabled: (values) => formType === 'detail' || !values.supplierId,
+ async componentProps(values) {
+ if (formType === 'detail') {
+ return {};
+ }
+ if (!values.supplierId) {
+ return {
+ options: [],
+ placeholder: '璇峰厛閫夋嫨渚涘簲鍟�',
+ };
+ }
+ const invoices = await getPurchaseInvoiceSimpleList(
+ values.supplierId,
+ );
+ return {
+ options: invoices.map((item) => {
+ const remain = item.remainingInvoicePrice ?? item.price ?? 0;
+ return {
+ label: `${item.no} / ${item.invoiceNo ?? '-'} / 楼${item.price ?? 0} / 鍓╀綑鍙粯 楼${remain.toFixed(2)}`,
+ value: item.id,
+ };
+ }),
+ placeholder: '璇烽�夋嫨鍏宠仈鏉ョエ',
+ } as any;
+ },
+ },
},
{
fieldName: 'financeUserId',
@@ -335,6 +382,12 @@
minWidth: 120,
},
{
+ field: 'invoice',
+ title: '鍏宠仈鏉ョエ',
+ minWidth: 200,
+ slots: { default: 'invoice' },
+ },
+ {
field: 'paymentTime',
title: '浠樻鏃堕棿',
width: 160,
--
Gitblit v1.9.3