From 6b4fd7e441f7a6259b0095d546908705c47e95c4 Mon Sep 17 00:00:00 2001
From: chenhao <852066789@qq.com>
Date: Thu, 18 Sep 2025 10:15:08 +0800
Subject: [PATCH] =?UTF-8?q?feat(order):=20=E6=B7=BB=E5=8A=A0=E8=AE=A2?=
=?UTF-8?q?=E5=8D=95=E4=BB=98=E6=AC=BE=E6=96=B9=E5=BC=8F=E5=92=8C=E6=AF=94?=
=?UTF-8?q?=E4=BE=8B=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 在订单添加、编辑和审批页面增加付款方式和比例相关字段
- 实现付款方式选择时自动生成描述和设置比例
- 在数据库中增加付款方式、比例和描述字段
- 优化订单页面布局,增加备注字段显示
---
.../templates/project/order/add.html | 99 +++++++++++++
.../templates/project/order/approve.html | 112 ++++++++++++++-
.../templates/project/order/edit.html | 130 ++++++++++++++++++
.../ruoyi/sip/domain/ProjectOrderInfo.java | 15 ++
.../mapper/sip/ProjectOrderInfoMapper.xml | 19 ++-
5 files changed, 372 insertions(+), 3 deletions(-)
diff --git a/ruoyi-admin/src/main/resources/templates/project/order/add.html b/ruoyi-admin/src/main/resources/templates/project/order/add.html
index 7bd13bc1..58547a8f 100644
--- a/ruoyi-admin/src/main/resources/templates/project/order/add.html
+++ b/ruoyi-admin/src/main/resources/templates/project/order/add.html
@@ -305,6 +305,24 @@
+
@@ -517,6 +535,86 @@
})
}
+ var descriptionTemplates = {
+ '1-2': '总代预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,总代需1个月内支付尾款完成提货,否则备货押金不予退还。',
+ '2-2': '进货商预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,进货商需3个工作日内付全部剩余款项,即可享受订单约定的现金折扣。',
+ '2-3': '进货商预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,供货商需在1个月内提交剩余款项额度的商业汇票完成提货,否则备货押金不予退还。'
+ };
+
+ function updateDescriptionText() {
+ var paymentMethod = $('#paymentMethod').val();
+ var ratio = $('#paymentRatio').val();
+ var descriptionTemplate = descriptionTemplates[paymentMethod];
+ if (descriptionTemplate) {
+ $('#paymentDescription').val(descriptionTemplate.replace('{ratio}', ratio));
+ }
+ }
+
+ function changePaymentDescription() {
+ var paymentMethod = $('#paymentMethod').val();
+ var description = '';
+ var paymentRatio = 0;
+ var setRatio = false;
+ var isFullPayment = false;
+
+ if (paymentMethod === '1-1') {
+ description = '备货完成供货商发起付款通知后,总代按照订单金额支付全款。';
+ paymentRatio = 100;
+ setRatio = true;
+ isFullPayment = true;
+ } else if (paymentMethod === '1-2') {
+ description = descriptionTemplates['1-2'];
+ paymentRatio = 30;
+ setRatio = true;
+ } else if (paymentMethod === '2-1') {
+ description = '备货完成供货商发起付款通知后,进货商需3个工作日内付订单全部款项,即可享受订单约定的现金折扣。';
+ paymentRatio = 100;
+ setRatio = true;
+ isFullPayment = true;
+ } else if (paymentMethod === '2-2') {
+ description = descriptionTemplates['2-2'];
+ paymentRatio = 30;
+ setRatio = true;
+ } else if (paymentMethod === '2-3') {
+ description = descriptionTemplates['2-3'];
+ paymentRatio = 30;
+ setRatio = true;
+ }
+
+ $('#paymentDescription').val(description.replace('{ratio}', paymentRatio));
+
+ if (setRatio) {
+ $('#paymentRatio').val(paymentRatio);
+ } else {
+ $('#paymentRatio').val('');
+ }
+
+ if (isFullPayment) {
+ $('#paymentRatio').prop('readonly', true);
+ } else {
+ $('#paymentRatio').prop('readonly', false);
+ }
+ }
+
+ function updatePaymentOptions() {
+ var orderChannel = $('[name="orderChannel"]').val();
+ var $paymentMethodSelect = $('#paymentMethod');
+ $paymentMethodSelect.empty();
+ $paymentMethodSelect.append('
');
+
+ if (orderChannel == '1') { // 总代
+ $paymentMethodSelect.append('
');
+ $paymentMethodSelect.append('
');
+ } else if (orderChannel == '2') { // 直签
+ $paymentMethodSelect.append('
');
+ $paymentMethodSelect.append('
');
+ $paymentMethodSelect.append('
');
+ }
+ // Clear description and ratio when channel changes
+ $('#paymentDescription').val('');
+ $('#paymentRatio').val('');
+ }
+
$(function () {
initProductList()
initProjcet()
@@ -562,6 +660,7 @@
$("input[name='dutyPhone']").val(user.phonenumber)
}
+ $('[name="orderChannel"]').on('change', updatePaymentOptions);
})
function searchProject() {
diff --git a/ruoyi-admin/src/main/resources/templates/project/order/approve.html b/ruoyi-admin/src/main/resources/templates/project/order/approve.html
index 70b8c460..11db72c0 100644
--- a/ruoyi-admin/src/main/resources/templates/project/order/approve.html
+++ b/ruoyi-admin/src/main/resources/templates/project/order/approve.html
@@ -363,6 +363,34 @@
+
+ | 付款方式 |
+
+
+ |
+ 付款比例 |
+
+
+ |
+
+
+
+ | 描述 |
+
+
+ |
+
@@ -823,7 +851,7 @@
$("input[name='dutyPhone']").val(user.phonenumber)
}
}
- $('#approve-detail').find('input,select').each(function () {
+ $('#approve-detail').find('input,select,textarea').each(function () {
$(this).prop("disabled", true);
})
let headerHtml=$(`
@@ -852,6 +880,30 @@
`)
$wrapper.after(footHtmlShow);
+ // Set payment method from database
+ var initialPaymentMethod = /*[[${projectOrderInfo.paymentMethod}]]*/ null;
+ if(initialPaymentMethod) {
+ $('#paymentMethod').val(initialPaymentMethod);
+ }
+
+ var initialPaymentDescription = /*[[${projectOrderInfo.paymentDescription}]]*/ null;
+ if (initialPaymentDescription) {
+ $('#paymentDescription').val(initialPaymentDescription);
+ } else {
+ changePaymentDescription(); // Generate description only if it's empty
+ }
+
+ // Set payment ratio from database, which might have been edited
+ var initialPaymentRatio = /*[[${projectOrderInfo.paymentRatio}]]*/ null;
+ if(initialPaymentRatio) {
+ $('#paymentRatio').val(initialPaymentRatio);
+ }
+
+ // After setting initial values, check if the payment method is full payment and set readonly
+ var paymentMethod = $('#paymentMethod').val();
+ if (paymentMethod === '1-1' || paymentMethod === '2-1') {
+ $('#paymentRatio').prop('readonly', true);
+ }
})
function searchProject() {
@@ -1231,6 +1283,64 @@ ${
}
+ const descriptionTemplates = {
+ '1-1': '备货完成供货商发起付款通知后,总代按照订单金额支付全款。',
+ '1-2': '总代预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,总代需1个月内支付尾款完成提货,否则备货押金不予退还。',
+ '2-1': '备货完成供货商发起付款通知后,进货商需3个工作日内付订单全部款项,即可享受订单约定的现金折扣。',
+ '2-2': '进货商预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,进货商需3个工作日内付全部剩余款项,即可享受订单约定的现金折扣。',
+ '2-3': '进货商预付{ratio}%订单金额作为备货押金后开始备货生产,备货完成供货商发起付款通知后,供货商需在1个月内提交剩余款项额度的商业汇票完成提货,否则备货押金不予退还。'
+ };
+
+
+
+ function changePaymentDescription() {
+ var paymentMethod = $('#paymentMethod').val();
+ var description = '';
+ var paymentRatio = 0;
+ var setRatio = false;
+ var isFullPayment = false;
+ description = descriptionTemplates[paymentMethod];
+ if (paymentMethod === '1-1') {
+
+ paymentRatio = 100;
+ setRatio = true;
+ isFullPayment = true;
+ } else if (paymentMethod === '1-2') {
+
+ paymentRatio = 30;
+ setRatio = true;
+ } else if (paymentMethod === '2-1') {
+
+ paymentRatio = 100;
+ setRatio = true;
+ isFullPayment = true;
+ } else if (paymentMethod === '2-2') {
+
+ paymentRatio = 30;
+ setRatio = true;
+ } else if (paymentMethod === '2-3') {
+
+ paymentRatio = 30;
+ setRatio = true;
+ }
+
+ if(description){
+ $('#paymentDescription').val(description.replace('{ratio}', paymentRatio));
+ }
+
+ if (setRatio) {
+ $('#paymentRatio').val(paymentRatio);
+ } else {
+ $('#paymentRatio').val('');
+ }
+
+ if (isFullPayment) {
+ $('#paymentRatio').prop('readonly', true);
+ } else {
+ $('#paymentRatio').prop('readonly', false);
+ }
+ }
+