diff --git a/oms_web/oms_vue/src/api/finance/payment.js b/oms_web/oms_vue/src/api/finance/payment.js index 4929ea54..6003c94d 100644 --- a/oms_web/oms_vue/src/api/finance/payment.js +++ b/oms_web/oms_vue/src/api/finance/payment.js @@ -51,7 +51,7 @@ export function returnPayment(id) { } // 新增付款单 -export function addPayment(data) { +export function addPaymentFromPayable(data) { return request({ url: '/finance/payable/mergeAndInitiatePayment', method: 'post', @@ -59,6 +59,14 @@ export function addPayment(data) { needLoading: true }) } +export function addPayment(data) { + return request({ + url: '/finance/payment/add', + method: 'post', + data: data, + needLoading: true + }) +} // 申请付款 export function applyPaymentApi(data) { diff --git a/oms_web/oms_vue/src/views/finance/payment/components/AddForm.vue b/oms_web/oms_vue/src/views/finance/payment/components/AddForm.vue index b8f2dd21..e80318e0 100644 --- a/oms_web/oms_vue/src/views/finance/payment/components/AddForm.vue +++ b/oms_web/oms_vue/src/views/finance/payment/components/AddForm.vue @@ -33,7 +33,7 @@ - + @@ -54,6 +54,7 @@

应付单列表

@@ -105,12 +106,15 @@

订单列表

@@ -138,11 +142,11 @@ @@ -202,6 +206,7 @@ export default { }, rules: { vendorCode: [{required: true, message: "制造商名称不能为空", trigger: "change"}], + estimatedPaymentTime: [{required: true, message: "预计付款时间不能为空", trigger: "change"}], paymentBillType: [{required: true, message: "请选择是否预付", trigger: "change"}], totalPriceWithTax: [{required: false, message: "预付金额不能为空", trigger: "blur"}] }, @@ -263,11 +268,6 @@ export default { this.selectedRows = []; this.loadTableData(); }, - handleTypeChange() { - this.queryParams.pageNum = 1; - this.selectedRows = []; // Clear selection when switching type - this.loadTableData(); - }, loadTableData() { if (!this.form.vendorCode) return; @@ -277,7 +277,6 @@ export default { const query = { vendorCode: this.form.vendorCode, - orderStatus:'2', pageNum: this.queryParams.pageNum, pageSize: this.queryParams.pageSize }; @@ -305,11 +304,35 @@ export default { this.total = res.total; }); } else if (this.form.paymentBillType === 'PRE_PAYMENT') { + query.orderStatus = '2'; listOrders(query).then(res => { this.orderList = res.rows || []; this.total = res.total; }); } + this.$nextTick(() => { + if (this.$refs.payableTable) { + this.$refs.payableTable.clearSelection() + } + if (this.$refs.orderTable) { + this.$refs.orderTable.clearSelection() + } + }) + }, + handleSelect(selection, row) { + if (this.form.paymentBillType === 'PRE_PAYMENT') { + this.$refs.orderTable.clearSelection(); + const isSelected = selection.some(item => item.orderCode === row.orderCode); + if (isSelected) { + this.$refs.orderTable.toggleRowSelection(row, true); + } + } + }, + handleSelectAll(selection) { + if (this.form.paymentBillType === 'PRE_PAYMENT') { + this.$refs.orderTable.clearSelection(); + this.$modal.msgWarning("预付单只能选择一个订单"); + } }, handleSelectionChange(selection) { this.selectedRows = selection; @@ -396,10 +419,26 @@ export default { } else { // Prepayment logic + console.log(this.selectedRows) + if (this.selectedRows.length > 1) { + this.$modal.msgWarning("只能选择一笔订单"); + return; + } + if ((this.form.totalPriceWithTax ||0) <= 0) { + this.$message.warning("含税总价需要大于0"); + return; + } + let order = this.selectedRows[0] ?? {}; const submitData = { - ...this.form, - details: this.selectedRows + paymentBillType: 'PRE_PAYMENT', + orderCode: order.orderCode, + vendorCode: this.form.vendorCode, + projectCode:order.projectCode, + projectName:order.projectName, + paymentTime: this.form.estimatedPaymentTime, + totalPriceWithTax:this.form.totalPriceWithTax }; + console.log(submitData) this.$emit("submit", submitData); } } diff --git a/oms_web/oms_vue/src/views/finance/payment/components/ReceiptDialog.vue b/oms_web/oms_vue/src/views/finance/payment/components/ReceiptDialog.vue index fcee29b0..e64a5707 100644 --- a/oms_web/oms_vue/src/views/finance/payment/components/ReceiptDialog.vue +++ b/oms_web/oms_vue/src/views/finance/payment/components/ReceiptDialog.vue @@ -174,7 +174,7 @@ export default { }, paymentData: { type: Object, - default: () => null, + default: () => {}, }, dicts: { type: Object, diff --git a/oms_web/oms_vue/src/views/finance/payment/index.vue b/oms_web/oms_vue/src/views/finance/payment/index.vue index 2306c928..a5e57670 100644 --- a/oms_web/oms_vue/src/views/finance/payment/index.vue +++ b/oms_web/oms_vue/src/views/finance/payment/index.vue @@ -256,7 +256,7 @@