From 1a8806f4148435fc4dd593a89d919834413b65af Mon Sep 17 00:00:00 2001
From: liuxiaoxu <1793812695@qq.com>
Date: Sat, 15 Jun 2024 15:40:45 +0800
Subject: [PATCH] =?UTF-8?q?[fix]=E9=94=80=E5=94=AE=E7=AE=A1=E7=90=86:=20?=
=?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=20=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A1=B5=E9=9D=A2=E7=9A=84=E8=A1=A8=E6=A0=BC?=
=?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=B9=E6=B3=95=EF=BC=8C=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=89=A9=E6=96=99=E5=8F=B7=E9=80=BB=E8=BE=91?=
=?UTF-8?q?=E5=88=A0=E9=99=A4=E8=A1=A8=E6=A0=BC=E4=B8=AD=E4=B8=80=E8=A1=8C?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE=20=E6=96=B0=E5=A2=9E=E5=A6=82=E6=9E=9Cform?=
=?UTF-8?q?=E8=A1=A8=E5=8D=95=E4=B8=8D=E5=A1=AB=E5=86=99=E7=BE=8E=E5=85=83?=
=?UTF-8?q?=E7=9A=84=E6=B1=87=E7=8E=87=EF=BC=8C=E4=B8=8D=E8=83=BD=E7=82=B9?=
=?UTF-8?q?=E5=87=BB=E6=B7=BB=E5=8A=A0=E7=89=A9=E6=96=99=E6=8C=89=E9=92=AE?=
=?UTF-8?q?=20=E4=BF=AE=E6=94=B9table=E8=A1=A8=E6=A0=BC=E7=9A=84rmb?=
=?UTF-8?q?=E5=92=8C=E7=BE=8E=E5=85=83=E7=9A=84=E5=90=84=E7=A7=8D=E6=8A=A5?=
=?UTF-8?q?=E4=BB=B7=E5=AD=97=E6=AE=B5=20=E4=BF=AE=E6=94=B9form=E8=A1=A8?=
=?UTF-8?q?=E5=8D=95=E8=AE=A1=E7=AE=97=E6=A8=A1=E5=9D=97=E7=9A=84=E9=97=AE?=
=?UTF-8?q?=E9=A2=98=20=E4=BF=AE=E6=94=B9=E6=A0=B9=E6=8D=AE=E5=B8=81?=
=?UTF-8?q?=E7=A7=8D=E7=9A=84=E4=B8=8D=E5=90=8C=EF=BC=8C=E5=A6=82=E6=9E=9C?=
=?UTF-8?q?=E6=98=AFRMB=EF=BC=8C=E8=A1=A8=E6=A0=BC=E5=8F=AA=E8=83=BD?=
=?UTF-8?q?=E5=85=88=E5=A1=AB=E5=86=99=20=E4=B8=8D=E5=90=AB=E7=A8=8E?=
=?UTF-8?q?=E5=8D=95=E4=BB=B7=E4=BA=BA=E6=B0=91=E5=B8=81=EF=BC=9B=20?=
=?UTF-8?q?=E5=A6=82=E6=9E=9C=E6=98=AF=E7=BE=8E=E5=85=83=20=E8=A1=A8?=
=?UTF-8?q?=E6=A0=BC=E5=8F=AA=E8=83=BD=E5=85=88=E5=A1=AB=E5=86=99=20?=
=?UTF-8?q?=E4=B8=8D=E5=90=AB=E7=A8=8E=E5=8D=95=E4=BB=B7=E7=BE=8E=E5=85=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../templates/system/salesOrder/add.html | 125 ++++++++++++++----
1 file changed, 102 insertions(+), 23 deletions(-)
diff --git a/ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html b/ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html
index 4b630275..e201b5cd 100644
--- a/ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html
+++ b/ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html
@@ -343,27 +343,83 @@
{ title: '对外售价',field: 'materialSole',editable: true},
{title: '国内税率',field: 'countTax',align: 'center',editable: {type: 'text',mode: 'inline',},},
{ title: '美元汇率',field: 'usdTax', align: 'center',editable: {type: 'text',mode: 'inline', }},
- {field: 'materialNum',align: 'center',title: '物料的数量',editable: {type: 'text',mode: 'inline', }},
- { title: '物料的不含税单价(RMB)', field: 'materialNoRmb',align: 'center',
- editable: {
- type: 'text', mode: 'inline', // 同样设定为行内编辑模式
- enabled: function() {return ($("#commonCurrency_add").val() === '1');},
- options: {placeholder: '请输入USD单价...',maxlength: 10}
+ { title: '物料的不含税单价(RMB)',
+ field: 'materialNoRmb',
+ align: 'center',
+ editable:{
+ type: 'text', // 使用'text'类型,因为我们需自定义验证小数
+ mode: 'inline',
+ enabled: function() {
+ return ($("#commonCurrency_add").val() === '1'); // 当货币类型为2时启用
+ },
+ title: '物料的不含税单价(RMB)',
+ validate: function(value) {
+ // 验证是否为空
+ if (!value) {
+ return '金额不能为空';
+ }
+ // 尝试转换为浮点数并检查是否成功
+ var num = parseFloat(value);
+ if (isNaN(num)) {
+ return '请输入有效的数字';
+ }
+ // 检查小数点后是否有超过两位的数字
+ var decimalPart = num.toString().split('.')[1]; // 获取小数部分
+ if (decimalPart && decimalPart.length > 2) {
+ return '请输入精确到小数点后两位的数字';
+ }
+ }
}
},
- {title: '物料的不含税单价(美元)',field: 'materialNoUsd',align: 'center',
+ { title: '物料的含税单价(RMB)',field: 'materialRmb',align: 'center',},
+ {field: 'materialNum',align: 'center',title: '物料的数量',
+ editable:{
+ type : 'text',
+ mode: 'inline',
+ title : '物料的数量',
+ validate : function(value) {
+ if (!value) {
+ return '用量不能为空';
+ }
+ if (isNaN(value)) {
+ return '用量必须为数字';
+ }
+ }
+ },
+ },
+ {title: '物料的不含税总价(RMB)',field: 'materialNoRmbSum',align: 'center',},
+ { title: '物料的含税总价(RMB)',field: 'materialRmbSum',align: 'center',},
+ {title: '物料的不含税单价(美元)',
+ field: 'materialNoUsd',
+ align: 'center',
editable: {
- type: 'text', mode: 'inline', // 同样设定为行内编辑模式
- enabled: function() {return ($("#commonCurrency_add").val() === '2'); },
- options: {placeholder: '请输入USD单价...', maxlength: 10}
+ type: 'text', // 使用'text'类型,因为我们需自定义验证小数
+ mode: 'inline',
+ enabled: function() {
+ return ($("#commonCurrency_add").val() === '2'); // 当货币类型为2时启用
+ },
+ title: '物料的不含税单价(美元)',
+ validate: function(value) {
+ // 验证是否为空
+ if (!value) {
+ return '金额不能为空';
+ }
+ // 尝试转换为浮点数并检查是否成功
+ var num = parseFloat(value);
+ if (isNaN(num)) {
+ return '请输入有效的数字';
+ }
+ // 检查小数点后是否有超过两位的数字
+ var decimalPart = num.toString().split('.')[1]; // 获取小数部分
+ if (decimalPart && decimalPart.length > 2) {
+ return '请输入精确到小数点后两位的数字';
+ }
+ }
}
},
{ title: '物料的含税单价(美元)',field: 'materialUsd',align: 'center',},
{ title: '物料的含税总价(美元)',field: 'materialUsdSum', align: 'center',},
{ title: '物料的不含税总价(美元)',field: 'materialNoUsdSum',align: 'center',},
- { title: '物料的含税单价(RMB)',field: 'materialRmb',align: 'center',},
- { title: '物料的含税总价(RMB)',field: 'materialNoRmbSum', align: 'center',},
- {title: '物料的不含税总价(RMB)',field: 'materialRmbSum',align: 'center',},
{ title: '计划交付时间',field: 'deliveryTime',align: 'center',editable: {type: 'date',title: '计划交付时间',} },
{title: '质保天数',align: 'center',field: 'expiryDay',
editable: {
@@ -384,7 +440,7 @@
{title: '操作', align: 'center',
formatter: function (value, row, index) {
var actions = [];
- actions.push('删除 ');
+ actions.push('删除 ');
return actions.join('');
}
}
@@ -424,6 +480,24 @@
},
};
$.table.init(options);
+
+ // 初始化表格
+ var bootstrapSubTableQuoteChild = $('#bootstrap-sub-table-order').bootstrapTable(options);
+ // 添加编辑保存事件监听器
+ bootstrapSubTableQuoteChild.on('editable-save.bs.table', function(e, field, row, oldValue, $el) {
+ var currencyVal = $("#commonCurrency_add").val();
+ var requiredField = (currencyVal === '1') ? 'materialNoRmb' : 'materialNoUsd';
+
+ // 检查是否尝试编辑除requiredField外的字段,且requiredField未填写
+ if (field !== requiredField && (!row[requiredField] || row[requiredField].trim() === '')) {
+ $.modal.alertWarning((currencyVal === '1' ? "请首先填写物料的不含税单价(RMB)" : "请首先填写物料的不含税单价(美元)"));
+ // 可以选择取消这次编辑操作,但Bootstrap Table默认不会提供直接的API来取消编辑后的保存,您可能需要手动恢复数据或采取其他策略。
+ }
+ });
+
+ // 初始化时也需要根据当前的货币类型设置一次
+ $("#commonCurrency_add").trigger('change');
+
selectBuniesessMembers();
});
@@ -602,7 +676,7 @@
countTax: $("#taxRate_add").val(),
usdTax: $("#usdTax_add").val(),
materialSole: "",
- materialNum: 1,
+ materialNum: "",
materialNoRmb: 0.00,
materialNoUsd: 0.00,
materialRmb: 0.00,
@@ -626,9 +700,15 @@
return;
}
if ($("#taxRate_add").val() == null || $("#taxRate_add").val() == '') {
- $.modal.alertWarning("请先选择输入国内的税率");
+ $.modal.alertWarning("请输入国内的税率");
+ return;
+ }
+
+ if ($("#usdTax_add").val() == null || $("#usdTax_add").val() == '') {
+ $.modal.alertWarning("请输入美元的汇率");
return;
}
+
var url = ctx + "erp/material/select";
var options = {
title: '选择料号',
@@ -638,14 +718,13 @@
$.modal.openOptions(options);
}
/* 删除指定表格行 */
- function removeRow(rowIndex){
- $('.delete-btn').click(function() {
- var rowId = $(this).data('id'); // 获取点击按钮的data-id值
- $(this).closest('tr').remove();
- $("#bootstrap-sub-table-editOrder1").bootstrapTable('remove', {index:rowIndex});
- $("#bootstrap-sub-table-editOrder1").bootstrapTable('refresh');
- });
+ function removeRow(materialCode){
+ $("#bootstrap-sub-table-order").bootstrapTable('remove', {
+ field: 'materialCode',
+ values: materialCode
+ })
}
+
function getTotalAmount(){
let getData = $("#bootstrap-sub-table-order").bootstrapTable('getData', true);
var enterprise = 0;